惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MongoDB | Blog
MongoDB | Blog
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
DataBreaches.Net
腾讯CDC
GbyAI
GbyAI
I
InfoQ
博客园 - Franky
G
Google Developers Blog
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
Visual Studio Blog
Vercel News
Vercel News
博客园_首页
MyScale Blog
MyScale Blog
Martin Fowler
Martin Fowler
N
Netflix TechBlog - Medium
V
V2EX
T
The Blog of Author Tim Ferriss
M
MIT News - Artificial intelligence
雷峰网
雷峰网
H
Hackread – Cybersecurity News, Data Breaches, AI and More
大猫的无限游戏
大猫的无限游戏
The GitHub Blog
The GitHub Blog

博客园 - 漂泊雪狼

Kettel链接达梦数据 Elastic Job 入门笔记 记一次Spring boot集成mybatis错误修复过程 Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Spring Boot 框架下使用MyBatis访问数据库之基于XML配置的方式 CentOS7下载配置PostgreSQL的pgAgent运行代理作业 ElasticSearch 中文分词搜索环境搭建 学习笔记——Ubuntu下使用Docker包部署禅道任务管理系统 windows下的Redis主从集群搭建 asp.net mvc5中使用Swagger 自动生成WebApi文档笔记 Centos 7.5下搭建SVN源代码服务器 使用Fiddler 4 调用WebService 获取geometry边界范围的示例代码 使用pgrouting进行最短路径搜索 Nginx设置防止IP及非配置域名访问 java 调用c# web api 代码 一台机器部署多个tomcat服务 nginx反向代理多个服务 笔记 利用Kettle 从Excel中抽取数据写入SQLite sql server 统计信息 sql server 索引碎片相关问题
关于SeaTunnel 达梦数据迁移无法自动建表的问题
漂泊雪狼 · 2025-09-27 · via 博客园 - 漂泊雪狼

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

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