没长正的技术专栏 勤动手、多思考

数据仓库

2020-02-01

阅读:

2020-06-19

一. 数据仓库

1. 场景

  • 统一报表、商业智能(BI) 大公司会运行很多系统,各种类型报表不统一,不规范,难以维护。

  • 多维分析、建模、数据挖掘

原理:

2. 工具

  • (1)数据抽取

    • ETL调度(kettle、xxl-job …)
  • (2) 数据存储

  • Hadoop (数仓工具:Hive)

  • (3)数据访问

    • 开放平台

      • 原来是基于hive,为什么要支持mysql

      • hive主要是分析,数据挖掘等,支持mysql主要是线上系统使用

        hive与mysql区别

        presto

    • BI

  • (4)元数据管理

  • 自研
  • apache atlas

  • (5)数据治理

  • 数据标准、元数据、数据模型、数据分布、数据存储、数据交换、数据声明周期管理、数据质量、数据安全以及数据共享服务。

3. 数仓分层

3.1 数据源(SOURCE)

	包括各个数据源(mysql、oracle、nosql、file ...)

3.2 贴源层(ODS: OperationalData Store)

和数据源格式一样

3.3 明细层(DWD: Data Warehouse Detail)

为DW层提供来源明细数据;公共层中数据明细层,分域、分主题、维度建模,
从ODS按域清洗、加工

3.4 数据汇总层(DWB/S: Data Warehouse Base/Service)

为DW、ADS提供细颗粒读数据(单个指标或DWB合成DWS);公共层中轻度汇总层,
分域、分主题、维度建模,从ODS按域清洗、加工

3.5 数据集市(DM: Data Market)

维度建模 宽表、数据挖掘、自定义查询,应用集市

3.6 数据应用层(ADS:Application Data Service)

对外提供结果、汇总数据

备注: 还可分为 DIM (维度层)、TEM(临时层:中间转换时需要)

3.7 主题域/主题/实体/维度

主题域包含多个主题,一个主题包含多个实体,一个实体可能包含维度

4. 模型的设计思路

构建数据仓库有两种方式:自上而下(偏数据驱动)、自下而上(业务驱动)

5. 数据仓库建模方法

ER模型维度模型Data Vault模型Anchor模型。用的较多的是维度模型ER模型

  • 维度建模
    • 星座模型

      :基于多张事实表共享维度表

二、数据采集

1. CDC技术

CDC 的本质——通过捕获数据操作语言 (DML) 更改(插入/更新/删除)的事实和更改的数据本身来为用户表提供历史更改信息。CDC 以可以在上游数据系统中复制的形式提取它们。用行话来说,这样的数据也被称为“delta”。

增量采集:Canal、接口、MQ等方式

三、湖仓一体化

兼顾数据湖的灵活性和数据仓库的成长性/事务性

  • 通常有数据仓库和数据湖两种设计取向:
    • 第一种,在数据仓库上支持数据湖,一般方案是在数仓中建外部表。(阿里云的MaxCompute)
    • 第二种,在数据湖中支持数仓能力,一般方案是做一些开发,比如多版本并发控制、自适应schema、提供文件级事务等等。(Databricks:湖向仓怎么走)

参考资料

大数据

数仓分层

主题域/主题/实体关系

数仓和普通数据库区别

【Hive】深入理解Hive的优缺点以及架构原理

常见开源OLAP技术架构对比

阿里、字节、Databricks的湖仓一体落地方案详解


Similar Posts

欢迎拍砖,多多交流,转载请注明出处:[没长正的技术专栏](http://blog.meizhangzheng.com) 如涉及侵权问题,请发送邮件到xsj34567@163.com,如情况属实本人将会尽快删除。


上一篇 FTP

下一篇 ETL

Comments