如何通过bq命令行设置BigQuery分区表强制过滤及后续修改
刚好我之前也折腾过这个!在bq命令行工具里,不管是创建分区表时开启Require Partition Filter,还是创建后修改这个配置,都有对应的参数可以用,具体操作如下:
创建分区表时配置Require Partition Filter
你只需要在创建分区表的命令里加上--require_partition_filter参数即可,这个参数和Web GUI里的Require Partition Filter选项完全对应。
举个最简单的日期分区表创建例子:
bq mk --time_partitioning_type=DAY \ --require_partition_filter \ your-project.your-dataset.your-partitioned-table
如果需要指定表结构(schema),可以加上--schema参数:
bq mk --time_partitioning_type=DAY \ --require_partition_filter \ --schema=id:STRING,created_at:TIMESTAMP,value:FLOAT \ your-project.your-dataset.your-partitioned-table
执行这个命令后,新创建的分区表就会强制要求查询时必须指定分区过滤条件,和Web GUI设置的效果一致。
创建表后修改Require Partition Filter选项
如果已经创建好了分区表,想要开启或者关闭这个选项,可以用bq update命令配合对应参数:
- 开启Require Partition Filter:
bq update --require_partition_filter your-project.your-dataset.your-partitioned-table
- 关闭Require Partition Filter:
用--norequire_partition_filter参数来反转设置:
bq update --norequire_partition_filter your-project.your-dataset.your-partitioned-table
修改完成后,你可以用bq show命令验证配置是否生效:
bq show --format=prettyjson your-project.your-dataset.your-partitioned-table
在输出的JSON里找到requirePartitionFilter字段,它的值会是true(开启)或false(关闭)。
内容的提问来源于stack exchange,提问作者osmumos
相关产品推荐
相关产品推荐

