在 BigQuery Cloud Shell 中从 Google 表格创建外部表格时,如何选择默认表格(第一张表格)以外的表格?
Posted
技术标签:
【中文标题】在 BigQuery Cloud Shell 中从 Google 表格创建外部表格时,如何选择默认表格(第一张表格)以外的表格?【英文标题】:How to select a sheet other than the default (first sheet) when creating external tables from Google Sheet in BigQuery Clould Shell? 【发布时间】:2020-02-20 13:17:26 【问题描述】:我从 BigQuery Cloud Shell 中的 Google Sheet 链接创建了一个表定义文件,然后使用该表定义文件创建了一个外部表。 Google Sheet 工作簿有多个工作表,但默认情况下它基于第一个工作表创建外部表。我也想从其他表格制作表格,但是将定义表格引用的参数添加到表格定义文件不起作用 - 我没有找到原因。
我创建了定义文件:
bq mkdef \
--autodetect \
--source_format=GOOGLE_SHEETS \
https://docs.google.com/spreadsheets/d/1H9fgHbn_ztDgZZyEy4TXV7DOsBto6xI2Aey1iDeg4YA/edit#gid=2054000496 > table_def
定义文件如下所示:
"autodetect": true,
"sourceFormat": "GOOGLE_SHEETS",
"sourceUris": [
"https://docs.google.com/spreadsheets/d/1H9fgHbn_ztDgZZyEy4TXV7DOsBto6xI2Aey1iDeg4YA/edit#gid=2054000496"
]
我通过添加工作表引用更改了定义文件:
"autodetect": true,
"sourceFormat": "GOOGLE_SHEETS",
"sourceUris": [
"https://docs.google.com/spreadsheets/d/1H9fgHbn_ztDgZZyEy4TXV7DOsBto6xI2Aey1iDeg4YA/edit#gid=2054000496"
],
"range" : "Sheet2!A1:Z100"
并创建了外部表:
bq mk \
--external_table_definition=table_def \
myproject-bq:my_dataset.test_table
但是,表格是基于默认的 Sheet1 而不是指定的 Sheet2 创建的。
我尝试使用/不使用单元格范围定义,使用/不使用工作表定义的引号。
在 BigQuery Cloud Shell 中从 Google 表格创建外部表格时,如何选择默认表格以外的表格(第一张表格)?
【问题讨论】:
您能否尝试以下列格式提供详细信息: "autodetect": false, "sourceFormat": "GOOGLE_SHEETS", "sourceUris": [ "docs.google.com/spreadsheets/d/xxxxxxxxxxxxxx" ], "maxBadRecords": 1、“googleSheetsOptions”:“范围”:“test_sheet!A1:B20”,“skipLeadingRows”:0 谢谢,成功了! “googleSheetsOptions”是范围定义中缺少的部分。 我会将其粘贴为答案,这样其他人就不会继续在 cmets 中搜索,他们可以直接查看它。请接受。 【参考方案1】:定义的范围应在 JSON 格式的“googleSheetsOptions”中。请参阅下文。
"autodetect": false, "sourceFormat": "GOOGLE_SHEETS", "sourceUris": [ "docs.google.com/spreadsheets/d/xxxxxxxxxxxxxx" ], "maxBadRecords": 1, "googleSheetsOptions": "range": "test_sheet!A1:B20", "skipLeadingRows": 0
【讨论】:
以上是关于在 BigQuery Cloud Shell 中从 Google 表格创建外部表格时,如何选择默认表格(第一张表格)以外的表格?的主要内容,如果未能解决你的问题,请参考以下文章