讲课,备课,开发
业务数据仓库的总结:
一 表实体
订单表:
用户表:
商品分类:
交易流水:
二.表分类
实体表
维度表
事务性事实表
周期性事实表
三.同步策略
全量
新增
新增和变化 create_time 和operate_time ===cannal
范式:
1范式:属性不可切割
2范式:不能存在部分函数依赖
3范式:不能存在传递依赖
四。建模方式
星型模型:外围只有一层维度
雪花:外围有多层维度
五.sqoop 导入导出问题
hive底层存储null 为\N
导出数据时:–input-null-string 和 --input-null-non-string
导入数据时:–null-string 和 --null-non-string
sqoop导入数据的一致性问题:
场景一:sqoop导出mysql有四个任务,其中有两个任务失败
开发报表显示的时候不一致
–staging-table 参数
先把数据导入某个中间(临时)表,在最终导出到目标表
–clear-staging-table |清理临时表
解决数据一致性问题
多个map任务的时候,也可以
采用–staging-table的方式解决数据一致性问题
sqoop底层运行的任务是:只有map阶段,没有Reduce阶段
六 指标计算
sum(if())组合函数 case when 函数
拉链表:1.create_time,operate_time获取新增和变化的数据,如果没有就用cannal
2.用临时拉链表解决hive中数据不能更新的问题
Azkaban: 每天跑多少job? 2006 (1000-2000)
多少指标 100-200 import-ods-dwd-dws-ads-export
多少task:100(5-8) 5000+个
map reduce
Azkaban挂掉:成功或者失败都会发邮件
等级高 重要指标
数据清洗 -- 维度退化
用户维度-商家维度-订单维度
复购率-漏斗分析