将 CSV 文件导入 Spanner 时出错(解析日期)

问题描述 投票:0回答:1

我开始遵循 gcp 的官方文档,以便将我的 csv 数据导入到云扳手 Spanner 上的实例,但我收到此错误:

 *Error java.time.format.DateTimeParseException: Text '2024-05-30THH24:16:30.892' could not be parsed at index 10* 

我正在使用此命令生成 csv 文件:

psql -h localhost -U myuser -d mydatabase -c 
"Copy (SELECT id, TO_CHAR(created_at, 'YYYY-MM-DD"T"HH24:MI:SS.MS') AS created_at FROM mytable) To STDOUT With CSV DELIMITER ',';" > /mycarpet/.csv

桌子有这样的配置:

id character varying(10) NOT NULL,
created_by character varying(50),

在我设置的作业配置上:dateFormat=yyyy-MM-dd hh:mm:s

有什么想法,我该如何解决这个问题吗?

postgresql google-cloud-platform cloud google-cloud-dataflow google-cloud-spanner
1个回答
0
投票

问题似乎是从 PostgreSQL 导出导致生成无效数据。导入作业抱怨

'2024-05-30THH24:16:30.892'
不是有效的日期/时间字符串,这显然是正确的结论。您的导出似乎将固定字符串
HH24
写入文件,而不是实际的小时。

我建议您手动检查:

  1. 您的导出文件中有什么。
  2. 在 psql 中运行
    SELECT id, TO_CHAR(created_at, 'YYYY-MM-DD"T"HH24:MI:SS.MS') AS created_at FROM mytable
    时的输出是什么。

提示: 当您似乎尝试将数据从 PostgreSQL 数据库复制到 Spanner PostgreSQL 数据库时,您也可以使用 PGAdapter 直接复制它,而无需通过 csv 文件。请参阅此示例了解如何执行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.