You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery Python客户端如何获取列级分区表分区列名过滤流式缓冲区数据

BigQuery获取列级分区表分区列名的可用方法

你可以通过以下3种方式快速获取对应表的分区列名:

  • 方法1:查询INFORMATION_SCHEMA.COLUMNS表结构元数据视图
    执行如下SQL即可直接返回分区列名称,多分区场景会返回多条结果:
    SELECT 
      column_name
    FROM 
      `你的项目ID.你的数据集名.INFORMATION_SCHEMA.COLUMNS`
    WHERE 
      table_name = '你的表名'
      AND is_partitioning_column = 'YES';
    
  • 方法2:使用bq CLI命令行工具
    执行如下命令,返回的JSON结果中,timePartitioning.field(时间类型分区表)或rangePartitioning.field(范围类型分区表)对应的取值就是分区列名:
    bq show --format=json 你的项目ID:你的数据集名.你的表名
    
  • 方法3:使用BigQuery SDK的get_table方法(以Python为例)
    之前用get_table没拿到是没访问对应属性,参考如下代码直接读取即可:
    from google.cloud import bigquery
    
    client = bigquery.Client()
    table_obj = client.get_table("你的项目ID.你的数据集名.你的表名")
    
    # 时间分区表取该属性
    partition_col = table_obj.time_partitioning.field
    # 范围分区表替换为以下代码
    # partition_col = table_obj.range_partitioning.field
    

拿到分区列名后,添加WHERE 分区列名 IS NOT NULL的过滤条件即可正常排除流式缓冲区中的未分区数据。

内容的提问来源于stack exchange,提问作者Hutch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:24:07