(我猜测如果我的问题没有简单的解决方案,如果_PARTITIONTIME字段在Standard SQL中不可用,则基于如何查询BigQuery中的流缓冲区),我将“增强”它)
我使用时间戳字段(而不是提取时间分区)将数据流式传输到Bigquery的分区和群集表中。
我想拥有一个始终查看最后一小时数据,表中已有数据以及缓冲区中仍存在数据的视图。
由于此表不是摄取时间分区表,因此没有伪列_PARTITIONTIME / DATE,因此我不能使用它来获取缓冲区数据。
我发现的唯一方法是使用旧版SQL: SELECT * FROM [dataset.streaming_data$__UNPARTITIONED__]
这对我来说还不够好,因为即使将其保存为视图,也无法从标准SQL查询中引用旧版SQL视图。
知道我该如何实现吗?
我正在考虑的另一个想法-bigquery可以有一个外部数据源(使用EXTERNAL_QUERY
),我可以使用标准SQL进行查询。
一个解决方案可能是在单独数据库(例如PostgreSQL Cloud SQL)上的一些“临时”表,该表仅具有1个小时的数据,并且不具有bigquery的缓冲机制。
我认为这是一个不好的解决方案,但我想它可能会起作用...
您如何看待?
多亏@Felipe Hoffae,我才发现我什么都不做:-)如果WHERE子句中包含缓冲数据,则任何SQL查询中都可以使用缓冲数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句