问题一:DataStream的state问题
想问下,在给state设置ttl的时候,如下面的代码: StateTtlConfig ttlConfig = StateTtlConfig
.newBuilder(Time.days(1))
.setUpdateType(StateTtlConfig.UpdateType.OnCreateAndWrite)
.setStateVisibility(StateTtlConfig.StateVisibility.NeverReturnExpired)
.build();
设置了1天时间之后失效,例如2020-07-07 08:30:00点开始的job,那失效时间是这个时间段2020-07-07 00:00:00~2020-07-07 23:59:59,还是job上线之后,2020-07-07 08:30:00~2020-07-08 08:30:00这个时间段?
*来自志愿者整理的flink邮件归档
参考答案:
是最后一次 access 的时间到当前的时间超过了你设置的 ttl 间隔,比如你配置的是 OnCreateAndWrite
那么就是创建和写操作之后的 1 天,这个 state 会变成 expired,具体的可以参考文档[1]
[1]
*来自志愿者整理的flink邮件归档
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/370141?spm=a2c6h.12873639.article-detail.113.6f9243783Lv0fl
问题二:关于jdbc connector扩展问题
hi all我这里有个需求需要从sql里面写数据到clickhouse里面,但是看源码,发现并不好扩展,https://github.com/apache/flink/blob/d04872d2c6b7570ea3ba02f8fc4fca02daa96118/flink-connectors/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialects.java#L30, 这里我看直接写死仅支持DerbyDialect、MySQLDialect、PostgresDialect,而且这个类不支持注册jdbc新驱动,如果想在SQL里面支持其他类型的数据库的话,该怎么弄,求支招
*来自志愿者整理的flink邮件归档
参考答案:
目前 flink-connector-jdbc 还不支持注册
dialect,社区有这方面的计划,但是目前还没有资源做这一块,这是个比较复杂的功能,需要对接口做细致的设计。
目前你可以拿 flink-connector-jdbc 源码,加一个自己的 Dialect 类,在 JdbcDialects 中注册进你的
dialect,然后编译打包就可以了。
*来自志愿者整理的flink邮件归档
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/370140?spm=a2c6h.12873639.article-detail.114.6f9243783Lv0fl
问题三:Flink从SavePoint启动任务,修改的代码不生效
背景:Flink版本1.6.4,数据源为Kafka的主题A,B,消费者组相同 操作步骤:1.使用SavePoint取消任务。 2.修改代码将B去掉,只消费A主题。 3.从SavePoint启动任务,发现消费者组在B主题下的偏移量也回到了任务停止时的偏移量,之后偏移量马上变成了最新并继续消费。 想知道为什么修改代码不生效。
*来自志愿者整理的flink邮件归档
参考答案:
估计你是用同一个 Kafka Source 消费 A B 两个 Topic? 如果是,看起来像是 Kafka Connector 早期的一个问题。
作业停止的时候,Topic B 的 partition offset 被存储到 Savepoint 中,然后在恢复的时候,尽管代码中 Topic B 已经被移除,但它的 partition offset 还是被恢复了。
这个问题在后来的版本,估计是 1.8 或 1.9,被修复了。
*来自志愿者整理的flink邮件归档
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/370139?spm=a2c6h.12873639.article-detail.115.6f9243783Lv0fl
问题四:flink sql子查询状态清理不掉
大家好,我现在程序里面有像这样一段sql: select day,
count(id),
sum(v1) from
(
select
day ,
id ,
sum(v1) v1 from source
group by day,
id
)t
group by day
我设置了
tConfig.setIdleStateRetentionTime(Time.minutes(1440),Time.minutes(1450))
子查询里面的聚合是按照天和id聚合的,按道理1天之后就会自动清理,但是运行4天过程中,我在checkpoint的页面里面看到这个子查询的状态一直在增大,这是什么原因呢
我的版本是1.10.0
*来自志愿者整理的flink邮件归档
参考答案:
感觉不太应该。你用的是哪个Flink版本,以及哪个planner呢?
*来自志愿者整理的flink邮件归档
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/370138?spm=a2c6h.12873639.article-detail.116.6f9243783Lv0fl
问题五:Flink状态调试
Hi, 各位大佬们,请教一下: Flink的checkpoint怎么调试啊,我想看程序目前的状态,拿到了checkpoint的文件,打开后有一些东西是乱码,没有结构性,有方法吗?
*来自志愿者整理的flink邮件归档
参考答案:
想 debug checkpoint 文件的话,可以参考下这个 UT[1]
[1]
*来自志愿者整理的flink邮件归档
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/370137?spm=a2c6h.12873639.article-detail.117.6f9243783Lv0fl