BigQuery 支持分区表和表聚簇。如需详细了解 BigQuery 中的分区和集群,请参阅分区表简介和创建和使用聚簇表。
准备工作
所需的角色
如需获得配置表分区和集群所需的权限,请让您的管理员向您授予工作区的 Dataform Editor (roles/dataform.editor
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
创建表分区
如需创建表分区,请将 BigQuery partition_expression 添加到表定义 SQLX 文件中的 bigquery
块。
如需创建表分区,请按以下步骤操作:
- 前往您的开发工作区。
- 在文件窗格中,展开
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 partition filter 属性。
如需设置分区过滤条件,请按以下步骤操作:
- 前往您的开发工作区。
- 在文件窗格中,展开
definitions/
。 - 打开分区表定义 SQLX 文件。
在
bigquery
代码块中,输入以下代码段:requirePartitionFilter : true
可选:点击格式。
以下代码示例展示了在分区表 SQLX 文件的 bigquery
块中设置的分区过滤器:
config {
type: "table",
bigquery: {
partitionBy: "DATE(ts)",
requirePartitionFilter : true
}
}
SELECT CURRENT_TIMESTAMP() AS ts
为分区设置保留期限
如需控制分区表中所有分区的保留期限,请按以下步骤操作:
- 前往您的开发工作区。
- 在文件窗格中,展开
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
块。
如需创建表集群,请按以下步骤操作:
- 前往您的开发工作区。
- 在文件窗格中,展开
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
后续步骤
- 如需了解如何使用包含文件重复使用代码,请参阅使用包含文件在单个代码库中重复使用代码。
- 如需了解如何配置增量表,请参阅配置增量表。