Krutik Gadhiya
07/28/2023, 6:21 AMprivate final String sink = "CREATE TABLE KafkaTable (\n" +
" `f0` STRING\n" +
") WITH (\n" +
" 'connector' = 'kafka',\n" +
" 'topic' = 'result',\n" +
" 'topic-pattern' = 'SINK_TABLE',\n" +
" 'properties.bootstrap.servers' = 'localhost:9092',\n" +
" 'properties.group.id' = 'testGroup',\n" +
" 'value.format' = 'raw'\n" +
");";
the issue here is that while inserting data to this table for sink it is taking very long time around 2-5s per event? so is there any better approach for the same
resultTable.insertInto("KafkaTable").execute();Martijn Visser
07/28/2023, 6:24 AMKrutik Gadhiya
07/28/2023, 6:24 AMMartijn Visser
07/28/2023, 6:25 AMKrutik Gadhiya
07/28/2023, 6:25 AMMartijn Visser
07/28/2023, 6:26 AMKrutik Gadhiya
07/28/2023, 6:29 AMresultTable.insertInto("KafkaTable").execute();
this line is taking the most time, I have measured that and we are testing Table API and there is no join it is simply a pass through jobMartijn Visser
07/28/2023, 6:30 AMMartijn Visser
07/28/2023, 6:32 AMKrutik Gadhiya
07/28/2023, 6:35 AMKrutik Gadhiya
07/28/2023, 6:37 AMMartijn Visser
07/28/2023, 6:38 AMKrutik Gadhiya
07/28/2023, 6:38 AMMartijn Visser
07/28/2023, 6:38 AMMartijn Visser
07/28/2023, 6:40 AMKrutik Gadhiya
07/28/2023, 6:41 AMDataStream<String> dataStream = streamExecutionEnvironment.fromElements(data);
streamTableEnvironment.createTemporaryView(
"table",
dataStream
);
private final String sink = "CREATE TABLE KafkaTable (\n" +
" `f0` STRING\n" +
") WITH (\n" +
" 'connector' = 'kafka',\n" +
" 'topic' = 'result',\n" +
" 'topic-pattern' = 'SINK_TABLE',\n" +
" 'properties.bootstrap.servers' = 'localhost:9092',\n" +
" 'properties.group.id' = 'testGroup',\n" +
" 'value.format' = 'raw'\n" +
");";
// check for null
Table resultTable = streamTableEnvironment.sqlQuery("SELECT * FROM table");
streamTableEnvironment.executeSql(sql);
resultTable.insertInto("KafkaTable").execute();
streamTableEnvironment.dropTemporaryView(Main.TABLE_NAME);
streamTableEnvironment.executeSql(drop);Krutik Gadhiya
07/28/2023, 6:41 AMKrutik Gadhiya
07/28/2023, 6:42 AMMartijn Visser
07/28/2023, 6:44 AMKrutik Gadhiya
07/28/2023, 6:45 AMKrutik Gadhiya
07/28/2023, 6:52 AMvalue.format to json from raw but its still same resultMartijn Visser
07/28/2023, 6:57 AMMartijn Visser
07/28/2023, 6:57 AMKrutik Gadhiya
07/28/2023, 7:37 AMMartijn Visser
07/28/2023, 7:58 AMMartijn Visser
07/28/2023, 7:58 AMKrutik Gadhiya
07/31/2023, 5:22 AM<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="<http://maven.apache.org/POM/4.0.0>"
xmlns:xsi="<http://www.w3.org/2001/XMLSchema-instance>"
xsi:schemaLocation="<http://maven.apache.org/POM/4.0.0> <http://maven.apache.org/xsd/maven-4.0.0.xsd>">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<log4j.version>2.20.0</log4j.version>
</properties>
<dependencies>
<!-- <https://mvnrepository.com/artifact/org.apache.flink/flink-java> -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>1.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-connector-kafka</artifactId>
<version>1.17.1</version>
</dependency>
<!-- <https://mvnrepository.com/artifact/org.apache.flink/flink-sql-connector-kafka> -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-sql-connector-kafka</artifactId>
<version>1.17.1</version>
</dependency>
<!-- <https://mvnrepository.com/artifact/org.apache.flink/flink-clients> -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients</artifactId>
<version>1.17.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.28</version>
<scope>provided</scope>
</dependency>
<!-- <https://mvnrepository.com/artifact/org.apache.flink/flink-streaming-java> -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java</artifactId>
<version>1.17.1</version>
</dependency>
<!-- <https://mvnrepository.com/artifact/org.apache.flink/flink-table-api-java-bridge> -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-api-java-bridge</artifactId>
<version>1.17.1</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.apache.flink</groupId>-->
<!-- <artifactId>flink-table-planner_2.12</artifactId>-->
<!-- <version>1.17.1</version>-->
<!-- </dependency>-->
<!-- Logging -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<excludes>
<exclude>com.google.code.findbugs:jsr305</exclude>
</excludes>
</artifactSet>
<filters>
<filter>
<!-- Do not copy the signatures in the META-INF folder.
Otherwise, this might cause SecurityExceptions when using the JAR. -->
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<!-- Replace this with the main class of your job -->
<mainClass>org.abs.security.Main</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>Krutik Gadhiya
07/31/2023, 6:26 AMMartijn Visser
07/31/2023, 8:01 AMKrutik Gadhiya
07/31/2023, 8:09 AMMartijn Visser
07/31/2023, 8:10 AMMartijn Visser
07/31/2023, 8:10 AMMartijn Visser
07/31/2023, 8:11 AMKrutik Gadhiya
07/31/2023, 8:26 AMCaused by: org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot load user class: org.apache.flink.connector.kafka.sink.KafkaSink
ClassLoader info: URL ClassLoader:
Class not resolvable through given classloader.
at org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperatorFactory(StreamConfig.java:397)
at org.apache.flink.streaming.runtime.tasks.OperatorChain.<init>(OperatorChain.java:166)
at org.apache.flink.streaming.runtime.tasks.RegularOperatorChain.<init>(RegularOperatorChain.java:60)
at org.apache.flink.streaming.runtime.tasks.StreamTask.restoreInternal(StreamTask.java:688)
at org.apache.flink.streaming.runtime.tasks.StreamTask.restore(StreamTask.java:675)
at org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:952)
at org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:921)
at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:745)
at org.apache.flink.runtime.taskmanager.Task.run(Task.java:562)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassNotFoundException: org.apache.flink.connector.kafka.sink.KafkaSink
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at org.apache.flink.util.FlinkUserCodeClassLoader.loadClassWithoutExceptionHandling(FlinkUserCodeClassLoader.java:67)
at org.apache.flink.util.ChildFirstClassLoader.loadClassWithoutExceptionHandling(ChildFirstClassLoader.java:65)
at org.apache.flink.util.FlinkUserCodeClassLoader.loadClass(FlinkUserCodeClassLoader.java:51)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at org.apache.flink.util.FlinkUserCodeClassLoaders$SafetyNetWrapperClassLoader.loadClass(FlinkUserCodeClassLoaders.java:192)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at org.apache.flink.util.InstantiationUtil$ClassLoaderObjectInputStream.resolveClass(InstantiationUtil.java:76)
at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1995)
at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1862)
at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2169)
at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1679)
at java.base/java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2464)
at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2358)
at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2196)
at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1679)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:493)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:451)
at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:534)
at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:522)
at org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:476)
at org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperatorFactory(StreamConfig.java:383)
... 9 moreKrutik Gadhiya
08/01/2023, 7:01 AMMartijn Visser
08/01/2023, 10:53 AM