项目总结
一、分层设计
1、分层的意义:数据管理更清晰,运算复用度更高,需求开发度更快捷,便于解耦底层业务(数据)变化!
2、数据仓库中的数据表,往往是分层管理、分层计算的;所谓分层,具体来说,就是将大量的数据表按照一定规则和定义来进行逻辑划分;
1)ADS层: 应用服务层 (结果报表)根据业务人员需求,从dws计算出来报表。
2)DWS层:数仓汇总层 根据主题分析需求,从dwd中轻度聚合后的数据,以orc/parquet文件格式存储。
3)DWD层:数仓明细层 一般是对ODS层的表按主题进行加工和划分;本层中表记录的还是明细数据;对ods层数据做etl处理后的扁平化明细数据,以orc/parquet 文件格式存储。
优缺点
Orc:
Parquet:
4)ODS层:操作数据层(原始数据)对应着外部数据源ETL到数仓体系之后的表。存放flume采集过来的原始日志,以json格式文本文件存储。
ETL:全称为抽取(extract)、转换(transform)、加载(load)。ETL是传统数仓开发中的一个重要环节,指将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层然后进行清洗、转换、集成,最后加载到数仓中,成为联机分析处理、数据挖掘的基础。
ETL是数仓中的重要一环,大部分公司是用一些成熟的ETL软件来实现,不需要手工编程,只需要做一些参数配置等操作就行。比较流行的软件有datastage,informatica,kettle等。
5)DIM层:存