flink-user-zh mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jark Wu <imj...@gmail.com>
Subject Re: kafka流与hive表join问题
Date Wed, 28 Aug 2019 02:10:46 GMT
Hi,

看了你的问题,主要有两个问题。
1. join hive 维表,没加载完就有 join 输出了。
2. hive 加载完后,就不再做 checkpoint 了。

第一个问题,目前flink 还没有内置支持hive 维表的支持。你可以自己实现一个
udtf 去拉取 hive 数据到内存,udtf 的 eval 方法在加载完 hive 数据之前不返回,这样可以避免没有加载完就有输出的问题。
第二个问题,目前 streaming job 中如果存在 finish vertex,是无法做 checkpoint
的。


Best,
Jark



> 在 2019年8月27日,17:41,like <likegeek@163.com> 写道:
> 
> 我通过hive union kafka数据来解决hive数据不更新的问题,我现在碰到的问题是hive没有加载完就开始有join数据输出,比如我取最大日期,hive读取到26号就输出了26,过一会读取到27号,又会输出27,有没有办法让hive全部加载完再join输出,这样就只会有一个值输出了?
> 
> 
> 在2019年8月27日 17:33,苏 欣<seanlwj@live.com> 写道:
> 我之前试过两种方式,但都有各自的问题:
> 1.注册hiveCatalog然后关联kafka,这种方式会存在hive表数据读取一次后不再更新的问题。
> 2.实现LookupableTableSource方法,通过jdbc方式读取hive维表来关联kafka,但是这种方式可以做到实时加载hive数据,但是效率比较低,尤其是读取数据量较大的hive表时。
> 
> ________________________________
> seanlwj@live.com
> 
> 发件人: like<mailto:likegeek@163.com>
> 发送时间: 2019-08-27 17:15
> 收件人: user-zh@flink.apache.org<mailto:user-zh@flink.apache.org>
> 主题: kafka流与hive表join问题
> 请问一下各位大佬,如何保证先加载完hive表,然后再与流join,我发现在hive还没有加载完就已经有join的结果出来,这样刚开始出来的结果是不准确的,还有一个问题是hive表加载完之后不会再做checkpoint?我目前使用的是1.7.1版本,看了1.9的维表join,blink文档说(必须加上FOR
SYSTEM_TIME AS OF PROCTIME(),表示JOIN维表当前时刻所看到的每条数据),这也就意味着跟我现在一样,没有加载完hive就会join输出了?
> 
> 
> 

Mime
View raw message