如何在BigQuery Cloud Shell中通过bq mkdef直接指定Google Sheets非默认工作表创建外部表
直接用
bq mkdef指定Google Sheets工作表,无需手动修改JSON 当然可以!你完全不需要手动编辑生成的表定义JSON文件,bq mkdef命令本身就支持通过参数直接指定Google Sheets的目标工作表。
具体命令示例
只需要在原命令基础上添加--external_table_options参数,把googleSheetsOptions的配置直接传入即可:
bq mkdef \ --noautodetect \ --source_format=GOOGLE_SHEETS \ "drive_uri" \ path_to_schema_file \ --external_table_options='{"googleSheetsOptions": {"range": "sheetB"}}' > /tmp/mytable_def.json
关键说明
--external_table_options参数专门用来传递外部表的平台特定配置,这里我们直接把googleSheetsOptions的JSON结构作为值传入,生成的/tmp/mytable_def.json会自动包含这个配置段,省去手动修改的步骤。- 注意
source_format必须指定为GOOGLE_SHEETS(这是BigQuery支持的官方源格式值),不能用占位符。 - 如果你的Shell环境对单引号处理有问题,可以把JSON内容用双引号包裹,同时转义内部的双引号,比如:
--external_table_options="{\"googleSheetsOptions\": {\"range\": \"sheetB\"}}"
除此之外,这个参数还支持配置Google Sheets的其他选项,比如跳过表头行:
--external_table_options='{"googleSheetsOptions": {"range": "sheetB", "skipLeadingRows": 1}}'
内容的提问来源于stack exchange,提问作者denim
相关产品推荐
相关产品推荐

