如何从手动分区的 BigQuery 表中引用最新表

Posted

技术标签:

【中文标题】如何从手动分区的 BigQuery 表中引用最新表【英文标题】:How to reference the latest table from a manually partitioned BigQuery table 【发布时间】:2019-02-04 16:19:15 【问题描述】:

我们有一个手动分区的“视频元数据”表,每天都会提供新数据。在我们的系统中,仅出于历史原因保留旧数据,因为最新数据是最新的。

我们想不通的是如何使用 LookML 仅引用此表中的最新分区。

到目前为止,我们已经尝试在 BigQuery 中存储视图。我们已经尝试在标准和旧版 SQL 中将简单的“获取最新分区”查询存储为视图,但在一些搜索中,这似乎是设计使然,即使错误消息指出“未找到数据集”而不是更相关的东西。

我们也尝试在 Looker 中构建过滤功能,但我们无法让事情真正发挥作用,并且只能通过它返回最新数据。

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我们已经设法找到解决方案,派生表

我们认为,由于我们无法在 BigQuery 端定义视图,因此可以在 Looker 端进行,因此我们在视图内的 derived table 块中定义了表。

derived_table: 
    sql: SELECT * FROM dataset.table_*
         WHERE _TABLE_SUFFIX = (
             SELECT max(_TABLE_SUFFIX) FROM dataset.table_*
         );;
    sql_trigger_value: SELECT max(_TABLE_SUFFIX) FROM dataset.table_*;;

这为我们提供了一个仅包含最新数据的视图。

【讨论】:

以上是关于如何从手动分区的 BigQuery 表中引用最新表的主要内容,如果未能解决你的问题,请参考以下文章

从 BigQuery 中的最新表分区通配符查询

Google BigQuery:仅从最新表中选择

使 BigQuery 表数据保持最新

如何禁止向BigQuery加载重复的行?

如何根据某些过滤条件从 bigquery 导出数据

从具有多个分区列的配置单元表中获取最新数据