BigQuery - 物化视图

除了创建表和视图之外,BigQuery 还简化了物化视图的创建。

什么是物化视图?

物化视图类似于表,因为它是数据的"快照"。但是,物化视图的不同之处在于,真正的物化视图将动态更新 - 所有这些都无需运行查询。

物化视图的类型

广义上,有两种物化视图 −

  • 已保存为表的视图,并将从外部源定期更新。
  • 在 BigQuery Studio 中创建的"真正"物化视图。

以下是第一种视图的示例架构 −

  • SQL 查询现有视图
  • 在 Python 脚本中,该视图将转换为数据框
  • 数据框已上传到 BigQuery
  • 物化视图将被附加或覆盖

由于上述内容概述了一个多步骤的过程,BigQuery 简化了物化视图的创建和维护。

创建 BigQuery 物化视图

用户可以通过运行 CREATE MATERIALIZED VIEW SQL 语句,然后运行 −

  • Project
  • Dataset
  • New mv name
  • SQL statement

示例

以下是将包含假设销售数据的现有表具体化的示例 −

创建 BigQuery 物化视图

请注意以下限制,根据 BigQuery 文档 −

  • 每个表在数据集内最多只能有 20 个物化视图
  • 一个项目内只能有 100 个物化视图
  • 一个组织内只能有 500 个物化视图

在 BigQuery 中编写一个简单的 SQL 脚本

现在将所有内容放在一起,是时候编写一个简单的脚本来 −

  • 利用动态变量
  • 删除昨天的数据
  • 将新数据插入表中
  • 使用查询选择/加载数据

到目前为止尚未涉及的一个领域是如何在 SQL 脚本中定义和使用变量。

在 BigQuery 中,变量语法如下 −

DECLARE variable_name TYPE DEFAULT function used to create dynamic variable

作为示例

DECLARE 昨天 DATE DEFAULT DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)

我们将这样开始以下脚本,该脚本从 Austin bike share 分区表中删除以前的数据并仅插入最新数据。

在 BigQuery 中编写简单的 SQL 脚本

在 BigQuery 中运行此脚本时,由于有分号,SQL 引擎将分阶段运行。单击"查看结果"即可查看最终结果。

在 BigQuery 中编写一个简单的 SQL 脚本

单击"查看结果"会生成此输出。

在 BigQuery 中编写一个简单的 SQL 脚本

最后,我们可以看到添加到表中的新行。

新行添加到表