京东零售流量数仓架构
流量简介
京东零售通过多种渠道收集用户行为数据,包括微信、手Q、小程序、iOS/Android H5、智能设备、PC设备及H5页面等。这些数据涵盖了用户的浏览、点击、加购、订单等多种行为。
数据处理架构
京东零售的数据处理架构分为六个层次:
- 数据缓冲层 (BDM):保存源业务系统的快照数据。
- 贴源数据层 (FDM):保存源业务系统的原始数据快照。
- 基础数据层 (GDM):进行数据清洗与整合,实现数据标准化。
- 公共数据层 (ADM):提供统一维度和指标的聚合数据,支持各业务方的数据共享。
- 应用数据层 (APP):根据不同业务需求构建展示层数据。
- 维度层 (DIM):定义具体的分析角度和属性,确保数据的一致性。
离线数仓架构
离线数仓架构包括:
- 基础数据:如基础浏览日志、基础点击日志、访客明细等。
- 公共数据:提供统一维度和指标的聚合数据。
- OLAP数据接入:支持数据查询和分析。
- 实验/分析应用数据:提供多维分析和查询能力。
实时数仓架构
实时数仓架构包括:
- Flink计算:用于实时指标计算。
- 原始数据:从数据库binlog中获取原始日志。
- 应用消息队列:用于数据传输。
- HBase:用于存储OLAP数据。
- 商品信息缓存:用于提高数据访问速度。
京东零售场景数据处理实践
流量挑战
主要挑战包括:
- 数据爆炸式增长:服务器资源开销增加。
- 业务复杂度高:全渠道、多业态带来数据灵活性和扩展性挑战。
- 时效要求高:高时效性的需求导致计算资源紧张。
- 数据处理效率低:复杂业务场景导致数据建设效率低下。
海量数据更新实践
- 刷岗:将历史事实数据按最新维度信息回刷。
- 数据倾斜:数据分布不均导致的任务执行效率差。
数据倾斜治理方案
- 数据湖+OLAP流量刷岗:利用Iceberg特性进行增量数据导入和更新删除。
- 实时数据落地:使用DTS进行实时数据落地,并通过3倍标准差检测异常值。
- 热点key范围圈定:基于特定指标进行异常值检测,并对热key进行聚合。
数据处理架构未来探索
未来探索方向
- 流批一体:通过FlinkSQL和数据湖存储实现流批统一处理,减少开发和维护成本。
- Kappa架构:优化数据处理流程,减少运维成本和数据一致性问题。
以上总结了京东零售在数据处理方面的架构设计和实践,旨在提高数据处理的效率和准确性。