问题一:flink sql cdc并行度问题怎么办?
flink sql作业:消费mysql binlog将数据同步到 mongodb 问题: 1. mysql-cdc connector只能设置成一个并行度吗? 2. 可以增大mongodb的sink并行度吗?可以的话,要如何设置?它保证主键相同的记录会发到同一个分区sink吗?*来自志愿者整理的flink邮件归档
参考回答:
mysql-cdc connector只能设置一个并行度,主要可能有这些原因:
- mysql binlog本质上是一个文件,多个并行度消费需要避免重复
- 多个并行度消费难以保证顺序
sink可以设为多个并行度,但是顺序不一定,如果需要主键相同的记录发到同一个sink线程可以先做一个keyby,并且保证keyby并行度与sink并行度相同,这样基本上能够保证数据forward传输,不过也不能100%保证有序。
如果需要保证有序还是建议sink并行度为1
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/359786?spm=a2c6h.13148508.0.0.5a844f0erUZ87h
问题二:flink 1.12.2 编译报错怎么办?
maven 版本: 3.2.5 jdk 版本:1.8.0_251 flink 版本: flink 1.12.2 执行的命令:mvn clean install -DskipTests -Dfast 错误信息: [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] /data/flink-release-1.12.2/flink-test-utils-parent/flink-test-utils-junit/src/main/java/org/apache/flink/core/testutils/CommonTestUtils.java:[38,27] package org.hamcrest does not exist [ERROR] /data/flink-release-1.12.2/flink-test-utils-parent/flink-test-utils-junit/src/main/java/org/apache/flink/core/testutils/CommonTestUtils.java:[38,1] static import only from classes and interfaces [ERROR] /data/flink-release-1.12.2/flink-test-utils-parent/flink-test-utils-junit/src/main/java/org/apache/flink/core/testutils/CommonTestUtils.java:[39,27] package org.hamcrest does not exist [INFO] Reactor Summary: [INFO] [INFO] Flink : Tools : Force Shading ...................... SUCCESS [ 1.042 s] [INFO] Flink : ............................................ SUCCESS [ 1.404 s] [INFO] Flink : Annotations ................................ SUCCESS [ 0.735 s] [INFO] Flink : Test utils : ............................... SUCCESS [ 0.042 s] [INFO] Flink : Test utils : Junit ......................... FAILURE [ 0.283 s] 而且我看 flink-test-utils-parent/pom.xml 和 flink-test-utils-junit/pom.xml 的确没加 org.hamcrest 相关依赖啊。 请问大家下,原因是什么呢?*来自志愿者整理的flink邮件归档
参考回答:
Hi, org.hamcrest 是 junit 的依赖
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/359793
问题三:flink 1.13.0 中cumulate window该怎么使用?
nsert into test_out select a.uid, 'dt', max(a.age) from test_in as a group by uid, cumulate(PROCTIME(), interval '1' minute, interval '1' hour);
hello, 各位大佬, flink 1.13.0 中流式作业中该怎么使用cumulate window呢?我用上面的SQL 貌似是不行, 有没有使用过的大佬给点建议?*来自志愿者整理的flink邮件归档
参考回答:
Hello
请参考官网案例,需要使用 window tvf语法。 https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/dev/table/sql/queries/window-tvf/#cumulate
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/359795
问题四:请问flink lookup表作为维表,那么lookup表是不是不能新增或者修改,如果修改了那么作业就需要重启?
想要作业不重启咋操作*来自志愿者整理的flink邮件归档
参考回答:
HI,
可以修改的,修改后不需要重启作业。
修改后 flink 事实流 是能立即 查询到 最新的维表数据(前提是维表查询出来的数据没有开启cache)。
你可以理解下 lookup 维表的语法: A join B for system time as of A.proctime on A.id http://a.id/ = B.id http://b.id/ 就是 查询当前最新的维表(proctime代表了最新时间)并关联。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/359796
问题五:SQL DDL选项的值需要单引号应该如何解决?
create table source (
id int
) with (
type='jdbc',
username='us',
password='ab'c'
);
例如上面DDL密码的值需要 ' 单引号。这种应该怎么解决?*来自志愿者整理的flink邮件归档
参考回答:
create table source (
id int
) with (
type='jdbc',
username='us',password='ab'c'
);
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/359844