代码拉取完成,页面将自动刷新
电商平台实时数仓建设
电商业务数据库和用户日志,实际数据由程序模拟生成。
使用Maxwell同步业务数据,以及Flume采集日志。
Maxwell、Flume写入数据到kafka的对应主题,分别为Topic_db、Topic_log。
Flink根据Flink CDC从数据库获得的配置信息表,从Topic_db主题中筛选出与维度表相关的业务表数据,随后将其写入到Hbase。得益于Flink CDC的实时同步,程序能检测到配置表的变化,实现动态的筛选维度表,从而避免服务的重启。另外,为了加快DIM层的查询,项目使用Redis作为旁路缓存。
Flink通过将业务主题的数据映射为Table的方式来消费上游数据,使用FlinkSQL筛选并关联表,同时对于一些固定不变的维度,采用维度退化的方式,提前关联事实表。对于日志主题,使用Stream API对日志数据做处理。最后写入到Kafka对应事实表的主题。
使用FlinkSQL对DWD层事实表进行开窗聚合,同时关联DIM层维度表。对于独立访客、新老用户判断等需求,使用Stream状态编程实现。最后写入到Doris,为应用层提供快速的查询响应。
以下是本电商项目的数据域和业务过程的划分:
数据域 | 业务过程 |
---|---|
交易域 | 加购、下单、取消订单、支付成功、退单、退款成功 |
流量域 | 页面浏览、启动应用、动作、曝光、错误 |
用户域 | 注册、登录 |
互动域 | 收藏、评价 |
工具域 | 优惠券领取、优惠券使用(下单)、优惠券使用(支付) |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。