我将此解决方案视为物化 View 的替代方案:
但它使用最多每 3 小时运行一次的预定查询。我的用户期待实时数据,我该怎么办?
最佳答案
2018-10:BigQuery 不支持 materialized views ,但您可以使用这种方法:
代码如下所示:
CREATE OR REPLACE VIEW `wikipedia_vt.just_latest_rows_live` AS
SELECT latest_row.*
FROM (
SELECT ARRAY_AGG(a ORDER BY datehour DESC LIMIT 1)[OFFSET(0)] latest_row
FROM (
SELECT * FROM `fh-bigquery.wikipedia_vt.just_latest_rows`
# previously "materialized" results
UNION ALL
SELECT * FROM `fh-bigquery.wikipedia_v3.pageviews_2018`
# append-only table, source of truth
WHERE datehour > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 2 DAY )
) a
GROUP BY title
)
请注意,BigQuery 可以使用
TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 2 DAY )
有效地修剪分区。
关于google-bigquery - 我想要 "live materialized views",任何行的最新信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52999709/