数据仓库ETL工具箱——数据流主线详解
上篇说到ETL的设计需要同时考虑两条主线,一条是数据流主线,一条是规划与设计主线。二者其一是数据为主导,从数据的抽取、清洗、规格化到加载给“最终用户”;其二是以业务为主导,从需求现状、架构、开发实现到测试发布。两者相辅相成缺一不可啊。
下面我们来详细说说数据流主线每一步的含义。
数据流主线
抽取
数据抽取是ETL工具的第一步。企业中存在许多业务系统,包括财务系统、ERP系统、CRM系统、OA系统等。每个系统都有支撑业务的独立数据库,即使为了系统间的交互有些场景共用同一套数据库,大部分也是由不同的实例去管理的,因此这些系统产生的数据(无论是结构化数据还是日志)都需要放到数据仓库,有ODS层从各个业务系统的数据库和日志等文件系统中将数据进行抽取。而抽取的前提是ETL有连接和读取这些业务数据的权限,能够调度系统资源去截取后台的通知信息。当然,抽取时我们根据需求可以选择全量或是增量,所谓增量抽取就是取当天(定义某个时间节点)数据的快照,在设计时要有创建时间和修改时间等标记字段 。
清洗
数据清洗的目的是保证数据仓库中数据的质量,清洗时将null、重复数据等脏数据进行过滤,并且将不同源的相同字段进行统一。包括列属性和设计规范以及数值的规范。此外,在清洗这一层还要进行元数据的管理,元数据是描述数据的数据,也就是说,元数据可以直接的体现数据质量,关于元数据的治理后面我们会详细介绍。此外需要强调的一点是,数据流主线的每一个步骤都应该进行数据集结,所谓集结可以简单的理解为数据落盘,这种操作可以保证数据在下一阶段处理失败时不至于从头来过。不仅是主线的四个步骤需要集结,任何有可能被下游调用的中间结果都应该进行数据集结。
规格化
规格化就是将数据从维度进行整理。比如在维表中要有相应的业务标志,针对不同的业务可能有不同维度的标志,因此数据仓库中的数据有时也不可避免的有冗余。在事实表中,要将数据针对业务度量和绩效的指标进行规格化。数据间的血缘关系要规格化。之后,要讲这些规格化的数据再次进行集结。
加载
书中代言,数据加载就好比将各种食材通过加工处理做成了一盘好菜,最终要把菜端给客户去品尝一样。数据加载则是将处理好的数据交给数据分析部门或者数据展示亦或者回调给业务系统。加载的数据根据不同的维度进行使用,但是须要知道,数据是有生命周期的,即使再健壮的数据终有尘埃落定的一天,因此加载时要考虑时间维度、退化维度以及子维度。数据的加载可以理解为最终数据的使用,关于这一点我们后续会详细介绍。
困得不行了,先睡了,下一篇介绍规划与设计主线。。。。。。
本文地址:https://blog.csdn.net/will001449/article/details/107372435