共计 4467 个字符,预计需要花费 12 分钟才能阅读完成。
这篇文章主要讲解了“ETL 架构中的子系统有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“ETL 架构中的子系统有哪些”吧!
三个简单的字母,E-T-L,很容易的让大家忽视了 38 个 ETL 子系统在数据仓库建设中的重要性。
抽取 - 转换 - 加载(ETL)系统,或者非正式的称为“后台系统”,在建立整个数据仓库系统中占据了 70% 的工作量和时间。但是这还不足以说明 ETL 系统的复杂性。每个人都理解这三个字母的含义,E,从源系统中将数据取出来;T,对这些数据做处理;L,加载到最终用户访问的表中。
但是当我们问及如何来分解这三大步骤时,很多设计人员都会说,“具体问题,具体分析”。例如,这依赖于不同的数据源;这依赖于数据的特性;这依赖于脚本语言以及可以使用的 ETL 工具的情况;这依赖于员工的技术能力;这还依赖于最终用户使用的查询和报表工具。
“具体情况,具体分析”是一个很危险的事情,因为它很容易称为系统混乱的一个借口。伴随着几千个成功数据仓库项目的经历,我们整理出了一系列的最佳实践。
最近的 18 个月,我们一直在钻研 ETL 的实践和 ETL 的产品。我们标识出了在每一个数据仓库项目的后台部分都会涉及到的 38 个子系统。坏消息是 ETL 系统确实占据了数据仓库项目的大部分资源。好消息是如果你能掌握所有的这些子系统,你就可以很容易的使用你的经历来建立成功的数据仓库系统。
1. 抽取系统(Extract System)
主要功能包括源数据的适配器,推 / 拖 / 搬运数据的工作调度,对源数据的过滤和排序功能,数据格式的转换,迁移到 ETL 环境后的数据暂存功能。
2. 变化数据捕获系统(Change Data Capture System)
主要功能包括对源数据日志文件的阅读功能,源数据日期和序列号的过滤功能,基于 CRC 算法的记录比较功能。
3. 数据概况分析系统(Data Profiling System)
主要功能包括字段属性分析,如参照域的分析;结构分析,如主外键关系分析;数据规则分析;值规则分析等。
4. 数据清洗系统(Data Cleansing System)
主要功能包括一个典型的数据字典驱动的系统,用于解析个体和组织的名称、地址等信息,也用来解析产品、场所等内容;一个“De-duplication”系统,用于鉴别和移除个体和组织信息,也用于产品和场所;一个“Surviving”系统,使用特定的数据合并逻辑,用来保存特定数据源的指定字段,这个特定数据源的数据将成为数据仓库的最终版本;为所有的数据源维护后台数据的对应关系,如自然键和代理键对应关系等内容。
5. 数据一致性处理系统(Data Conformer System)
主要功能包括标识和生成专用的一致性维度属性、一致性事实的度量属性,这两组属性作为数据整合工作的基础,用来支持跨多个数据源的数据集成工作。
6. 审计维度生成系统(Audit Dimension Assembler System)
主要功能是将与事实表相关的元数据内容加载到一张审计维度表中,这样最终用户可以像查看普通维度一样查看与事实表相关的元数据。
7. 数据质量过滤系统(Quality Screen Handler System)
主要功能是在 ETL 的处理过程中自动的检测所有的数据质量问题。检测的结果将进入错误事件处理系统(详见子系统 8)。
8. 错误事件处理系统(Error Event Hander System)
主要功能是全面的记录和报告在 ETL 处理中的所有的错误事件。包括各类错误的分枝处理逻辑,还包括对 ETL 处理中数据质量的实时监控。
9. 代理键生成系统(Surrogate Key Create System)
主要功能是以一种鲁棒的机制生成流水的代理键,生成规则不依赖与任何维度,也不依赖与任何数据库实例,可以支持分布式系统。
10. 缓慢变化维处理系统(Slowly Changing Dimension Processor,SCD)
主要功能是处理维度表的属性随时间变化的情况,处理方式为:类型 1(直接覆盖),类型 2(生成新行),类型 3(添加新列)。
11.迟到维度处理系统(Late Arriving Dimension Handler)
主要功能是当维度数据的变化情况到达数据准备区的时间晚于对应的事实数据时,对维度数据的插入和更新策略。
12.固定层级结构生成系统(Fixed Hierarchy Dimension Builder)
主要功能是对维度表中各类多对一关系的层级结构进行数据有效性检查和维护。
13.可变层级结构生成系统(Variable Hierarchy Dimension Builder)
主要功能是对维度表中所有的层深可变的层级结构的的数据有效性检查和维度,例如组织的层级结构,零件的层级结构等。
14.多值维度桥接表生成系统(Multivalued Dimension Bridge Table Builder)
主要功能是建立和维护桥接表,用来描述维度间的多对多关系。
15.杂项维度生成系统(Junk Dimension Builder)
主要功能是将来自多个数据源的多个低基数的标志字段、状态字段等小型维度建立成一个杂项维度,并对之进行维护。
16.交易粒度事实表加载系统(Transaction grain fact table loader)
主要功能是更新交易粒度事实表,包括对数据、索引和分区的处理。通常是用来处理增量数据,即最新的数据。需要使用代理键替换管道系统(详见子系统 19)。
17.周期快照事实表加载系统(Periodic snapshot grain fact table loader)
主要功能是更新周期快照事实表,包括对数据、索引和分区的处理。包括对当期数据的增量更新策略。需要使用代理键替换管道系统(详见子系统 19)。
18.累计快照事实表加载系统(Accumulating snapshot grain fact table loader)
主要功能是更新累积快照事实表,包括对数据、索引和分区的处理,同时更新维度外键和累积事实。需要使用代理键替换管道系统(详见子系统 19)。
19.代理键替换管道系统(Surrogate key pipeline)
主要功能是使用多线程技术将来到数据仓库数据的自然键替换为代理键。
20.迟到事实处理系统(Late arriving fact handler)
主要功能是处理对迟到事实记录的插入和更新策略。
21. 聚合生成系统(Aggregate builder)
主要功能是创建和维护数据库物理结构,比如说聚合表,用于和 query-rewrite 技术配合使用,以提高数据库查询性能。也包括独立的聚合表和物化表。
22. 多维 cube 生成系统(Multidimensional cube builder)
主要功能是创建和维护星型架构用于装载多维 cube,包括 cube 技术的一些专有工作,比如维度层次结构的维护。
23. 实时分区生成系统(Real-time partition builder)
三种事实表类型(参照子系统 16,17,18)的特殊逻辑在内存中维护着一个“热分区”,它只包含最近一次已经统计到数据仓库表中以后的部分增量数据。
24. 维度管理子系统(Dimension manager system)
顾名思义,它是一个管理维度表的系统。它负责从集中存放维度表和事实表之间的维度一致性,请参照子系统 25。
25. 事实管理系统(Fact table provider system)
对应于维度表管理系统,它是一个事实表的管理系统,它接收从维度管理系统发过来的一致性维度。包括本地键替换,维度版本检查,和聚合表等维护系列工作。
26. 任务调度系统(Job scheduler)
它负责 ETL 任务的安排和启动。它能够等待各种系统条件包括对优先级高的任务完成的依赖。能够针对异常情况发送警告。
27. 工作流程监视系统(Workflow monitor)
它的主要功能是有控制台和报表系统用以监控 ETL 任务被任务调度系统启动以后的执行状况。包括处理的记录条数,错误摘要,和执行的活动。
28. 恢复和重做系统(Recovery and restart system)
当任务执行过程中任务暂停后的重新启动,或者是恢复到任务执行前的状态重新执行。这个子系统严重依赖于备份子系统(参考子系统 38)。
29. 并行处理和管道处理系统(Parallelizing/pipelining system)
它的主要功能是利用多处理器,网格计算资源以提高性能,和实现数据流处理。当不是写硬盘操作或者是执行过程中等待一个条件的发生的 ETL 的情况,是有必要采用并行化和管道化的。
30. 异常放大系统(Problem escalation system)
它的主要功能是负责在一定的条件下提高错误的级别以跟踪和解决问题。包括简单错误日志记录,操作者通知,管理员通知和系统开发人员通知。
31. 版本控制系统(Version control system)
使得元数据的归档能够有坚固的快照功能,可以查阅某一时刻改变前后的状态。能够迁入和迁出所有 ETL 模块和任务。源代码对比功能以快速展示改变前后的不同。
32. 版本移植系统(Version migration system)
让程序可以在开发环境,测试环境,正式环境快速切换。版本控制系统的用于恢复移植的一个接口,也是配置完整数据库连接信息的一个接口。使得代理键生成不依赖于数据库的位置。
33. 体系和依赖分析系统(Lineage and dependency analyzer)
对任何选中的数据组件,都要展示它的物理数据源和所有的后来的转换,不管是选中 ETL 管道中间的组件,或者是选中最终的数据结果,都一样展示。对任何选中的数据组件,都要展示它的下游的数据组件和可能会造成改变的最终数据结果的字段结构,不管是选中 ETL 管道中间的组件,或者是选中数据源,都一样展示。
34. 符合规定报告系统(Compliance reporter)
符合规定的规则以证明系统报告的可信度。证明数据和转换没有改变。展示谁访问过或者改变过任何数据。
35. 安全控制系统(Security system)
在 ETL 的管道中,实现对所有数据和元数据基于角色的权限控制。证明模块的版本没有改变。展示谁做过任何更改。
36. 备份系统(Backup system)
对数据和元数据的备份,用于以后的数据的恢复,重启,安全,和符合规定的要求。
37. 元数据管理系统(Metadata repository manager)
用于捕获和维护所有 ETL 的元数据的系统,包括所有转换逻辑。包括处理元数据,技术元数据和业务逻辑元数据。
38. 项目管理系统(Project management system)
对所有 ETL 任务进行开发的跟踪系统。
感谢各位的阅读,以上就是“ETL 架构中的子系统有哪些”的内容了,经过本文的学习后,相信大家对 ETL 架构中的子系统有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!