数仓数据治理实践与总结

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,8核32GB 100GB 1个月
简介: 数据仓库数据管理与治理实践经验总结

目的:

通过记录数仓数据治理的实践过程,总结一些通用的思路和方法,供其他同学参考

1、从数据管理开始

因为香港钱包之前一直跟着业务需求快跑,并没有开展数据管理方面的工作,所以在开始数据治理之前,我们先简单开展了一些数据管理的动作:

数据资产分类

从数据产出 到 数据流入 进行自上而下的层次、模块分类:

回流业务侧数据、输出外部业务数据、BI报表数据、人群数据、标签数据

域内中间层、跨域中间层

流量日志、服务端日志、业务ODS数据、维表数据

从系统对接角度 对各个层次数据进行目录划分:

业务系统、BI系统、营销系统、外部业务、内部域

核心资产梳理

从需求等级、风险等级、节点等级 整理核心资产清单,定期补充更新

2、数据治理的思路

数据治理涵盖的范围比较广,不可能一次性全部进行,需要根据实际情况制定治理的阶段性目标,按照紧急程度、作用大小、工作量等执行合适的治理思路:

因为香港钱包整体的业务不是很大,任务数在七八百左右,中间层任务只有几十个,大部分是一些凌乱的应用层报表和圈人数据,所以我们决定先对中间层进行治理,通过对中间层的重新规划整合、信息完善,提高中间层整体的产出时效,降低ods穿透任务的比例,从而整体上提升计算效率,节约计算和存储资源。

要治理中间层,需要先从设计上来对数据的划分进行优化,这里要参考实际业务系统的架构设计、行业通用业务模型信息等,前后可能要修改调整很多次,所以需要做好快速迭代的准备,不要着急上线;

我们参考蚂蚁通用的域划分和业务过程,先进行域内中间层的初版设计,然后开始对应用层数据进行ods穿透扫描,整理出ods穿透任务清单,整体上先过一遍相关的加工逻辑,对ods表和字段有了全局上的认识;

这是一个非常繁琐和耗费时间的工作,要吐槽下平台:没有什么工具可以帮助,点了上千次鼠标,记录下ods表和字段,然后自己分析出高频使用的表和字段,作为中间层治理的需求参考;

接下来就简单了,分分合合,综合考虑上游数据产出时间、计算复杂度、下游使用频次,设计主线表和扩展线表;这里是纯经验的东西,需要根据实际情况慢慢思考总结;不要怕设计的不好,多迭代几次就明白了。

补充下关于是否借道上游中间层的问题,这里有一个比较重要的标准:上游中间层的完成时间是否够早? 因为作为数据中台的数据中间层,设计上是要优先考虑时效性的,如果为了整合过多的信息牺牲了时间,只能说设计上是有问题的;不要过多的等待上游进度,提高自身中间层效率才是最终目标。

3、治理进行时

数据目录重划分:

目录的设计就是数据体系的设计体现,如果你发现你们现在的数据目录混乱无序,说明大家在全局的体系设计这里没有思考,一个好的目录设计,会帮助我们理清思路,快速的查找定位数据和任务,某个层次、某个模块 这些都清晰的展示出来时,数据迭代的效率和质量就会有快速的提升了。

高频字段逻辑收归:

一些高频的函数处理字段、业务逻辑处理字段,尽早的在中间层阶段统一处理,不要为了方便在应用层直接处理;特别是一些UDF会对性能有很大的影响,多次重复计算整体代价会非常大;

复杂视图物理替换:

视图是一种在业务数据库时期的产物,为的是向上屏蔽数据细节,灵活调整,在数仓阶段不建议使用;如果有一些历史遗留的视图,直接替换的代价太大,可以通过先创建新的物理表,然后视图使用简单的查询逻辑替换;

高频查询逻辑替换:

经常会有一些高频使用的单表或者多表查询逻辑,在数据过滤比例较大或者计算成本很大的情况下,可以考虑抽象出中间层做物理表替换,但是非高频或者大比例过滤的场景就没必要处理了,没有降低计算和存储的综合成本。

ODS穿透替换:

这个是最大的一块工作,需要频繁的开发测试发布,所以建议分批多次处理;做好数据对比,快速发布上线;

高耗时任务优化:

需要先对各个层次的任务执行时间制定一个标准,在完成上述治理之后,对耗时较长的任务进行专项优化;因为每个项目的资源坑位都是有限的,大量长时间执行的任务会降低系统的整体吞吐效率;这里参考集团odps优化的文档即可,思路就是降低输入数据量,降低输入次数,大量distinct操作使用groupby替换等。

预聚合数据替换:

常规统计逻辑会有很多的重复代码存在,除了去重的逻辑无法使用预聚合数据,很多常规统计报表是可以使用预聚合数据的;在单用户高频行为的场景下可以做用户粒度的预聚合,评估预聚合后数据数量级上的变化,超过100倍的变化就有预聚合的需要了。

数据质量监控:

中间层资产、核心报表资产等需要对数据质量进行强监控,主要是数据重复、空表等情况的监控,一定要配置DQC强规则,尽可能对粒度不可控的数据资产进行粒度控制治理,预防好数据重复的风险,基本就能解决80%的数据质量问题。

4、数据对比的工具和方法

目前数据平台缺乏比较好用的数据对比工具和方法,特别是在大数据量多字段情况,我们目前采用的方法是较小的结果表,人工查询比对;较大的表使用pai上面的一个数据对比组件进行全量数据比对,但在字段较多数据量较大的情况下还是比较慢,这里暂时没有好的思路;后续的计划是在pai上开发几个特定场景的数据比对组件,看个人工作安排了,需要花时间学习。

5、数据治理的长效机制

周期性的数据资产管理——按月或者季度进行

周期性的高耗时任务治理——按月或者闲时进行

后记:

每次总结的时候经常会忘记做过的很多事情,但记住的都是印象比较深的,希望对大家有一定的参考价值~

相关实践学习
数据库实验室挑战任务-初级任务
本场景介绍如何开通属于你的免费云数据库,在RDS-MySQL中完成对学生成绩的详情查询,执行指定类型SQL。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
17天前
|
存储 数据采集 JavaScript
深入理解数仓开发(一)数据技术篇之日志采集
深入理解数仓开发(一)数据技术篇之日志采集
|
17天前
|
消息中间件 关系型数据库 Kafka
深入理解数仓开发(二)数据技术篇之数据同步
深入理解数仓开发(二)数据技术篇之数据同步
|
19天前
|
分布式计算 DataWorks 关系型数据库
实时数仓 Hologres产品使用合集之如何将MySQL数据初始化到分区表中
实时数仓Hologres的基本概念和特点:1.一站式实时数仓引擎:Hologres集成了数据仓库、在线分析处理(OLAP)和在线服务(Serving)能力于一体,适合实时数据分析和决策支持场景。2.兼容PostgreSQL协议:Hologres支持标准SQL(兼容PostgreSQL协议和语法),使得迁移和集成变得简单。3.海量数据处理能力:能够处理PB级数据的多维分析和即席查询,支持高并发低延迟查询。4.实时性:支持数据的实时写入、实时更新和实时分析,满足对数据新鲜度要求高的业务场景。5.与大数据生态集成:与MaxCompute、Flink、DataWorks等阿里云产品深度融合,提供离在线
|
19天前
|
分布式计算 关系型数据库 数据挖掘
实时数仓 Hologres产品使用合集之误删Hologres一张表的数据,可以支持闪回功能吗
实时数仓Hologres的基本概念和特点:1.一站式实时数仓引擎:Hologres集成了数据仓库、在线分析处理(OLAP)和在线服务(Serving)能力于一体,适合实时数据分析和决策支持场景。2.兼容PostgreSQL协议:Hologres支持标准SQL(兼容PostgreSQL协议和语法),使得迁移和集成变得简单。3.海量数据处理能力:能够处理PB级数据的多维分析和即席查询,支持高并发低延迟查询。4.实时性:支持数据的实时写入、实时更新和实时分析,满足对数据新鲜度要求高的业务场景。5.与大数据生态集成:与MaxCompute、Flink、DataWorks等阿里云产品深度融合,提供离在线
|
1天前
|
机器学习/深度学习 存储 关系型数据库
深入Doris实时数仓:导入本地数据
深入Doris实时数仓:导入本地数据
|
1天前
|
存储 SQL BI
深入解析实时数仓Doris:介绍、架构剖析、应用场景与数据划分细节
深入解析实时数仓Doris:介绍、架构剖析、应用场景与数据划分细节
|
18天前
|
存储 SQL Cloud Native
云原生数据仓库AnalyticDB产品使用合集之热数据存储空间在什么地方查看
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
18天前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库AnalyticDB产品使用合集之是否支持mysql_fdw 和clickhousedb_fdw外部数据包装器
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
114 4
|
18天前
|
监控 Cloud Native 关系型数据库
云原生数据仓库AnalyticDB产品使用合集之如何更新、删除和导入AnalyticDBMySQL数据
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
18天前
|
运维 Cloud Native 关系型数据库
云原生数据仓库AnalyticDB产品使用合集之一次性最多能查询多少条数据
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。