当sink库为达梦库时,schema_save_mode 设置为"CREATE_SCHEMA_WHEN_NOT_EXIST",希望它自动创建表,由于配置错误导致抛出了创建数据库的异常,原以为是旧版本的bug,缓存最新版2.3.12也是如此。
具体异常如下,提示创建数据库不支持:
1 2025-09-26 23:48:19,105 ERROR [o.a.s.c.s.SeaTunnel ] [main] - Exception StackTrace:org.apache.seatunnel.core.starter.exception.CommandExecuteException: SeaTunnel job executed failed 2 at org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:228) 3 at org.apache.seatunnel.core.starter.SeaTunnel.run(SeaTunnel.java:40) 4 at org.apache.seatunnel.core.starter.seatunnel.SeaTunnelClient.main(SeaTunnelClient.java:34) 5 Caused by: java.util.concurrent.CompletionException: org.apache.seatunnel.engine.common.exception.JobException: org.apache.seatunnel.common.exception.SeaTunnelRuntimeException: ErrorCode:[API-09], ErrorDescription:[Handle save mode failed] 6 at org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:526) 7 at org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:532) 8 at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) 9 at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) 10 at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) 11 at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) 12 at java.util.Iterator.forEachRemaining(Iterator.java:116) 13 at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) 14 at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) 15 at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) 16 at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) 17 at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) 18 at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 19 at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) 20 at org.apache.seatunnel.engine.server.master.JobMaster.init(JobMaster.java:255) 21 at org.apache.seatunnel.engine.server.CoordinatorService.lambda$submitJob$6(CoordinatorService.java:649) 22 at org.apache.seatunnel.api.tracing.MDCRunnable.run(MDCRunnable.java:43) 23 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 24 at java.util.concurrent.FutureTask.run(FutureTask.java:266) 25 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 26 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 27 at java.lang.Thread.run(Thread.java:748) 28 Caused by: java.lang.UnsupportedOperationException 29 at org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.dm.DamengCatalog.createDatabaseInternal(DamengCatalog.java:73) 30 at org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.AbstractJdbcCatalog.createDatabase(AbstractJdbcCatalog.java:503) 31 at org.apache.seatunnel.api.sink.DefaultSaveModeHandler.createTablePreCheck(DefaultSaveModeHandler.java:186) 32 at org.apache.seatunnel.connectors.seatunnel.jdbc.sink.savemode.JdbcSaveModeHandler.createTable(JdbcSaveModeHandler.java:47) 33 at org.apache.seatunnel.api.sink.DefaultSaveModeHandler.createSchemaWhenNotExist(DefaultSaveModeHandler.java:129) 34 at org.apache.seatunnel.api.sink.DefaultSaveModeHandler.handleSchemaSaveMode(DefaultSaveModeHandler.java:88) 35 at org.apache.seatunnel.api.sink.SaveModeHandler.handleSaveMode(SaveModeHandler.java:40) 36 at org.apache.seatunnel.api.sink.SaveModeExecuteWrapper.execute(SaveModeExecuteWrapper.java:36) 37 at org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:524) 38 ... 21 more 39 40 at com.hazelcast.spi.impl.AbstractInvocationFuture.wrapInCompletionException(AbstractInvocationFuture.java:1347) 41 at com.hazelcast.spi.impl.AbstractInvocationFuture.cascadeException(AbstractInvocationFuture.java:1340) 42 at com.hazelcast.spi.impl.AbstractInvocationFuture.access$200(AbstractInvocationFuture.java:65) 43 at com.hazelcast.spi.impl.AbstractInvocationFuture$ApplyNode.execute(AbstractInvocationFuture.java:1478) 44 at com.hazelcast.spi.impl.AbstractInvocationFuture.unblockOtherNode(AbstractInvocationFuture.java:797) 45 at com.hazelcast.spi.impl.AbstractInvocationFuture.unblockAll(AbstractInvocationFuture.java:759) 46 at com.hazelcast.spi.impl.AbstractInvocationFuture.complete0(AbstractInvocationFuture.java:1235) 47 at com.hazelcast.spi.impl.AbstractInvocationFuture.completeExceptionallyInternal(AbstractInvocationFuture.java:1223) 48 at com.hazelcast.spi.impl.AbstractInvocationFuture.completeExceptionally(AbstractInvocationFuture.java:709) 49 at com.hazelcast.client.impl.spi.impl.ClientInvocation.completeExceptionally(ClientInvocation.java:294) 50 at com.hazelcast.client.impl.spi.impl.ClientInvocation.notifyExceptionWithOwnedPermission(ClientInvocation.java:321) 51 at com.hazelcast.client.impl.spi.impl.ClientInvocation.notifyException(ClientInvocation.java:304) 52 at com.hazelcast.client.impl.spi.impl.ClientResponseHandlerSupplier.handleResponse(ClientResponseHandlerSupplier.java:164) 53 at com.hazelcast.client.impl.spi.impl.ClientResponseHandlerSupplier.process(ClientResponseHandlerSupplier.java:141) 54 at com.hazelcast.client.impl.spi.impl.ClientResponseHandlerSupplier.access$300(ClientResponseHandlerSupplier.java:60) 55 at com.hazelcast.client.impl.spi.impl.ClientResponseHandlerSupplier$DynamicResponseHandler.accept(ClientResponseHandlerSupplier.java:251) 56 at com.hazelcast.client.impl.spi.impl.ClientResponseHandlerSupplier$DynamicResponseHandler.accept(ClientResponseHandlerSupplier.java:243) 57 at com.hazelcast.client.impl.connection.tcp.TcpClientConnection.handleClientMessage(TcpClientConnection.java:245) 58 at com.hazelcast.client.impl.protocol.util.ClientMessageDecoder.handleMessage(ClientMessageDecoder.java:135) 59 at com.hazelcast.client.impl.protocol.util.ClientMessageDecoder.onRead(ClientMessageDecoder.java:89) 60 at com.hazelcast.internal.networking.nio.NioInboundPipeline.process(NioInboundPipeline.java:136) 61 at com.hazelcast.internal.networking.nio.NioThread.processSelectionKey(NioThread.java:383) 62 at com.hazelcast.internal.networking.nio.NioThread.processSelectionKeys(NioThread.java:368) 63 at com.hazelcast.internal.networking.nio.NioThread.selectLoop(NioThread.java:294) 64 at com.hazelcast.internal.networking.nio.NioThread.executeRun(NioThread.java:249) 65 at com.hazelcast.internal.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:102) 66 Caused by: org.apache.seatunnel.engine.common.exception.JobException: org.apache.seatunnel.common.exception.SeaTunnelRuntimeException: ErrorCode:[API-09], ErrorDescription:[Handle save mode failed] 67 at org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:526) 68 at org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:532) 69 at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) 70 at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) 71 at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) 72 at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) 73 at java.util.Iterator.forEachRemaining(Iterator.java:116) 74 at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) 75 at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) 76 at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) 77 at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) 78 at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) 79 at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 80 at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) 81 at org.apache.seatunnel.engine.server.master.JobMaster.init(JobMaster.java:255) 82 at org.apache.seatunnel.engine.server.CoordinatorService.lambda$submitJob$6(CoordinatorService.java:649) 83 at org.apache.seatunnel.api.tracing.MDCRunnable.run(MDCRunnable.java:43) 84 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 85 at java.util.concurrent.FutureTask.run(FutureTask.java:266) 86 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 87 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 88 at java.lang.Thread.run(Thread.java:748) 89 Caused by: java.lang.UnsupportedOperationException 90 at org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.dm.DamengCatalog.createDatabaseInternal(DamengCatalog.java:73) 91 at org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.AbstractJdbcCatalog.createDatabase(AbstractJdbcCatalog.java:503) 92 at org.apache.seatunnel.api.sink.DefaultSaveModeHandler.createTablePreCheck(DefaultSaveModeHandler.java:186) 93 at org.apache.seatunnel.connectors.seatunnel.jdbc.sink.savemode.JdbcSaveModeHandler.createTable(JdbcSaveModeHandler.java:47) 94 at org.apache.seatunnel.api.sink.DefaultSaveModeHandler.createSchemaWhenNotExist(DefaultSaveModeHandler.java:129) 95 at org.apache.seatunnel.api.sink.DefaultSaveModeHandler.handleSchemaSaveMode(DefaultSaveModeHandler.java:88) 96 at org.apache.seatunnel.api.sink.SaveModeHandler.handleSaveMode(SaveModeHandler.java:40) 97 at org.apache.seatunnel.api.sink.SaveModeExecuteWrapper.execute(SaveModeExecuteWrapper.java:36) 98 at org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:524) 99 ... 21 more 100 101 at org.apache.seatunnel.engine.server.CoordinatorService.lambda$submitJob$6(CoordinatorService.java:656) 102 at org.apache.seatunnel.api.tracing.MDCRunnable.run(MDCRunnable.java:43) 103 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 104 at java.util.concurrent.FutureTask.run(FutureTask.java:266) 105 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 106 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 107 at java.lang.Thread.run(Thread.java:748) 108 109 2025-09-26 23:48:19,106 ERROR [o.a.s.c.s.SeaTunnel ] [main] - 110 =============================================================================== 111 112 113 114 Exception in thread "main" org.apache.seatunnel.core.starter.exception.CommandExecuteException: SeaTunnel job executed failed 115 at org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:228) 116 at org.apache.seatunnel.core.starter.SeaTunnel.run(SeaTunnel.java:40) 117 at org.apache.seatunnel.core.starter.seatunnel.SeaTunnelClient.main(SeaTunnelClient.java:34) 118 Caused by: java.util.concurrent.CompletionException: org.apache.seatunnel.engine.common.exception.JobException: org.apache.seatunnel.common.exception.SeaTunnelRuntimeException: ErrorCode:[API-09], ErrorDescription:[Handle save mode failed] 119 at org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:526) 120 at org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:532) 121 at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) 122 at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) 123 at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) 124 at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) 125 at java.util.Iterator.forEachRemaining(Iterator.java:116) 126 at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) 127 at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) 128 at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) 129 at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) 130 at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) 131 at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 132 at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) 133 at org.apache.seatunnel.engine.server.master.JobMaster.init(JobMaster.java:255) 134 at org.apache.seatunnel.engine.server.CoordinatorService.lambda$submitJob$6(CoordinatorService.java:649) 135 at org.apache.seatunnel.api.tracing.MDCRunnable.run(MDCRunnable.java:43) 136 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 137 at java.util.concurrent.FutureTask.run(FutureTask.java:266) 138 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 139 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 140 at java.lang.Thread.run(Thread.java:748) 141 Caused by: java.lang.UnsupportedOperationException 142 at org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.dm.DamengCatalog.createDatabaseInternal(DamengCatalog.java:73) 143 at org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.AbstractJdbcCatalog.createDatabase(AbstractJdbcCatalog.java:503) 144 at org.apache.seatunnel.api.sink.DefaultSaveModeHandler.createTablePreCheck(DefaultSaveModeHandler.java:186) 145 at org.apache.seatunnel.connectors.seatunnel.jdbc.sink.savemode.JdbcSaveModeHandler.createTable(JdbcSaveModeHandler.java:47) 146 at org.apache.seatunnel.api.sink.DefaultSaveModeHandler.createSchemaWhenNotExist(DefaultSaveModeHandler.java:129) 147 at org.apache.seatunnel.api.sink.DefaultSaveModeHandler.handleSchemaSaveMode(DefaultSaveModeHandler.java:88) 148 at org.apache.seatunnel.api.sink.SaveModeHandler.handleSaveMode(SaveModeHandler.java:40) 149 at org.apache.seatunnel.api.sink.SaveModeExecuteWrapper.execute(SaveModeExecuteWrapper.java:36) 150 at org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:524) 151 ... 21 more 152 153 at com.hazelcast.spi.impl.AbstractInvocationFuture.wrapInCompletionException(AbstractInvocationFuture.java:1347) 154 at com.hazelcast.spi.impl.AbstractInvocationFuture.cascadeException(AbstractInvocationFuture.java:1340) 155 at com.hazelcast.spi.impl.AbstractInvocationFuture.access$200(AbstractInvocationFuture.java:65) 156 at com.hazelcast.spi.impl.AbstractInvocationFuture$ApplyNode.execute(AbstractInvocationFuture.java:1478) 157 at com.hazelcast.spi.impl.AbstractInvocationFuture.unblockOtherNode(AbstractInvocationFuture.java:797) 158 at com.hazelcast.spi.impl.AbstractInvocationFuture.unblockAll(AbstractInvocationFuture.java:759) 159 at com.hazelcast.spi.impl.AbstractInvocationFuture.complete0(AbstractInvocationFuture.java:1235) 160 at com.hazelcast.spi.impl.AbstractInvocationFuture.completeExceptionallyInternal(AbstractInvocationFuture.java:1223) 161 at com.hazelcast.spi.impl.AbstractInvocationFuture.completeExceptionally(AbstractInvocationFuture.java:709) 162 at com.hazelcast.client.impl.spi.impl.ClientInvocation.completeExceptionally(ClientInvocation.java:294) 163 at com.hazelcast.client.impl.spi.impl.ClientInvocation.notifyExceptionWithOwnedPermission(ClientInvocation.java:321) 164 at com.hazelcast.client.impl.spi.impl.ClientInvocation.notifyException(ClientInvocation.java:304) 165 at com.hazelcast.client.impl.spi.impl.ClientResponseHandlerSupplier.handleResponse(ClientResponseHandlerSupplier.java:164) 166 at com.hazelcast.client.impl.spi.impl.ClientResponseHandlerSupplier.process(ClientResponseHandlerSupplier.java:141) 167 at com.hazelcast.client.impl.spi.impl.ClientResponseHandlerSupplier.access$300(ClientResponseHandlerSupplier.java:60) 168 at com.hazelcast.client.impl.spi.impl.ClientResponseHandlerSupplier$DynamicResponseHandler.accept(ClientResponseHandlerSupplier.java:251) 169 at com.hazelcast.client.impl.spi.impl.ClientResponseHandlerSupplier$DynamicResponseHandler.accept(ClientResponseHandlerSupplier.java:243) 170 at com.hazelcast.client.impl.connection.tcp.TcpClientConnection.handleClientMessage(TcpClientConnection.java:245) 171 at com.hazelcast.client.impl.protocol.util.ClientMessageDecoder.handleMessage(ClientMessageDecoder.java:135) 172 at com.hazelcast.client.impl.protocol.util.ClientMessageDecoder.onRead(ClientMessageDecoder.java:89) 173 at com.hazelcast.internal.networking.nio.NioInboundPipeline.process(NioInboundPipeline.java:136) 174 at com.hazelcast.internal.networking.nio.NioThread.processSelectionKey(NioThread.java:383) 175 at com.hazelcast.internal.networking.nio.NioThread.processSelectionKeys(NioThread.java:368) 176 at com.hazelcast.internal.networking.nio.NioThread.selectLoop(NioThread.java:294) 177 at com.hazelcast.internal.networking.nio.NioThread.executeRun(NioThread.java:249) 178 at com.hazelcast.internal.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:102) 179 Caused by: org.apache.seatunnel.engine.common.exception.JobException: org.apache.seatunnel.common.exception.SeaTunnelRuntimeException: ErrorCode:[API-09], ErrorDescription:[Handle save mode failed] 180 at org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:526) 181 at org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:532) 182 at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) 183 at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) 184 at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) 185 at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) 186 at java.util.Iterator.forEachRemaining(Iterator.java:116) 187 at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) 188 at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) 189 at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) 190 at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) 191 at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) 192 at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 193 at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) 194 at org.apache.seatunnel.engine.server.master.JobMaster.init(JobMaster.java:255) 195 at org.apache.seatunnel.engine.server.CoordinatorService.lambda$submitJob$6(CoordinatorService.java:649) 196 at org.apache.seatunnel.api.tracing.MDCRunnable.run(MDCRunnable.java:43) 197 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 198 at java.util.concurrent.FutureTask.run(FutureTask.java:266) 199 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 200 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 201 at java.lang.Thread.run(Thread.java:748) 202 Caused by: java.lang.UnsupportedOperationException 203 at org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.dm.DamengCatalog.createDatabaseInternal(DamengCatalog.java:73) 204 at org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.AbstractJdbcCatalog.createDatabase(AbstractJdbcCatalog.java:503) 205 at org.apache.seatunnel.api.sink.DefaultSaveModeHandler.createTablePreCheck(DefaultSaveModeHandler.java:186) 206 at org.apache.seatunnel.connectors.seatunnel.jdbc.sink.savemode.JdbcSaveModeHandler.createTable(JdbcSaveModeHandler.java:47) 207 at org.apache.seatunnel.api.sink.DefaultSaveModeHandler.createSchemaWhenNotExist(DefaultSaveModeHandler.java:129) 208 at org.apache.seatunnel.api.sink.DefaultSaveModeHandler.handleSchemaSaveMode(DefaultSaveModeHandler.java:88) 209 at org.apache.seatunnel.api.sink.SaveModeHandler.handleSaveMode(SaveModeHandler.java:40) 210 at org.apache.seatunnel.api.sink.SaveModeExecuteWrapper.execute(SaveModeExecuteWrapper.java:36) 211 at org.apache.seatunnel.engine.server.master.JobMaster.handleSaveMode(JobMaster.java:524) 212 ... 21 more 213 214 at org.apache.seatunnel.engine.server.CoordinatorService.lambda$submitJob$6(CoordinatorService.java:656) 215 at org.apache.seatunnel.api.tracing.MDCRunnable.run(MDCRunnable.java:43) 216 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 217 at java.util.concurrent.FutureTask.run(FutureTask.java:266) 218 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 219 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 220 at java.lang.Thread.run(Thread.java:748)
但进一步研究源码发现,其他针对达梦是有创建表相关的逻辑,数据库名如果配置不对,导致SeaTunnel执行创建数据逻辑,由于达梦数据库跟oracle类似跟实例是一一对应,抛出异常属正常现象。
数据库名称可以通过sql查询获得:select name from v$database; 然后配置到database节点。
@Override protected String getListDatabaseSql() { return "SELECT name FROM v$database"; } @Override protected String getCreateTableSql( TablePath tablePath, CatalogTable table, boolean createIndex) { return new DamengCreateTableSqlBuilder(table, createIndex).build(tablePath); } @Override protected String getDropTableSql(TablePath tablePath) { return String.format("DROP TABLE %s", getTableName(tablePath)); } @Override protected String getTableName(TablePath tablePath) { return tablePath.getSchemaAndTableName("\""); } @Override protected String getListTableSql(String databaseName) { return "SELECT OWNER, TABLE_NAME FROM ALL_TABLES"; } @Override protected String getTableName(ResultSet rs) throws SQLException { return rs.getString(1) + "." + rs.getString(2); }
附上可以正确执行的配置文件供参考,该示例为SeaTunnel使用批处理方式从MySQL同步数据到达梦数据,单表全量同步自动判断表名是否存在,不存在将自动在目标库创建表:
env { job.mode = "BATCH" # 批处理模式 execution.parallelism = 2 # 并行度 } source { Jdbc { url = "jdbc:mysql://192.168.*.*:3307/fsum?rewriteBatchedStatements=true" # 达梦连接地址 driver = "com.mysql.cj.jdbc.Driver" user = "root" password = "*****" query = "SELECT * FROM um_event where db_status=1" # 源表查询 } } transform {} sink { Jdbc { url = "jdbc:dm://192.168.*.*:5236/FSUM" # 启用批量插入 driver = "dm.jdbc.driver.DmDriver" user = "FSUM" password = "*****" database="DAMENG" #如果需要自动建表,这个数据库一定要配置正确,注意不是模式名称 table = "FSUM.UM_EVENT" # 目标表名(自动建表) generate_sink_sql = true batch_size = 1000 # 每批次插入1000条 schema_save_mode = "CREATE_SCHEMA_WHEN_NOT_EXIST" #"ERROR_WHEN_SCHEMA_NOT_EXIST" data_save_mode = "APPEND_DATA" primary_keys =["ID"] } }
浙公网安备 33010602011771号