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

时间:2019-02-04 16:19:16

标签: sql google-bigquery looker

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

我们无法确定的是如何使用LookML仅引用此表中的最新分区。

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

我们还尝试将过滤器内置到Looker中,但是我们无法使事情真正生效,并且只能通过它返回最新数据。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:5)

我们设法找到了一种解决方案,派生表

我们发现,由于无法在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_*;;
}

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