开发者社区> 问答> 正文

flink中Kafka流表关联HBase维度表的计算逻辑是什么呢?

flink中Kafka流表关联HBase维度表的计算逻辑是什么呢?

展开
收起
游客qzzytmszf3zhq 2021-12-07 20:28:06 880 0
1 条回答
写回答
取消 提交回答
  • insert into flink_do_so_master
    select kafka_do_master.*,dim_hbase.info.* from kafka_do_master
    left join dim_hbase
    FOR SYSTEM_TIME AS OF kafka_do_master.proctime
    on reverseKey(kafka_do_master.name) = dim_hbase.rowkey
    

    自己实现了一个Rowkey反转的UDF函数,使用了Flink的Temporal Join语法关联HBase,其中 FOR SYSTEM_TIME AS OF kafka_do_master.proctime 这是Temporal Join固有的Join语法,使用处理时间proctime,如果程序使用的是EventTime事件事件,则需要改成rowtime,并且在kafka流表中指定watermark,还有在测试过程中发现必须在kafka流表中声明rowtime字段,不然会报错。

    Temporal Join 目前必须要在Blink planner中使用,且能够支持Temporal Join的数据库Connector必须要实现LookupableTableSource 接口,LookupableTableSource接口意味着可以用一个或者多个key去查询外部存储,目前JDBC,HBase,Hive支持该特性。

    2021-12-07 20:28:28
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
大数据时代的存储 ——HBase的实践与探索 立即下载
Hbase在滴滴出行的应用场景和最佳实践 立即下载
阿里云HBase主备双活 立即下载