【问题标题】:Querying buffer/unpartitioned data using standard sql in bigquery在 bigquery 中使用标准 sql 查询缓冲区/未分区数据
【发布时间】:2020-07-02 21:05:35
【问题描述】:

(我根据How do I query the streaming buffer in BigQuery if the _PARTITIONTIME field isn't available with Standard SQL猜测我的问题没有简单的解决方案,所以我会“增强”它)


我使用时间戳字段(不是提取时间分区)将数据流式传输到 Bigquery 的分区和聚集表中。
我想要一个始终查看最后一小时数据、表中已有数据以及缓冲区中的数据的视图。
由于该表不是摄取时间分区表,因此没有伪列_PARTITIONTIME/DATE,因此无法使用它来获取缓冲区数据。
我发现的唯一方法是使用旧版 SQL: SELECT * FROM [dataset.streaming_data$__UNPARTITIONED__]
这对我来说还不够好,因为即使我将其保存为视图,我也无法从标准 SQL 查询中引用旧版 SQL 视图。
知道如何实现这一目标吗?


我正在考虑的另一个想法 - bigquery 可以有一个外部数据源(使用EXTERNAL_QUERY),我可以使用标准 SQL 进行查询。
解决方案可能是单独数据库(例如 PostgreSQL Cloud SQL)上的一些“临时”表,它只有 1 小时的数据,并且没有 bigquery 的缓冲机制。
我认为这是一个糟糕的解决方案,但我想它可能会起作用......
你怎么看?

【问题讨论】:

  • 查询结果应该已经包含缓冲区中的任何内容 - 您是否对此进行了测试?
  • 哇!谢谢 !太棒了 - 我很烦恼在没有“分区”的情况下不执行查询,以至于我一直在“循环”我已经知道的东西,没有检查。

标签: google-bigquery


【解决方案1】:

感谢@Felipe Hoffae 我刚刚发现我什么都不用做 :-) 如果 WHERE 子句中包含数据,则缓冲数据已在任何 SQL 查询中可用...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-24
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多