Dheeraj Panangat
03/13/2023, 1:26 PMMartijn Visser
03/13/2023, 1:27 PMDheeraj Panangat
03/13/2023, 1:27 PMMartijn Visser
03/13/2023, 1:27 PMDheeraj Panangat
03/13/2023, 1:31 PMException in thread "main" org.apache.flink.table.api.ValidationException: Could not execute CreateTable in path `default_catalog`.`*****`.`****`
And with PostgreSQLSource
Caused by: java.lang.NoSuchFieldError: DEFAULT
at org.apache.kafka.connect.runtime.WorkerConfig.baseConfigDef(WorkerConfig.java:284)
Code Sample :
SourceFunction<String> sourceFunction = PostgreSQLSource.<String>builder()
.hostname("hostname")
.port(5432)
.database("postgres")
.schemaList("schemaname")
.tableList("schemaname.tablename")
.username("postgres")
.password("***pwd***")
.deserializer(new JsonDebeziumDeserializationSchema())
.build();
DataStreamSource<String> flowStream = env.addSource(sourceFunction);
flowStream.addSink(new PrintSinkFunction<>()).name("Print to System Output");Martijn Visser
03/13/2023, 1:37 PMMartijn Visser
03/13/2023, 1:37 PMDheeraj Panangat
03/13/2023, 1:50 PM<dependency>
<groupId>com.ververica</groupId>
<artifactId>flink-connector-postgres-cdc</artifactId>
<version>2.3.0</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
The complete stack trace :
I copied the above code as is :
Caused by: java.lang.NoSuchFieldError: DEFAULT
at org.apache.kafka.connect.runtime.WorkerConfig.baseConfigDef(WorkerConfig.java:284)
at io.debezium.embedded.EmbeddedEngine$EmbeddedConfig.<clinit>(EmbeddedEngine.java:1101)
at io.debezium.embedded.EmbeddedEngine.<init>(EmbeddedEngine.java:600)
at io.debezium.embedded.EmbeddedEngine.<init>(EmbeddedEngine.java:81)
at io.debezium.embedded.EmbeddedEngine$BuilderImpl.build(EmbeddedEngine.java:302)
at io.debezium.embedded.EmbeddedEngine$BuilderImpl.build(EmbeddedEngine.java:218)
at io.debezium.embedded.ConvertingEngineBuilder.build(ConvertingEngineBuilder.java:151)
at com.ververica.cdc.debezium.DebeziumSourceFunction.run(DebeziumSourceFunction.java:420)
at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:110)
at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:67)
at org.apache.flink.streaming.runtime.tasks.SourceStreamTask$LegacySourceFunctionThread.run(SourceStreamTask.java:333)
Process finished with exit code 1Dheeraj Panangat
03/14/2023, 12:25 PMkafka-clients dependency coming from flink-connector-kafka and flink-connector-postgres-cdc can conflict.
Had to exlude the dependency from flink-connector-kafka
2. If using partitions for table the table name has to include suffix _[0-n]+.*
3. Difference in PostgresSqlSource and TableEnvironment :
⢠Table Environment : REPLICA IDENTITY has to be FULL to use the table API
⢠The tableList has to include schemaName.tableName for SourceFunction, but for TableAPI it needs only the tableName
4. Also the slot.name has to be different for each CDC eventsMartijn Visser
03/14/2023, 1:57 PM