vlambda博客
学习文章列表

20年来开源云数据库的一大创新,Oracle MDS和HeatWave能实现降维打击吗?


用哪个版本的MySQL数据库


问开发、运维或安全人员,可能有不同的答案,但 MySQL 8.0 的出现,你们很可能会达成一致的意见。无论是开发管理还是安全, 8.0 都针对性地推出了丰富的新特性,让人眼前一亮。


云原生 MySQL 数据库服务方面的选择也很多。Oracle 的 MDS 服务尽管不是最早推出的,但由原厂 MySQL 团队开发、管理并提供技术支持,结合甲骨文在数据库多年的深耕,一推出就受到了极大的关注。后续发布了附带的 HeatWave ,用户可以直接在 MySQL 数据库上运行 OLTP 和 OLAP 负载的服务。最近还推出了免费内置的机器学习服务,成为了云数据库业务的多面手。无需复杂、耗时且昂贵的数据移动,也无需与单独的分析数据库集成。


这个多面手对开发特别友好,程序只需要兼容 MySQL 数据库,不需要改动,就可以在云上面执行 OLTP + OLAP + 机器学习,而且成本很低,性能很好。例如就机器学习这一块,HeatWave ML在机器学习的基准测试中,平均比 Redshift ML 快25倍,成本只有 Redshift ML 的1%,而且这个还没算上 OLAP 的功能;在 OLAP 方面,它也有同样高的性价比,如果已经使用了支持 OLAP 的 HeatWave ,那么 ML 的边际使用成本为0。


未来,作为市面上唯一具有大规模可扩展原生分析引擎的 MySQL 服务,加上最近免费赠送的机器学习服务, Oracle MDS 和 HeatWave 可以实现降维打击吗?

01
MySQL8的新特性

MDS 是基于 MySQL 8.0 企业版开发的,企业版在审计、合规和数据安全性方面做得更加全面,但社区版的特性也是同样的丰富。


在开发方面,有几个特性是特别值得关注的:


第一是快速加列。在应用推出新版本的时候,很多时候都需要加列,如果表很大,这个时间会很长,而且还不可避免地对业务带来一定的影响,特别是高并发的系统。而 8.0 的快速加列只需要修改元数据信息,并且是一个瞬时的操作;


第二是隐藏列的功能。当一个列被指定为隐藏列的时候,如果不显式指定是不会被查询到的,这样我们在发布新版本的时候,数据库就可以兼容不同的应用版本;


第三是 InnoDB 事务调度算法的重大改进。旧版本采用的是FIFO机制,而新版本采用的是 CATS 机制。值得一提的是, MySQL 是全球第一个使用这种最先进的 CATS 事务调度算法的数据库,该算法解决了数据库在遇到高压力情况下性能急剧下降的问题,并在复杂的业务场景中带来很大的性能提升;


第四是在分析功能方面的增强。该版本支持 CTE 和窗口函数。其中,公用表表达式(Common Table Expressions)是一个非常实用的功能,它可以用来构建更容易阅读的复杂语句(即其它数据库的with语句),不仅可以有效地替代视图,对于 SQL 的执行性能也会有提高;窗口函数的作用类似于在查询中对数据进行分组,不同的是,分组操作会把分组的结果聚合成一条记录,而窗口函数是将结果置于每一条数据记录中。窗口函数实际上就是数据分析的函数,以前我们要实现类似的功能需要写非常复杂的语句,现在则变得非常简单;


第五个是引入了 Hash Join 的连接方式。旧版本只支持 Nested Loop join , Hash Join 只能用于等值连接,在大表连接的时候其优化效果会比较明显;


第六是直方图的支持。直方图实际上是对表的某个字段的数据分布的统计信息,因为数据的分布有可能是不均匀的,通过这些统计信息就可以影响优化器,得到更佳的执行计划;


还有一个是 JSON 列的局部更新。不再是删除旧文档并将新文档全部写入该列的方式。


总的来说,我们看到了一个很好的趋势—— MySQL正在不断吸收其他数据库的长处,对于开发的友好度也在不断地增强。

在运维方面,可靠性和可用性方面都有增强。例如去年底才发布的8.0.27就推出了一个重磅的功能—— MySQL InnoDB ClusterSet ,是一个灾难恢复的解决方案。在每个数据中心内采用 MySQL InnoDB Cluster ,并运用组复制的技术,中心内可达到RTO秒级的自动切换,同时 RPO 为0,不丢数据。而数据中心之间采用的是异步复制的技术,在发生灾难的时候可以手动进行切换,通过结合 MySQL Router 和MySQL Shell 组件,可以做到切换之后的应用自动重新路由和复制通道的自动维护,实现对业务影响最小化。


MySQL Shell 这个组件也非常值得注意,如果要搭建集群或者从库,通过使用克隆的插件就可以实现本地或者是远程实例的数据拷贝。MySQL Shell 也是一个多线程的转储工具,速度可达 3GB/S ,转储过程中可以进行加载,并实现暂停和启用。同时还提供压缩的功能,对于经常要进行数据迁移的 DBA ,可以大大地提高效率。这个工具也是进行云迁移时必备的工具,功能非常强大,有兴趣的同学可以研究一下。


在 MySQL 8.0 中还引入了非常重要的新特性:一个轻量级的备份锁。这个锁可以保证备份一致性,而且阻塞的操作相对比较少。在之前版本中,在物理备份的最后阶段,需要执行 flush table with read lock(简称FTWRL),以获取一致性状态;FTWRL 会关闭所有打开的表,并加上一把全局读锁,不仅杀伤性非常大还很容易被慢查询、大事务或者是 DDL 阻塞,并造成各种告警,甚至导致实例崩溃,而引入备份锁后可以从根本上解决这个问题。



从上面可以看到,无论是开发、运维还是安全, MySQL 8.0 都带来了丰富的新特性,而且这些新特性很多都是借鉴了成熟的数据库。特别是 Oracle ,经过了几年的发展,稳定性不成问题,有条件的同学建议都升级到这个版本。

02
云端数据库的多面手--MySQL数据库服务

以下场景不知道你有没有遇到过:


20年来开源云数据库的一大创新,Oracle MDS和HeatWave能实现降维打击吗?

场景一


业务上需要对交易数据进行数据分析,老板需要每天看报告,为此你搭建了一个专门的从库,用来给大数据抽数,然后使用大数据做统计和分析。但很不幸的是,今天的数据同步出了问题,老板正在等着报告做汇报,而这个数据同步的问题需要比较久的时间才能解决。



场景二


为了方便展示,你们做了一了个业务大屏幕看板,可以看到每天的业务情况,但今天的数据量比较多,统计出不来。


20年来开源云数据库的一大创新,Oracle MDS和HeatWave能实现降维打击吗?


20年来开源云数据库的一大创新,Oracle MDS和HeatWave能实现降维打击吗?

场景三

业务想看到更实时的数据,但数据在不同系统间的同步需要 ETL ,存在较大延时,无法提供。


场景四


预计到机器学习将可以给业务带来价值,你们也想尝试一下,但这意味着需要多建另外一套系统,还涉及到数据同步、 ETL 等问题,机器学习还有各种的算法,需要找专门的数据科学家。能否做到只是懂 SQL 的人员,也可以随时随地的使用机器学习呢?


20年来开源云数据库的一大创新,Oracle MDS和HeatWave能实现降维打击吗?


如果对于上面的场景,你的回答只要有其中一个是肯定的,那么甲骨文的MySQL数据库服务 MDS 很可能非常适合你。特别是对于那些有海外业务的客户, MDS 将 OLTP 、 OLAP 和机器学习都集成在一起,你的应用只要兼容 MySQL 就可以无需改动直接使用。而且在云端数据库服务方面, MDS 就是一个怪兽级的存在,不但价格便宜,而且性能表现更好,如果启用了 OLAP 用的 Heatwave 集群,机器学习就是免费内置的功能。


MDS (MySQL Database Service) 是甲骨文云完全托管的云原生 MySQL 数据库服务,由甲骨文公司的 MySQL 团队开发、管理并提供技术支持。甲骨文云自动执行所有任务,例如备份和恢复、数据库和操作系统修补等。用户只需全权负责管理自己的数据、架构设计和访问策略即可。作为云端的服务, MDS 不仅拥有其他厂商提供的功能,作为原厂分支的 MDS 基于 MySQL 8.0企业版开发,其价格非常便宜,同等的配置只有 AWS 的一半不到。


 MDS 可选附带 HeatWave 集群服务,这是面向 Oracle MySQL 数据库服务的一款大规模并行的高性能、内存中查询加速器,可将分析和混合作负载的 MySQL 性能提高几个数量级。特别值得一提的是,搭载 HeatWave 的 MySQL数据库服务是目前市场上仅有的一款支持客户直接从其 MySQL 数据库运行 OLTP 和 OLAP 负载的服务,无需复杂、耗时且昂贵的数据移动,也无需与单独的分析数据库集成。


集成 HeatWave 技术的 MySQL 数据库服务可高效支持 OLTP 和 OLAP,使用户能够针对他们的 MySQL 数据库运行混合工作负载或实时分析。与其他分析数据库或基于 MySQL 的数据库相比,性能可提升10至1,000倍,而成本不到其一半。MySQL HeatWave 是 Oracle 云基础设施(OCI)上增长最快的云服务之一,越来越多的客户将 MySQL 工作负载迁移至 HeatWave上。经过甲骨文的多年研发,在自动化、性能和成本方面均有了极大改善,使得 HeatWave 更加领先于其他云服务。


有了HeatWave加持的MDS服务到底有多好,以下是来自客户的一些声音:


 Vitor Freitas

Estuda.com 联合创始人兼首席技术官



“与未更改代码的 Google BigQuery 相比, MySQL HeatWave 将我们复杂的查询性能提升了 300 倍,响应时间只需几秒,而且成本降低了 85% 。现在,我们可以更好地为 300 万名用户提供实时分析,并持续改进我们的应用程序,以提高学生的表现。”

Estuda.com 是一家教育 SaaS 提供商,在巴西为 K-12 学生测试提供服务


开发者

FANCOMI



“我们发现 MySQL HeatWave 将性能提高了 10 倍,并在从 AWS Aurora 迁移后显着降低了成本。我们也不必修改我们的应用程序来获得出色的体验。”

FANCOMI公司是日本领先的广告商,该公司每天 24 小时监控和测量 260 万家代理机构的 20,000 条广告。它需要一个平台来提供实时洞察、管理成本并成为世界上最大的基于绩效的营销广告网络。


联合创始人兼首席技术官

Red3i 



“我们将 6TB 数据库和数字营销及媒体管理应用程序从亚马逊网络服务Aurora 成功地迁移至 OCI 上的 MySQL HeatWave,从而降低成本达 60% ,将复杂查询的性能提升了 1000 多倍,总体工作负载改善了 85% 。同时,我们无需对应用程序进行任何修改,自动恢复功能最小化了停机时间。帮助我们扩展至数千个核,以应对我们越来越多的需求”

Red3i是一家数字营销公司,通过获取、分析和处理媒体数据来提供商业智能以推动客户获取。它需要一个关键任务处理平台来推动市场活动的绩效和速度。


IDC 数据管理软件研究副总裁 Carl Olofson 指出:“甲骨文去年8月推出 MySQL HeatWave 组件 Autopilot,这可能是过去20年来开源云数据库的一大创新。如今, MySQL HeatWave ML 的面世意味着,甲骨文在 HeatWave 中统一 OLTP 和 OLAP 的努力更上一层楼。甲骨文将所有机器学习处理和模型都引入了数据库中,客户不仅可以避免在核心数据库之外管理  ML 数据库,还可以消除 ETL 流程带来的麻烦,从而在速度、准确度和成本方面获得更多优势。”


这里提到的 Autopilot,则是 MySQL HeatWave的关键组件,它是Oracle 云基础设施 (OCI)中 , MySQL 数据库服务的内存查询加速引擎。MySQL Autopilot 借助先进的机器学习技术实现 HeatWave 智能化,使其更易于使用,同时提升性能和可扩展性。任何其他云供应商都没有为自己的数据库产品提供这种先进的自动化能力,且 MySQL HeatWave 客户无需支付额外费用即可获得 Autopilot 。


MySQL Autopilot 可自动执行与高性能查询相关的许多关键、且具挑战性的功能,包括配置、数据加载、查询执行和故障处理。它使用先进的技术来对数据进行采样,收集关于数据和查询的统计信息,并使用 Oracle AutoML构建机器学习模型,以对内存使用、网络负载和执行时间进行建模。然后 MySQL Autopilot 使用这些机器学习模型来执行其核心功能。随着执行更多查询, MySQL Autopilot 使 HeatWave 查询优化器变得越来越智能,从而随着时间的推移不断提高系统性能——这是 Amazon Aurora、Amazon Redshift、Snowflake 或其他基于 MySQL 的数据库服务所不具备的功能。


MySQL Autopilot 功能包括有:


自动配置


通过对需要分析的表数据进行自适应采样,以预测运行工作负载所需的 HeatWave 节点数,因此客户不再需要以人工的方式估算集群的最佳大小,同时也是任何其他数据库服务无法提供的独特能力。

自动并行加载


通过预测加载到 HeatWave 中的每个表的最佳并行度,以优化加载时间和内存使用。

自动数据放置


预测表应该在内存中以哪些列进行分区,以帮助实现查询的最佳性能。并通过推荐的新的分区列预测查询性能的改善程度。由于操作员在手动选择列时可能无法做出最优选择,因此这样可以最大限度地减少跨节点的数据移动。任何其他数据库服务都未提供这一能力。

自动编码


可以在同时考虑查询的前提下,确定加载到 HeatWave 中的列的最佳表示形式。这种最佳表示提供了最好的查询性能,并最小化了集群的大小以最小化成本。

自动查询计划

从查询的执行中学习各种统计信息,并可以改进未来查询的执行计划。随着更多查询的运行,系统的性能将会得到进一步提升。没有其他数据库服务提供此功能。

自动估算查询时间


可在执行查询前估算执行时间,帮助客户确定查询时间是否过长,是否应该进行其他查询。

自动变更传播


当 MySQL 数据库发生变更时,智能地确认传到 HeatWave 横向扩展数据管理层的最佳时间,确保在恰当的时间传播变更。任何其他云供应商尚未提供这一能力。

自动调度


可以确定队列中哪些查询运行时间较短,并以智能方式将它们优先于长时间运行的查询,以减少总体等待时间。大多数其他数据库使用先进先出 (FIFO) 机制进行调度。

自动错误恢复

由于软件或硬件故障导致一个或更多个 HeatWave 节点无法响应,系统则会配置新的节点并重新加载必要的数据。



03
HeatWave ML—内置的机器学习,相当于免费赠送

除了事务处理和分析功能,Oracle MySQL HeatWave 现在也支持数据库内机器学习 (ML),这是唯一支持此功能的 MySQL 云数据库服务。MySQL HeatWave ML 全面自动执行机器学习生命周期,并将所有经过训练的模型存储在 MySQL 数据库中,而无需将数据或模型移动到机器学习工具或服务中。消除提取、转换和加载 (ETL) 流程可降低应用程序的复杂性与成本,并提高数据和模型的安全性。HeatWave ML 功能现已包含在所有37个 Oracle 云基础设施 (OCI) 区域的 MySQL HeatWave 数据库云服务中。


目前,对许多开发人员来说,为 MySQL 应用程序添加机器学习功能困难且耗时。首先,开发人员需要将数据从数据库提取到另一个系统,以创建和部署机器学习模型。将机器学习用于应用程序数据会创建多个孤岛,并延迟数据移动。这还会导致数据库外的数据激增,使其更易受到安全威胁,并增加开发人员在多个环境中进行编程的复杂性。其次,现有服务期待开发人员为机器学习模型训练的专家;否则,模型是次优的,并会降低预测的准确性。最后,大多数现有的机器学习解决方案没有包括相应功能来解释开发人员构建的模型为何会提供某种特定预测。



MySQL HeatWave ML 通过在 MySQL 数据库内原生集成机器学习功能来解决这些问题,而无需将数据 ETL 到其他服务。HeatWave ML 完全自动化训练过程,并为给定数据集和指定任务创建具有最佳算法、最佳特征和最佳超参数的模型。HeatWave ML 生成的所有模型都可以提供模型和预测解释。


没有其他云数据库供应商可以直接在数据库服务中提供此类高级的机器学习功能。甲骨文此次发布的机器学习基准测试可在大量公开可用的机器学习分类和回归数据集上执行,例如 Numerai、Nomao 和 Bank Marketing 等。针对在更大的 HeatWave 集群上进行训练时,会增加相对于 Redshift ML 的性能优势。使用 MySQL HeatWave 可以非常高效快速地完成耗时的训练过程,因此客户可以更频繁地重新训练模型并跟上数据的变化,使模型保持最新并提高预测的准确性。


相较于其他云数据库服务,HeatWave ML 提供了以下功能:


1、完全自动化的模型训练


使用 HeatWave ML 创建模型的所有不同阶段都是完全自动化的,无需开发人员干预。这样可以实现更准确、无需手动操作的模型优化,并且始终完成培训过程。Amazon Redshift 等其他云数据库服务提供了集成外部服务的机器学习功能,意味着开发人员在 ML 培训过程中需要进行大量的手动输入。

2、模型和推断解释


模型的可解释性有助于开发人员了解机器学习模型的行为。例如,如果银行拒绝客户贷款,则它需要能够确定模型的哪些参数有被考虑在内,或者模型是否包含任何偏差。预测可解释性是一组技术,有助于回答机器学习模型为何做出如此特定预测的问题。如今,预测解释变得越来越重要,因为公司必须能够解释其机器学习模型作出的决策。HeatWave ML 将模型解释和预测解释相结合,作为模型训练过程的一部分。因此, HeatWave ML 创建的所有模型都可以提供模型和推断解释,而无需在推断解释时提供训练数据。甲骨文增强了现有的解释技术,以提高性能、可解释性和质量。其他云数据库服务并未针对其所有机器学习模型提供如此丰富的可解释性。

3、超参数优化


HeatWave ML 为超参数优化实现了基于渐变搜索的全新缩减算法。这样可以并行执行超参数搜索,而不影响模型的准确性。超参数优化是机器学习模型训练最耗时的阶段,此独特功能可以为 HeatWave ML 提供优于其他云服务构建机器学习模型的性能优势。

4、算法选择


HeatWave ML使用代理模型的概念来确定最佳的 ML 算法,以进行训练。代理模型是一种展示完整复杂模型属性的简单模型。使用简单的代理模型可非常高效地完成算法选择,而不会牺牲准确性。其他用于构建机器学习模型的数据库服务皆未提供这种代理建模功能。

5、智能数据采样


在模型训练期间,HeatWave ML 对一小部分数据进行抽样,以提高性能。这种抽样的方式是在样本数据集中捕获所有代表性的数据点。其他用于构建机器学习模型的云服务采用了效率较低的方法,即使用随机数据采样,在不考虑数据分布特征的情况下对一小部分数据进行采样。

6、特征选择


这个功能有助于确定训练数据的属性;这些属性会影响机器学习模型进行预测的行为。HeatWave ML中的特征选择技术针对多个域和应用程序的大量数据集进行了训练。根据这些收集到的统计信息和元数据信息,HeatWave ML 能够有效地识别新数据集中的相关特征。

除了机器学习功能,甲骨文还为 MySQL HeatWave 服务发布了更多创新。实时弹性功能让客户将 HeatWave 集群扩展和缩小到任意数量的节点,无需任何停机时间或只读时间,也无需手动重新平衡集群。其他功能还包括数据压缩,可让客户处理每个节点两倍的数据,并降低近50%的成本,同时保持相同的性价比。新增的暂停与恢复功能则可让客户暂停 HeatWave,以节省成本。恢复后,MySQL Autopilot 所需的数据和统计信息将自动重新加载到 HeatWave 中。


机器学习功能是内置的,如果你打开了 HeatWave 集群用作OLAP,那么实际上就相当于是免费赠送的。加上其随时暂停的特性,对于有意运用机器学习的客户来说,试错的成本非常低。20年来开源云数据库的一大创新,有需要的朋友可以一试。




文章来源:甲骨文中国


E企研究院致力于“降低用户对新技术和新方案的接受成本“,聚焦云计算、AI、数据中心等新型基础设施领域的技术和趋势研究,拥有专职的技术咨询团队、分析师团队和专家顾问团队,解析新产品新技术,向厂商提供顾问服务,为用户提供咨询服务,成为多家厂商、用户的战略伙伴。目前E企研究院已入驻多家平台,为安谋科技(Arm China)极术社区合作伙伴。
E企学院是面向ToB企业级市场的在线教育技术知识分享平台,以数据中心、云计算等最新的软硬件解决方案的IT知识、学习分享为主,培养企业实用型人才,打造从人才培养到技术输出的终端IT学习应用。
看清科技,解读价值,请扫描“视频号二维码”获取更多的技术解析。