name
と type
は必須。mode
のデフォルト値は Nullable
。
$ bq mkdef --noautodetect --source_format=GOOGLE_SHEETS \
'https://docs.google.com/spreadsheets/d/1oGrz62teGmDK0OzvYNxswLd4y9Tz53d1uPJUwre84so/edit' \
schema.json > define.json
ある程度の define.json が生成される。
BigQuery コンソールにもあったスキーマの自動検出 autodetect
、ヘッダ行分スキップする skipLeadingRows
や、未知の値を許容するかの ignoreUnknownValues
などはこのドキュメントに載っている。
でも、上記に maxBadRecords
を加えたオプションしか使っていない。
$ bq mk masterdata
$ bq mk --external_table_definition=./define.json masterdata.gsheet
$ bq show masterdata.gsheet
Table project_name:masterdata.gsheet
Last modified Schema Type Total URIs Expiration Labels
----------------- --------------------------- ---------- ------------ ------------ --------
21 Jul 15:02:46 |- id: string (required) EXTERNAL 1
|- corporate_name: string
|- rate: float
|- size: integer
|- is_subscribed: boolean