流表在与维表join时,维表没有动态查询

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

流表在与维表join时,维表没有动态查询

雒正林
您好,我在做流式数据处理时,需要用到外部数据(mysql)关联,进行处理,但是发现只是在第一个窗口数据处理时,才会去查mysql,第二个窗口查询时,没有再次查询mysql数据,而是用的第一次查询的mysql数据。
PS:mysql数据是随时更新的,所以希望每个窗口的流式数据都去查一次最新的mysql数据,进行关联处理
下图是打印的log,在第二个窗口数据打印之前,我认为应该先会再去查一次mysql数据并打印,但是发现并没有

 非常感谢查收和回复
 谢谢
Reply | Threaded
Open this post in threaded view
|

Re: 流表在与维表join时,维表没有动态查询

qi luo
你好,目前你是如何实现维表的?

> On Jul 2, 2019, at 3:58 PM, 雒正林 <[hidden email]> wrote:
>
> 您好,我在做流式数据处理时,需要用到外部数据(mysql)关联,进行处理,但是发现只是在第一个窗口数据处理时,才会去查mysql,第二个窗口查询时,没有再次查询mysql数据,而是用的第一次查询的mysql数据。
> PS:mysql数据是随时更新的,所以希望每个窗口的流式数据都去查一次最新的mysql数据,进行关联处理
> 下图是打印的log,在第二个窗口数据打印之前,我认为应该先会再去查一次mysql数据并打印,但是发现并没有
> <PastedGraphic-1.png>
>
>
>  非常感谢查收和回复
>  谢谢

Reply | Threaded
Open this post in threaded view
|

Re: 流表在与维表join时,维表没有动态查询

雒正林
维表是继承 RichSourceFunction 类查的mysql

> 在 2019年7月4日,下午3:22,qi luo <[hidden email]> 写道:
>
> 你好,目前你是如何实现维表的?
>
>> On Jul 2, 2019, at 3:58 PM, 雒正林 <[hidden email]> wrote:
>>
>> 您好,我在做流式数据处理时,需要用到外部数据(mysql)关联,进行处理,但是发现只是在第一个窗口数据处理时,才会去查mysql,第二个窗口查询时,没有再次查询mysql数据,而是用的第一次查询的mysql数据。
>> PS:mysql数据是随时更新的,所以希望每个窗口的流式数据都去查一次最新的mysql数据,进行关联处理
>> 下图是打印的log,在第二个窗口数据打印之前,我认为应该先会再去查一次mysql数据并打印,但是发现并没有
>> <PastedGraphic-1.png>
>>
>>
>> 非常感谢查收和回复
>> 谢谢
>

Reply | Threaded
Open this post in threaded view
|

Re: 流表在与维表join时,维表没有动态查询

qi luo
你好,我理解继承RichSourceFunction实现的mysql,只会读一次mysql(你应该是参考JDBCSinkFunction的实现?),并不能实现维表的功能。在1.9发布后你可以使用LookupableTableSource来实现维表,发布之前可以考虑自己用UDTF来实现。

Qi

> On Jul 4, 2019, at 3:30 PM, 雒正林 <[hidden email]> wrote:
>
> 维表是继承 RichSourceFunction 类查的mysql
>
>> 在 2019年7月4日,下午3:22,qi luo <[hidden email] <mailto:[hidden email]>> 写道:
>>
>> 你好,目前你是如何实现维表的?
>>
>>> On Jul 2, 2019, at 3:58 PM, 雒正林 <[hidden email] <mailto:[hidden email]>> wrote:
>>>
>>> 您好,我在做流式数据处理时,需要用到外部数据(mysql)关联,进行处理,但是发现只是在第一个窗口数据处理时,才会去查mysql,第二个窗口查询时,没有再次查询mysql数据,而是用的第一次查询的mysql数据。
>>> PS:mysql数据是随时更新的,所以希望每个窗口的流式数据都去查一次最新的mysql数据,进行关联处理
>>> 下图是打印的log,在第二个窗口数据打印之前,我认为应该先会再去查一次mysql数据并打印,但是发现并没有
>>> <PastedGraphic-1.png>
>>>
>>>
>>> 非常感谢查收和回复
>>> 谢谢
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: 流表在与维表join时,维表没有动态查询

雒正林
是 source 类,不是JDBCSinkFunction 。我理解UDTF 应该是用来 做数据transformation的,能做到动态的去查询吗?


> 在 2019年7月4日,下午4:14,qi luo <[hidden email]> 写道:
>
> LookupableTableSource

Reply | Threaded
Open this post in threaded view
|

Re: 流表在与维表join时,维表没有动态查询

qi luo
是的,可以参考这个邮件 <http://www.codeha.us/apache-flink-users/msg12421.html>。

> On Jul 4, 2019, at 4:53 PM, 雒正林 <[hidden email]> wrote:
>
> 是 source 类,不是JDBCSinkFunction 。我理解UDTF 应该是用来 做数据transformation的,能做到动态的去查询吗?
>
>
>> 在 2019年7月4日,下午4:14,qi luo <[hidden email] <mailto:[hidden email]>> 写道:
>>
>> LookupableTableSource
>

Reply | Threaded
Open this post in threaded view
|

回复: Re: 流表在与维表join时,维表没有动态查询

sjlsumaitong@163.com
In reply to this post by 雒正林
我目前测试了以中维表join的方式是将维表作为状态广播出去,可以做到动态更新维表,不知道你现在是怎么实现这个问题的
另外我在跟别人讨论的时候,有人借助第三方数据库进行维表join操作,但是我认为借助第三方数据库可能会有瓶颈


 
发件人: [hidden email]
发送时间: 2019-07-04 16:53
收件人: [hidden email]
抄送: [hidden email]
主题: Re: 流表在与维表join时,维表没有动态查询
是 source 类,不是JDBCSinkFunction 。我理解UDTF 应该是用来 做数据transformation的,能做到动态的去查询吗?
 
 
> 在 2019年7月4日,下午4:14,qi luo <[hidden email]> 写道:
>
> LookupableTableSource