【问题标题】:BigQuery storage write API DatetimeBigQuery 存储写入 API 日期时间
【发布时间】:2021-09-20 12:49:00
【问题描述】:

我正在尝试使用存储写入 API 将日期时间发送到 bigquery。

我的 BQ 模型有一个日期时间列。 我用 Jackson 将我的 java 模型解析为 json,解决这个问题(用转义文字尝试两种方式):

{"last_updated":"2021-09-20T10:15:26.796731"}

{"last_updated":"'2021-09-20T10:15:26.796731'"}

而 bigquery 会返回此错误。

JSONObject does not have a int64 field at root.last_updated.

正如我在文档中所读到的,它应该支持字符串文字作为日期时间:https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical#datetime_literals

【问题讨论】:

  • 嗯,你确定你正在传递 ' ' 字符串文字吗? :)
  • 更新了我的问题。我已经尝试在日期中添加单引号,同样的响应
  • 我已经复制了您的场景,并且在使用 BigQuery Storage Write API 写入 DATETIME 值时遇到了同样的问题。在issue tracker 中也提出了同样的问题。但是,我们目前无法提供 ETA,但您可以通过引用 link 来“星标”该问题以接收有关进度的自动更新并为其提供牵引力。
  • 嗨@Nacho,最新版本的java-bigquerystorage (v2.3.3) 现在支持int64 DATETIME 输入值的编码。使用 here 所示的依赖项。

标签: java google-bigquery


【解决方案1】:

有一个类似的 Github 问题:https://github.com/googleapis/java-bigquerystorage/issues/1330

它已在v2.3.3 之后得到修复。所以更新 Java 客户端库版本应该可以解决这个问题。

【讨论】:

    猜你喜欢
    • 2021-10-08
    • 1970-01-01
    • 2017-09-01
    • 2022-08-11
    • 2013-07-25
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多