昨天12月2日,MySQL团队放了一个大招——MySQL Database Service with Analytics Engine。这是个什么东西?先看看官网的宣传图片。
比本地的MySQL查询快了400倍,比Amazon Aurora快了1100倍,比Amazon Redshift快了2.7倍。简而言之——快!!!
除此之外还有哪些特点呢?
究竟是怎么做到的呢?它又是为何而生的呢?
众所周知,MySQL被广泛用于互联网以及各种行业的OLTP处理,并且MySQL对OLTP处理进行了优化。但MySQL并没有针对分析处理而设计,如果需要对MySQL中的数据进行分析处理,通常都需要将其导入其他的数据库运行分析应用程序。传统的方式为用户带来了复杂性和额外的成本,例如需要进行ETL、跨网络传输、数据同步延迟,以及管理多个数据库。MySQL Analytics Service旨在使客户无需ETL即可对存储在MySQL数据库中的数据进行分析。
这个服务基于创新的内存分析引擎构建,该引擎旨在实现可伸缩性和性能,并针对Oracle Cloud Infrastructure(OCI)进行了优化。服务的各个方面都利用了机器学习驱动的自动化,从而降低了数据库管理成本。与其他行业解决方案相比,提供了非常高效的SQL分析解决方案,而成本却只有其一小部分。
如何部署?
MySQL Analytics实例是由MySQL数据库服务VM和一个或多个分析节点组成的集群,如图中的红色所示。启用分析后,将在MySQL数据库节点上安装一个分析插件,该插件负责集群管理 ,将数据加载到分析节点的内存,查询调度,查询执行,以及将查询结果返回到MySQL数据库。应用程序继续与MySQL数据库交互,无需关注MySQL Analytics Engine。
相比较其他数据库产品的最大优势,用户可以利用本地部署的MySQL直接通过主从复制功能将MySQL的数据同步到MAS。事务查询在MySQL数据库节点中处理,并且在MySQL InnoDB中更新的数据透明地实时传播到分析集群。这使客户可以在单个数据库中同时运行OLTP和实时分析。
MySQL Analytics是内存处理引擎,数据仅保存在MySQL InnoDB存储引擎中。这使用户可以像在MySQL中管理事务数据一样来管理分析数据。用户通过标准工具和基于标准的ODBC / JDBC连接器连接到MySQL数据库节点。可以由分析引擎加速的查询由MySQL数据库节点透明地推送到分析引擎。这使现有应用程序可以在不进行任何更改的情况下利用MySQL分析引擎,从而实现轻松,快速的集成。用户提交查询后,MySQL查询优化器透明地决定是否应将查询加载到分析引擎以加快执行速度。这个决定基于MySQL查询是否支持查询中引用的所有运算符和函数,以及使用分析引擎处理查询的估计时间是否少于MySQL InnoDB执行。如果两个条件都满足,则将查询推送到分析节点进行处理。处理后,结果将发送回MySQL数据库节点,并返回给应用程序。
MySQL优化器进行了增强,可以将查询透明地推送到分析引擎,因此无需进行查询更改即可通过MySQL分析引擎加速查询。现有的MySQL兼容工具和应用程序均可与MySQL Analytics Engine无缝协作。
MySQL分析引擎的数据保留在MySQL InnoDB中。对表的任何更新都会自动传播到分析节点的内存中,因此后续查询始终会看到更新后的数据。这是通过轻量级的更改传播算法在后台完成的,该算法可以跟上MySQL数据更新速率。OLTP应用程序所做的更改对于分析查询是实时可见的。
怎么样,看到这里心动了吗?需要试用或者体验该功能的朋友,请联系MySQL团队。
感谢您关注“MySQL解决方案工程师”!