湖仓一体电商项目(七):业务需求和分层设计及流程图

业务需求和分层设计及流程图

一、业务需求

根据网站实时登录会员数据以及会员基本信息来实时统计每个省份用户新增数据及每个省份实时用户的pv及uv指标,并在可视化大屏展示。

二、​​​​​​​业务分层设计及流程图

本业务涉及到的数据来自于MySQL业务库用户登录数据表“mc_user_login”、会员基本信息表“mc_member_info”、会员收货地址表“mc_member_address”,我们会将以上业务表数据采集到大数据平台中构建数仓分层,这里我们采数据湖技术Iceberg构建湖仓一体结构进行数据仓库分层,用户登录数据表“mc_user_login”是用户登录登出数据信息,在构建数仓中是一张事实表,会员基本信息表“mc_member_info”、会员收货地址表“mc_member_address”两张表是描述会员基本信息数据,在数仓中是维度数据。在设计湖仓分层时,我们将维度数据存储在HBase中,将事实数据存储在Iceberg数仓分层中。

在前面章节我们通过maxwell将MySQL业务库数据实时采集到Kafka“KAFKA-DB-BUSSINESS-DATA”topic中。针对此topic中数据我们需要通过Flink代码进行处理,Flink代码会将所有业务库中的数据保留一份完整数据到Iceberg ODS层中,针对维度数据会将数据进行过滤存储在Kafka 中,方便后续维度数据处理,另外为了使代码重启后消费数据位置信息得到保证,这里我们将所有事实数据也存储在Kafka中,后续各层也是按照此逻辑执行。

本业务湖仓分层设计如下图所示: