云数据仓库 ADB AnalyticDB MySQL 版技术架构与产品架构 - 湖仓版(3.0)
1. 湖仓版概述
AnalyticDB MySQL 湖仓版(3.0)是基于计算存储分离架构打造的湖仓一体版本,同时支持低成本离线处理和高性能在线分析。它通过统一的数据存储和计算框架,解决了传统数据湖与数据仓库之间的割裂问题,避免了因数据同步导致的一致性和时效性问题。
- 核心特点:
- 支持一份全量数据,满足离线和在线两种场景。
- 提供离线业务与在线业务的计算资源物理隔离能力。
- 支持计算资源和存储资源的定时或自动弹性扩容。
- 集成标准接口的多语言可编程计算引擎 Spark,用于大数据批量处理。
2. 技术架构
湖仓版的技术架构在数仓版的基础上进行了全面升级,覆盖数据全链路的“采存算管用”五大方面。其架构分为以下几个关键层:
(1)数据源
- 数据管道 APS 可以一键低成本接入多种数据源,包括数据库、日志、大数据等。
- 数据源的多样性支持使得湖仓版能够处理结构化、半结构化和非结构化数据。
(2)访问层
- 统一计费单位、元数据、权限、开发语言和传输链路,提升开发效率。
- 访问层通过 Multi-Master 协调节点实现 SQL 解析、优化、数据调度和查询调度。
(3)存储层
- 自研玄武存储引擎:基于共享存储实现分布式、实时、强一致和高可用的存储能力。
- 开源 Hudi 存储引擎:支持湖仓一体化存储,提供更灵活的数据管理能力。
- 冷热分层存储:实时数据存储在 SSD 上,归档数据存储在对象存储中,优化性能和成本。
(4)计算层
- 羲和计算引擎:
- 提供 MPP 和 BSP 两种模式:
- MPP 模式:适合在线分析,流式计算模式,性能优异。
- BSP 模式:通过 DAG 进行任务切分,支持计算数据落盘,适用于离线处理低成本和高吞吐场景。
- 自动切换能力:当查询使用 MPP 模式无法在一定时间内完成时,系统会自动切换为 BSP 模式。
- 开源 Spark 计算引擎:
- 满足更复杂的离线处理和机器学习场景。
- Spark 计算层和存储层互相打通,支持使用计算层资源处理存储层数据。
3. 产品架构
湖仓版的产品架构融合了自研引擎和开源引擎的优势,提供了一体化的数据分析体验。以下是其主要功能模块:
(1)数据采集
- 支持从多种数据源(如 RDS、PolarDB、日志文件等)实时同步数据到湖(Hudi on OSS)或仓(C-Store)。
- 提供可视化配置能力,简化数据集成流程。
(2)数据存储
- 基于湖仓一体架构,只需一份全量数据即可满足离线和在线场景需求。
- 支持冷热数据分层存储,降低存储成本。
(3)数据计算
- 羲和计算引擎和 Spark 计算引擎共同构成计算层的基石:
- 羲和计算引擎:保证在线分析的高性能需求。
- Spark 计算引擎:覆盖广泛的离线处理和高级分析场景。
(4)数据管理
- 提供数据迁移、数据同步、数据管理和数据安全等配套工具。
- 支持物化视图,简化 ETL 流程并提高查询性能。
(5)数据应用
- 支持多语言可编程接口,兼容多种调度工具(如 DMS、DataWorks、Airflow 等)。
- 提供向量检索、全文检索、离线批处理和实时物化视图等功能。
4. 适用场景
湖仓版适用于以下业务场景: - 离线处理:数据清洗、数据规整等预处理操作。 - 多源聚合分析:整合来自不同数据源的数据进行综合分析。 - 宽表开发:构建复杂宽表以支持多维分析。 - 预测洞察:结合机器学习和 AI 技术进行预测分析。
5. 重要特性与优势
- 弹性扩展:支持计算资源和存储资源的独立弹性扩缩容,按需分配资源。
- 资源隔离:离线操作与在线查询资源物理隔离,确保线上负载不受影响。
- 高性价比:通过冷热分层存储和计算存储分离架构,显著降低存储和计算成本。
- 生态兼容:高度兼容 MySQL 和 Spark 生态,支持多种 ETL 工具和调度工具。
6. 注意事项
- 数据一致性:湖仓版通过统一存储和计算框架,避免了数据同步问题,但仍需注意数据源的实时性和完整性。
- 资源规划:建议根据业务负载周期性变化合理规划计算资源的弹性扩缩容策略。
- 高可用性:湖仓版为集群形态,具备分布式能力,但单机版不提供高可用服务,不建议用于生产环境。
以上内容详细描述了 AnalyticDB MySQL 湖仓版(3.0)的技术架构与产品架构,帮助用户全面了解其设计原理和应用场景。