google-bigquery - 我想要 "live materialized views",任何行的最新信息

标签 google-bigquery

我将此解决方案视为物化 View 的替代方案:

  • I want a "materialized view" of the latest records

  • 但它使用最多每 3 小时运行一次的预定查询。我的用户期待实时数据,我该怎么办?

    最佳答案

    2018-10:BigQuery 不支持 materialized views ,但您可以使用这种方法:

  • Use the previous solution “具体化”最新数据的摘要,直到计划查询运行的时间。
  • 创建一个将物化数据与仅追加表上最新数据的实时 View 相结合的 View 。

  • 代码如下所示:
    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/

    相关文章:

    sql - 填写 BigQuery 中联接表的缺失值

    google-bigquery - 具有多个 _TABLE_SUFFIX 条件的嵌套查询出现意外结果

    sql - 计算 UNIQUE 匹配值数量的语法

    google-bigquery - 如何使用基于多列的bigquery关联?

    sql - 在带有 CASE 语句的 UPDATE 上使用 LAG()

    schema - 在 Google Bigquery 中,NULL 字段会占用空间吗?

    tensorflow - tf.data.Dataset 中大量数据集的最佳数据流和处理解决方案

    sql - 验证 BigQuery 中的第一个嵌套页面行是否包含自定义维度值

    google-bigquery - 有没有办法用 BigQuery 做 LEFT JOIN LATERAL?

    google-bigquery - 在bigquery中按月显示数据