• 数据仓库逻辑分层


    OLTP 与 OLAP
    OLTP 联机事务处理
    OLTP是传统关系型数据库的主要应用,主要用于日常事物、交易系统的处理
    1、数据量存储相对来说不大
    2、实时性要求高,需要支持事物
    3、数据一般存储在关系型数据库 (oracle 或 mysql 、postgresql中)
    OLAP 联机分析处理
    OLAP是数据仓库的主要应用,支持复杂的分析查询,侧重决策支持
    1、实时性要求不是很高, ETL 一般都是 T+1 的数据;
    2、数据量很大;
    3、主要用于分析决策;

    清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解

    脏数据清洗:屏蔽原始数据的异常

    屏蔽业务影响:不必改一次业务就需要重新接入数据

    数据血缘追踪:简单来讲可以这样理解,我们最终给业务呈现的是能直接使用的一张业务表,但是它的来源有很多,如果有一张
    来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。

    减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。

    把复杂问题简单化。将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。便于维护数据
    的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。

    逻辑分层

    数仓分层,一般按ods->dw->dm整体架构。不同的企业,不同的业务场景,有衍生出不同的分层架构模式。例如经典四层架构:ods->dwd->dws-ads,bdl->fdl->gdl->adl等。

     

    分层依据

    分层的依据在ods、da、dim层一般无歧义,关键在dw层的分层依据,也是数据仓库分层建设的核心。

    每层划分的依据如下:

    • ods层:存放原始数据信息,原则上不进行任何的数据清晰,和数据源保持一致。
    • dw层:数据公共层,是数仓建设的重点,一般是日志子表和一些宽表,主要完成数据的清洗、转换等
    • dm层:数据集市层,是最直接体系数据资产的层,一般是汇总数据,现在已经逐步弱化,面向挖掘、数据分析等
    • da层:数据应用层,高度汇总数据,主要用于报表展示。

    技术选型,传统数仓一般以Oracle、greenplum、teradata 等,互联网数仓一般以Hadoop生态圈为主,离线以Hive为核心,准实时以spark为核心,实时以flink为核心构建。

    数据调研

    业务调研,业务侧对齐,遵循关系型数据库建模方式,从概念模型(cdm)->逻辑模型(ldm)->物理模型(pdm)建模套路,是一个从抽象到具体的一个不断细化完善的分析,设计和开发的过程。

     

    需求调研,现有BI报表需求,统计需求,用户画像,推荐系统等数据应用。

    数据库调研,了解数据库表数据结构、数据形态,全局把握业务流程数据流向,做到真正业务流程和数据结构结合。

    04. 主题域划分

    业务高度抽象,可先确定企业业务bu模块,然后可根据概念模型(cdm)进行一级主题划分,确定一致性维度和事实流程,构建总线矩阵。

    图片来源 Kimball《The Data Warehouse Toolkits,- 3rd Edition》

    按照kimball大师经典建模四步骤:选择业务过程->声明粒度->确定维度->确定事实 进行维度建模。

    数仓规范

    构建企业级数据仓库,必不可少的就是制定数仓规范。包括 命名规范,流程规范,设计规范,开发规范 等。无规矩不成方圆,建设数仓也是这样。

    开发规范 示例:

     

     离线数据仓库技术组件

  • 相关阅读:
    随笔导航
    利用CORDIC算法计算三角函数
    粒子群算法求一元函数最值问题
    基于粒子群算法的分组背包MATLAB实现
    遇到过的MATLAB函数小总结
    FFT原理及C++与MATLAB混合编程详细介绍
    DPSK通信系统的FPGA实现
    矩阵QR分解的MATLAB与C++实现
    矩阵LU分解的MATLAB与C++实现
    两种频率调制(FM)方法的MATLAB实现
  • 原文地址:https://www.cnblogs.com/songyuejie/p/12731922.html
Copyright © 2020-2023  润新知