漂泊雪狼的博客

思考,讨论,分享C#,JavaScript,.NET,Oracle,SQL Server……技术

导航

关于SeaTunnel 达梦数据迁移无法自动建表的问题

Posted on 2025-09-27 10:33  漂泊雪狼  阅读(27)  评论(0)    收藏  举报

  当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"]
  }
}