基于阿里云的数据仓库架构设计
文章目录
- 基于阿里云的数据仓库架构设计
- 产品对比
- 离线数仓
- 实时数仓
- 数仓规范
基于阿里云的数据仓库架构设计
产品对比
阿里云产品 | 同类产品 | 简介 |
---|---|---|
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 | OLAP,分析型数据库,基于MPP架构,主要包括MySQL版、PostgreSQL版 |
DataV | Tableau、PowerBI | 可视化数据展示工具,主要做大屏展示 |
QuickBI | Tableau、PowerBI | 相较于DataV更为灵活,主要做数据分析,运营、分析师使用较多 |
离线数仓
- 架构设计图
- 说明
- 原始数据主要来源于两部分
- 日志服务器产生的用户行为数据
- 业务数据库产生的数据
- 当然你还可以导入各种数据,例如网络爬虫的数据、数据市场购买的数据等等
- 数据导入部分
- 日志数据采用Flume进行导入DataHub既可(TailDirSource + MemoryChannel + DataHubSink)
- 业务数据直接利用MaxCompute同步进入平台即可
- 数据仓库建设部分,需要进行多层划分
- ODS(原始数据层)- 最原始的数据,只做最简单的格式检查,以及数据压缩
- DWD(数据明细层)- 数据明细层,开始进行维度建模,需要进行各种ETL清洗、抽取、拆分、降维,得到维度表、事实表。(注:如果需要复杂的即席分析,那么建议该层进入OLAP库)
- DWS(数据汇总层)- 针对明细层的数据做一个轻度聚合,进行各种统计指标的初步汇总,方便后面应用层直接使用
- DWT(数据主题层)- 不同部门或业务的数据作为一个主题(数据量较少时一般不需要分Topic)
- ADS(数据应用层)- 应用层是最终的数据结果,包括最终需要的各类指标,还需要导入到关系型数据库中,方便Web端查询
- 分析用数据库
- 此部分可选用AnalyticDB、RDS或自建关系型库,都可以,主要是为了方便后续系统查询
- 如果数据量不大,分析量小,直接采用RDS或自建关系型库即可
- 如果因业务需求需要进行大量变化的数据分析(OLAP),那么建议使用AnalyticDB
- 数据展示部分
- 根据需求选择阿里的QuickBI或自行定制化设计Web数据展示界面均可
- 原始数据主要来源于两部分
- 注意:Lambda架构的话,还需要加入实时指标统计
实时数仓
- 架构设计图
- 说明
- 原始数据主要来源于两部分
- 日志服务器产生的用户行为数据
- 业务数据库产生的数据
- 数据导入部分
- 日志数据采用Flume进行导入DataHub既可(TailDirSource + MemoryChannel + DataHubSink)
- 业务数据需要利用DTS实时导入到DataHub
- 数据仓库建设部分(使用Kappa架构,传统Lambda架构的两条链路缩减为一条,降低了维护成本,但出问题难以处理)
- 原始数据先进入到DataHub,接着由RealtimeCompute进行清洗、关联,得到实时明细数据
- 实时明细数据进入到DataHub,接着由RealtimeCompute进行轻度、高度聚合,得到实时汇总数据
- 实时汇总数据进入到DataHub(也可以直接进入到分析库中),再导入到AnalyticDB
- 注意:如果需要非常高的实时度,那么建议不分层,直接处理得到轻度、高度聚合结果,进入AnalyticDB
- 分析用数据库(建议同离线部分,更推荐AnalyticDB)
- 此部分库从前面DataHub得到了汇总数据
- 接着可以在内部进行指标统计生成应用层数据,直接展示即可
- 或是交由后续服务应用自行调用分析(适用于各种经常变化的分析情况)
- 注:如果需要复杂的即席分析,那么建议DWD层(明细数据)进入OLAP库(例如AnalyticDB)
- 此部分库从前面DataHub得到了汇总数据
- 数据展示部分
- 此部分同离线数仓,不过通常实时部分都是做的大屏展示,包含各类统计指标,可以直接使用阿里的DataV
- 原始数据主要来源于两部分
数仓规范
数仓分层规范
分层 概念 说明 ODS(Operational Data Store) 原始数据层 原始数据,格式基本不变,只做少量的校验 DWD(Data Warehouse Detail) 数据明细层 维度建模,数据的标准化、补齐、清洗、拆分、降维等 DWS(Data Warehouse Summary) 数据汇总层 数据轻度聚合,提高复用性 DWT(Data Warehouse Topic) 数据主题层 不同部门或业务的数据作为一个主题(数据量较少时一般不需要分Topic) 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 - 举例: dwd_tmall_user_base_info_day
- 举例: dwd_tmall_user_base_info_1d
- 举例: dws_tmall_active_user_7d
数据压缩、存储格式的建议
分层 压缩 格式 说明 ODS LZO parquet、orc、avro 原始数据较大,并且不会被经常使用,较高的压缩率能够很好的节省空间。同时因为数据会被计算框架处理,因此压缩的格式最好是能被切块的,例如LZO。存储格式方面,需根据后续的处理方式选择,通常选择HIVE中最常用的orc。 DWD LZO parquet、orc 明细层通常数据也会较多,因此也需要一个较高的压缩率。并且也会经常被计算框架处理,所以还是需要一个可以切片的压缩格式,例如LZO。由于下一层是汇总层,通常会对该层进行聚合操作,因此采用列式存储能够有效的提高聚合处理的性能,例如orc。 DWS 无 无、parquet、orc 汇总层已经是轻度聚合后的数据,会比前面的层少很多数据,同时考虑ADS层会经常从该层统计指标,因此不压缩是一个较好的选择。存储格式方面可以按普通格式,也可以继续使用列式存储,因为ADS层通常还会对DWS的数据进行聚合。 ADS 无 无 ADS层的数据用于最后界面的指标展示,是最终的数据,数据量较少,因此完全可以不用压缩。格式方面无所谓,如果要强调性能的话,不建议采用列式存储。因为该层通常都是全量读取到关系型库用作展示,几乎不会涉及到聚合操作,并且数据量少不需要减少空间占用,列式存储的优势全无。列式存储反而还需要更多的解析时间。 维度建模 的四个步骤
- 选择业务过程:选择要做什么业务的分析,例如支付业务、物流业务、销售业务等
- 明确粒度:明确本业务每条数据的最小粒度,例如条、天、周、月等
- 确认维度:确认需要从业务的哪些维度进行分析,例如销售区域的维度、商品分类的维度等
- 确认事实:确认对于不同维度的数据需要进行什么样的计算,也就是度量,例如计数、求平均值、求和等等
基于阿里云的数据仓库架构设计相关推荐
- 如何将项目发布到阿里云_尚硅谷基于阿里云搭建数据仓库(实时)项目视频发布...
11月,尚大发布了基于阿里云搭建数据仓库离线项目视频,不少爱学习的小伙伴表示,对实时项目视频翘首以盼,听了大海哥的课,腰不酸了,腿不疼了,一口气从头听到尾还不过瘾,沉迷于学习无法自拔-- 说曹操,大海 ...
- 基于阿里云的基础架构设施保障(二)IAAS云存储
1. 云硬盘 HDD(普通云盘) 特征: 性能一般, IOPS大概在数百左右. 应用场景: 数据不被经常访问或者低I/O负载的应用场景,需要低成本并且有随机读写I/O的应用环境. 混合HDD(高效云盘 ...
- 基于阿里云的基础架构设施保障(四)IAAS进阶实践运用
1. 高可用弹性伸缩实践 背景 弹性伸缩是云服务架构的重要优势,能够很好的解决高并发场景下的性能瓶颈, 同时节省运营成本. 在 IaaS 端,能够弹性伸缩的最实用的产品形态,一般是虚拟机编组.阿里云提 ...
- 基于阿里云数加MaxCompute的企业大数据仓库架构建设思路
摘要: 数加大数据直播系列课程主要以基于阿里云数加MaxCompute的企业大数据仓库架构建设思路为主题分享阿里巴巴的大数据是怎么演变以及怎样利用大数据技术构建企业级大数据平台. 本次分享嘉宾是来自阿 ...
- 基于阿里云 MaxCompute 构建企业云数据仓库CDW
在本文中阿里云资深产品专家云郎分享了基于阿里云 MaxCompute 构建企业云数据仓库CDW的最佳实践建议. 本文内容根据演讲视频以及PPT整理而成. 大家下午好,我是云郎,之前在甲骨文做企业架构师 ...
- 基于阿里云 MaxCompute 构建企业云数据仓库CDW的最佳实践建议
简介: 通过我们背后的指导思想和我们给出的技术解决方案,希望与大家能够一起探索一些新的基于云上的数据仓库构建的最佳实践,从而尽量避免走弯路.这就是我今天想跟大家分享的内容与目的. 在本文中阿里云资深产 ...
- 前沿分享|阿里云数据库解决方案架构师 王宏宇:云原生数据仓库AnalyticDB在零售行业的深度应用和业务价值
简介:本篇内容为2021云栖大会-云原生数据仓库AnalyticDB技术与实践峰会分论坛中,阿里云数据库解决方案架构师 王宏宇关于"云原生数据仓库AnalyticDB在零售行业的深度应用和业 ...
- 基于阿里云IOT Studio和STM32的电机远程监测设计
今天来总结一下用阿里云的IOT Studio做的一个电机远程监控的小系统吧! 说来话长,在去年九月份的时候,我踏入了研究生的行列.我的导师是搞电机方向的,但我本科是测控的,考虑我的基础,导师给我推荐了 ...
- 基于阿里云搭建的适合初创企业的轻量级架构--架构总结
----基于阿里云搭建的适合初创企业的轻量级架构 前言 在项目的初期往往存在很多变数,业务逻辑时刻在变,而且还要保证快速及时,所以,一个灵活多变.快速部署.持续集成并可以适应多种情况的架构便显得尤为重 ...
最新文章
- 关于欧盟的芯片法案,ASML是这样看的!
- Ceph 客户端的 RPM 包升级问题
- ORACLE使用GV_$TEMP_SPACE_HEADER统计临时表空使用情况不准确的问题
- javascript中this
- HDU4532(组合DP)
- linux发指令给网络设备,Linux学习笔记五(网络命令)
- 2022年6月25日PMP考试通关宝典-4
- 宏正自动科技发表新款8/16端口双滑轨LCD KVM多电脑切换器
- 米氏散射多次散射计算程序
- 产品营销|一套方法教你如何策划一场成功的产品营销推广活动
- 互联网思维——简约思维
- 使用Adobe Illustrator将EPS编辑为合适的论文图片
- PHP集运系统源码 国际物流集运转运系统源码
- [论文速度] 同时解决成像时,曝光不足和曝光过度问题:Deep Reciprocating HDR Transformation
- java打印 X XX XXX XXXX
- [解题报告]11689 - Soda Surpler
- cocos3D 教程
- 对话任正非:华为是一家全球化公司
- 如何快速识别提取图片上的文字
- 高并发到底要怎么算才是高并发?
热门文章
- 解决报错ImportError: unique_cuda.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN6caffe28T
- 工控协议(三):CIP (基于EtherNet/IP) 学习笔记
- python winapi_python---win32gui、win32con、win32api:winAPI操作
- FEMTO-ST轴承数据集(IEEE PHM 2012 Challenge)
- PKPM 多层及高层结构CAD软件的高级应用
- http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/
- 域名欺诈之辩:美国最高法院最近的规定会否改变网站运营的方式?
- 9寸触屏 电影中曝光诺基亚首款平板Z500
- 记录一下黑窗打pak的指令
- 关于android整合好视通SDK经验总结(一)