DataLinkDC / dinky

Dinky is a real-time data development platform based on Apache Flink, enabling agile data development, deployment and operation.
http://www.dinky.org.cn
Apache License 2.0
3.12k stars 1.15k forks source link

[Bug] [CDCSOURCE] Error occurred when using CDCSOURCE ingest data from mysqlcdc to hudi table #1579

Closed archibald-nice closed 1 year ago

archibald-nice commented 1 year ago

Search before asking

What happened

I had some problems when using CDCSOURCE ingest data from mysqlcdc to hudi:

  1. The first day it worked fine but the second day it never resolved any tables from the same MySQL-jdbc; (it goes right when I restart dinky server with ./auto.sh restart 1.15...Btw, Flink-1.15.3 is my env version)
  2. Only 3 tables were built correctly from my CDCSOUCE script while there assigning 6 tables.

What you expected to happen

Official documents or test-demo in source code can give user clearer case or more log info.

How to reproduce

[Technical version]

[Job Script]

SET 'state.savepoints.dir' = 's3a://bigdata-1252394470/flink-savepoints/';
SET 'state.checkpoints.dir' = 's3a://bigdata-1252394470/flink-checkpoints/';
SET 'execution.checkpointing.mode' = 'EXACTLY_ONCE';
SET 'execution.checkpointing.interval' = '15m';
SET 'execution.checkpointing.timeout' = '15m';

create catalog my_catalog with(
    'type' = 'dlink_mysql', 
    'username' = 'dlink', 
    'password' = 'dlink@2023', 
    'url' = 'jdbc:mysql://xx.xx.xx.xx:3307/dlink?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true' 
    );
use catalog my_catalog;

EXECUTE CDCSOURCE USER_CDAS WITH (
    'connector' = 'mysql-cdc',
    'hostname' = 'xx.xx.xx.xx',
    'port' = '3306',
    'username' = 'etl_admin',
    'password' = 'etl_admin#2023',
    'source.server-time-zone' = 'Asia/Shanghai',
    'checkpoint'='600000',
    'scan.startup.mode'='initial',
    'parallelism'='1',
    'database-name'='t_user',
    'table-name'='t_user\.base_mch_config,t_user\.base_mch_member,t_user\.base_risk_control,t_user\.base_service_provider_config,t_user\.pay_center,t_user\.pay_gateway_white_list',
    'sink.connector'='hudi',
    'sink.path'='s3a://bigdata-1252394470/hudi/prod/ods/user/${tableName}',
    'sink.hoodie.datasource.write.recordkey.field'='id',
    'sink.hoodie.parquet.max.file.size'='268435456',
    'sink.write.precombine.field'='update_time',
    'sink.write.tasks'='1',
    'sink.write.bucket_assign.tasks'='2',
    'sink.write.precombine'='true',
    'sink.compaction.async.enabled'='true',
    'sink.write.task.max.size'='10240',
    'sink.write.rate.limit'='300000',
    'sink.write.operation'='upsert',
    'sink.table.type'='COPY_ON_WRITE',
    'sink.compaction.tasks'='1',
    'sink.compaction.delta_seconds'='20',
    'sink.compaction.async.enabled'='true',
    'sink.read.streaming.skip_compaction'='true',
    'sink.read.streaming.check.interval'='3',
    'sink.compaction.delta_commits'='20',
    'sink.compaction.trigger.strategy'='num_or_time',
    'sink.compaction.max_memory'='500',
    'sink.changelog.enabled'='true',
    'sink.read.streaming.enabled'='true',
    'sink.hive_sync.enable'='true',
    'sink.hive_sync.mode'='hms',
    'sink.hive_sync.db'='hstypay',
    'sink.hive_sync.table'='${tableName}',
    'sink.table.prefix.schema'='true',
    'sink.hive_sync.metastore.uris'='thrift://xx.xx.xx.xx:9083'
)

Anything else

guessing the reasons for the two problems are as follows:

  1. Old caches in dinky-server or mysql link is full;
  2. CDCSOURCE cannot build FlinkSQL from
    `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后一次更新时间'

    About 'sink.write.precombine.field'='update_time'

Version

0.7.0

Are you willing to submit PR?

Code of Conduct

leeoo commented 1 year ago

I got similar issue in mysql2doris CDCSOURCE flinksql job too. The temporary solution is restarting Dinky service. Guessing the reason is current job instance trying to obatain the mysql jdbc connection last running created, but the mysql jdbc connection had timeout! (In the meantime, Dinky's backend log would show me like "... add 'autoReconnect=true' to avoid this problem...") Terribly we cannot find this issue when debugging. Maybe the root cause in code level are below methods: com.dlink.trans.ddl.CreateCDCSourceOperation#build com.dlink.metadata.driver.AbstractJdbcDriver#listTables

图片

图片

Environment: Dinky 0.7.1, MySQL 8, Flink 1.16.0, Doris 1.2.1

@Archie-selfless @aiwenmo

leeoo commented 1 year ago

补充该现象的问题日志如下:

[dlink] 2023-02-20 09:47:38 CST INFO  com.dlink.trans.ddl.CreateCDCSourceOperation 78 build - Start build CDCSOURCE Task...
[dlink] 2023-02-20 09:47:38 CST ERROR com.alibaba.druid.pool.DruidPooledStatement 379 errorCheck - CommunicationsException, druid version 1.2.8, jdbcUrl : jdbc:mysql://192.168.200.11:3334/demo, testWhileIdle true, idle millis 239334336, minIdle 5, poolingCount 3, timeBetweenEvictionRunsMillis 60000, lastValidIdleMillis 239334336, driver com.mysql.cj.jdbc.Driver, exceptionSorter com.alibaba.druid.pool.vendor.MySqlExceptionSorter
[dlink] 2023-02-20 09:47:38 CST ERROR com.alibaba.druid.pool.DruidDataSource 1887 handleFatalError - {conn-110006} discard com.mysql.cj.jdbc.exceptions.CommunicationsException: The last packet successfully received from the server was 239,334,329 milliseconds ago. The last packet sent successfully to the server was 239,334,331 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
        at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1009) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeQuery(DruidPooledPreparedStatement.java:227) ~[druid-1.2.8.jar:1.2.8]
        at com.dlink.metadata.driver.AbstractJdbcDriver.listTables(AbstractJdbcDriver.java:248) ~[dlink-metadata-base-0.7.1.jar:?]
        at com.dlink.trans.ddl.CreateCDCSourceOperation.build(CreateCDCSourceOperation.java:133) ~[dlink-executor-0.7.1.jar:?]
        at com.dlink.interceptor.FlinkInterceptor.build(FlinkInterceptor.java:54) ~[dlink-executor-0.7.1.jar:?]
        at com.dlink.executor.Executor.pretreatExecute(Executor.java:228) ~[dlink-executor-0.7.1.jar:?]
        at com.dlink.executor.Executor.executeSql(Executor.java:241) ~[dlink-executor-0.7.1.jar:?]
        at com.dlink.job.JobManager.executeSql(JobManager.java:565) ~[dlink-core-0.7.1.jar:?]
        at com.dlink.service.impl.TaskServiceImpl.submitTask(TaskServiceImpl.java:244) ~[dlink-admin-0.7.1.jar:?]
        at com.dlink.service.impl.TaskServiceImpl$$FastClassBySpringCGLIB$$168bea78.invoke(<generated>) ~[dlink-admin-0.7.1.jar:?]
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) ~[spring-aop-5.3.23.jar:5.3.23]
        at com.dlink.aop.UdfClassLoaderAspect.round(UdfClassLoaderAspect.java:65) ~[dlink-admin-0.7.1.jar:?]
        at sun.reflect.GeneratedMethodAccessor160.invoke(Unknown Source) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_333]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_333]
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.23.jar:5.3.23]
        at com.dlink.service.impl.TaskServiceImpl$$EnhancerBySpringCGLIB$$f60d51d9.submitTask(<generated>) ~[dlink-admin-0.7.1.jar:?]
        at com.dlink.controller.TaskController.submit(TaskController.java:127) ~[dlink-admin-0.7.1.jar:?]
        at com.dlink.controller.TaskController$$FastClassBySpringCGLIB$$a86993b6.invoke(<generated>) ~[dlink-admin-0.7.1.jar:?]
        at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.23.jar:5.3.23]
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.23.jar:5.3.23]
        at com.dlink.controller.TaskController$$EnhancerBySpringCGLIB$$64e1bb73.submit(<generated>) ~[dlink-admin-0.7.1.jar:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_333]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_333]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_333]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_333]
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.23.jar:5.3.23]
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.23.jar:5.3.23]
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar:5.3.23]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar:5.3.23]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar:5.3.23]
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar:5.3.23]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.23.jar:5.3.23]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.23.jar:5.3.23]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.23.jar:5.3.23]
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.23.jar:5.3.23]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) ~[tomcat-embed-core-9.0.68.jar:4.0.FR]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.23.jar:5.3.23]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.68.jar:4.0.FR]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.68.jar:9.0.68]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124) ~[druid-1.2.8.jar:1.2.8]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.23.jar:5.3.23]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.23.jar:5.3.23]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.23.jar:5.3.23]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
        at java.lang.Thread.run(Thread.java:750) ~[?:1.8.0_333]
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: The last packet successfully received from the server was 239,334,329 milliseconds ago. The last packet sent successfully to the server was 239,334,331 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_333]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_333]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_333]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_333]
        at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.protocol.a.NativeProtocol.send(NativeProtocol.java:567) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.protocol.a.NativeProtocol.sendCommand(NativeProtocol.java:622) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.protocol.a.NativeProtocol.sendQueryPacket(NativeProtocol.java:987) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.NativeSession.execSQL(NativeSession.java:666) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:930) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        ... 96 more
Caused by: java.net.SocketException: 断开的管道 (Write failed)
        at java.net.SocketOutputStream.socketWrite0(Native Method) ~[?:1.8.0_333]
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111) ~[?:1.8.0_333]
        at java.net.SocketOutputStream.write(SocketOutputStream.java:155) ~[?:1.8.0_333]
        at sun.security.ssl.SSLSocketOutputRecord.deliver(SSLSocketOutputRecord.java:346) ~[?:1.8.0_333]
        at sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:1146) ~[?:1.8.0_333]
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) ~[?:1.8.0_333]
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) ~[?:1.8.0_333]
        at com.mysql.cj.protocol.a.SimplePacketSender.send(SimplePacketSender.java:55) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.protocol.a.TimeTrackingPacketSender.send(TimeTrackingPacketSender.java:50) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.protocol.a.NativeProtocol.send(NativeProtocol.java:558) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.protocol.a.NativeProtocol.sendCommand(NativeProtocol.java:622) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.protocol.a.NativeProtocol.sendQueryPacket(NativeProtocol.java:987) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.NativeSession.execSQL(NativeSession.java:666) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:930) ~[mysql-connector-java-8.0.28.jar:8.0.28]
        ... 96 more

[dlink] 2023-02-20 09:47:38 CST INFO  com.dlink.trans.ddl.CreateCDCSourceOperation 165 build - A total of 0 tables were detected...
[dlink] 2023-02-20 09:47:38 CST INFO  com.dlink.trans.ddl.CreateCDCSourceOperation 174 build - Set parallelism: 1
[dlink] 2023-02-20 09:47:38 CST INFO  com.dlink.trans.ddl.CreateCDCSourceOperation 178 build - Set checkpoint: 3000
[dlink] 2023-02-20 09:47:38 CST INFO  com.dlink.trans.ddl.CreateCDCSourceOperation 181 build - Build mysql-cdc successful...
[dlink] 2023-02-20 09:47:38 CST INFO  com.dlink.cdc.sql.SQLSinkBuilder 220 build - Build deserialize successful...
[dlink] 2023-02-20 09:47:38 CST INFO  com.dlink.cdc.sql.SQLSinkBuilder 277 build - A total of 0 table cdc sync were build successfull...
[dlink] 2023-02-20 09:47:38 CST INFO  com.dlink.trans.ddl.CreateCDCSourceOperation 190 build - Build CDCSOURCE Task successful!
[dlink] 2023-02-20 09:47:38 CST INFO  org.apache.flink.client.program.rest.RestClusterClient 401 lambda$submitJob$7 - Submitting job 'ods_demo_v4' (788a39fbf39f8bbbb3ed4c1823f322e9).
[dlink] 2023-02-20 09:47:38 CST INFO  org.apache.flink.client.program.rest.RestClusterClient 420 lambda$null$6 - Successfully submitted job 'ods_demo_v4' (788a39fbf39f8bbbb3ed4c1823f322e9) to 'http://192.168.200.174:9994'.