apache/seatunnel

[Bug] [oss-sink] parquet_avro_write_timestamp_as_int96 An error occurs when the name of the datetime-type field is in uppercase

Open

Aperta il 22 mag 2026

Vedi su GitHub
 (2 commenti) (0 reazioni) (0 assegnatari)Java (6897 star) (1432 fork)batch import
bughelp wanted

Descrizione

Search before asking

  • I had searched in the issues and found no similar issues.

What happened

服务:mysql测试数据 数据表: db.xxxxx_channel_url datetime数据列: createTime datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'

sink输出添加参数parquet_avro_write_timestamp_as_int96 = true,为了解决hive读取datetime问题(不添加参数只能是int类型)

SeaTunnel Version

2.3.13

SeaTunnel Config

env {
  parallelism = 1
  job.mode = "BATCH"
}

source {
  Jdbc {
    user="XXX"
    password="XXX"
    url="jdbc:mysql://mysql-test.internal.enlightent.com:3306/crawler?serverTimezone=GMT%2b8"
    driver = "com.mysql.cj.jdbc.Driver"
    query = "SELECT `createTime` FROM xxxx_channel_url"    
    }
}

sink {
  OssFile {
    path="/st_test/20260317"
    bucket = "oss://zlw-test-2"
    access_key = "xxx"
    access_secret = "xxx"
    endpoint = "oss-cn-beijing-internal.aliyuncs.com"
    file_format_type = "parquet"
    "compress_codec": "zstd"
    "data_save_mode": "DROP_DATA"
    parquet_avro_write_timestamp_as_int96 = true
  }
}

Running Command

*****

Error Exception

2026-05-22 10:56:34,228 ERROR [a.s.m.MultiTableWriterRunnable] [st-multi-table-sink-writer-1] - MultiTableWriterRunnable error when write row SeaTunnelRow{tableId=db.xxx_channel_url, kind=+I, fields=[qq, tv, channel, sort=79&itype=12, , , 20, 4, tv, 0, 2025-06-24T17:39:36]}
java.lang.NullPointerException: null
	at org.apache.seatunnel.connectors.seatunnel.file.sink.writer.ParquetWriteStrategy.resolveObject(ParquetWriteStrategy.java:255) ~[connector-file-oss-2.3.13.jar:2.3.13]
	at org.apache.seatunnel.connectors.seatunnel.file.sink.writer.ParquetWriteStrategy.write(ParquetWriteStrategy.java:129) ~[connector-file-oss-2.3.13.jar:2.3.13]
	at org.apache.seatunnel.connectors.seatunnel.file.sink.BaseFileSinkWriter.write(BaseFileSinkWriter.java:158) ~[connector-file-oss-2.3.13.jar:2.3.13]
	at org.apache.seatunnel.connectors.seatunnel.file.sink.BaseFileSinkWriter.write(BaseFileSinkWriter.java:51) ~[connector-file-oss-2.3.13.jar:2.3.13]
	at org.apache.seatunnel.api.sink.multitablesink.MultiTableWriterRunnable.run(MultiTableWriterRunnable.java:67) [seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.api.tracing.MDCRunnable.run(MDCRunnable.java:43) [seatunnel-starter.jar:2.3.13]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_412]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_412]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_412]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_412]
	at java.lang.Thread.run(Thread.java:750) [?:1.8.0_412]
2026-05-22 10:56:34,695 WARN  [o.a.s.e.s.TaskExecutionService] [BlockingWorker-TaskGroupLocation{jobId=1110038417443389441, pipelineId=1, taskGroupId=3}] - [localhost]:5803 [seatunnel-556308] [5.1] Exception in org.apache.seatunnel.engine.server.task.TransformSeaTunnelTask@3a3a8121
java.lang.RuntimeException: java.lang.RuntimeException: table crawler.crawler_channel_url sink throw error
	at org.apache.seatunnel.engine.server.task.flow.SinkFlowLifeCycle.received(SinkFlowLifeCycle.java:304) ~[seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.engine.server.task.flow.SinkFlowLifeCycle.received(SinkFlowLifeCycle.java:70) ~[seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.engine.server.task.SeaTunnelTransformCollector.collect(SeaTunnelTransformCollector.java:39) ~[seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.engine.server.task.SeaTunnelTransformCollector.collect(SeaTunnelTransformCollector.java:27) ~[seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.engine.server.task.group.queue.IntermediateBlockingQueue.handleRecord(IntermediateBlockingQueue.java:82) ~[seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.engine.server.task.group.queue.IntermediateBlockingQueue.collect(IntermediateBlockingQueue.java:56) ~[seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.engine.server.task.flow.IntermediateQueueFlowLifeCycle.collect(IntermediateQueueFlowLifeCycle.java:51) ~[seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.engine.server.task.TransformSeaTunnelTask.collect(TransformSeaTunnelTask.java:72) ~[seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.engine.server.task.SeaTunnelTask.stateProcess(SeaTunnelTask.java:165) ~[seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.engine.server.task.TransformSeaTunnelTask.call(TransformSeaTunnelTask.java:77) ~[seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.engine.server.TaskExecutionService$BlockingWorker.run(TaskExecutionService.java:683) [seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.engine.server.TaskExecutionService$NamedTaskWrapper.run(TaskExecutionService.java:1012) [seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.api.tracing.MDCRunnable.run(MDCRunnable.java:43) [seatunnel-starter.jar:2.3.13]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_412]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_412]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_412]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_412]
	at java.lang.Thread.run(Thread.java:750) [?:1.8.0_412]
Caused by: java.lang.RuntimeException: table crawler.crawler_channel_url sink throw error
	at org.apache.seatunnel.api.sink.multitablesink.MultiTableSinkWriter.subSinkErrorCheck(MultiTableSinkWriter.java:141) ~[seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.api.sink.multitablesink.MultiTableSinkWriter.write(MultiTableSinkWriter.java:221) ~[seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.api.sink.multitablesink.MultiTableSinkWriter.write(MultiTableSinkWriter.java:48) ~[seatunnel-starter.jar:2.3.13]
	at org.apache.seatunnel.engine.server.task.flow.SinkFlowLifeCycle.received(SinkFlowLifeCycle.java:270) ~[seatunnel-starter.jar:2.3.13]
	... 17 more
Caused by: java.lang.NullPointerException
	at org.apache.seatunnel.connectors.seatunnel.file.sink.writer.ParquetWriteStrategy.resolveObject(ParquetWriteStrategy.java:255) ~[connector-file-oss-2.3.13.jar:2.3.13]
	at org.apache.seatunnel.connectors.seatunnel.file.sink.writer.ParquetWriteStrategy.write(ParquetWriteStrategy.java:129) ~[connector-file-oss-2.3.13.jar:2.3.13]
	at org.apache.seatunnel.connectors.seatunnel.file.sink.BaseFileSinkWriter.write(BaseFileSinkWriter.java:158) ~[connector-file-oss-2.3.13.jar:2.3.13]
	at org.apache.seatunnel.connectors.seatunnel.file.sink.BaseFileSinkWriter.write(BaseFileSinkWriter.java:51) ~[connector-file-oss-2.3.13.jar:2.3.13]
	at org.apache.seatunnel.api.sink.multitablesink.MultiTableWriterRunnable.run(MultiTableWriterRunnable.java:67) ~[seatunnel-starter.jar:2.3.13]

Zeta or Flink or Spark Version

zeta

Java or Scala Version

Screenshots

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Guida contributor