暂无个人介绍
2021年12月
窗口的触发逻辑就是这样的,必须watermark达到了窗口结束时间才会触发,可能10-11点的窗口中的数据最大只有10:59呢*来自志愿者整理的flink邮件归档
你得有个join条件连接两张表的*来自志愿者整理的flink邮件归档
我建议你用ContinuousEventTimeTrigger,可以在窗口范围内,连续触发。
你这个countTrigger,促发次数太多了,而且你后面是processWindowFunction,导致计算压力比较大。
建议你用aggregateWindowFuntion*来自志愿者整理的flink邮件归档
这个报错,在flink 1.11 最新版本我也遇见了,跟你同样的操作
真正原因是这个ddl 是flink 的sink table,是数据写入端,不能打印数据。
而tableEnv.toRetractStream(table, Row.class).print();
这个打印的数据方法只适合flink 的Source Table,也就是数据输入端,比如kafka table就可以正常使用。*来自志愿者整理的flink邮件归档
首先,从checkpoint/savepoint
恢复的话,一定会以checkpoint/savepoint中的offset为准,所以它的优先级是最高的,
不管你配置哪种startup mode。
如果你没有开启checkpoint,那么如果你用了group-offsets,那它就会从保存在kafka中的offset进行启动。
提交offset到kafka这个应该是默认就开了的。*来自志愿者整理的flink邮件归档
根据你的keyby字段来看,你是根据 warningPojo + String 进行了keyby,可以看下是否相同的key只有一条相同数据。
并且可以看下使用到的是处理时间还是事件时间?
如果是事件时间,可以看下 timestamp assigner 是否正确,上游数据和时间戳是否符合预期。*来自志愿者整理的flink邮件归档
1.如果数据流量不是很大的话,按每条数据触发也没问题。另外,基于事件时间的情况,提前触发可以选择ContinuousEventTimeTrigger,可以查看Trigger接口的实现找到你想要的trigger。
2.窗口结束后会自动释放。一般对于Global窗口需要手动设置TTL*来自志愿者整理的flink邮件归档
这个看上去是提交到 Yarn 了,具体的原因需要看下 JM log 是啥原因。另外是否是日志没有贴全,这里只看到本地 log,其他的就只有小部分 jobmanager.err 的 log。*来自志愿者整理的flink邮件归档
Table API的作业在执行之前会经过一系列的rule优化,最终的执行计划,存在一个UDF调用多次的可能,你可以把执行计划打印出来看看(TableEnvironment#explain)。*来自志愿者整理的flink邮件归档
问一下,你是指用1.10去恢复 1.9 作业的 savepoint/checkpoint 吗?还是指迁移到 1.10 后,无法从 failover 中恢复? 如果是前者的话,Flink SQL 目前没有保证跨大版本的 state 兼容性。所以当你从 1.9 升级到 1.10 时,作业需要放弃状态重跑。*来自志愿者整理的flink邮件归档
这应该是碰到了Hbase connector的bug [1], 用户配置的hbaseconf 相关的参数,如connector.zookeeper.quorum 不会生效,这个 bug 在1.11.0 已经修复,可以升级下版本。 在1.10.0版本上一种 walkwaround 的方式是把把这些参数放在 hbase-site.xml 的配置文件中,然后将把配置文件添加到 HADOOP_CLASSPATH中,这样Flink程序也可以加载到正确的配置。
[1] https://issues.apache.org/jira/browse/FLINK-17968 https://issues.apache.org/jira/browse/FLINK-17968*来自志愿者整理的flink邮件归档
我理解最佳实践是第一种,先读出来array,再用table function展开成多行。 实际上把array转成多行是Flink 内置支持的,可以参考[1]的”Expanding arrays into a relation“部分 [1] https://ci.apache.org/projects/flink/flink-docs-master/dev/table/sql/queries.html#joins *来自志愿者整理的flink邮件归档
你好,为什么需要在 State 里面再用 cache 呢?单纯的 State 不能满足需求吗?需求是什么呢?
另外,除了 ValueState,其他的 ListState/MapState 能否满足你的需求呢?*来自志愿者整理的flink邮件归档
这个问题我理解其实和周期性水印没有关系,是属于 idle source
的问题,你可以尝试下加上配置 table.exec.source.idle-timeout = 10s 能不能解决你的问题。[1][1]:
https://ci.apache.org/projects/flink/flink-docs-master/dev/table/config.html#table-exec-source-idle-timeout*来自志愿者整理的flink邮件归档
你是不是对 /opt/flink/conf 目录下的文件进行了sed相关写操作?社区文档中使用的方法是将configmap挂载成本地的flink-conf.yaml 等文件,而这个挂载的目录其实是不可写的。
直接修改configmap里面的内容,这样挂载时候就会自动更新了。*来自志愿者整理的flink邮件归档
看上去这个需求是 一天的窗口,每个小时都 trigger 一次,希望 state 在 1 天之后进行清理。
你可以尝试一下 TTL[1] State
另外想问一下,你自己写 ProcessWindowFunction 的话,为什么不考虑 KeyedProcessFunction[2] 呢
[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.10/zh/dev/stream/state/state.html#%E7%8A%B6%E6%80%81%E6%9C%89%E6%95%88%E6%9C%9F-ttl
[2]
https://ci.apache.org/projects/flink/flink-docs-release-1.10/zh/dev/stream/operators/process_function.html#the-keyedprocessfunction*来自志愿者整理的flink邮件归档
另外,我理解下你的需求是 db1.test 同步到 db2.test, db1.status 同步到 db2.status?
多表的有序同步是指?
我理解你只需要像定义 db1.test -> db2.test 一样,定义好 db1.status binlog table 然后 insert
into 到 db2.status mysql table就行了。*来自志愿者整理的flink邮件归档
感谢提醒,我是在https://mvnrepository.com/这个上面搜没搜到对应的包的,不过,module名改成flink-connector-jdbc,可以了,感谢提醒*来自志愿者整理的flink邮件归档
你用的是哪个版本?之前是存在一个类似问题的[1],是在window里面做count distinct会有这个问题,
这个已经在1.11中修复了。
[1] https://issues.apache.org/jira/browse/FLINK-17942*来自志愿者整理的flink邮件归档
你有没有导入blink的planner呢,加入这个试试
org.apache.flink
flink-table-planner-blink_${scala.binary.version}
${flink.version}
*来自志愿者整理的flink邮件归档