1 为什么分层
1.1 数据仓库分层
ODS(Operation Data Detail):原始数据层,直接加载原始日志、数据,不做任何处理。(备份作用)
DWD(Data Warehouse detail):明细数据层,结构和粒度与原始数据层保持一致,对ODS层数据进行清洗(一条,去除空值,脏数据,超过极限范围的数)
DWS(Data Warehouse Service):服务数据层,以DWD为基础,按天进行轻度汇总。(一天,eg:用户一天下单多少次)
DWT(Data Warehouse Topic):数据主题层,以DWT为基础,按主题进行汇总。(累计,eg:用户从注册到现在累计下单多少次。)
ADS(Application Data Store)ADS层,用户层的报表。
1.2 为什么分层
1)将复杂问题简单化
将复杂任务分解成多层,每一层只处理简单的任务,方便定位问题。
2)减少重复开发
中间层数据,提高结果的复用性。
3)隔离原始数据
数据可能有异常或敏感性,如此可将真实数据与统计数据解耦开。
2 数据集市与数据仓库的区别
数据集市:更少的数据、主题、历史数据,只服务于某个局部范围内的工作人员。(部门级)
数据仓库:所有数据,服务于整个企业各个部门。(企业级)
3 数仓命名
3.1 表命名
ODS:ods_表名
DWD:dwd_dim/fact_表名
DWS:dws_表名
DWT:dwt_表名
ADS:ads_表名
临时表:xxx_tmp
用户行为表:以log为后缀。业务表不加后缀。
3.2 脚本命名
数据源_to_目标_db/log.sh
用户行为脚本以log为后缀;业务数据脚本以db为后缀。