【问题标题】:Import a unix timestamp in seconds from Avro to the right timestamp in Bigquery从 Avro 将 unix 时间戳(以秒为单位)导入 Bigquery 中的正确时间戳
【发布时间】:2021-02-22 13:07:14
【问题描述】:

我想将以 AVRO 格式存储的数据从 GCS 导入 Bigquery。

源时间戳是具有秒精度的 Unix 格式(例如:1572534049),但是 BQ 要求它以毫​​秒或微秒精度使用逻辑类型并将其转换为正确的 TIMESTAMP(我目前得到值在 1970-XX-XX 而不是 2021-XX-XX)。

我知道我的问题类似于以下线程: Convert unix timestamp to avro and store it in BigQuery

但是,我不能将 AVRO 文件中的列乘以 1000,因为它们是从其他地方检索然后定期存储的。看来我也无法在表架构定义中添加 *1000。

如果没有直接的方法,我会简单地将带有unix时间戳的AVRO作为一个整数导入一个中间表中,然后通过查询输出另一个具有预期列的表,但这不是最方便的。

编辑:添加示例

【问题讨论】:

    标签: google-bigquery avro


    【解决方案1】:

    您可以尝试以下解决方案来实现所需的要求。

    第 1 步:将数据以与 GCS 上可用的相同格式加载到 Bigquery。 第 2 步:在最近的表上创建一个 View 并在该视图中应用日期转换,更进一步始终参考视图以获取数据。

    替代解决方案:- 第 1 步:以与 GCS 上可用的相同格式将数据加载到 Bigquery。 第 2 步:在调用数据之前,为日期转换创建 function 并在 Unix 格式日期上应用函数。

    它将满足您的要求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-20
      相关资源
      最近更新 更多