数仓数据治理实践与总结

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 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、数据治理的长效机制

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

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

后记:

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

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
15天前
|
DataWorks 数据挖掘 大数据
方案实践测评 | DataWorks集成Hologres构建一站式高性能的OLAP数据分析
DataWorks在任务开发便捷性、任务运行速度、产品使用门槛等方面都表现出色。在数据处理场景方面仍有改进和扩展的空间,通过引入更多的智能技术、扩展数据源支持、优化任务调度和可视化功能以及提升团队协作效率,DataWorks将能够为企业提供更全面、更高效的数据处理解决方案。
|
2月前
|
SQL 分布式计算 数据挖掘
加速数据分析:阿里云Hologres在实时数仓中的应用实践
【10月更文挑战第9天】随着大数据技术的发展,企业对于数据处理和分析的需求日益增长。特别是在面对海量数据时,如何快速、准确地进行数据查询和分析成为了关键问题。阿里云Hologres作为一个高性能的实时交互式分析服务,为解决这些问题提供了强大的支持。本文将深入探讨Hologres的特点及其在实时数仓中的应用,并通过具体的代码示例来展示其实际应用。
259 0
|
4月前
|
SQL DataWorks 数据库连接
实时数仓 Hologres操作报错合集之如何将物理表数据写入临时表
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
4月前
|
DataWorks 负载均衡 Serverless
实时数仓 Hologres产品使用合集之如何导入大量数据
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
4月前
|
搜索推荐 OLAP 流计算
OneSQL OLAP实践问题之基于 Flink 打造流批一体的数据计算平台如何解决
OneSQL OLAP实践问题之基于 Flink 打造流批一体的数据计算平台如何解决
63 1
|
4月前
|
SQL 存储 OLAP
OneSQL OLAP实践问题之Flink SQL Gateway的功能如何解决
OneSQL OLAP实践问题之Flink SQL Gateway的功能如何解决
45 1
|
4月前
|
SQL 消息中间件 OLAP
OneSQL OLAP实践问题之BIGO ClickHouse实现二阶段提交事务机制如何解决
OneSQL OLAP实践问题之BIGO ClickHouse实现二阶段提交事务机制如何解决
71 1
|
4月前
|
SQL 消息中间件 OLAP
OneSQL OLAP实践问题之实时数仓中数据的分层如何解决
OneSQL OLAP实践问题之实时数仓中数据的分层如何解决
72 1
|
4月前
|
SQL 分布式计算 关系型数据库
实时数仓 Hologres操作报错合集之指定主键更新模式报错主键数据重复,该如何处理
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
4月前
|
SQL 分布式计算 MaxCompute
实时数仓 Hologres产品使用合集之如何在插入数据后获取自增的id值
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
实时数仓 Hologres产品使用合集之如何在插入数据后获取自增的id值