目录

一 Kimball方法论简介

二 Kimball数据仓库架构概述

1 ODS层

2 EDW层

3 ADS层

三 再思考模型设计与ETL的关系

一 Kimball方法论简介

        Kimball架构通过对数据进行维度和事实的划分、以符合总线架构的模式,按照自底向上的开发流程,为构建灵活、高效、易维护的数据仓库提供了坚实的指导原则。这一方法论的综合应用有助于数据仓库更好地满足不断变化的业务需求,为企业提供可靠的决策支持。

        在Kimball方法论中,维度和事实的划分被视为构建数据仓库的基石。维度代表业务中的关键概念,描述业务中的特征,而事实则是与业务过程相关的度量。通过清晰地定义维度和事实,数据仓库能够更贴近业务需求。这种明确的划分不仅使得数据仓库的结构更加清晰易懂,也使其更容易根据业务变化进行灵活调整。维度和事实的划分以对数据降维建模方法为数据仓库提供了更好的可理解性和可维护性。

        Kimball方法论的另一特点是其与总线架构的密切结合。总线架构通过定义一组标准化的数据集成点(维度),使得数据仓库的各个组件能够协同工作。总线架构的应用使得数据仓库更易于维护和扩展,同时能够通过共享的数据总线实现更紧密的集成。总线架构为数据仓库的高效运作提供了坚实的基础。

        Kimball方法论注重通过自底向上的开发过程来构建数据仓库。这种方法以总线架构作为指导,可以支持需求驱动方式迭代建仓,因此前期投入成本较低,可快速见效,受到市场欢迎。这种架构可以理解以需求作为起点,分解需求数据项到上游业务过程,在完成业务过程建设后反过来再实现需求,同时副产品可以作为公用组件继续为其他需求服务。这种自底向上的方法有助于项目更好地适应不断变化的业务需求,提高整体的成功率。

        数据仓库方法论要依托于合理的数据架构才能发挥其强大作用,笔者在本文为大家展示多年工作经验总结的完整数据架构方案,其通过预定义的多个组件可以应对数据仓库集成和应用中面临的各种典型场景问题。加以合理的项目管理制度,完成一部90分的数仓项目不再是难题。

二 Kimball数据仓库架构概述

        Kimball维度数据仓库按照经典分层理论,可以划分为3层,底层为ODS层,中间DW层,上层应用层。比较全面的数仓架构图如下所示,下面笔者针对架构图中的各个部分分别介绍。

1 ODS层

        ODS(Operational Data Store,原始数据存储)层是数据仓库架构中的一个重要组成部分,主要用于存储来自操作性系统的原始、细节级别的数据,完整的ODS层可以分解成两个部分,一个是接入数据组件,另一个是持久存储组件。ODS数据不对外提供服务。

接入数据:承接数据源数据,数据格式和数据类型与数据源保持不变;简单场景接入数据区域和持久存储可考虑合并处理。

可以增量接入、也可以全量接入数据,根据实际场景制定规范;

持久存储:保留原始数据历史,数据格式和数据类型与数据源保持不变,提供数据修复支持;简单场景接入数据区域和持久存储可考虑合并处理。

具体选择快照归档、拉链归档、增量归档、日志备份可根据实际场景制定规范;

2 EDW层

        EDW层存储通过清洗、转换和聚合后的结果数据,为企业提供一致、可信、高质量的数据集。通过将数据按照业务需求组织成维度模型,并提供多维分析能力,数据仓库层成为决策者获取深层次洞察、制定战略计划以及监控业务绩效的重要基础,推动企业智能决策和业务创新。完整的EDW层包含维度表部分和事实表部分两大组成元素,同时考虑复杂的数据集成及ETL场景,在EDW层要考虑集成层、临时区的设计,其中维度表部分可以细分为字典/码表部分和维表部分,而事实表又可以分为明细层、汇总层和视图层三个组成部分,这些预定义区域共同完成数据仓库的集成与服务工作。

集成层:用来保存复用率高,且没有对应明确业务过程的数据模型,他的主要作用是提前进行一定的ETL操作,降低下游的数据加工复杂度。

设计标准:非必要不设计。 作用域:面向数据工程师内部使用,不对外暴露数据。 DIM区:用来保存维度表模型,维度是数据仓库环境描述业务环境属性的模型,一般对应业务实体。这部分模型对外提供查询服务。

维度表:具备明确业务实体的,具有业务属性的模型。 字典/码表:存储转码表/字典数据。 FACT区:包含明细事实表和汇总事实表,以及未来得及设计且需求紧迫的直接针对ODS的视图实体,FACT数据均可对外提供查询服务。

明细层:包含了对业务过程中每个独立事件或事务的详细信息,捕捉了业务的原始细节。明细表的作用在于提供了对业务操作的全面、详尽的记录,为数据仓库提供了源头数据。 汇总层:是对明细层数据的上卷数据集。 视图层:明细事实表没有设计的数据,但需求依赖的数据,作为事实表妥协方案存在,针对ODS表直接原表做的视图映射,视图表只是临时解决方案,长期规划要把事实表从ETL依赖中剔除掉。 临时区:ETL加工过程中的中间数据,可以加快查出性能,同时数据作用范围具有局限性,不对外提供服务,不允许复用。

3 ADS层

        数据仓库ADS层是数据仓库架构中的重要组成部分,其主要功能在于提供直观、交互式的界面和工具,以便用户能够轻松访问、查询和分析存储在数据仓库中的数据。通过强大的报表生成、多维分析、数据挖掘和可视化工具,ADS层使业务用户能够快速获取关键业务指标、深入挖掘数据关系,从而支持决策制定、发现趋势并实现对企业数据的深入理解。这一层级的功能旨在使数据仓库的信息变得更加可视、可操作,为各级管理人员和业务分析师提供强大的工具,促进数据驱动的智能业务决策。

        ADS层面向场景设计,聚拢场景,数据来自明细层&汇总层&视图层和维度表,设计要考虑场景可扩展性。

三 再思考模型设计与ETL的关系

        在这篇博客中,我们探讨了数据仓库构建过程中两个关键组成部分的重要性和相互关系。数仓架构是一个复杂的主题,无法仅通过一篇博客的形式进行全面的阐述。笔者多年的工作经验中,数仓的理解更看重个体的悟性,一个人心中有一千个哈默雷特,但数仓模型方面的争论多数来自于认识不清晰,从Kimball团队给出的建设方法论来看是比较完善的流程,而且过程比较清晰。但即使这样也一样让人理解不深刻,这里能给各位带来一定的思考就已经达成目的了。

        模型设计是数据仓库架构的基石,它通过清晰定义业务维度和事实,使数据仓库更具可理解性和可维护性。ETL过程则负责将各种源数据进行清洗、转换和整合,确保数据仓库中的信息质量和一致性。数据仓库理解的误区有一部分原因就是有些人把模型看做模型,把ETL看成ETL,彼此独立,这与日常工作分工有密不可分的关系。但笔者更倾向这两块结合一起来看,做模型设计时要多考虑ETL实现难度,做ETL时也要多考虑模型设计合理,这两点是相辅相成,而不是彼此独立。这两者的协同工作,使得数据仓库成为企业智能决策的可靠基石。

精彩文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。