数据仓库ETL工具箱——清洗和规范化
在ETL系统中,数据的抽取和加载只是改变了数据的格式和数据的位置,而真正改变数据价值的恰恰是清洗和规范化的步骤,这对于数据能否用于预期目标起了决定性的作用。清洗和规范化包含三个重要的可提交内容:
- 数据评估报告
- 错误事件事实表
- 审计维
关于数据评估报告主要针对的是数据质量,数据质量应该保证数据的精确性,精确的数据意味着:
- 正确的:数据的值正确
- 明确的:数据值的描述清晰
- 一致的:固定标识,相同值的描述方式相同
- 完整的:数据值不为空,数据总数完整
设计目标
数据质量子系统为了完成初始化的目标需要支持重要用户参与者的需求,这些参与者包括:
- 数据仓库管理员:负责数据仓库运行期间需要制定的日常决策
- 信息驾驶员:负责定义信息策略
- 信息质量负责人:负责检测、修正、和分析数据质量问题
- 维表管理员:负责创建和发布整个组织使用的一个或多个规范化的维表
- 事实表提供者:本地DBA
数据质量系统的目标可以用正确、彻底、快速和透明的优先级来描述:
确保彻底的含义是数据清洗子系统必须保证在检测、纠正和文档化发布给业务环境的信息质量方面的彻底性;确保快速则是整个ETL过程必须能在越来越短的时间里处理不断增长的数据量;确保正确的数据最好是在源系统抽取时进行,若因业务原因无法做到,则在清洗时要矫正存在的问题;确保透明则是要求数据仓库必须暴露出错误。
以上四方面在数据仓库中不可能全部达到最优,必然有一个平衡点,比如速度和完整性如下图:
书中给出了数据质量问题策略 :
从图中我们可以看出,在数据源头处理的数据质量是最高的。
清洗提交报告
数据清洗子系统在整个ETL过程中跟随在抽取步骤之后,而清洗提交的报告主要有三个比较重要的:
1.数据评估结果:数据评估分析应该充分的根据数据源分析,而分析的一句就是元数据资料库的描述方式
√ 结构定义
√ 业务对象
√ 域
√ 数据源
√ 表定义
√ 别名
√ 数据规则
√ 数据值规则
√ 需要处理的问题
2.错误事件表:
3.审计维:取得(描述)每一个事实表记录的特性数据质量的上下文
在设计目标和提交报告后,我们应该确定如何做(过滤器)以及详细的设计和报告如何相互作用提交清洗好的数据到维度数据仓库中。详细的介绍我们将在下一篇进行介绍。