You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by xu yihan <my...@126.com> on 2020/06/04 01:11:20 UTC
flink sql ddl能设置ttl吗?
各位好,
我有一个需求是要维表关联mysql数据,再upsert写入mysql,就是个丰富字段的简单需求。
现在有两个问题:
1.为了实现upsert插入,我试下来必须使用groupby指定key,但是select内又有很多非聚合项,所以没办法在groupby后面加上所有那些非聚合项,否则通不过calcite validation。
2.现在遇到了一个问题,跑一段时间会抱full GC,我估计是因为groupby导致的状态不清理。
请问flink sql ddl能通过类似SET 语句来设定ttl吗,搜了官方文档只有提到table api里有setIdelStateRententionTime。
感谢各位的指教。
发自我的iPhone
Re: flink sql ddl能设置ttl吗?
Posted by Benchao Li <li...@gmail.com>.
Hi,
1. 如果我没记错的话,mysql的写入应该就是replace的方式写入的,应该不需要group by来实现upsert写入吧,除非你想要的是聚合结果。
2. 这个看你用的是哪种方式,如果是table api,可以直接用你说的这种方式来设置;如果用的是sql-client,可以直接在配置文件里面配置。
xu yihan <my...@126.com> 于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
Re: flink sql ddl能设置ttl吗?
Posted by Leonard Xu <xb...@gmail.com>.
更新下,第二个问题,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 <xb...@gmail.com> 写道:
>
> 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 <mytardis@126.com <ma...@126.com>> 写道:
>>
>> 各位好,
>>
>> 我有一个需求是要维表关联mysql数据,再upsert写入mysql,就是个丰富字段的简单需求。
>>
>> 现在有两个问题:
>> 1.为了实现upsert插入,我试下来必须使用groupby指定key,但是select内又有很多非聚合项,所以没办法在groupby后面加上所有那些非聚合项,否则通不过calcite validation。
>>
>> 2.现在遇到了一个问题,跑一段时间会抱full GC,我估计是因为groupby导致的状态不清理。
>> 请问flink sql ddl能通过类似SET 语句来设定ttl吗,搜了官方文档只有提到table api里有setIdelStateRententionTime。
>>
>> 感谢各位的指教。
>>
>
Re: flink sql ddl能设置ttl吗?
Posted by Leonard Xu <xb...@gmail.com>.
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 <my...@126.com> 写道:
>
> 各位好,
>
> 我有一个需求是要维表关联mysql数据,再upsert写入mysql,就是个丰富字段的简单需求。
>
> 现在有两个问题:
> 1.为了实现upsert插入,我试下来必须使用groupby指定key,但是select内又有很多非聚合项,所以没办法在groupby后面加上所有那些非聚合项,否则通不过calcite validation。
>
> 2.现在遇到了一个问题,跑一段时间会抱full GC,我估计是因为groupby导致的状态不清理。
> 请问flink sql ddl能通过类似SET 语句来设定ttl吗,搜了官方文档只有提到table api里有setIdelStateRententionTime。
>
> 感谢各位的指教。
>