apache/seatunnel

[Bug] [oss-sink] parquet_avro_write_timestamp_as_int96 datetime类型字段名称大写会报错

Open

#10928 opened on May 22, 2026

View on GitHub
 (2 comments) (0 reactions) (0 assignees)Java (6,897 stars) (1,432 forks)batch import
bughelp wanted

Description

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

Contributor guide