基于阿里云的数据仓库架构设计
产品对比
阿里云产品 | 同类产品 | 简介 |
---|---|---|
RDS | MySQL、PostgreSQL | 关系型数据库服务,是阿里提供的云数据库,有各种版本,例如MySQL版、PostgreSQL版、SQLServer版等 |
DTS | Canal、DataX、Sqoop、Flume | 数据传输服务,功能丰富,包括集数据迁移、数据订阅、数据实时同步的功能,适用于RDMS、NoSQL、大数据等产品 |
DataHub | Kafka | 数据总线,主要功能和Kafka类似,但是有更多的接口、功能 |
MaxCompute | Hadoop | 通用的离线计算平台(原名ODPS),支持SQL、MapReduce、UDF、Graph、Spark on MaxCompute等计算模型。调度系统是伏羲,存储系统是盘古 |
RealtimeCompute | Spark、Flink | 实时计算框架(以前版本是StreamCompute),底层基于Blink |
DataWorks | - | 可视化的一站式大数据工场,包括数据集成、开发、治理、服务、质量、安全等功能,具体地说就是方便你使用MaxCompute、RealtimeCompute |
AnalyticDB | GreenPlum、LibrA | 分析型数据库,基于MPP架构,主要包括MySQL版、PostgreSQL版 |
DataV | Tableau、PowerBI | 可视化数据展示工具,主要做大屏展示 |
QuickBI | Tableau、PowerBI | 相较于DataV更为灵活,主要做数据分析,运营、分析师使用较多 |
离线数仓
- 架构设计图
- 说明
- 原始数据主要来源于两部分
- 日志服务器产生的用户行为数据
- 业务数据库产生的数据
- 当然你还可以导入各种数据,例如网络爬虫的数据、数据市场购买的数据等等
- 数据导入部分
- 日志数据采用Flume进行导入DataHub既可(TailDirSource + MemoryChannel + DataHubSink)
- 业务数据直接利用MaxCompute同步进入平台即可
- 数据仓库建设部分,需要进行多层划分
- ODS(原始数据层)- 最原始的数据,只做最简单的格式检查,以及数据压缩
- DWD(数据明细层)- 数据明细层,需要进行各种ETL清洗、抽取、拆分、降维,得到实体表、维度表、事实表
- DWS(数据汇总层)- 针对明细层的数据做一个轻度聚合,进行各种统计指标的初步汇总,方便后面应用层直接使用
- ADS(数据应用层)- 应用层是最终的数据结果,包括最终需要的各类指标,还需要导入到关系型数据库中,方便Web端查询
- 分析用数据库
- 此部分可选用AnalyticDB、RDS或自建关系型库,都可以,主要是为了方便后续系统查询
- 如果数据量不大,分析量小,直接采用RDS或自建关系型库即可
- 如果因业务需求需要进行大量变化的数据分析,那么建议使用AnalyticDB
- 数据展示部分
- 根据需求选择阿里的QuickBI或自行定制化设计Web数据展示界面均可
- 原始数据主要来源于两部分
实时数仓
- 架构设计图
- 说明
- 原始数据主要来源于两部分
- 日志服务器产生的用户行为数据
- 业务数据库产生的数据
- 数据导入部分
- 日志数据采用Flume进行导入DataHub既可(TailDirSource + MemoryChannel + DataHubSink)
- 业务数据需要利用DTS实时导入到DataHub
- 数据仓库建设部分(使用Kappa架构,传统Lambda架构的两条链路缩减为一条,降低了维护成本,但出问题难以处理)
- 原始数据先进入到DataHub,接着由RealtimeCompute进行清洗、关联,得到实时明细数据
- 实时明细数据进入到DataHub,接着由RealtimeCompute进行轻度、高度聚合,得到实时汇总数据
- 实时汇总数据进入到DataHub(也可以直接进入到分析库中),再导入到AnalyticDB
- 注意:如果需要非常高的实时度,那么建议不分层,直接处理得到轻度、高度聚合结果,进入AnalyticDB(推荐Lambda架构)
- 分析用数据库(建议同离线部分,更推荐AnalyticDB)
- 此部分库从前面DataHub得到了汇总数据
- 接着可以在内部进行指标统计生成应用层数据,直接展示即可
- 或是交由后续服务应用自行调用分析(适用于各种经常变化的分析情况)
- 此部分库从前面DataHub得到了汇总数据
- 数据展示部分
- 此部分同离线数仓,不过通常实时部分都是做的大屏展示,包含各类统计指标,可以直接使用阿里的DataV
- 原始数据主要来源于两部分
数仓规范
-
数仓分层规范
分层 概念 说明 ODS(Operational Data Store) 原始数据层 原始数据,格式基本不变,只做少量的校验 DWD(Data Warehouse Detail) 数据明细层 数据标准化、补齐、清洗、拆分等 DWS(Data Warehouse Summary) 数据汇总层 数据轻度聚合,提高复用性 ADS(Application Data Store) 数据应用层 最终应用展示指标 -
表命名规范(按下划线拼接)
数仓分层 业务 描述 时间周期/存储方式 dwd tmall user_base_info day dwd tmall user_login_info day dws tmall active_user week ads tmall user_retention_rate week ads tmall user_convert month ads tmall page_view day