-
ODS尽量保留源系统的数据原貌; -
DWD完成清洗、去重、编码统一和明细加工; -
DWS围绕客户、商品、组织等主题进行汇总; -
ADS最终面向报表和具体分析场景提供数据。
-
ERP凌晨1点完成抽取; -
CRM凌晨1点半同步; -
客户主数据必须在订单宽表之前完成; -
订单宽表跑完以后,才能继续计算区域收入和客户利润。
-
第1条订单来了,处理; -
第2条来了,继续处理; -
第1000万条处理完,第1000万零1条还会继续进来。
-
最近10分钟按照订单产生时间算,还是按照系统收到数据的时间算? -
一条订单因为网络延迟晚了3分钟才到,要不要重新计算? -
任务突然中断,恢复以后应该从哪里继续? -
同一条消息被消费两次,会不会导致销售额重复?
-
不知道哪份数据最新; -
不知道Schema是什么; -
不知道谁修改过; -
不知道历史版本还能不能恢复。
-
part-001.parquet -
part-002.parquet -
part-003.parquet
-
哪些文件属于当前版本;、 -
表结构发生过什么变化; -
哪些数据被新增、修改、删除; -
某个历史时刻的数据究竟是什么状态。
-
业务数据库可能每天批量同步; -
订单和库存变化需要通过CDC快速进入下游; -
日志和文件又有自己的采集路径。
1.数据进入方式
2.计算模型
3.存储形态
4.数据一致性
5.成本结构
-
订单变化可能需要实时处理; -
历史订单每天晚上统一汇总; -
日志数据直接长期保存; -
组织和地区维表每天同步一次就够了。
第一,哪些数据值得实时?
第二,哪些数据值得进入湖仓?
第三,离线和实时怎样保持口径一致?
-
可能是实时链路没有处理退款; -
也可能是迟到数据第二天才补进来; -
或者离线和实时使用了两套不同的业务规则。
第四,链路越来越多以后还能不能管住?
-
有些凌晨跑; -
有些全天运行; -
有些依赖Kafka; -
有些通过API传输。
-
财务、历史经营分析继续走离线数仓; -
订单、库存、支付、设备监控进入实时链路; -
日志、行为数据、IoT明细和模型训练数据进入湖仓。
-
离线数仓解决“如何稳定地批量计算”; -
实时数仓解决“如何持续处理正在发生的数据”; -
湖仓一体解决“越来越多的数据如何低成本保存,并且像数仓一样管理”。
-
有些数据需要秒级响应; -
有些数据更在乎准确和稳定; -
有些数据今天可能没有价值,但半年以后可能会用于模型训练和历史回溯。
-
什么数据值得实时? -
什么数据适合批处理? -
什么数据值得长期保留? -
每增加一层技术复杂度,到底解决了什么业务问题?

