一、背景
企业运营产生的业务数据蕴含着巨大的商业价值,是企业宝贵的数据资源。快速、准确、最大化的利用已存在的数据资源,可以辅助领导层做出商业决策、优化公司业务持续发展形成闭环进而提高企业的核心竞争力。
当企业数据规模较小、业务较单一或者为快速相应业务需求的情况下,经过对业务数据的抽取、清洗、规范化等简单处理后,往往直接用于数据开发。此种方式为烟囱开发模式,虽然可以较快得到开发结果,但是弊端也非常明显:
- 数据层面:
- 烟囱林立没有共同根基,不能保证数据的一致性,进而影响准确性;
- 数据无沉淀难复用,进而导致重复开发的情况非常严重;
- 数据难以服务化;
- 管理层面:
- 数据质量难以保证;
- 管理混乱,如果业务数据有变动,影响范围难以评估,改动更是耗时费力;
- 很难组织元数据管理,尤其是血缘关系,很难理清。
随着业务数据的爆炸式增长,烟囱开发模式的弊端越来越明显,数据开发工作随之遇到瓶颈,工作难以开展。
数仓建设是突破烟囱开发模式瓶颈的灵丹妙药,关系模型和维度模型是数仓建设的两种方法论,其中维度模型由于相对能快速上手、快速交付且较适用于OLAP系统(关系模型适用于OLTP系统),在业内获得广泛使用。维度模型应用的典型代表是阿里的OneData体系。
中通大数据初创时期,在快速响应业务需求的同时,着手建设数据仓库。结合对OneData的理解和自身特点,我们形成了一套符合自身数据特色的实践体系。
二、经典数据仓库方法论回顾
经典的数仓建设方法有关系模型(Inmon模型)和维度模型(Kimball模型)。
1.关系模型以数据源为导向,采用自上而下的方法,即从数据源到数据仓库再到数据集市的一种瀑布流开发方法。具有以下特点:
1)以第三范式(3NF)为基础,数据冗余程度低;
2) 物理表数量多,这些表可以较为灵活地被应用,功能性较强;
3) DW层数据并不直接被用来做BI分析,而是先在DW层之上建立数据集市,数据集市来满足BI分析需求;
4) 需要全面了解公司业务和数据,实施周期较长
2 维度模型以业务需求为导向,采用自底向上的方法,即从数据集市到数据仓库再到数据源的一种敏捷开发方法。具有以下特点:
1)表分为维度表和事实表两种,用星型模型、雪花模型或星座模型等形式进行组织;
2) 物理表的数据量较关系模型少很多;
3) DW层事实表往往含有一些固化的汇总数据,其上的数据集市建设较关系模型要简便;
4) 从业务需求角度出发,适合快速迭代。
结合上述两种建模方式各自的特点,业内偏向于维度模型构建数据仓库,其中以阿里Onedata体系最具代表性。OneData以维度建模为核心理念,同时对其进行了一定的升级和扩展,包括:一致性的指标定义体系、模型设计方法体系以及配套工具。
三、数仓建设过程
1 建模方法论:
数仓建设过程中,总结的经验:
- 建模方法论:
数仓建设过程中,总结的经验:
1> 高内聚低耦合;
2> 公共逻辑要下沉以及统一口径统一出处确保一致性;
3> 合理控制模型表数量;
4>合理使用拉链表,拉链较耗性能;
5>数据质量监控与建模相辅相成;
6>变化维表尽可能的准确反映历史(维表拉链化或全量快照分区化);
7> 模型任务要保证时效性。
- 数仓建设步骤:
数仓建设中,我们遵循下