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 中的分区过滤条件,请参阅对分区表设置“要求分区过滤条件”属性。
如需设置分区过滤器,请按以下步骤操作:
- 转到您的开发工作区。
- 在 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
后续步骤
- 如需了解如何使用包含代码重复使用代码,请参阅通过包含变量重用变量和函数。
- 如需了解如何配置增量表,请参阅配置增量表。