【问题标题】:How can we save a timestamp with each row inserted into BigQuery?我们如何保存插入 BigQuery 的每一行的时间戳?
【发布时间】:2021-11-17 18:26:37
【问题描述】:

有功能请求here 提出了这个问题,但我能找到的最佳解决方案是“在表架构中添加一个 TIMESTAMP 列,并在您的 json 有效负载中分配“AUTO”。使用“AUTO”键也就是说,系统会代表用户将列值设置为墙上的时间戳"

有没有办法在不改变payload的情况下做到这一点?

【问题讨论】:

    标签: google-cloud-platform google-bigquery timestamp streaming


    【解决方案1】:

    你不能在摄取时这样做,你需要在这样做之后重新处理你的数据。


    但是,您可以作弊。您可以创建一个table partitioned by ingestion time,因为您想要的时间戳是数据插入 BigQuery 的时间。

    然后,当您查询(或者您可以创建视图)时,您可以使用伪列 _PARTITIONTIME 来获取该摄取时间值。

    【讨论】:

    • 不幸的是,业务逻辑要求对表进行不同的分区。我发现的解决方法是使用代码本身中的“AUTO”功能将时间戳字段提取到 Bigquery。例如:row.set("timestamp_field", "AUTO");
    猜你喜欢
    • 2014-07-04
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    • 2017-10-05
    • 2019-12-09
    • 2015-06-23
    相关资源
    最近更新 更多