BigQuery - 物化视图
除了创建表和视图之外,BigQuery 还简化了物化视图的创建。
什么是物化视图?
物化视图类似于表,因为它是数据的"快照"。但是,物化视图的不同之处在于,真正的物化视图将动态更新 - 所有这些都无需运行查询。
物化视图的类型
广义上,有两种物化视图 −
- 已保存为表的视图,并将从外部源定期更新。
- 在 BigQuery Studio 中创建的"真正"物化视图。
以下是第一种视图的示例架构 −
- SQL 查询现有视图
- 在 Python 脚本中,该视图将转换为数据框
- 数据框已上传到 BigQuery
- 物化视图将被附加或覆盖
由于上述内容概述了一个多步骤的过程,BigQuery 简化了物化视图的创建和维护。
创建 BigQuery 物化视图
用户可以通过运行 CREATE MATERIALIZED VIEW SQL 语句,然后运行 −
- Project
- Dataset
- New mv name
- SQL statement
示例
以下是将包含假设销售数据的现有表具体化的示例 −
请注意以下限制,根据 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 引擎将分阶段运行。单击"查看结果"即可查看最终结果。
单击"查看结果"会生成此输出。
最后,我们可以看到添加到表中的新行。