Flink实时销售宽表构建

背景:目前在一家电商公司,对报表的实时性要求很高。实时性要求较高的场景,比如:

1.集团各个分公司对商品配送过程中生成的各个单据的对账实时性很高。

2.采购部依赖商品的平均进价对客户进行报价,所以对商品的进价数据的实时性也有较高的要求。

之前数据量小,都是直接在后台多表join取数,随着数据量越来越大,用户查询越来越慢。为此,我们使用阿里的Flink提前进行数据预计算,然后将数据打平到一张宽表里。这样,后台查询的时候只需要查这一张宽表就可以拿到所有需要的字段了。构建宽表的好处有:

1.减少了在后台的join操作和跨列计算,用户查询响应更快 2.数据做数据库(比如数据从ADB迁移到了hologres,join的工作提前在flink完成了,hologres查宽表就行)迁移更容易

下面是我们宽表构建的简化流程:

        1.梳理目前所有销售报表用到的表和字段

        2.监听 销售单头表和 明细表(事实表)数据变化的id,发送到kafka(作用是消峰填谷)

        3.Flink消费datahub的id:

                1)将单头表和明细表的id分别打上不同的标识

                2)根据标识区分不同类型的id,然后用这些id查数据库 取到对应的 明细id(都转换为delivery_dtl_id),去重

                3)根据明细id多线程查单头表和明细表的数据。然后拿到和各维表关联的字段集合

                4)采用多线程的方式,根据3)中的维

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值