created: 2023-02-12T00:27:32.157Z
BigQuery の外部テーブルとして Google Sheets を使うときにヘッダ行を無視する設定
bq mk
コマンドに --external_table_definition
オプションとして定義ファイルを渡すことになる。
$ gcloud auth activate-service-account me@myproj-123456.iam.gserviceaccount.com --key-file=./functions/rw.json
$ bq mk -t --external_table_definition bigquery/schema/mytbl.def.json myds.mytbl
過去に定義をインラインで渡すことがあったが、ヘッダ行をスキップしたりあとはシートの range
を指定したりとか気の利いた設定がしたい場合は、インラインではできなくて定義ファイルが必要なようだ。
ヘッダ行をスキップする設定はこの部分。
"googleSheetsOptions": {
"skipLeadingRows": 1
}
定義ファイル全体はこんな感じ。
{
"schema": {
"fields": [
{
"name": "area_group_code",
"type": "string"
},
{
"name": "area_group_name",
"type": "string"
},
]
},
"sourceFormat": "GOOGLE_SHEETS",
"sourceUris": [
"https://docs.google.com/spreadsheets/d/xxxxxxxxxx-hPJg/edit#gid=0"
],
"googleSheetsOptions": {
"skipLeadingRows": 1
}
}