一. 数据仓库
1. 场景
-
统一报表、商业智能(BI) 大公司会运行很多系统,各种类型报表不统一,不规范,难以维护。
-
多维分析、建模、数据挖掘
原理:
2. 工具
-
(1)数据抽取
- ETL调度(kettle、xxl-job …)
-
(2) 数据存储
-
Hadoop (数仓工具:Hive)
-
(3)数据访问
-
开放平台
-
原来是基于hive,为什么要支持mysql
- hive主要是分析,数据挖掘等,支持mysql主要是线上系统使用
-
-
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:湖向仓怎么走)