当前用于 BigQuery 的 python Apache Beam SDK 中存在一个 bug,它将 BQ
TIMESTAMP
错误地转换为 BQ DATETIME
。这似乎已被修复,但我有一种感觉,它可能是预发布版本,而不是最新的稳定版本(2.49.0)。
这出现在描述转换时输入/输出架构不匹配的错误中。此错误仅在使用存储写入 API 时发生。旧版流媒体 API 工作正常。
SDK 将
LOGICAL_TYPE<beam:logical_type:micros_instant:v1>
转换为 DATETIME
,而不是 TIMESTAMP
。我想知道在(相对)新的错误修复之前是否有人找到了解决方法?
对于遇到相同问题的任何人,请在写入 BigQuery 之前添加此行
# imports
from apache_beam.typehints.schemas import LogicalType, MillisInstant
# logical type mapping
LogicalType.register_logical_type(MillisInstant)
Apache Beam 开发人员已经意识到这个问题,并正在努力寻找更永久的解决方案。