项目架构介绍
技术架构
技术架构描述的是实现数仓用的技术组成
-
数据源存储(业务开发人员选择)
-
业务数据都存储在关系型数据库中(都支持SQL操作)
-
Mysql
- create table 表名(字段 字段类型)
- 订单数据
- 门店数据
- 地区数据
- 商品数据
-
SQL Server
- create table 表名(字段 字段类型)
- 物流数据
- 库存数据
-
oracle
-
postgresql
-
sqllite
-
derby
-
-
数据导入
- sqoop
datax
- flume
- kettle
-
数据仓库
- 分布式存储 hdfs
- 分布式计算 mapreduce + hive
- 资源调度 yarn
CDH+hive
-
数仓数据导出
datax
- sqoop
- kettle
-
存储结果的数据库
- mysql
- Oracle
- SQL server
PostGreSQL
-
数据展示
- FineBI
FineReport
- superset
- powerBI
- database
-
任务调度
DS
(dolphinscheduler)海豚调度- oozie
数仓架构
数仓的分层建模
将数据分开存储在hdfs上
可以将一个复杂的计算简单化,将复杂计算任务进行拆分,每个计算任务的结果单独保存,任务和任务之间有数据依赖,形成一个数据流程
数仓的基本分层
- ODS
- 原始数据
- 作用:保存数据源导入的数据
- DW
- 数据处理
- 清洗转化 DWD
- 宽表制作 join DWS
- 数据处理
- APP/ADS
- 保存计算结果
数仓建模
每个分层中的表设计,用来保存每个分层计算的结果
- ODS层
- 表设计:直接按照数据源的表结构进行设计
- 表设计规范
- 命名规范
- itcast_user
- ods_day_user
- 类型规范
- 整型 bigint
- 浮点型 decimal
- 字符串 string
- 时间 timestamp
- 命名规范
- DW层
- 维度建模
- 将表拆分成 事实表和维度表
- 事实表就是计算的指标内容数据
- 维度表就是计算时的分组维度数据
- 维度建模
- APP层
- 保存最终计算结果
- 按照展示的数据内容进行设计
表设计文档 也叫作数据字典