万字长文揭秘:阿里如何实现海量数据实时分析?
作者:网友投稿 时间:2018-12-18 21:29

挑战
随着数据量的快速增长,越来越多的企业迎来业务数据化时代,数据成为了最重要的生产资料和业务升级依据。伴随着业务对海量数据实时分析的需求越来越多,数据分析技术这两年也迎来了一些新的挑战和变革:
在线化和高可用,离线和在线的边界越来越模糊,一切数据皆服务化、一切分析皆在线化。
高并发低延时,越来越多的数据系统直接服务终端客户,对系统的并发和处理延时提出了新的交互性挑战。
混合负载, 一套实时分析系统既要支持数据加工处理,又要支持高并发低延时的交互式查询。
融合分析, 随着对数据新的使用方式探索,需要解决结构化与非结构化数据融合场景下的数据检索和分析问题。
阿里巴巴最初通过单节点Oracle进行准实时分析, 后来转到Oracle RAC,随着业务的飞速发展, 集中式的Shared Storage架构需要快速转向分布式,迁移到了Greenplum,但不到一年时间便遇到扩展性和并发的严重瓶颈。为了迎接更大数据集、更高并发、更高可用、更实时的数据应用发展趋势,从2011年开始,在线分析这个技术领域,阿里实时数仓坚定的走上了自研之路。

分析型数据库AnalyticDB
AnalyticDB是阿里巴巴自主研发、唯一经过超大规模以及核心业务验证的PB级实时数据仓库。自2012年第一次在集团发布上线以来,至今已累计迭代发布近百个版本,支撑起集团内的电商、广告、菜鸟、文娱、飞猪等众多在线分析业务。
AnalyticDB于2014年在阿里云开始正式对外输出,支撑行业既包括传统的大中型企业和政府机构,也包括众多的互联网公司,覆盖外部十几个行业。AnalyticDB承接着阿里巴巴广告营销、商家数据服务、菜鸟物流、盒马新零售等众多核心业务的高并发分析处理, 每年双十一上述众多实时分析业务高峰驱动着AnalyticDB不断的架构演进和技术创新。
经过这2年的演进和创新,AnalyticDB已经成长为兼容MySQL 5.x系列、并在此基础上增强支持ANSI SQL:2003的OLAP标准(如window function)的通用实时数仓,跻身为实时数仓领域极具行业竞争力的产品。近期,AnalyticDB成功入选了全球权威IT咨询机构Forrester发布"The Forrester Wave™: CloudData Warehouse,Q4 2018"研究报告的Contenders象限,以及Gartner发布的分析型数据管理平台报告 (Magic Quadrant forData Management Solutions for Analytics),开始进入全球分析市场。AnalyticDB旨在帮客户将整个数据分析和价值化从传统的离线分析带到下一代的在线实时分析模式。
整体架构
经过过去2年的架构演进和功能迭代,AnalyticDB当前整体架构如下图。
AnalyticDB是一个支持多租户的Cloud Native Realtime Data Warehouse平台,每个租户DB的资源隔离,每个DB都有相应独立的模块(图中的Front Node, Compute Node, Buffer Node),在处理实时写入和查询时,这些模块都是资源(CPU, Memory)使用密集型的服务,需要进行DB间隔离保证服务质量。同时从功能完整性和成本优化层面考虑,又有一系列集群级别服务(图中绿色部分模块)。

下面是对每个模块的具体描述:
DB级别服务组件:
Front Node:负责JDBC, ODBC协议层接入,认证和鉴权,SQL解析、重写;分区地址路由和版本管理;同时优化器,执行计划和MPP计算的调度模块也在Front Node。
Compute Node: 包含MPP计算Worker模块,和存储模块(行列混存,元数据,索引)。
Buffer Node: 负责实时写入,并根据实时数据大小触发索引构建和合并。
集群级别服务组件:
Management Console: 管理控制台。
Admin Service:集群管控服务,负责计量计费,实例生命周期管理等商业化功能,同时提供OpenAPI和InnerAPI给Management Console和第三方调用。
Global Meta Service:全局元数据管理,提供每个DB的元数据管理服务,同时提供分区分配,副本管理,版本管理,分布式DDL等能力。
Job Service:作业服务,提供异步作业调度能力。异步作业包括索引构建、扩容、无缝升级、删库删表的后台异步数据清理等。
Connector Service:数据源连接服务,负责外部各数据源(图中右侧部分)接入到AnalyticDB。目前该服务开发基本完成,即将上线提供云服务。




