专栏名称: DBAplus社群
围绕数据库、大数据、PaaS云,顶级大咖、技术干货,运营几个月受众过十万!成为运维圈最专注围绕“数据”的学习交流和专业社群!欢迎投稿,加入探讨。
目录
相关文章推荐
数据中心运维管理  ·  弱电智能化中究竟有多少个子系统? ·  15 小时前  
数据中心运维管理  ·  超大规模数据中心如何重新思考冷却效率 ·  2 天前  
AustinDatabases  ·  P-MySQL ... ·  18 小时前  
阿里云大数据AI平台  ·  【5月重点功能发布】阿里云大数据+ AI ... ·  昨天  
阿里云大数据AI平台  ·  【5月重点功能发布】阿里云大数据+ AI ... ·  昨天  
数据分析与开发  ·  突发!Anthropic 断供 ... ·  昨天  
51好读  ›  专栏  ›  DBAplus社群

详解MySQL重大新增功能,专治数据分析之痛

DBAplus社群  · 公众号  · 数据库  · 2020-12-25 07:15

正文

请到「今天看啥」查看全文



MySQL Analytics Engine(简称MAE),笼统来说是一款内置的分析引擎。通过它与MySQL Database的组合,可以使得数据库管理员和应用程序开发人员能够直接将MySQL数据库作为OLTP和OLAP工作负载的统一服务。其提供的“MySQL Database Service with Analytics Engine”,是由一个MySQL DB实例和多个分析节点组成。当分析功能被启用时,分析服务将被安装在DB实例上,其负责集群管理、数据加载、查询执行等。从用户角度来看,可以通过标准的MySQL JDBC/ODBC Connector来连接使用。下面我们详细展开看看。



首先从整体使用来看,对外提供统一的MySQL Database Service。用户仍然是通过传统的方式去使用它,无论是OLTP还是OLAP场景。在这个服务的内部,是包括了传统的OLTP引擎和新的Analytics引擎。在数据上,也是存在两份。前者仍然保存在例如InnoDB这样的存储引擎之中,后者则保存在一组节点构成集群的内存之中。正常事务操作带来的数据变化,会透明地传播到后面的分析集群中,以加速分析处理。这样就使得客户可以在单个数据库平台上同时运行OLTP和OLAP工作负载。简言之,就是两个计算引擎、两份数据存储。



MAE的核心工作思想就是“化大为小”,通过分区机制,将数据打散后利用独立的CPU资源进行处理。处理后的结果统一返回。



在MAE内部,由多个分析节点组成。其具体节点数量,可由MySQL分析引擎提供的自动配置顾问自动获得。在节点中,数据以一种混合列压缩的格式存储。这有助于向量化处理,从而获得非常好的查询性能。数据在内存中运行之前被编码和压缩。这种压缩和优化的内存使用,对于数值和字符串数据尤为显著,可提高性能并减少内存占用,从而为客户降低成本。同时在每个节点中使用并行操作技术,这为分析提供了高缓存命中率,并提供良好的节点间可伸缩性。集群内的每个分析节点和节点内的每个核心都可以并行处理分区数据,包括并行扫描、连接、分组、聚合和top-k处理。



MySQL分析引擎为分布式内存分析处理实现了最新的算法。通过使用向量化的构建和探测连接内核,可以快速处理分区内的连接。通过使用异步批处理I/O,优化了分析节点之间的网络通信。算法的设计是为了使计算时间与跨节点的数据通信重叠,这有助于实现良好的可伸缩性。



MySQL分析引擎与MySQL数据库服务的集成为企业的所有OLTP和分析需求提供了一个单一的数据管理平台。MySQL分析引擎被设计成一个MySQL可插拔存储引擎,它完全屏蔽了存储层的所有底层实现细节,不让最终用户看到。用户和应用程序通过集群中的MySQL数据库节点与MySQL分析交互。用户通过标准工具和基于标准的ODBC/JDBC连接器连接到MySQL分析引擎。


MySQL分析引擎支持与MySQL相同的ANSI SQL标准和ACID属性,并支持不同的数据类型。这使得现有的应用程序无需对其应用程序进行任何更改就可以利用MySQL分析引擎,从而实现简单快速的集成。一旦用户向MySQL数据库提交查询,MySQL查询优化器就会透明地决定是否将查询卸载到分析集群以加速执行。这是基于MySQL分析引擎是否支持查询中引用的所有操作符和函数并且使用分析引擎处理查询的估计时间比在MySQL中更少时,查询将被下推到分析节点进行处理。处理之后,结果被发送回MySQL数据库节点并返回给用户。








请到「今天看啥」查看全文