Flink cdc+ doris 大宽表实践~

还没整理好,别慌。

一,业务问题:

多个表关联join(涉及时间维度跨度很长),几乎等同于全量关联,这个时候flink sql join没法做,因为state会无线增大,然后OOM。

二,解决方案 :

使用doris去做大宽表。

方案1,数据写入ods层,然后sql语句关联定时写入dws层,类似离线批处理。

这种就是替代hive离线计算的方案。

方案2,数据写入大宽表,利用doris特性。



https://cloud.baidu.com/doc/DORIS/s/3kmealtpc

1)创建doris大宽表 -Agg模型

可以尝试自己去创建一个表,相同的主键数据  后者字段值会覆盖前者,而不是想unqi模型一样是相同主键 整行数据替换。

2) 插入对应的数据

id是主键

 A流插入  id  a 

B流插入   id  b

C流插入  id  c

3)存在的问题,以及怎么解决

1,插入的流数据比如有相同的主键,如果是维表 要在插入之前同步为相同的主键字段

2,联合主键场景

三,flink cdc 写入doris

这个很简单,doris 目前支持flink sql 或者 flink cdc写入 直接调用stream load方式写入doris,官方有包。

四,不是很明白的地方。

主要是解决维表 生成主键的问题。

要先导入明细数据,然后再接入维表数据,维表数据去补全数据,然后再写入,在这个过程中肯定有个延迟。

我画了个图方便理解:

 

五,补充

Tidb 可以用hbase类似的代替,我也没用过tidb,成本太高。


版权声明:本文为qq_31866793原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。