flink sql ddl能设置ttl吗?

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

flink sql ddl能设置ttl吗?

Q
各位好,

我有一个需求是要维表关联mysql数据,再upsert写入mysql,就是个丰富字段的简单需求。
 
现在有两个问题:
1.为了实现upsert插入,我试下来必须使用groupby指定key,但是select内又有很多非聚合项,所以没办法在groupby后面加上所有那些非聚合项,否则通不过calcite validation。

2.现在遇到了一个问题,跑一段时间会抱full GC,我估计是因为groupby导致的状态不清理。
请问flink sql ddl能通过类似SET 语句来设定ttl吗,搜了官方文档只有提到table api里有setIdelStateRententionTime。

感谢各位的指教。

发自我的iPhone
Reply | Threaded
Open this post in threaded view
|

Re: flink sql ddl能设置ttl吗?

Benchao Li
Hi,

1. 如果我没记错的话,mysql的写入应该就是replace的方式写入的,应该不需要group by来实现upsert写入吧,除非你想要的是聚合结果。
2. 这个看你用的是哪种方式,如果是table api,可以直接用你说的这种方式来设置;如果用的是sql-client,可以直接在配置文件里面配置。

xu yihan <[hidden email]> 于2020年6月4日周四 下午6:07写道:

> 各位好,
>
> 我有一个需求是要维表关联mysql数据,再upsert写入mysql,就是个丰富字段的简单需求。
>
> 现在有两个问题:
> 1.为了实现upsert插入,我试下来必须使用groupby指定key,但是select内又有很多非聚合项,所以没办法在groupby后面加上所有那些非聚合项,否则通不过calcite
> validation。
>
> 2.现在遇到了一个问题,跑一段时间会抱full GC,我估计是因为groupby导致的状态不清理。
> 请问flink sql ddl能通过类似SET 语句来设定ttl吗,搜了官方文档只有提到table
> api里有setIdelStateRententionTime。
>
> 感谢各位的指教。
>
> 发自我的iPhone



--

Best,
Benchao Li
Reply | Threaded
Open this post in threaded view
|

Re: flink sql ddl能设置ttl吗?

Leonard Xu
In reply to this post by Q
Hi,

第一个问题,即将发布的1.11可以设定primary key, 不用再推断primary key,除pk外的字段也没有限制,当前你可以加firt_value,last_value等函数取非group by的其他字段, jdbc的文档在撰写中了[1]
第二个问题,目前应该还不支持通过SET在DDL里设置ttl的.

Best,
Leonard Xu
[1] https://issues.apache.org/jira/browse/FLINK-17829 <https://issues.apache.org/jira/browse/FLINK-17829>
[2] https://ci.apache.org/projects/flink/flink-docs-stable/dev/table/streaming/query_configuration.html <https://ci.apache.org/projects/flink/flink-docs-stable/dev/table/streaming/query_configuration.html>



> 在 2020年6月4日,09:11,xu yihan <[hidden email]> 写道:
>
> 各位好,
>
> 我有一个需求是要维表关联mysql数据,再upsert写入mysql,就是个丰富字段的简单需求。
>
> 现在有两个问题:
> 1.为了实现upsert插入,我试下来必须使用groupby指定key,但是select内又有很多非聚合项,所以没办法在groupby后面加上所有那些非聚合项,否则通不过calcite validation。
>
> 2.现在遇到了一个问题,跑一段时间会抱full GC,我估计是因为groupby导致的状态不清理。
> 请问flink sql ddl能通过类似SET 语句来设定ttl吗,搜了官方文档只有提到table api里有setIdelStateRententionTime。
>
> 感谢各位的指教。
>

Reply | Threaded
Open this post in threaded view
|

Re: flink sql ddl能设置ttl吗?

Leonard Xu
更新下,第二个问题,Flink sql-client中支持SET配置 TTL(ms)的:

Flink SQL> set execution.min-idle-state-retention = 20000;
[INFO] Session property has been set.

祝好,
Leonard Xu

> 在 2020年6月5日,13:39,Leonard Xu <[hidden email]> 写道:
>
> Hi,
>
> 第一个问题,即将发布的1.11可以设定primary key, 不用再推断primary key,除pk外的字段也没有限制,当前你可以加firt_value,last_value等函数取非group by的其他字段, jdbc的文档在撰写中了[1]
> 第二个问题,目前应该还不支持通过SET在DDL里设置ttl的.
>
> Best,
> Leonard Xu
> [1] https://issues.apache.org/jira/browse/FLINK-17829 <https://issues.apache.org/jira/browse/FLINK-17829>
> [2] https://ci.apache.org/projects/flink/flink-docs-stable/dev/table/streaming/query_configuration.html <https://ci.apache.org/projects/flink/flink-docs-stable/dev/table/streaming/query_configuration.html>
>
>
>
>> 在 2020年6月4日,09:11,xu yihan <[hidden email] <mailto:[hidden email]>> 写道:
>>
>> 各位好,
>>
>> 我有一个需求是要维表关联mysql数据,再upsert写入mysql,就是个丰富字段的简单需求。
>>
>> 现在有两个问题:
>> 1.为了实现upsert插入,我试下来必须使用groupby指定key,但是select内又有很多非聚合项,所以没办法在groupby后面加上所有那些非聚合项,否则通不过calcite validation。
>>
>> 2.现在遇到了一个问题,跑一段时间会抱full GC,我估计是因为groupby导致的状态不清理。
>> 请问flink sql ddl能通过类似SET 语句来设定ttl吗,搜了官方文档只有提到table api里有setIdelStateRententionTime。
>>
>> 感谢各位的指教。
>>
>