gpt4 book ai didi

java - 流式传输到 BigQuery 表的数据何时可用于查询操作?

转载 作者:行者123 更新时间:2023-11-29 04:34:03 26 4
gpt4 key购买 nike

我有一个用例,我在其中执行以下操作:

  1. 将一些行插入日期分区的 BigQuery 表 (t1)。
  2. 在 t1 上运行一些查询以聚合数据并将它们存储在另一个表中。

在上述用例中,我今天遇到了一个问题,即我运行的查询在聚合数据中存在一些差异。当我稍后从 BigQuery 的 Web UI 执行相同的查询时,聚合很好。我怀疑某些插入的行不可用于查询。

我读了this BigQuery 数据可用性的文档。对此我有以下疑惑:

  1. 该链接表示“流式数据在第一次流式插入表后几秒内可用于实时分析”。在可用于实时分析之前等待的秒数是否有上限?
  2. 来自同一链接:“数据最多可能需要 90 分钟才能用于复制和导出操作”。以下操作是否受到此限制?
    • 将查询结果复制到另一个表
    • 将查询结果导出到云存储中的 csv 文件
  3. 同样来自同一链接 - “当流式传输到分区表时,流式缓冲区中的数据的 _PARTITIONTIME 伪列为 NULL 值”。这是否意味着我不应该在查询中使用 _PARTITIONTIME,直到数据出现在 streamingBuffer 中?

有人可以澄清一下吗?

最佳答案

您可以使用 _PARTITIONTIME is null 来检测哪些行在缓冲区中。您实际上可以使用此逻辑将此缓冲区进一步 UNION 到您希望的日期(如今天)。您可以连接一些读取缓冲区的逻辑,并且在时间为空的情况下,它将为其余的查询逻辑设置一个时间。

这个缓冲区在设计上有点延迟,但如果您需要立即访问数据,您需要使用 IS NULL 技巧才能查询它。

关于java - 流式传输到 BigQuery 表的数据何时可用于查询操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42528967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com