BigQuery 支持分区表和表聚类。如需详细了解 BigQuery 中的分区和集群,请参阅分区表简介以及创建和使用聚类表。
准备工作
所需的角色
如需获取配置表分区和集群所需的权限,请让管理员向您授予工作区的 Dataform Editor (roles/dataform.editor
) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限。
创建表分区
如需创建表分区,请将 BigQuery partition_expression 添加到表定义 SQLX 文件中的 bigquery
块。
如需创建表分区,请按以下步骤操作:
- 转到开发工作区。
- 在 Files 窗格中,展开
definitions/
。 - 打开表定义 SQLX 文件。
在
config
代码块中,按以下格式在表类型声明下方添加bigquery
代码块:config { type: "table", bigquery: { } }
在
bigquery
代码块中,输入以下代码段:partitionBy: "PARTITION_EXPRESSION"
将 PARTITION_EXPRESSION 替换为用于对表进行分区的表达式。
可选:点击格式。
以下代码示例展示了如何在表定义 SQLX 文件中按小时对表进行分区:
config {
type: "table",
bigquery: {
partitionBy: "DATETIME_TRUNC(<timestamp_column>, HOUR)"
}
}
以下代码示例展示了如何在表定义 SQLX 文件中按整数值对表进行分区:
config {
type: "table",
bigquery: {
partitionBy: "RANGE_BUCKET(<integer_column>, GENERATE_ARRAY(0, 1000000, 1000))"
}
}
设置分区过滤条件
如需详细了解 BigQuery 中的分区过滤条件,请参阅对分区表设置 require 分区过滤条件特性。
如需设置分区过滤条件,请按以下步骤操作:
- 转到开发工作区。
- 在 Files 窗格中,展开
definitions/
。 - 打开分区表定义 SQLX 文件。
在
bigquery
代码块中,输入以下代码段:requirePartitionFilter : true
可选:点击格式。
以下代码示例展示了在分区表 SQLX 文件的 bigquery
块中设置的分区过滤条件:
config {
type: "table",
bigquery: {
partitionBy: "DATE(ts)",
requirePartitionFilter : true
}
}
SELECT CURRENT_TIMESTAMP() AS ts
设置分区的保留期限
如需控制分区表中所有分区的保留,请按以下步骤操作:
- 转到开发工作区。
- 在 Files 窗格中,展开
definitions/
。 - 打开分区表定义 SQLX 文件。
在
bigquery
代码块中,输入以下代码段:partitionExpirationDays: NUMBER_OF_DAYS
将 NUMBER_OF_DAYS 替换为您要保留分区的天数。
可选:点击格式。
以下代码示例展示了分区表 SQLX 文件的 bigquery
块中设置为 14 天的分区的保留期限:
config {
type: "table",
bigquery: {
partitionBy: "DATE(ts)",
partitionExpirationDays: 14,
}
}
SELECT CURRENT_TIMESTAMP() AS ts
创建表集群
如需创建表集群,请将 BigQuery clustering_column_list 添加到表定义 SQLX 文件中的 bigquery
块。
如需创建表集群,请按以下步骤操作:
- 转到开发工作区。
- 在 Files 窗格中,展开
definitions/
。 - 打开表定义 SQLX 文件。
在
bigquery
代码块中,输入以下代码段:clusterBy: ["CLUSTER_COLUMN"]
将 CLUSTER_COLUMN 替换为您要对表进行聚类所依据的列的名称。
可选:点击格式。
以下代码示例展示了按 name
和 revenue
列进行聚类的分区表:
config {
type: "table",
bigquery: {
partitionBy: "DATE(ts)",
clusterBy: ["name", "revenue"]
}
}
SELECT CURRENT_TIMESTAMP() as ts, name, revenue
后续步骤
- 如需了解如何通过 include 重复使用代码,请参阅通过 include 重复使用变量和函数。
- 如需了解如何配置增量表,请参阅配置增量表。