我的编程空间,编程开发者的网络收藏夹
学习永远不晚

数据仓库之数仓治理

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

数据仓库之数仓治理

统一流程参考模型

为什么要治理

  • 不论是金融行业、通讯行业、地产行业、传统制造业以及农业,其信息化的发展基本都遵循了“诺兰模型”。笔者认为企业信息化大致经历了初期的烟囱式系统建设、中期的集成式系统建设和后期的数据管理式系统建设三个大的阶段,可以说是一个先建设后治理的过程。

数据质量层次不齐

“数据资产化”的概念已经被大多数人理解和接受。不论是企业、政府还是其他组织机构,对于的数据资产的管理越来越重视。然而,数据并不等于资产,也就是说不是所有数据都是数据资产,数据中也有垃圾数据。我们需要治理的是能够为企业创造价值的数据资产,而不是全部数据。

数据交换和共享困难

  • 企业信息化建设初期缺乏整体的信息化规划,系统建设大多都是以业务部门驱动的单体架构系统或套装软件,数据分散在这些架构不统一、开发语言不一致、数据库多样化的系统中,甚至还有大量的数据存放在员工的个人电脑中,导致在企业内部形成了一个个的“信息孤岛”。
  • 这些“孤岛”之间缺乏有效的连接通道,数据不能互联互通,不能按照用户的指令进行有意义的交流,数据的价值不能充分发挥。只有联通数据,消除这些“信息孤岛”,才能实现数据驱动业务、数据驱动管理,才能真正释放数据价值。

打通各个业务线之间的数据建设,很多公司都是统一建设

缺乏有效的管理机制

  • 许多企业都认识到了数据的重要性,并尝试通过生产系统的业务流来控制数据流,但由于缺乏有效的管理机制和某些人为的因素,在数据流转过程中,存在数据维护错误、数据重复、数据不一致、数据不完整的情况,导致了产生了大量的垃圾数据。数据产权不明确,管理职责混乱,管理和使用流程不清晰,是造成数据质量问题的重要因素。

存在数据安全隐患

  • 近年来,随着大数据的发展,诸如此类的数据安全事件多不胜数。数据资产管理上,正在由传统分散式的人工管理向计算机集中化管理方向发展,数据的安全问题愈来愈受到人们的关注。

发现问题严重滞后

影响不清晰

  • 数据变更对下游的影响不清晰,无法确认影响范围

DMBOK的数据治理框架

  • DMBOK是由数据管理协会(DAMA)编撰的关于数据管理的专业书籍,一本DAMA 数据管理辞典。对于企业数据治理体系的建设有一定的指导性

注:DAMA 是数据管理协会的简称,是一个全球性数据管理和业务专业志愿人士组成的非营利协会,致力于数据管理的研究和实践。

数据控制:在数据管理和使用层面之上进行规划、监督和控制。

数据架构管理:定义数据资产管理蓝图。

数据开发:数据的分析、设计、实施、测试、部署、维护等工作。

数据操作管理:提供从数据获取到清除的技术支持。

数据安全管理:确保隐私、保密性和适当的访问权限等。

数据质量管理:定义、监测和提高数据质量。

参考数据和主数据管理:管理数据的黄金版本和副本。

数据仓库和商务智能管理:实现报告和分析。

文件和内容管理:管理数据库以外的数据

元数据管理:元数据的整合、控制以及提供元数据。

数仓治理

  • 节约机器资源(存在很多废弃的逻辑和表,占用了大量的存储资源和计算资源)
  • 节约人力资源(降低了开发和维护的成本)
  • 数据资产沉淀

这个是一个长期的工作,类似于代码重构

治理的分类

粗治理

  • 临时表的处理
  • 无访问信息的表(统一管理元数据和adhoc 以及调度)
  • 无下游依赖的表(得有调度系统)

细治理

专项性质的治理方案,主要针对有人负责的项目

  • 运行时间长的任务
  • 存储空间空间过大的表

数据源治理

据源,顾名思义就是数据的来源,互联网公司的数据来源随着公司的规模扩张而呈递增趋势,同时自不同的业务源,比如埋点采集,客户上报等。

数据源管理

  • 配置了大量的重复数据源

数据源监控

  • 可以监控数据量和数据质量

数据同步

  • 数据同步是指不同数据存储系统之间要进行数据迁移,比如在hdfs上,大多业务和应用因为效率的原因不可以直接从HDFS上获取数据,因此需要将hdfs上汇总后的数据同步至其他的存储系统,比如mysql
  • sqoop可以做到这一点,但是Sqoop太过繁重,而且不管数据量大小,都需要启动MapReduce来执行,而且需要Hadoop集群的每台机器都能访问业务数据库;阿里开源的dataX是一个很好的解决方案。

数仓模型治理

数据划分及命名空间约定

表的命名就涉及到数据域的划分,因为表的命名需要将数据域囊括进去

  • 根据业务划分数据并约定命名,建议针对业务名称结合数据层次约定相关命名的英文缩写,这样可以给后续数据开发过程中,对项目空间、表、字段等命名做为重要参照。
  • 按业务划分:命名时按主要的业务划分,以指导物理模型的划分原则、命名原则及使用的ODS project。例如,按业务定义英文缩写,阿里的“淘宝”英文缩写可以定义为“tb”。
  • 按数据域划分:命名时按照CDM层的数据进行数据域划分,以便有效地对数据进行管理,以及指导数据表的命名。例如,“交易”数据的英文缩写可定义为“trd”。-** 按业务过程划分**:当一个数据域由多个业务过程组成时,命名时可以按业务流程划分。业务过程是从数据分析角度看客观存在的或者抽象的业务行为动作。例如,交易数据域中的“退款”这个业务过程的英文缩写可约定命名为“rfd_ent”。
  • 表命名规范需清晰、一致,表命名需易于下游的理解和使用
  • 下线表的统一命名

常规表的命名

分层前缀[dwd|dws|ads|bi]_业务域_主题域_XXX_粒度

业务域、主题域我们都可以用词根的方式枚举清楚,不断完善,粒度也是同样的,主要的是时间粒度、日、月、年、周等,使用词根定义好简称。

中间表

  • 中间表一般出现在Job中,是Job中临时存储的中间数据的表,中间表的作用域只限于当前Job执行过程中,Job一旦执行完成,该中间表的使命就完成了,是可以删除的(按照自己公司的场景自由选择,以前公司会保留几天的中间表数据,用来排查问题)。

统一指标和字段命名

  • 相同的字段在不同表中的字段名必须相同。
  • 核心指标要进行逻辑收口以及在元数据上进行维护

公共处理逻辑下沉及单一

  • 底层公用的处理逻辑应该在数据调度依赖的底层进行封装与实现,不要让公用的处理逻辑暴露给应用层实现,不要让公共逻辑在多处同时存在。
核心模型与扩展模型分离
  • 建立核心模型与扩展模型体系,核心模型包括的字段支持常用核心的业务,扩展模型包括的字段支持个性化或是少量应用的需要。在必须让核心模型与扩展模型做关联时,不能让扩展字段过度侵入核心模型,以免破坏了核心模型的架构简洁性与可维护性。

层次调用约定

  • 应用层应优先调用公共层数据,必须存在中间层数据,不允许应用层跨过中间层从ODS层重复加工数据。
  • 一方面,中间层团队应该积极了解应用层数据的建设需求,将公用的数据沉淀到公共层,为其他团队提供数据服务
  • 另一方面,应用层团队也应积极配合中间层团队进行持续的数据公共建设的改造。必须避免出现过度的引用ODS层、不合理的数据复制以及子集合冗余。

垃圾的数仓就会出现大量的跨层调用,所以可以通过跨层调用ods 表率来衡量数仓的建设

组合原则

  • 将维度所描述业务相关性强的字段在一个物理维表实现。

相关性强是指经常需要一起查询或进行报表展现、两个维度属性间是否存在天然的关系等。例如,商品基本属性和所属品牌。

数据拆分

  • 对于维度属性过多,涉及源较多的维度表(例如会员表),可以做适当拆分

数据的水平和垂直拆分是按照访问热度分布和数据表非空数据值、零数据值在行列二维空间上分布情况进行划分的。

核心表

  • 拆分为核心表和扩展表。核心表相对字段较少,刷新产出时间较早,优先使用。扩展表字段较多,且可以冗余核心表部分字段,刷新产出时间较晚,适合数据分析人员使用。

数据冗余

  • 数据记录数较大的维度表(例如商品表),可以适当冗余一些子集合,以减少下游扫描数据量

sql 规范

任务注释

  • name: 任务名和表名保持一致
  • description:任务描述,该任务的主要内容
  • target:目标表名,一般一个任务只输出一个目标表
  • author:创建者,和创建日期,
  • modify:内容变更记录,变更人,变更日期,变更原因 ,这个从版本控制中也可以找到,但是这些这里更直观一些。

sql 模板

  • sql 的写法,sql 结构

数据服务治理

报表治理

接口治理

上下游约定

  • 由于数仓的特性和定位,它就需要强依赖上游的业务系统,当然也会有一些下游系统,所以定好上下游的规范,变更的通知机制是非常有必要的。

上游约定

  • 对于数仓来说,最重要的就是数据了,数仓中的数据,主要来源是业务系统,就是公司各种业务数据,所以数仓需要不断的将业务系统数据同步到自身平台来,所以一旦上游业务系统发生变化,数仓也要同步变化,不然,这种同步操作很可能失败。

表结构变更

  • 上游的表结构经常会发生变化,新增字段、修改字段、删除字段(除非真的不用这个字段了,通常会选择标识为弃用)。
  • 表结构最好要维护清楚,表名、字段名、字段类型、字段描述,都整理清楚,不使用的字段要么删除,要么备注好,当业务频繁发生变化或者迭代优化的时候,很容易出现,我写了半天的代码,最后发现表用的不对,字段用的不对,这就尴尬了。
  • 对于这种变化,人工处理的话,就是手动在数仓对应的表中增加、修改字段,然后修改同步任务;这个最好可以搞成自动化的,比如,自动监控上游表结构的变更,变化后,自动去修改数仓中的表结构,自动修改同步任务。

枚举值

  • 业务系统中会有很多的常量,用来标识一些状态或者类型,这种值经常会新增,数仓中会对这些值做些处理,比如转换成维度,会翻译成对应的中文,而实际上这种映射关系,我们是不知道的,只有业务开发才知道,所以最好可以让他们维护一张枚举值表,我们去同步这张表。

create_time & update_time

  • 正常来说,create_time,当这条记录插入后,就不会再变了,但是某种情况下,哈哈,开发同学会去更新它;update_time,当这条记录变化后,这个时间也要变,有的开发同学不去更新它
  • 所以在做增量操作的时候,一定和开发说好这两个字段的定义和使用场景。

is_delete & is_valid

  • 有些场景下,我们需要删除某些数据,一般不会物理删除,会通过一个字段来做逻辑删除,请和开发同学沟通好,使用固定的一个字段,并确认该字段双方的理解是一致的,不然后面又很多坑

下游约定

对于数仓来说,一般的邮件、报表、可视化平台都是下游,所以当我们在数仓中进行某些重构、优化操作的时候,也需要通知他们。

主要就是对数仓模型做好维护,表的使用场景、字段描述等。对上游的要求,自己也要做好,因为自己也是上游。

数仓评价(如何评价一个数据仓库的好坏)

其实对整个数仓而言,我们关注的就三个点,准确性、时效性、稳定性

面试官说这些都是一些原则,比较虚,有没有可衡量的指标?就是一个数据仓库建好了,用这些指标评价它好不好,有不好的要指出来,指导它改进。

指标项

  • 失败的离线任务个数
  • 没有按时完成的任务个数
  • ODS 同步超时的任务个数

数据准确性

对外的报表提供反馈机制,对数据准确性进行跟踪

数检平台的整个平台的数据准确性进行监控(到后期能不能利用机器学习去监控,否则你要定制大量的规则)

时效性

  • 针对数仓的对外提供的数据能否满足失效性的需求
  • 监控数仓任务的运行时长进行优化
  • 能否快速响应业务的数据需求

覆盖性

我们主要指的是对数据域的覆盖情况

建构层次清晰

  • 纵向的数据分层,横向的主题划分,业务过程划分,让整个层次结构清晰易理解

数据准确一致

  • 定义一致性指标、统一命名规范、统一业务含义、统一计算口径,专业的建模团队

性能指标

  • 通过统一的规划设计,选用合理的数据模型,清晰统一的规范,并且考虑数据的使用场景,使得整体性能更好

需要持续不断的业务逻辑重构,是整体的sql 水平上升,提倡优化精神

成本指标

  • 避免烟囱式的重复建设,节约计算、存储、人力成本。

易用性指标

  • 复杂逻辑前置,降低业务方的使用门槛

通过冗余维度和事实表,进行公共计算逻辑下沉,明细与汇总共存等为业务提供灵活性

需求响速度

数仓建设的好,底层设施完善,报表开发人员就可以快速响应业务方的需求,跟上业务方快速试错、快速尝试的节奏

稳定性

稳定性影响了时效性,也就是决定了我们的数据能不能按时产出,衡量稳定性的方式,我们可以使用三个9,或者四个9,甚至是用每天失败的任务数除以总的任务数,我们的主要目标是得出一个相对合理的指标,从而不断的去优化它。

总结

数据治理和代码重构一样,是一个慢活,但是它不能不做,因为数据治理可以提高整个数仓的管理效率,从而更好的服务业务

数据治理需要一些数据去指导,同理它的成果需要从数据方面去衡量,所以在整个过程中需要数据去证明它的价值与意义

数仓本身也需要自身的指标去衡量,我们可以通过数据治理,使得数仓的指标得到改善,这样我们也可以证明数据治理的意义。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

数据仓库之数仓治理

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

数据仓库之数仓治理

数据治理(Data Governance),是一套持续改善管理机制,通常包括了数据架构组织、数据模型、政策及体系制定、技术工具、数据标准、数据质量、影响度分析、作业流程、监督及考核流程等内容。

浅谈数仓的数据治理

绝大数公司建立数仓之初是没有考虑好数据治理怎么做的,因为数据部门刚开始成立,必然要有一些“数据驱动”的成果,而数据治理不能很好的体现这些业绩。所以,都是在业务发展的过程中,逐渐遇到了一些数据问题,才考虑做这件事的。

数据管理趋势:GenAI、数据治理和数据仓库

对GenAI的炒作主导了2023年,GenAI并不是影响2024年数据操作的唯一趋势。随着数据继续成为业务运营、分析、机器学习和AI的核心要素,对改善数据可见性和治理的需求正在增加。

大话数仓,数据仓库(一)

数据仓库,是越来越流行的数据解决方案。传统烟囱式的数据开发模式,显然不能满足日益增长的数据需求,而作为大数据量化方案、解决大数据问题、发掘数据价值的大数据仓库被很多公司采纳使用。

大数据Hadoop之——数据仓库Hive

目录一、概述二、Hive优点与使用场景1)优点2)使用场景三、Hive架构1)服务端组件1、Driver组件2、Metastore组件3、Thrift服务2)客户端组件1、CLI2、Thrift客户端3、WEBGUI3)Metastore详解四、Hive的工作
大数据Hadoop之——数据仓库Hive
2018-04-25

数仓 | 该如何理解数据仓库的建设

在大数据时代,随着机器学习和人工智能的兴起,这个定义需要做一些补充:数据仓库不只是用于构建支持管理决策的商业智能BI的基础, 也是大量的机器学习和人工智能算法的底层基础之一。

数据中台、数据仓库、数据治理与主数据的定位与差异

在数字化时代,大数据已经成为企业运营和决策的重要资产。为了更好地管理和利用这些数据,数据中台、数据仓库、数据治理和主数据管理等概念应运而生。这些概念听起来可能有些抽象,但实际上它们与我们的日常生活息息相关。

数据仓库总结

1.为什么要做数仓建模 数据仓库建模的目标是通过建模的方法更好的组织、存储数据,以便在性能、成本、效率和数据质量之间找到最佳平衡点。 当有了适合业务和基础数据存储环境的模型(良好的数据模型),那么大数据就能获得以下好处: 当有了适合业务和基
2023-08-30

数据管理的四大支柱:揭秘数据中台、数据仓库、数据治理和主数据

数据中台作为数据的“中央厨房”,负责数据的整合和加工;数据仓库作为数据的“图书馆”,负责数据的存储和查询分析;数据治理作为数据的“交警”,确保数据的规范和安全;而主数据作为数据的“身份证”,确保数据的权威性和一致性。这些概念在企业中相互协作

如何让数据湖仓达到数据仓库的性能

数据湖仓库的演变重塑了数据分析,结合了数据湖和数据仓库的优势。尽管它具有变革性的潜力,但诸如高效查询性能等挑战仍然存在。创新解决方案如MPP查询执行、缓存框架和系统级优化可能弥合这些差距,并使企业能够享受湖仓库的所有好处,而无需承受任何缺点

关于数据仓库以及云数据仓库的那些事儿!

几乎所有投资者都看好数据库上云趋势,就在云数据库、云原生数据库呼声高涨的同时,云数仓成为一个新的赛道,开始走入大众眼帘。

企业数据治理实战总结--数仓面试必备

数据治理的范围非常广,贯穿数仓的整个生命周期,从数据产生->数据接入->数据存储->数据处理->数据输出->数据展示,每个阶段都需要质量治理,评价维度包括完整性、规范性、一致性、准确性、唯一性、关联性等。

什么是数据仓库?

数据仓库是一个集中的数据集合,用来支持决策制定。它具备集中化、主题导向、整合性和不变的时间变异特性。数据仓库用于分析、决策制定和商业智能。构建过程包括数据提取、转换、加载、建模和管理。不同类型的数据仓库包括事务型数据仓库、数据仓库和数据湖。好处包括单一事实来源、增强分析、改进决策制定和竞争优势。在构建数据仓库时需要考虑成本、复杂性、数据质量、技术和组织文化等因素。
什么是数据仓库?
2024-04-02

数据挖掘和数据仓库之间的区别

当人们听到“数据挖掘”这个词时,“数据仓库”这个词怎么样?找出数据挖掘和数据仓库之间的确切区别。

数据仓库详细介绍之调度

我们通过配置调度去周期性定时触发执行各种任务或流程(同步、集成、计算、校验、测试等)并监控他们的运行情况,及时、保质、自动化的满足各种数据使用需求。

大话数仓,数据仓库,维度建模方法(二)

前文已经简单介绍了什么是数据仓库,数据仓库事实表、维表等相关概念。在了解这些概念之后,我们要建设符合企业要求,能支持业务使用、运营分析的数据仓库。

亚马逊数据仓库

亚马逊的数据仓库系统通常由数据存储、数据挖掘、数据处理和数据分析等模块组成。数据存储模块存储了实时或历史数据,包括购买历史、订单历史、用户评论、竞争对手情报、宏观经济数据等。数据挖掘模块可以对数据进行分析,包括预测、推荐、营销等,同时还可以进行数据清洗和转换,以便于后续的数据分析。数据处理模块用于将数据存储到数据仓库中,并进行清洗、整合和转换,以便于进行后续的分析。数据分析模块可以根据分析结果做出...
2023-10-27

谈谈数据湖和数据仓库

数据湖是近十年来出现的一个术语,用于描述大数据世界中数据分析管道的重要组成部分 。

数据仓库详细介绍之数据质量理论与经验

数据质量管理是对数据从计划、收集、记录、存储、回收、分析和展示生命周期的每个阶段里可能引发的数据质量问题,进行识别、度量、监控、预警等一系列管理活动,并通过改善和提高组织的管理水平使得数据质量获得进一步提高。

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录