【发布时间】: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