分层
ODS(Operational Data Store)、DWD(Detail)、DWS(Summary)、ADS(Application Data Store,DM)
ODL(操作数据层)、BDL(基础数据层)、IDL(接口数据层)、ADL(应用数据层)
DWD分三模块
dwl(f) info 挖掘特征标签 标注使用去向
dwo opt
dwf flow
分隔符
HDFS中列风格符用^A(ascii码0x01)(Hive中默认就是^A),行分隔符用\n
数据同步
每日增量更新阿里方法:每天保存最新的全量版本、保留3-7天的增量快照
根据时间整天同步,防止JOIN出现改JOIN的JOIN不到,不该JOIN的缺JOIN到了
报表
DM层报表前缀
产品部:product
市场部:marketing
商务部:business
电销部:telemarketing
客服部:customer_service
财务部:finance
运营部:operation
通用:common
文档
提供SQL语句,这样可以无偏差与开发同步,并且可以用SQL语句进行校验测试数据准确性。
调度
Azkaban Project 命名 用-分割单词并且标明分层dm/user/action
例如dm-user-action-statistic
测试
从ods层抽样。第一层计算对的结果作为第二层的样本。
Spark Hive 数仓
小文件合并问题
关键点:
0、合并任务要设置spark.sql.adaptive.enabled=true
1、 触发Shuffle的SparkSQL 才能把文件数量减少,如DISTINCT和Group By 都行。
2、由于PARQUET格式。所以不能直接OVERWRITE自己。要中转下。