数据治理学习笔记(二):在数仓建模过程中,数据治理要怎么做

2024-09-02 21:36

本文主要是介绍数据治理学习笔记(二):在数仓建模过程中,数据治理要怎么做,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

之前写了点数据治理的大概定义,中间的工作中也接触到了一部分的数据治理(大概是)工作,最近在复习数仓建模的一些东西,正好结合做个整理备忘,按我自己理解的方式去看数据治理。

背景

数仓在大多数场景里都有运用到,这里按数仓分层的逻辑来讲点数据治理的东西。

叠甲

可能有些地方我理解有问题,不在数据治理工作中,就当是自己的工作总结吧,有人提出大的问题,我再改改。小问题就凑合看看,当一个参考。

1.ODS/DIM 层

原始数据层: 大部分做的是直接获取到各数据来源的基础数据,获取和存储也有很多方式,不做单独的说明。在大多数情况都是要求保持数据不变动,所以在治理这方面,主要在于数据提供方。后面数据价值的成功发掘必须依托于高质量的数据,所以保证ODS层的数据质量是很有必要的。
维度层: 两个层是最贴近数据来源的地方,就和ODS层放在一起讲,基本是用更符合业务逻辑的维度表去规范ODS层的数据质量。例如:偏移量、非空检查、值域检查、规范性检查、重复性检查、关联关系检查、离群值检查、波动检查等等。需要注意的是,优秀的数据质量模型的设计必须依赖于对业务的深刻理解。
实践中:平时经常遇到本来设计的要有数据,要和其他地方有联系的数据,结果不是缺就是和设计的有出入,这直接导致一个问题,要两方来适配。最有效的方式就是反馈给业务方,整体修改,保证数据提供有效,平时开发能严格按设计来做。理论上虽然是这样,但是在业务方来看“系统能正常跑就行” ==。
好吧,在大数据这边做处理的话,目前来说也只是做些缝缝补补,

  1. 做数据的拉取时,加一层判断,初步做一些数据量变化,和数据合理性的判断。
  2. 数据归集,做一定的逻辑分析,可以更明确的看到业务中的问题,反馈给业务方,保证数据的可用性,这个也算大数据这边的一个功能吧,只能看到啥数据有问题让他们改。
  3. 再有就是数据清洗的一些工作,实在无法修改的,不影响下游的数据,可以做一定的清洗,保证数据质量。

其实能做的还是反馈给上游,保证质量,在抽取之后做的处理都是被动的,也有失原有的数据特性。

2.DWD层

数据仓库明细层(事实层) 用于存储经过清洗和加工的明细数据。作用将ODS层数据根据业务主体要求,将ODS数据抽取到DW层,在保证和ods层颗粒度一致的情况,形成一份最详细的明细数据,同时此层还可以进行一定维度退化的方案。最终优化出数据质量更高的信息,形成一个既定的事实,不允许修改。

  1. 合理的表设计:在明细表以上都是可以按已有逻辑,自己设计的,在这里就可以做一些表层面的治理方法,覆盖最大化,有效数据利用明确化,还有后面的血缘也是要考虑进去。可以根据经验和实际业务来规范表设计方案,毕竟符合自己业务的才是好用的。
  2. 血缘追踪:数据被业务场景使用时,发现数据错误,数据治理团队需要快速定位数据来源,修复数据错误。那么数据治理需要知道业务团队的数据来自于哪个核心库,核心库的数据又来自于哪个数据源头。血缘在每一层都该做好设计,明细层的特性就是不可修改的事实,放在这层讲,其实是贯穿整个数仓层的。在元数据和数据资源清单之间建立关联关系,且团队使用的数据项由元数据组合配置而来,这样,就建立了数据使用场景与数据源头之间的血缘关系。 做好需要和数据资产的整理,在后期修改和使用方面就能省很多时间。

3.DWS层

轻度汇总层:对一些比较常用的数据进行一步汇总,统一粒度,比如数量,金额等,为上层的数据应用提供基础数据。
这里大多是做过度用,承上启下。做好数据清洗,血缘追踪能提高这里的可用性。

  1. 这里的数据治理要按主要业务来规范数据,保证数据可用,做好承上启下。
  2. 对数据敏感,聚合出更有效的数据出来,为业务分析师和决策者提供可直接使用的数据,生成报表和图表,以支持业务决策。

4.ADS层

应用层:单在数据库数仓里,主要是按具体业务逻辑来做的一些贴近接口的数据处理。之前做的数据,转化成可用于业务决策和数据分析的可用数据。然后从中抽离出各种“接口”,提供给不同的数据使用方,最终实现数据价值。

  1. 这层做的基本不算是数据治理,主要是按产品需求来做对应的开发,逻辑缜密感觉算一个吧。保证自己的代码,算法不背锅,前面的数据处理没问题,有啥都可以甩给业务数据提供方。
  2. 还有一个数据权限问题,保证哪些用户对特定数据的访问权。做好数据脱敏,管理规范等。

小结

上面说的很多数据治理都是贯穿整个数仓的,哪一步没有做好,后面回头排查都得再捋一遍,很多时候的开发过程就是一次次试错,没法保证绝对的准确。所以重点还是细心吧,代码一定要逻辑缜密,注释该写就写的详细,第二天就忘的很常见。找资料时还看到一些“合规性管理”,“数据生命周期管理”,“人员治理意识提升”之类的,这些暂时没怎么接触到,感兴趣的可以按这些去搜搜看。

这篇关于数据治理学习笔记(二):在数仓建模过程中,数据治理要怎么做的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1131132

相关文章

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

电脑死机无反应怎么强制重启? 一文读懂方法及注意事项

《电脑死机无反应怎么强制重启?一文读懂方法及注意事项》在日常使用电脑的过程中,我们难免会遇到电脑无法正常启动的情况,本文将详细介绍几种常见的电脑强制开机方法,并探讨在强制开机后应注意的事项,以及如何... 在日常生活和工作中,我们经常会遇到电脑突然无反应的情况,这时候强制重启就成了解决问题的“救命稻草”。那

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2