bq コマンドライン ツール リファレンス
このドキュメントでは、BigQuery のコマンドライン ツールである bq
の構文、コマンド、フラグ、引数について説明します。BigQuery は使い慣れているが、特定の bq コマンドライン ツール コマンドの使用方法を理解したいと考えているユーザーを対象としています。bq コマンドライン ツールの使用方法の概要については、bq コマンドライン ツールの使用をご覧ください。
概要
bq コマンドライン ツールは、次の形式を使用します。
bq COMMAND [FLAGS] [ARGUMENTS]
フラグの中には、bq コマンドライン ツールの複数のコマンドで使用できるものがあります。これらのフラグについては、グローバル フラグで説明します。
その他のフラグはコマンド固有です。bq コマンドライン ツールの特定のコマンドでのみ使用できます。コマンド固有のフラグについては、コマンド セクションで説明します。
ブール値フラグ
bq コマンドライン ツールのフラグにはブール値をとるものがあり、そのフラグの値は true
または false
になります。bq コマンドライン ツールでは、ブール値フラグの設定に次の形式を使用できます。
値 | 形式 | 例 |
---|---|---|
true |
--FLAGNAME=true |
--debug_mode=true |
true |
--FLAGNAME |
--debug_mode |
false |
--FLAGNAME=false |
--debug_mode=false |
false |
--noFLAGNAME |
--nodebug_mode |
このドキュメントでは、ブール値フラグに --FLAGNAME=VALUE
の形式を使用します。
どのブール値フラグも省略でき、省略した場合、BigQuery ではフラグのデフォルト値が使用されます。
フラグの値の指定
フラグの値を指定する際、等号(=
)は省略できます。たとえば、次の 2 つのコマンドは同じ意味です。
bq ls --format prettyjson myDataset bq ls --format=prettyjson myDataset
このドキュメントでは、明確にするために等号を使用します。
オンライン ヘルプ
次に示すように、bq コマンドライン ツールでドキュメントを利用できます。
説明 | ヘルプコマンドの形式 | 例 |
---|---|---|
全コマンドの一覧(使用例付き) | bq help |
bq help |
グローバル フラグの説明 | bq --help |
bq --help |
特定のコマンドの説明 | bq help COMMAND |
bq help mk |
リソースの仕様
リソースを指定する形式は、コンテキストによって異なります。プロジェクトとデータセットをコロン(:
)で区切る場合もあれば、ピリオド(.
)で区切る場合もあります。次の表では、異なるコンテキストで BigQuery テーブルを指定する方法を示します。
コンテキスト | 形式 | 例 |
---|---|---|
bq コマンドライン ツール | PROJECT:DATASET.TABLE |
myProject:myDataset.myTable |
GoogleSQL クエリ | PROJECT.DATASET.TABLE |
myProject.myDataset.myTable |
レガシー SQL クエリ | PROJECT:DATASET.TABLE |
myProject:myDataset.myTable |
PROJECT を指定しない場合、BigQuery は現在のプロジェクトを使用します。たとえば、現在のプロジェクトが myProject
の場合、BigQuery は、myDataset.myTable
を myProject:myDataset.myTable
(または myProject.myDataset.myTable
)と解釈します。
一部のリソース識別子は、バッククォート(`
)で囲む必要があります。リソース識別子が英文字かアンダースコアで始まり、英文字、数字、アンダースコアのみで構成される場合は、それを囲む必要はありません。ただし、リソース識別子に他の種類の文字や予約済みキーワードが含まれている場合は、ID(または ID の特殊文字や予約済みキーワードの部分)をバッククォートで囲む必要があります。詳細については、識別子をご覧ください。
グローバル フラグ
次のフラグは、どの bq
コマンドにも、必要に応じて使用できます。
--api=ENDPOINT
- 呼び出す API エンドポイントを指定します。デフォルト値は
https://www.googleapis.com
です。 --api_version=VERSION
- 使用する API のバージョンを指定します。デフォルトは
v2
です。 --apilog=FILE
すべての API リクエストと API レスポンスを、
FILE
で指定されたファイルにロギングします。使用できる値は次のとおりです。- ファイルのパス - 指定したファイルにロギングします。
stdout
- 標準出力にロギングします。stderr
- 標準エラーにロギングしますfalse
- API リクエストと API レスポンスをロギングしません(デフォルト)。
--bigqueryrc=PATH
bq コマンドライン ツールの構成ファイルのパスを指定します。
--bigqueryrc
フラグを指定しない場合、コマンドではBIGQUERYRC
環境変数が使用されます。環境変数を設定していない場合は、$HOME/.bigqueryrc
が使用されます。このファイルが存在しない場合は、~/.bigqueryrc
が使用されます。詳細については、コマンドライン フラグのデフォルト値の設定をご覧ください。--ca_certificates_file=PATH
Certificate Authority Service(CA)ファイルの場所を指定します。
--dataset_id=DATASET_ID
コマンドで使用するデフォルトのデータセットを指定します。このフラグは、適用できない場合は無視されます。
DATASET_ID
引数は、PROJECT:DATASET
またはDATASET
の形式で指定できます。PROJECT
部分がない場合は、デフォルトのプロジェクトが使用されます。デフォルトのプロジェクト設定は、--project_id
フラグを指定することでオーバーライドできます。--debug_mode={true|false}
true
に設定すると、Python 例外の発生時にトレースバックが表示されます。デフォルト値はfalse
です。--disable_ssl_validation={true|false}
true
に設定すると、HTTPS 証明書の検証が有効になります。デフォルト値はfalse
です。--discovery_file=PATH
検索対象として読み取る JSON ファイルを指定します。
--enable_gdrive={true|false}
false
に設定すると、Google ドライブ スコープのない新しい OAuth トークンをリクエストします。デフォルト値はtrue
です。ドライブ スコープを持つ新しい OAuth トークンをリクエストします。--fingerprint_job_id={true|false}
ジョブ構成のフィンガープリントから導出されたジョブ ID を使用するには、
true
に設定します。これにより、同じジョブが誤って複数回実行されなくなります。デフォルト値はfalse
です。--format=FORMAT
コマンドの出力の形式を指定します。次の値のいずれかを使用できます。
pretty
: フォーマットされたテーブルの出力sparse
: より簡単なテーブル出力prettyjson
: 読みやすい JSON 形式json
: 可能な限り圧縮した JSON 形式csv
: ヘッダー付き CSV 形式
pretty
、sparse
、prettyjson
は、人が読めるように意図されています。json
とcsv
は、別のプログラムが使用することを想定しています。none
を指定すると、コマンドからの出力はありません。--format
フラグを使用しない場合は、コマンドに基づいて適切な出力形式が選択されます。--headless={true|false}
ユーザー操作なしで
bq
セッションを実行するには、true
に設定します。たとえば、debug_mode
で中断してデバッガに入ることがなくなり、情報出力の頻度が低くなります。デフォルト値はfalse
です。--httplib2_debuglevel=DEBUG_LEVEL
HTTP デバッグ情報を表示するかどうかを指定します。
DEBUG_LEVEL
が0
より大きい場合、このコマンドは、エラー メッセージに加えて、HTTP サーバーのリクエストとレスポンスを stderr に出力します。DEBUG_LEVEL
が 0 以下の場合、または--httplib2_debuglevel
フラグを使用しない場合は、エラー メッセージのみが出力されます。次に例を示します。
--httplib2_debuglevel=1
--job_id=JOB_ID
新しいジョブのジョブ ID を指定します。このフラグは、ジョブを作成するコマンド(
cp
、extract
、load
、query
)にのみ適用されます。--job_id
フラグを使用しない場合は、コマンドによって一意のジョブ ID が生成されます。詳細については、プログラムでのジョブの実行をご覧ください。--job_property=KEY:VALUE
ジョブ構成のプロパティ フィールドに追加する Key-Value ペア。追加のプロパティを指定するには、このフラグを繰り返します。
--location=LOCATION
該当するリージョンまたはマルチリージョンのロケーションに対応する文字列。ロケーション フラグは、
bq cancel
コマンド、および、--jobs
フラグを使用してジョブに関する情報を表示する際のbq show
コマンドでは必須です。次のコマンドでは、ロケーション フラグはオプションです。query
cp
load
extract
partition
update
wait
mk
(--dataset
、--reservation
、--capacity_commitment
、--reservation_assignment
フラグを使用する場合)ls
(--reservation
、--capacity_commitment
、--reservation_assignment
フラグを使用する場合)
他のすべてのコマンドでは、
--location
フラグは無視されます。--max_rows_per_request=MAX_ROWS
読み取りごとに返される行の最大数を指定する整数。
--project_id=PROJECT
コマンドに使用するプロジェクトを指定します。
--proxy_address=PROXY
Google Cloud への接続に使用するプロキシホストの名前または IP アドレスを指定します。
--proxy_password=PASSWORD
プロキシホストで認証するときに使用するパスワードを指定します。
--proxy_port=PORT
プロキシホストへの接続に使用するポート番号を指定します。
--proxy_username=USERNAME
プロキシホストで認証するときに使用するユーザー名を指定します。
--quiet={true|false}
または-q={true|false}
ジョブが実行されている間、ステータスの更新を抑制するには、
true
に設定します。デフォルト値はfalse
です。--synchronous_mode={true|false}
または-sync={true|false}
ジョブを作成し、成功ステータスをエラーコードとしてすぐに戻るには、
false
に設定します。true
に設定すると、コマンドはジョブが完了するのを待ってから戻り、ジョブ完了ステータスをエラーコードとして返します。デフォルト値はtrue
です。--trace=token:TOKEN
API リクエストに含めるトレース トークンを指定します。
--use_regional_endpoints={true|false}
プレビュー版です。リージョン エンドポイントに接続するには、
--use_regional_endpoints
フラグをtrue
に設定し、--location
フラグを接続先のリージョンに設定します。デフォルト値はfalse
です。
非推奨のグローバル フラグ
bq コマンドライン ツールのフラグをファイルで指定する次のグローバル フラグは、非推奨になりました。ファイルでフラグを指定するには、--bigqueryrc
フラグを使用します。
--flagfile=PATH
このフラグを指定すると、指定したファイルのフラグ定義が bq コマンドライン ツールに挿入されます。デフォルト値は ''
です。詳細については、コマンドライン フラグのデフォルト値の設定をご覧ください。
コマンド
以降のセクションでは、bq コマンドライン ツールのコマンドと、そのコマンド固有のフラグおよび引数について説明します。
bq add-iam-policy-binding
bq add-iam-policy-binding
コマンドは、テーブルやビューの Identity and Access Management(IAM)ポリシーを取得して、そのポリシーにバインディングを追加する操作を 1 ステップで行うために使用します。
このコマンドは、以下の 3 ステップの代わりに使用できます。
bq get-iam-policy
コマンドを使用してポリシー ファイル(JSON 形式)を取得する。- ポリシー ファイルを編集する。
bq set-iam-policy
コマンドを使用して、新しいバインディングでポリシーを更新する。
概要
bq add-iam-policy-binding [FLAGS] --member=MEMBER_TYPE:MEMBER --role=ROLE [--table] RESOURCE
例
bq add-iam-policy-binding --member=user:myAccount@gmail.com \ --role=roles/bigquery.dataViewer myDataset.myTable
フラグと引数
bq add-iam-policy-binding
コマンドでは、次のフラグと引数を使用します。
--member=MEMBER_TYPE:MEMBER
必須。
--member
フラグは、IAM ポリシー バインディングのメンバー部分を指定するために使用します。--member
フラグは--role
フラグとともに指定する必要があります。--member
と--role
の 1 つの組み合わせが、1 つのバインディングに相当します。MEMBER_TYPE
値は、IAM ポリシー バインディングのメンバーの種類を指定します。次の値のいずれかを使用できます。user
serviceAccount
group
domain
MEMBER
値は、IAM ポリシー バインディングのメンバーのメールアドレスか、ドメインを指定します。--role=ROLE
必須。IAM ポリシー バインディングのロールの部分を指定します。
--role
フラグは、--member
フラグとともに指定する必要があります。--member
と--role
の 1 つの組み合わせが、1 つのバインディングに相当します。--table={true|false}
RESOURCE
引数がテーブル ID でもビュー ID でもない場合にエラーを返すには、--table
フラグをtrue
に設定します。デフォルト値はfalse
です。このフラグは、他のコマンドとの整合性を保つためにサポートされています。- RESOURCE
ポリシーを追加するテーブルまたはビュー。
詳細については、IAM ポリシーのリファレンスをご覧ください。
bq cancel
bq cancel
コマンドは、BigQuery ジョブをキャンセルするために使用します。
概要
bq [--synchronous_mode=false] cancel JOB_ID
例
bq cancel bqjob_12345
bq --synchronous_mode=false cancel bqjob_12345
フラグと引数
bq cancel
コマンドでは、次のフラグと引数を使用します。
--synchronous_mode=false
bq cancel
コマンドの完了を待たない場合は、グローバル--synchronous_mode
フラグをfalse
に設定します。デフォルトはtrue
です。JOB_ID
- キャンセルするジョブ。
bq cancel
コマンドの使用方法の詳細については、ジョブの管理をご覧ください。
bq cp
bq cp
コマンドは、次のタスクに使用します。
- テーブル、テーブル クローン、テーブル スナップショットのコピーを作成する。
- テーブル クローンを作成する。
- テーブル スナップショットを作成する。
概要
bq cp [FLAGS] SOURCE_TABLE DESTINATION_TABLE
例
bq cp myDataset.myTable myDataset.myTableCopy
フラグと引数
bq cp
コマンドでは、次のフラグと引数を使用します。
--append_table={true|false}
または-a={true|false}
既存のテーブルの末尾にテーブルを追加するには、
true
に設定します。デフォルト値はfalse
です。フラグ設定
--append_table=true
と--clone=true
を同時に使用することはできません。--clone={true|false}
テーブル クローンを作成するには、
true
に設定します。ベーステーブルは、標準のテーブル、テーブル クローン、またはテーブル スナップショットのいずれかです。宛先テーブルはテーブル クローンです。デフォルトはfalse
です。--clone=true
も--snapshot=true
も指定されていない場合、宛先テーブルはベーステーブルと同じテーブルタイプになります。フラグ設定
--append_table=true
と--clone=true
を同時に使用することはできません。--destination_kms_key=KEY
DESTINATION_TABLE のデータを暗号化する Cloud KMS 鍵のリソース ID を指定します。
次に例を示します。
--destination_kms_key=projects/myProject/locations/global/keyRings/myKeyRing/cryptoKeys/myKey
--expiration=SECONDS
テーブル スナップショットが期限切れになるまでの秒数。指定しない場合、テーブル スナップショットの有効期限は、新しいテーブル スナップショットを含むデータセットのデフォルトの有効期限に設定されます。
--snapshot
フラグとともに使用します。--force={true|false}
または-f={true|false}
DESTINATION_TABLE が存在する場合に、確認メッセージを表示せずに上書きするには、
true
に設定します。デフォルト値はfalse
です。DESTINATION_TABLE が存在する場合は、上書きする前に確認メッセージが表示されます。--no_clobber={true|false}
または-n={true|false}
DESTINATION_TABLE が存在する場合に上書きを禁止するには、
true
に設定します。デフォルト値はfalse
です。宛先テーブルが存在する場合、そのテーブルは上書きされます。--restore={true|false}
このフラグは非推奨です。テーブル スナップショットから書き込み可能なテーブルを作成するには、
bq cp
コマンドまたはbq cp --clone
コマンドを使用します。--snapshot={true|false}
SOURCE_TABLE
引数で指定されたテーブルのテーブル スナップショットを作成するには、true
に設定します。ベーステーブルは、標準のテーブル、テーブル クローン、別のテーブル スナップショットのいずれかです。デフォルトはfalse
です。--clone=true
も--snapshot=true
も指定されていない場合、宛先テーブルはベーステーブルと同じテーブルタイプになります。--no_clobber
フラグが必要です。SOURCE_TABLE
コピー元のテーブル。
DESTINATION_TABLE
コピー先のテーブル。
cp
コマンドの使用方法の詳細については、以下をご覧ください。
bq extract
bq extract
コマンドは、テーブルデータを Cloud Storage にエクスポートするために使用します。
概要
bq extract [FLAGS] RESOURCE DESTINATION
例
bq extract --compression=GZIP --destination_format=CSV --field_delimiter=tab \ --print_header=false myDataset.myTable gs://my-bucket/myFile.csv.gzip
bq extract --destination_format=CSV --field_delimiter='|' myDataset.myTable \ gs://myBucket/myFile.csv
フラグと引数
bq extract
コマンドでは、次のフラグと引数を使用します。
--compression=COMPRESSION_TYPE
エクスポート対象のファイルに使用する圧縮タイプを指定します。使用できる値は次のとおりです。
GZIP
DEFLATE
SNAPPY
NONE
デフォルト値は
NONE
です。各圧縮タイプでサポートされている形式については、エクスポート形式と圧縮形式をご覧ください。
--destination_format=FORMAT
エクスポートされるデータの形式。使用できる値は次のとおりです。
CSV
NEWLINE_DELIMITED_JSON
AVRO
PARQUET
デフォルト値は
CSV
です。--field_delimiter=DELIMITER
CSV でエクスポートする場合に、出力ファイルの列の区切り文字を指定します。区切り文字には、ISO-8859-1 の任意の 1 バイト文字を使用できます。
\t
またはtab
を使用することで、タブを区切り文字に指定できます。--print_header={true|false}
ヘッダーがある形式のヘッダー行を出力しないようにするには、
false
に設定します。デフォルトはtrue
で、ヘッダー行が含まれます。- RESOURCE
エクスポート元のテーブル。
- DESTINATION
エクスポートされたデータを受信するストレージの場所。
bq extract
コマンドの使用方法の詳細については、テーブルデータのエクスポートをご覧ください。
bq get-iam-policy
bq get-iam-policy
コマンドは、リソースの IAM ポリシーを取得し、stdout
に出力するために使用します。リソースには、テーブルまたはビューを指定できます。このポリシーは JSON 形式です。
概要
bq get-iam-policy [FLAGS] RESOURCE
例
bq get-iam-policy myDataset.myTable
フラグと引数
bq get-iam-policy
コマンドでは、次のフラグと引数を使用します。
--table={true|false}
または--t={true|false}
RESOURCE
がテーブル ID でもビュー ID でもない場合にエラーを返すには、--table
フラグをtrue
に設定します。デフォルト値はfalse
です。このフラグは、他のコマンドとの整合性を保つためにサポートされています。RESOURCE
- ポリシーを取得するテーブルまたはビュー。
bq get-iam-policy
コマンドの詳細については、IAM を使用してリソースへのアクセスを制御するをご覧ください。
bq head
bq head
コマンドは、テーブルの指定した行と列を表示するために使用します。デフォルトでは、最初の 100 行の全列が表示されます。
概要
bq head [FLAGS] [TABLE]
例
bq head --max_rows=10 --start_row=50 --selected_fields=field1,field3 \ myDataset.myTable
フラグと引数
bq head
コマンドでは、次のフラグと引数を使用します。
--job=JOB or -j=JOB
- クエリジョブの結果を読み取るには、このフラグに有効なジョブ ID を指定します。
--max_rows=MAX or -n=MAX
- テーブルデータを表示するときに出力する最大行数を示す整数。デフォルト値は
100
です。 --selected_fields=COLUMN_NAMES or -c=COLUMN_NAMES
- テーブルデータを表示するときに返されるフィールドのサブセット(ネストされたフィールドと繰り返しフィールドを含む)を示すカンマ区切りのリスト。このフラグが指定されていない場合は、すべての列が返されます。
--start_row=START_ROW or -s=START_ROW
- テーブルデータを表示する前にスキップする行数を指定する整数。デフォルト値は
0
です。テーブルデータは最初の行から始まります。 --table={true|false}
または-t={true|false}
- コマンドの引数がテーブルでもビューでもない場合にエラーを返すには、
true
に設定します。デフォルト値はfalse
です。このフラグは、他のコマンドとの整合性を保つためにサポートされています。 TABLE
- データを取得するテーブル。
bq head
コマンドの使用方法の詳細については、テーブルデータの管理をご覧ください。
bq help
ツール内で bq コマンドライン ツールのドキュメントを表示するには、bq help
コマンドを使用します。
概要
bq help [COMMAND]
フラグと引数
bq help
コマンドでは、次のフラグと引数を使用します。
COMMAND
- オンライン ヘルプを取得する bq コマンドライン ツールの特定のコマンドを指定します。
bq insert
bq insert
コマンドは、ストリーミング挿入を使用して、改行で区切られた JSON 形式のデータの行をファイルからテーブルに挿入するために使用します。データ型は宛先テーブルの列の型に合わせて変換されます。このコマンドは、テストのみを目的としています。BigQuery にデータをストリーミングするには、insertAll
API メソッドを使用します。
概要
bq insert [FLAGS] TABLE FILE
例
bq insert --ignore_unknown_values --template_suffix=_insert myDataset.myTable /tmp/myData.json
echo '{"a":1, "b":2}' | bq insert myDataset.myTable
フラグと引数
bq insert
コマンドでは、次のフラグと引数を使用します。
--ignore_unknown_values={true|false}
または-i={true|false}
true
に設定すると、BigQuery はテーブルのスキーマと一致しない Key-Value ペアを無視し、スキーマに一致するデータがある行を挿入します。false
に設定すると、テーブルのスキーマと一致しないデータがある行は挿入されません。デフォルトはfalse
です。--skip_invalid_rows={true|false}
または-s={true|false}
true
に設定すると、BigQuery は、無効な行がある場合でも、有効な行の挿入を試みます。false
に設定すると、無効な行がある場合、コマンドは失敗します。デフォルトはfalse
です。--template_suffix=SUFFIX or -x=SUFFIX
- このフラグを指定すると、宛先テーブル TABLE が基本テンプレートとして扱われ、
{destination}{templateSuffix}
という名前のインスタンス テーブルに行が挿入されます。BigQuery により、基本テンプレートのスキーマを使用してインスタンス テーブルが作成されます。 TABLE
- データを挿入するテーブル。
FILE
- 挿入するデータを含むファイル。
bq insert
コマンドの使用方法の詳細については、BigQuery へのデータのストリーミングをご覧ください。
bq load
bq load
コマンドは、テーブルにデータを読み込むために使用します。
概要
bq load [FLAGS] DESTINATION_TABLE SOURCE_DATA [SCHEMA]
例
bq load myDataset.newTable gs://mybucket/info.csv ./info_schema.json
フラグと引数
bq load
コマンドでは、次のフラグと引数を使用します。
--allow_jagged_rows={true|false}
- CSV データで末尾の必須でない列の欠落を許可するには、
true
に設定します。 --preserve_ascii_control_characters={true|false}
- CSV データで埋め込み ASCII 制御文字を許可するには、
true
に設定します。 --allow_quoted_newlines={true|false}
- CSV データ内に引用符で囲まれた改行を許可するには、
true
に設定します。 --autodetect={true|false}
- CSV データおよび JSON データのスキーマの自動検出を有効にするには、
true
に設定します。デフォルトはfalse
です。--autodetect
がfalse
で、--schema
フラグでスキーマが指定されず、宛先テーブルが存在する場合は、宛先テーブルのスキーマが使用されます。 --clustering_fields=COLUMNS
- テーブルのクラスタ化に使用するフィールドを指定する、最大 4 つの列名のカンマ区切りリスト。
--destination_kms_key=KEY
- DESTINATION_TABLE のデータを暗号化する Cloud KMS 鍵のリソース ID を指定します。
--encoding=ENCODING_TYPE or -E=ENCODING_TYPE
- データで使用される文字エンコード。次の値のいずれかを使用できます。
ISO-8859-1
(Latin-1 とも呼ばれます)UTF-8
--field_delimiter=DELIMITER or -F=DELIMITER
- データ内で列を区切る文字を指定します。区切り文字には、ISO-8859-1 の任意の 1 バイト文字を使用できます。
\t
またはtab
を使用することで、タブを区切り文字に指定できます。 --ignore_unknown_values={true|false}
true
に設定すると、CSV ファイルと JSON ファイルでは、テーブル スキーマと一致しない余分な列値を持つ行は無視され読み込まれません。同様に、Avro ファイル、Parquet ファイル、ORC ファイルでは、テーブル スキーマに存在しないファイル スキーマのフィールドは無視され、読み込まれません。--json_extension=JSON_TYPE
読み込む JSON ファイルのタイプを指定します。JSON ファイルにのみ適用されます。使用できる値は次のとおりです。
GEOJSON
: 改行区切りの GeoJSON ファイル。
このフラグを使用するには、
--source_format
フラグをNEWLINE_DELIMITED_JSON
に設定する必要があります。詳細については、改行区切りの GeoJSON ファイルの読み込みをご覧ください。
--max_bad_records=MAX
ジョブ全体が失敗する前に許容される不良レコードの最大数を指定する整数。デフォルト値は
0
です。--max_bad_records
の値にかかわらず、最大で 5 つの任意のタイプのエラーが返されます。このフラグは、CSV、JSON、Google スプレッドシートのデータの読み込みにのみ適用されます。--null_marker=STRING
CSV データの
NULL
値を表すオプションのカスタム文字列。--projection_fields=PROPERTY_NAMES
--source_format
をDATASTORE_BACKUP
に設定すると、このフラグは Datastore エクスポートから読み込むエンティティ プロパティを意味します。プロパティ名は、カンマ区切りのリストで指定します。プロパティ名では大文字と小文字が区別され、最上位のプロパティを参照する必要があります。また、このフラグは Firestore のエクスポートでも使用できます。--quote=CHARACTER
CSV データのフィールドを囲む引用符を指定します。
CHARACTER
引数には、任意の 1 バイト文字を使用できます。デフォルト値は二重引用符("
)です。引用符なしを指定するには、空の文字列(""
)を使用します。--replace={true|false}
新しいデータを読み込むときに既存のデータとスキーマを消去するには、
true
に設定します。--destination_kms_key
フラグを指定しない限り、Cloud KMS 鍵も削除されます。デフォルト値はfalse
です。JobConfigurationLoad.writeDisposition
のWRITE_TRUNCATE
値に相当します。--schema={SCHEMA_FILE|SCHEMA
}ローカルの JSON スキーマ ファイルへのパス、または「
FIELD:DATA_TYPE, FIELD:DATA_TYPE
, …」という形の列定義のカンマ区切りリストのいずれかを指定します。スキーマ ファイルを使用する場合、拡張子は指定しないでください。次に例を示します。
--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER
スキーマが指定されず、
--autodetect
がfalse
で、DESTINATION_TABLE が存在する場合は、DESTINATION_TABLE のスキーマが使用されます。--schema_update_option=OPTION
(読み込みジョブまたはクエリジョブで)テーブルにデータを追加するとき、またはテーブル パーティションを上書きするときに、宛先テーブルのスキーマを更新する方法を指定します。次の値のいずれかを使用できます。
ALLOW_FIELD_ADDITION
: 新しいフィールドの追加を許可します。ALLOW_FIELD_RELAXATION
:REQUIRED
フィールドをNULLABLE
に緩和することを許可します。
複数のスキーマ更新オプションを指定するには、このフラグを繰り返します。
--skip_leading_rows=NUMBER_OF_ROWS
ソースファイルの先頭でスキップする行数を指定する整数。デフォルトは
0
です。--file_set_spec_type=FILE_SET_SPEC_TYPE
ソース URI の解釈方法を指定します。プレビュー版です。
FILE_SYSTEM_MATCH
: オブジェクト ストアのファイルを一覧表示して、ソース URI を拡張します。FileSetSpecType が設定されていない場合、これがデフォルトの動作です。NEW_LINE_DELIMITED_MANIFEST
: 指定された URI が、1 行に 1 つの URI が含まれる改行区切りのマニフェスト ファイルであることを示します。ワイルドカード URI は、マニフェスト ファイルではサポートされていません。
たとえば、ソース URI が
"gs://bucket/path/file"
で、file_set_spec_type
がFILE_SYSTEM_MATCH
の場合、このファイルがデータファイルとして直接使用されます。file_set_spec_type
がNEW_LINE_DELIMITED_MANIFEST
の場合、ファイル内の各行は、データファイルを指す URI として解釈されます。--source_format=FORMAT
ソースデータの形式。次の値のいずれかを使用できます。
CSV
NEWLINE_DELIMITED_JSON
AVRO
DATASTORE_BACKUP
(Filestore にはこの値を使用)PARQUET
ORC
--time_partitioning_expiration=SECONDS
時間ベースのパーティションを削除する必要があるタイミングを指定する整数(秒単位)。パーティションの日付(UTC)に、この整数値を足した値が有効期限になります。負の数は、有効期限がないことを示します。
--time_partitioning_field=COLUMN_NAME
時間ベースのパーティションの作成方法を定めるフィールドを指定します。この値を指定せずに時間ベースのパーティショニングを有効にすると、テーブルは読み込み時間に基づいてパーティショニングされます。
--time_partitioning_type=INTERVAL
テーブルでの時間ベースのパーティショニングを有効にし、パーティション タイプを設定します。次の値のいずれかを使用できます。
DAY
HOUR
MONTH
YEAR
時間ベースのパーティショニングのデフォルト パーティション タイプは
DAY
です。--use_avro_logical_types={true|false}
--source_format
フラグがAVRO
に設定されている場合、このフラグをtrue
に設定することで、未加工型(INTEGER
など)を使用するだけではなく、論理型を対応する型(TIMESTAMP
など)に変換できます。--decimal_target_types=DECIMAL_TYPE
Decimal
論理型を変換する方法を定めます。JobConfigurationLoad.decimalTargetTypes
に相当します。複数のターゲット タイプを指定するには、このフラグを繰り返します。--parquet_enum_as_string={true|false}
--source_format
フラグがPARQUET
に設定されており、BigQuery で ParquetENUM
論理型をSTRING
値として推定させる場合は、このフラグをtrue
に設定します。デフォルトはfalse
です。--parquet_enable_list_inference={true|false}
--source_format
フラグがPARQUET
に設定されている場合、このフラグは、Parquet のLIST
論理型に対してスキーマ推定を使用するかどうかを示します。--reference_file_schema_uri=URI
外部テーブルの作成に必要なテーブル スキーマを含む参照ファイルへのパスを指定します。
ExternalDataConfiguration.referenceFileSchemaUri
に相当します。このフラグは、Avro、ORC、PARQUET 形式の場合に有効になります。DESTINATION_TABLE
データの読み込み先のテーブル。
SOURCE_DATA
読み込むデータが含まれているファイルの Cloud Storage URI。
SCHEMA
DESTINATION_TABLE のスキーマ。
bq load
コマンドを使用した Cloud Storage からのデータ読み込みの詳細については、以下をご覧ください。
- Avro データの読み込み
- CSV データの読み込み
- JSON データの読み込み
- ORC データの読み込み
- Parquet データの読み込み
- Datastore エクスポートからのデータの読み込み
- Firestore エクスポートからのデータの読み込み
bq load
コマンドを使用してローカルのソースからデータを読み込む方法の詳細については、以下をご覧ください。
bq ls
bq ls
コマンドは、コレクション内のオブジェクトを一覧表示するために使用します。
概要
bq ls [FLAGS] [RESOURCE]
例
bq ls myDataset
フラグと引数
bq ls
コマンドでは、次のフラグと引数を使用します。
--all={true|false}
または-a={true|false}
- 結果をすべて表示するには、
true
に設定します。すべてのユーザー、またはすべてのデータセットからのジョブ(非表示のものを含む)を表示します。転送構成または転送実行を一覧表示する場合、このフラグは必要ありません。デフォルト値はfalse
です。 --capacity_commitment={true|false}
容量コミットメントを一覧表示するには、
true
に設定し、--location
フラグを使用してロケーションを指定します。詳細については、購入したコミットメントを表示するをご覧ください。例:
bq ls --capacity_commitment=true --location='us'
--datasets={true|false}
または-d={true|false}
データセットを一覧表示するには、
true
に設定します。デフォルト値はfalse
です。--filter="FILTER"
リストされたリソースを
FILTER
引数と一致するようにフィルタリングします。データセットの場合、
FILTER
は、スペースで区切られた 1 つ以上のlabels.KEY:VALUE
形式の 3 項組で構成されます。複数の 3 項組が指定されている場合、コマンドは、すべての 3 項組に一致するデータセットのみを返します(つまり、コマンドはOR
ではなくAND
論理演算子を使用)。複数の 3 項組を指定する場合は、FILTER
値を引用符で囲みます。データセット ラベルに基づいてフィルタするには、データセットに適用したキーと値を使用します。
次に例を示します。
--filter "labels.department:marketing labels.team:sales"
転送構成では、
dataSourceIds
をキーとして使用し、次のいずれかのデータソースを値として使用します。
amazon_s3
- Amazon S3 データ転送azure_blob_storage
- Azure Blob Storage データ転送dcm_dt
- キャンペーン マネージャー データ転送google_cloud_storage
- Cloud Storage データ転送cross_region_copy
- データセット コピーdfp_dt
- Google アド マネージャー データ転送adwords
- Google 広告データ転送google_ads
- Google 広告データ転送(プレビュー)merchant_center
- Google Merchant Center データ転送play
- Google Play データ転送scheduled_query
- スケジュールされたクエリデータ転送doubleclick_search
- 検索広告 360 データ転送youtube_channel
- YouTube チャンネル データ転送youtube_content_owner
- YouTube コンテンツ所有者データ転送redshift
- Amazon Redshift の移行on_premises
- Teradata の移行
例:
--filter labels.dataSourceIds:dcm_dt
転送の実行には、states
をキーとして使用し、次のいずれかの転送状態を値として使用します。
+ SUCCEEDED
+ FAILED
+ PENDING
+ RUNNING
+ CANCELLED
For example:
<pre>
--filter labels.states:FAILED
</pre>
ジョブの場合、フィルタフラグはサポートされていません。
--jobs={true|false}
または-j={true|false}
- ジョブを一覧表示するには、
true
に設定します。デフォルト値はfalse
です。デフォルトでは、結果は 100,000 件に制限されています。 --max_creation_time=MAX_CREATION_TIME_MS
- Unix エポック タイムスタンプ(ミリ秒単位)を表す整数。
--jobs
フラグとともに指定すると、タイムスタンプより前に作成されたジョブのみが表示されます。 --max_results=MAX_RESULTS or -n=MAX_RESULTS
- 結果の最大数を示す整数。デフォルト値は 50、最大値は 1,000 です。ジョブの数が 1,000 を超えている場合は、
page_token
フラグを使用してページ分けを行うことによって、すべてのジョブのリストを取得できます。 - --
min_creation_time=MIN_CREATION_TIME_MS
- Unix エポック タイムスタンプ(ミリ秒単位)を表す整数。
--jobs
フラグとともに指定すると、タイムスタンプより後に作成されたジョブのみが表示されます。 --message_type=messageTypes:MESSAGE_TYPE
特定のタイプの転送実行ログメッセージのみを一覧表示するには、
messageTypes:MESSAGE_TYPE
を指定します。使用できる値は次のとおりです。INFO
WARNING
ERROR
--models={true|false}
または-m={true|false}
BigQuery ML モデルを一覧表示するには、
true
に設定します。デフォルト値はfalse
です。--page_token=TOKEN
または-k=TOKEN
指定されたページトークンから始まる項目を一覧表示します。
--projects={true|false}
または-p={true|false}
すべてのプロジェクトを表示するには、
true
に設定します。デフォルト値はfalse
です。--reservation={true|false}
指定されたプロジェクトとロケーションのすべての予約を一覧表示するには、
true
に設定します。デフォルト値はfalse
です。--project_id
フラグおよび--location
フラグとともに使用します。次に例を示します。
bq ls --reservation=true --project_id=myProject --location=us
--reservation_assignment={true|false}
指定されたプロジェクトとロケーションの予約割り当てを一覧表示するには、
true
に設定します。デフォルト値はfalse
です。--project_id
フラグおよび--location
フラグとともに使用します。--routines={true|false}
指定したデータセット内のルーティンを一覧表示するには、
true
に設定します。デフォルト値はfalse
です。ルーティンには、永続的なユーザー定義関数、テーブル関数(プレビュー)、ストアド プロシージャがあります。--row_access_policies
指定すると、1 つのテーブルの行レベルのアクセス ポリシーが、すべて一覧表示されます。行レベルのアクセス ポリシーは、行レベルのセキュリティに使用されます。テーブル名は、
dataset.table
の形式で指定する必要があります。--run_attempt=RUN_ATTEMPT
--transfer_run
フラグとともに使用します。指定した転送実行のすべての実行の施行を一覧表示するには、RUN_ATTEMPT_UNSPECIFIED
に設定します。最新の実行の試行だけを一覧表示するには、LATEST
に設定します。デフォルトはLATEST
です。--transfer_config={true|false}
指定されたプロジェクトとロケーションの転送構成を一覧表示するには、
true
に設定します。--transfer_location
フラグおよび--project_id
フラグとともに使用します。デフォルト値はfalse
です。--transfer_location=LOCATION
指定されたロケーションの転送構成を一覧表示します。転送が作成されるときに、転送ロケーションを設定します。
--transfer_log={true|false}
--transfer_run
フラグとともに使用します。指定された転送実行の転送ログメッセージを一覧表示するには、true
に設定します。デフォルト値はfalse
です。--transfer_run={true|false}
指定された転送構成の転送実行を一覧表示します。
次に例を示します。
bq ls --transfer_run=true projects/myProject/locations/us/transferConfigs/12345
RESOURCE
一覧表示するオブジェクトが含まれるコレクション。リソースには、データセット、プロジェクト、予約、転送構成があります。
bq ls
コマンドの使用方法の詳細については、以下をご覧ください。
bq mk
bq mk
コマンドは、BigQuery リソースを作成するために使用します。
概要
bq mk TYPE_FLAG [OTHER FLAGS] [ARGS]
フラグと引数
bq mk
コマンドは、作成するリソースのタイプを指定する TYPE_FLAG と、リソースタイプに応じた他のフラグを受け入れます。
TYPE_FLAG
: 次のいずれかのフラグを true
に設定します。これにより、作成するリソースのタイプを指定します。
--capacity_commitment
: 容量コミットメントを購入します。--connection
: 接続を作成します。--dataset
または-d
: データセットを作成します。--materialized_view
: マテリアライズド ビューを作成します。--reservation
: 予約を作成します。--reservation_assignment
: フォルダ、プロジェクト、または組織を予約に割り当てます。--table
または-t
: テーブルを作成します。--transfer_config
: 転送構成を作成します。--transfer_run
: 時間範囲内の転送実行を作成します。--view
: ビューを作成します。
bq mk
コマンドは、すべてのタイプのリソースに対して次のフラグをサポートします。
--force={true|false}
または-f={true|false}
- 同じ名前のリソースがすでに存在する場合にエラーを無視するには、
true
に設定します。リソースがすでに存在する場合、終了コードは 0 になりますが、このフラグをtrue
に設定しても、bq mk
コマンドによってリソースが上書きされることはありません。デフォルト値はfalse
です。
以降のセクションで説明するように、bq mk
コマンドでは、作成するリソースのタイプに応じて追加のフラグがサポートされています。
bq mk --capacity_commitment
容量コミットメントを購入するには、--capacity_commitment
を true
に設定し、次のフラグを使用します。
--location=LOCATION
- コミットメントのロケーションを指定します。
--plan=PLAN_TYPE
コミットメント プランのタイプを指定します。次のいずれかの値を指定する必要があります。
ANNUAL
THREE_YEAR
従来の定額料金をご利用のお客様は、次のいずれかの値を使用することもできます。
FLEX
MONTHLY
ANNUAL
--renewal_plan=RENEWAL_TYPE
更新プランのタイプを指定します。
ANNUAL
またはTHREE_YEAR
コミットメント プランに必要です。次のいずれかになります。ANNUAL
THREE_YEAR
NONE
従来の定額料金をご利用のお客様は、次のいずれかの値を使用することもできます。
FLEX
MONTHLY
ANNUAL
--project_id=PROJECT_ID
スロットを管理するプロジェクトを指定します。
--slots=NUMBER_OF_SLOTS
購入するスロットの数を指定します。
--edition=EDITION
容量コミットメントに関連付けられたエディション。次のいずれかの値を設定する必要があります。
ENTERPRISE
ENTERPRISE_PLUS
詳細については、スロットの購入をご覧ください。
bq mk --connection
接続を作成します。次のフラグがサポートされています。
--connection_type=CONNECTION_TYPE
- 接続タイプ。たとえば、Cloud SQL 接続の場合は
CLOUD_SQL
です。 --properties=PROPERTIES
接続固有の JSON 形式のパラメータ。
instanceId
、database
、type
を指定する必要があります。Spanner 接続を作成し、Data Boost を使用する場合は、
"useParallelism":true
と"useDataBoost":true
のペアを含めます。--connection_credential=CONNECTION_CREDENTIAL
JSON 形式の接続の認証情報。
username
とpassword
を指定する必要があります。--project_id=PROJECT_ID
接続が属しているプロジェクトの ID を指定します。
--location=LOCATION
接続が保存されるロケーションを指定します。
--display_name=DISPLAY_NAME
接続のわかりやすい名前を指定します(省略可)。
--description=DESCRIPTION
接続の説明を指定します(省略可)。
--iam_role_id=ROLE_ID
AWS の BigQuery Omni の場合は、リソースへのアクセスを許可する IAM ロールを指定します。
"arn:aws:iam::AWS_ACCOUNT_ID:role/POLICY_NAME"
の形式を使用します。ここで:- AWS_ACCOUNT_ID は、接続の AWS IAM ユーザーの ID 番号です。
- POLICY_NAME はポリシー名です。
例:
"arn:aws:iam::0123456789AB:policy/s3-read-role"
--tenant_id=TENANT_ID
Azure の BigQuery Omni on の場合は、Azure Storage アカウントを含む Azure ディレクトリのテナント ID を指定します。
CONNECTION_ID
接続の接続 ID を指定します(省略可)。接続 ID を指定しない場合は、一意の ID が自動的に生成されます。接続 ID には、英文字、数字、アンダースコアを使用できます。
詳細については、接続の作成をご覧ください。
bq mk --dataset
データセットを作成します。次のフラグがサポートされています。
--default_kms_key=KEY
- テーブルの作成やクエリの際、明示的な鍵が指定されていない場合に、データセットのテーブルデータを暗号化するデフォルトの Cloud KMS 鍵のリソース ID を指定します。
--default_partition_expiration=SECONDS
- データセット内に新しく作成されるパーティション分割テーブルのすべてのパーティションに対して、デフォルトの有効期限を秒単位で指定する整数。パーティションの日付(UTC)にこの整数値を足した値がパーティションの有効期限になります。このプロパティを設定すると、データセット レベルのデフォルトのテーブル有効期限が存在する場合は、その値がオーバーライドされます。パーティション分割テーブルの作成時または更新時に
--time_partitioning_expiration
フラグを指定した場合は、データセット レベルのデフォルトのパーティション有効期限よりもテーブルレベルのパーティション有効期限が優先されます。 --default_table_expiration=SECONDS
- データセットに新しく作成されるテーブルのデフォルト存続期間を秒単位で指定する整数。現在の UTC 時間にこの値を足した値が、有効期限に設定されます。
--description=DESCRIPTION
- データセットの説明を指定します。
--external_source=EXTERNAL_SOURCE
- 連携データセットを作成するときに、外部データソースを指定します。
--label=KEY:VALUE
- データセットのラベルを指定します。複数のラベルを指定するには、このフラグを繰り返します。
--location=LOCATION
または--data_location=LOCATION
- データセットのロケーションを指定します。
--location
フラグが優先されます。--data_location
フラグは以前のフラグです。 --max_time_travel_hours=HOURS
- データセットのタイムトラベル期間を時間で指定します。
--max_time_travel_hours
値は、24 の倍数(48、72、96、120、144、168)であり、48(2 日)~168(7 日)の範囲にする必要があります。このフラグを指定しない場合のデフォルトは 168 時間です。 --storage_billing_model=BILLING_MODEL
データセットのストレージ課金モデルを指定します。ストレージ料金の計算時に物理バイトを使用する場合は
--storage_billing_model
値をPHYSICAL
に設定し、論理バイトを使用する場合はLOGICAL
に設定します。デフォルトはLOGICAL
です。データセットの課金モデルを変更した場合は、変更が反映されるまでに 24 時間を要します。
データセットのストレージ課金モデルを変更した後、再度ストレージ課金モデルを変更するには、14 日間お待ちいただく必要があります。
詳細については、データセットの作成をご覧ください。
bq mk --materialized_view
マテリアライズド ビューを作成します。次のフラグがサポートされています。
--enable_refresh={true|false}
- マテリアライズド ビューの自動更新を無効にするには、
false
に設定します。マテリアライズド ビューを作成する場合のデフォルトはtrue
です。 --refresh_interval_ms=MILLISECONDS
- マテリアライズド ビューの更新間隔をミリ秒単位で指定します。このフラグが指定されていない場合、更新が有効になっているマテリアライズド ビューのデフォルトの更新間隔は、1,800,000 ミリ秒(30 分)です。
詳細については、マテリアライズド ビューの作成と使用をご覧ください。
bq mk --reservation
専用のスロットを使用して予約を作成します。次のフラグがサポートされています。
--target_job_concurrency=CONCURRENCY
- 同時に実行されるクエリのターゲット数を指定します。デフォルト値は 0 です。つまり、予約サイズに基づいて同時実行が自動的に計算されます。詳細については、クエリキューの使用をご覧ください。
--ignore_idle_slots={true|false}
- この予約で実行されるジョブが、予約に割り当てられたスロットのみを使用するように制限するには、
true
に設定します。デフォルト値はfalse
で、この予約のジョブは、他の予約のアイドル スロットか、どの予約にも割り当てられていないスロットを使用できます。詳細については、アイドル スロットをご覧ください。 --location=LOCATION
- 予約のロケーションを指定します。
--project_id=PROJECT_ID
- 予約を所有するプロジェクトを指定します。
--slots=NUMBER_OF_SLOTS
- この予約に割り当てるスロットの数を指定します。
--edition=EDITION
- 容量コミットメントに関連付けられたエディション。次のいずれかの値を設定する必要があります。
STANDARD
ENTERPRISE
ENTERPRISE_PLUS
--autoscale_max_slots=NUMBER_OF_AUTOSCALING_SLOTS
- 予約に割り当てられている自動スケーリング スロットの数。
--edition
フラグでのみ使用できます。
詳細については、専用スロットを使用して予約を作成するをご覧ください。
bq mk --reservation_assignment
プロジェクト、フォルダ、または組織を予約に割り当てます。次のフラグがサポートされています。
--assignee_id=ASSIGNEE_ID
- フォルダ、組織、またはプロジェクトの ID を指定します。
--assignee_type=ASSIGNEE_TYPE
- 予約に割り当てるエンティティのタイプを指定します。次のいずれかです。
FOLDER
ORGANIZATION
PROJECT
--job_type=JOB_TYPE
- 予約に割り当てるジョブのタイプを指定します。次のいずれかです。
QUERY
PIPELINE
ML_EXTERNAL
BACKGROUND
--location=LOCATION
- 予約のロケーションを指定します。
--project_id=PROJECT_ID
- 予約を所有するプロジェクトを指定します。
--reservation_id=RESERVATION_ID
- 予約の ID を指定します。
詳細については、予約割り当ての操作をご覧ください。
bq mk --table
テーブルを作成します。次のフラグがサポートされています。
--add_tags=TAGS
- 新しいテーブルに付加するタグをカンマで区切って指定します(例:
556741164180/env:prod,myProject/department:sales
)。各タグには、名前空間付きのキー名と値の略称が必要です。 --clustering_fields=COLUMNS
- テーブルのクラスタ化に使用するフィールドを指定する、最大 4 つの列名のカンマ区切りリスト。パーティショニングとともに指定すると、テーブルはまず分割され、各パーティションは指定した列を使用してクラスタ化されます。
--description=DESCRIPTION
- テーブルの説明を指定します。
--destination_kms_key=KEY
- DESTINATION_TABLE のデータを暗号化する Cloud KMS 鍵のリソース ID を指定します。
--expiration=SECONDS
- テーブルの存続期間を指定します。
--expiration
フラグを省略した場合は、BigQuery によりテーブルが作成され、データセットのデフォルトのテーブル存続期間が設定されるか、テーブルの有効期限が無期限になります。 --external_table_definition=STRING
外部テーブルを作成するためのテーブル定義を指定します。
Cloud Storage と Google ドライブの外部テーブルの場合:
-
--external_table_definition={PATH_TO_FILE|DEFINITION}
- 値には、テーブル定義(
PATH_TO_FILE
)を含むファイルへのパスか、インライン テーブル定義(DEFINITION
)のいずれかを指定できます。
DEFINITION
フィールドの形式はSCHEMA@FORMAT=URI
です。SCHEMA
値の形式は、「FIELD:DATA_TYPE, FIELD:DATA_TYPE
, …」という形の列定義のカンマ区切りリストです。データ形式が自己記述型(Avro など)の場合と、スキーマの自動検出を使用する場合は、SCHEMA
値を省略できます。FORMAT
値は、データ形式を指定します。次のいずれかになります。AVRO
CSV
DATASTORE_BACKUP
(Filestore にはこの値を使用)ICEBERG
NEWLINE_DELIMITED_JSON
ORC
PARQUET
テーブル定義ファイルを指定する場合、拡張子は付けないでください。
次に例を示します。
--external_table_definition=/tmp/tabledef
--external_table_definition=Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv
Bigtable 外部テーブル、AWS と Azure に基づく BigLake テーブルの場合:
--external_table_definition=PATH_TO_FILE
- 値には、テーブル定義を含むファイルへのパスを指定する必要があります。
Cloud Storage に基づく BigLake テーブルの場合:
--external_table_definition=FORMAT=BUCKET_PATH@REGION.CONNECTION_NAME
:FORMAT
値は、データ形式を指定します。次のいずれかになります。AVRO
CSV
NEWLINE_DELIMITED_JSON
ICEBERG
ORC
PARQUET
BUCKET_PATH
は、BigLake テーブルデータを含む Cloud Storage 内の 1 つ以上のファイルへのパスです。BUCKET_PATH
は次の形式で指定します。- 単一ファイルの場合:
gs://bucket_name/[folder_name/]file_name
。 - 1 つのバケット内の複数ファイルの場合:
gs://bucket_name/[folder_name/]*
複数バケット内の複数ファイルの場合:
gs://mybucket1/*,gs://mybucket2/folder5/*
ワイルドカードを使用すると、BigLake テーブルに含めるファイルを制限できます。たとえば、バケットに複数のタイプのデータが含まれている場合、
gs://bucket_name/*.parquet
を指定することでテーブルに PARQUET ファイルのみが使用されます。ワイルドカードの使用方法については、URI ワイルドカードをご覧ください。
- 単一ファイルの場合:
REGION
値には、接続を含むリージョンまたはマルチリージョンを指定します。CONNECTION_NAME
値には、この外部テーブルで使用するクラウド リソース接続の名前を指定します。この接続によって、Cloud Storage からデータを読み込むために使用されるサービス アカウントが決まります。
オブジェクト テーブルの場合:
--external_table_definition=BUCKET_PATH@REGION.CONNECTION_NAME
:BUCKET_PATH
は、オブジェクト テーブルで表されるオブジェクトを含む Cloud Storage バケットへのパスです(gs://bucket_name/[folder_name/]*
形式)。複数のバケットを指定するには、複数のパスを指定します(例:gs://mybucket1/*,gs://mybucket2/folder5/*
)。ワイルドカードを使用すると、オブジェクト テーブルに含まれるオブジェクトを制限できます。たとえば、バケットに複数のタイプの非構造化データが含まれている場合は、
gs://bucket_name/*.pdf
を指定することで、PDF オブジェクトのみを含むオブジェクト テーブルを作成できます。ワイルドカードの使用方法については、URI ワイルドカードをご覧ください。REGION
値には、接続を含むリージョンまたはマルチリージョンを指定します。CONNECTION_NAME
値には、この外部テーブルで使用するクラウド リソース接続の名前を指定します。この接続によって、Cloud Storage からデータを読み込むために使用されるサービス アカウントが決まります。
-
--file_set_spec_type=FILE_SET_SPEC_TYPE
ソース URI の解釈方法を指定します。プレビュー版です。
FILE_SYSTEM_MATCH
: オブジェクト ストアのファイルを一覧表示して、ソース URI を拡張します。FileSetSpecType が設定されていない場合、これがデフォルトの動作です。NEW_LINE_DELIMITED_MANIFEST
: 指定された URI が、1 行に 1 つの URI が含まれる改行区切りのマニフェスト ファイルであることを示します。ワイルドカード URI は、マニフェスト ファイルではサポートされていません。
たとえば、ソース URI が
"gs://bucket/path/file"
で、file_set_spec_type
がFILE_SYSTEM_MATCH
の場合、このファイルがデータファイルとして直接使用されます。file_set_spec_type
がNEW_LINE_DELIMITED_MANIFEST
の場合、ファイル内の各行は、データファイルを指す URI として解釈されます。--reference_file_schema_uri=URI
外部テーブルの作成に必要なテーブル スキーマを含む参照ファイルへのパスを指定します。
ExternalDataConfiguration.referenceFileSchemaUri
に相当します。このフラグは、Avro、ORC、PARQUET 形式の場合に有効になります。--label=KEY:VALUE
テーブルのラベルを指定します。複数のラベルを指定するには、このフラグを繰り返します。
--max_staleness=INTERVAL
キャッシュ内のメタデータをテーブルに対するオペレーションで使用するかどうかを指定します。また、オペレーションがキャッシュ内のメタデータを使用するためにその鮮度を指定します。
BigLake テーブルとオブジェクト テーブルに適用されます。
メタデータのキャッシュ保存を無効にするには、0 を指定します。これがデフォルトです。
メタデータ キャッシュを有効にするには、
INTERVAL
データ型のドキュメントで説明されているY-M D H:M:S
形式を使用して、30 分から 7 日の間隔値を指定します。たとえば、4 時間の未更新間隔の場合、0-0 0 4:0:0
を指定します。この値を指定すると、キャッシュに保存されたメタデータが過去 4 時間以内に更新されていれば、テーブルに対するオペレーションはそのメタデータを使用します。キャッシュに保存されているメタデータがそれより古い場合、オペレーションは代わりに Cloud Storage からメタデータを取得します。--object_metadata=STRING
オブジェクト テーブルの作成時に、このフラグの値を
SIMPLE
に設定します。オブジェクト テーブルを作成する場合にのみ必要です。
--range_partitioning=COLUMN_NAME,START,END,INTERVAL
次のように整数範囲パーティションのオプションを指定します。
column_name
は整数範囲パーティションを作成するために使用される列です。start
は範囲パーティショニングの開始値です。パーティションにはこの値も含まれます。end
は範囲パーティショニングの終了値です。パーティションにこの値は含まれません。interval
はパーティション内の各範囲の幅です。
次に例を示します。
--range_partitioning=customer_id,0,10000,100
--require_partition_filter={true|false}
指定したテーブルのクエリに対してパーティション フィルタを要求するには、
true
に設定します。このフラグはパーティション分割テーブルにのみ適用されます。デフォルト値はfalse
です。--schema={SCHEMA_FILE|SCHEMA
}ローカルの JSON スキーマ ファイルへのパス、または「
FIELD:DATA_TYPE, FIELD:DATA_TYPE
, …」という形の列定義のカンマ区切りリストのいずれかを指定します。スキーマ ファイルを使用する場合、拡張子は指定しないでください。例:
--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER
--time_partitioning_expiration=SECONDS
時間ベースのパーティションを削除する必要があるタイミングを指定する整数(秒単位)。パーティションの日付(UTC)に、この整数値を足した値が有効期限になります。負の数は、有効期限がないことを示します。
--time_partitioning_field=COLUMN_NAME
時間ベースのパーティションの作成方法を定めるために使用するフィールドを指定します。この値を指定せずに時間ベースのパーティショニングを有効にすると、テーブルは読み込み時間に基づいてパーティショニングされます。
--time_partitioning_type=INTERVAL
テーブルでの時間ベースのパーティショニングを有効にし、パーティション タイプを設定します。次の値のいずれかを使用できます。
DAY
HOUR
MONTH
YEAR
--use_avro_logical_types={true|false}
--external_table_definition
フラグのFORMAT
部分がAVRO
に設定されている場合、このフラグによって未加工の型(INTEGER
など)だけを使用するのではなく、論理型を対応する型(TIMESTAMP
など)に変換するかどうかが指定されます。--parquet_enable_list_inference={true|false}
--external_table_definition
フラグのFORMAT
部分がPARQUET
に設定されている場合、このフラグによって、ParquetLIST
論理型に対してスキーマ推定を使用するかどうかが指定されます。--parquet_enum_as_string={true|false}
--external_table_definition
フラグのFORMAT
部分がPARQUET
に設定されている場合、このフラグによって ParquetENUM
論理型をSTRING
値として推定するかどうかが指定されます。
詳細については、テーブルの作成と使用をご覧ください。
bq mk --transfer_config
転送構成を作成します。次のフラグがサポートされています。
--data_source=DATA_SOURCE
- データソースを指定します。転送構成を作成する場合は必須です。次の値のいずれかを使用できます。
amazon_s3
- Amazon S3 データ転送azure_blob_storage
- Azure Blob Storage データ転送dcm_dt
- キャンペーン マネージャー データ転送google_cloud_storage
- Cloud Storage データ転送cross_region_copy
- データセット コピーdfp_dt
- Google アド マネージャー データ転送adwords
- Google 広告データ転送google_ads
- Google 広告データ転送(プレビュー)merchant_center
- Google Merchant Center データ転送play
- Google Play データ転送scheduled_query
- スケジュールされたクエリデータ転送doubleclick_search
- 検索広告 360 データ転送youtube_channel
- YouTube チャンネル データ転送youtube_content_owner
- YouTube コンテンツ所有者データ転送redshift
- Amazon Redshift の移行on_premises
- Teradata の移行
--display_name=DISPLAY_NAME
- 転送構成の表示名を指定します。
--params={"PARAMETER":"VALUE"}
または-p={"PARAMETER":"VALUE"}
- 転送構成のパラメータを JSON 形式で指定します。パラメータは、データソースによって異なります。
--refresh_window_days=DAYS
- 転送構成の更新間隔を日数で指定する整数。デフォルト値は
0
です。 --service_account_name=SERVICE_ACCOUNT
- 転送構成の認証情報として使用するサービス アカウントを指定します。
--target_dataset=DATASET
- 転送構成のターゲット データセットを指定します。
--table_filter=TABLES
google_ads
データソースでのみ使用されます。TABLES
パラメータは、転送に含めるテーブルのカンマ区切りのリストです。テーブルを除外するには、先頭にハイフン(-
)を付けます。デフォルト値には、転送内のすべてのテーブルが含まれます。
BigQuery Data Transfer Service で bq mk
コマンドを使用する方法については、以下をご覧ください。
- Amazon S3 の転送の設定
- キャンペーン マネージャーの転送を設定する
- Cloud Storage の転送を設定する
- Google アド マネージャーの転送を設定する
- Google 広告の転送を設定する
- Google Merchant Center の転送の設定(ベータ版)
- Google Play の転送を設定する
- 検索広告 360 の転送を設定する(ベータ版)
- YouTube チャンネルの転送を設定する
- YouTube コンテンツ所有者の転送を設定する
- Amazon Redshift からデータを移行する
- Teradata からデータを移行する
bq mk --transfer_run
指定されたデータ転送構成を使用して、指定された時間または時間範囲でデータ転送実行を作成します。
概要
bq mk --transfer_run [--run_time=RUN_TIME | --start_time=START_TIME --end_time=END_TIME] CONFIG
次のフラグがサポートされています。
--run_time=RUN_TIME
- データ転送実行をスケジュールする時刻を指定するタイムスタンプ。
--start_time=START_TIME
- データ転送実行の範囲の開始時刻を指定するタイムスタンプ。
--end_time=END_TIME
- データ転送実行の範囲の終了時刻を指定するタイムスタンプ。
タイムスタンプの形式は、RFC3339 UTC の「Zulu」です。
CONFIG
引数には、既存のデータ転送構成を指定します。
例
bq mk --transfer_run \ --run_time=2021-01-20T17:00:00.00Z \ projects/p/locations/l/transferConfigs/c
bq mk --transfer_run \ --start_time=2020-12-19T16:39:57-08:00 \ --end_time=2020-12-19T20:39:57-08:00 \ projects/p/locations/l/transferConfigs/c
bq mk --view
ビューを作成します。次のフラグがサポートされています。
--description=DESCRIPTION
- ビューの説明を指定します。
--expiration=SECONDS
- ビューの存続期間を指定します。
SECONDS
が0
の場合、ビューに期限はありません。--expiration
フラグを省略した場合は、BigQuery によりビューが作成され、データセットのデフォルトのテーブル存続期間が設定されます。 --label=KEY:VALUE
- ビューのラベルを指定します。複数のラベルを指定するには、このフラグを繰り返します。
--use_legacy_sql={true|false}
- GoogleSQL クエリを使用してビューを作成するには、
false
に設定します。デフォルト値はtrue
です(レガシー SQL を使用します)。 --view_udf_resource=FILE
- Cloud Storage URI か、ビューの SQL クエリで使用されるユーザー定義関数リソースとして読み込まれてすぐに評価されるローカル コードファイルのパスを指定します。複数のファイルを指定するには、このフラグを繰り返します。
詳細については、ビューの作成をご覧ください。
bq mkdef
bq mkdef
コマンドを使用して、Cloud Storage または Google ドライブに保存されているデータ用の JSON 形式のテーブル定義を作成します。
概要
bq mkdef [FLAGS] URI [ > FILE ]
フラグと引数
bq mkdef
コマンドでは、次のフラグと引数を使用します。
--autodetect={true|false}
- CSV および JSON データのスキーマ自動検出を使用するかどうかを指定します。デフォルトは
false
です。 --connection_id=CONNECTION_ID
- 認証に使用する接続リソースの ID。
--hive_partitioning_mode
BigQuery がデータを読み取るときにパーティショニング スキーマを決定する方法を指定します。次のモードがサポートされています。
AUTO
: パーティション キー名とタイプを自動的に推測します。STRINGS
: パーティション キー名を自動的に推測します。すべての型が文字列として扱われます。CUSTOM
: ソース URI プレフィックスでパーティショニング スキーマを指定します。
デフォルト値は
AUTO
です。--hive_partitioning_source_uri_prefix
ソース URI の共通のプレフィックスを指定します。一般的なプレフィックス値は、パーティション キーのエンコードの直前にある URI の部分です。また、モードに
CUSTOM
を指定した場合は、パーティショニング スキーマを追加する必要があります。たとえば、次の構造を持つファイルがあるとします。
gs://bucket/path_to_table/dt=2019-06-01/country=USA/id=7/file.avro
gs://bucket/path_to_table/dt=2019-05-31/country=CA/id=3/file.avro
モードに
AUTO
またはSTRINGS
を使用する場合は、次の値を使用できます。gs://bucket/path_to_table
gs://bucket/path_to_table/
CUSTOM
を使用する場合は、次の値を使用できます。gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:INTEGER}
gs://bucket/path_to_table/{dt:STRING}/{country:STRING}/{id:INTEGER}
gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:STRING}
bq mkdef
コマンドの使用方法の詳細については、外部データソース用のテーブル定義ファイルを作成するをご覧ください。
--ignore_unknown_values={true|false}
または-i={true|false}
- スキーマに存在しない行の値を無視するかどうかを指定します。デフォルトは
false
です。 --metadata_cache_mode=STRING
テーブルのメタデータ キャッシュが自動的に更新されるか、手動で更新するかを指定します。
AUTOMATIC
に設定すると、メタデータ キャッシュがシステムで定義された間隔(通常は 30~60 分)で更新されます。自身で決めたスケジュールでメタデータ キャッシュを更新する場合は、
MANUAL
に設定します。この場合は、BQ.REFRESH_EXTERNAL_METADATA_CACHE
システム プロシージャを呼び出してキャッシュを更新できます。bq mk
コマンドで--max_staleness
フラグを設定する場合は、--metadata_cache_mode
フラグを設定する必要があります。--parquet_enable_list_inference={true|false}
source_format
がPARQUET
に設定されている場合、このフラグは ParquetLIST
論理型に対してスキーマ推定を使用するかどうかを指定します。デフォルトはfalse
です。--parquet_enum_as_string={true|false}
source_format
がPARQUET
に設定されている場合、このフラグは ParquetENUM
論理型をSTRING
値として推定するかどうかを指定します。デフォルトはfalse
です。--file_set_spec_type=FILE_SET_SPEC_TYPE
ソース URI の解釈方法を指定します。プレビュー版です。
FILE_SYSTEM_MATCH
: オブジェクト ストアのファイルを一覧表示して、ソース URI を拡張します。FileSetSpecType が設定されていない場合、これがデフォルトの動作です。NEW_LINE_DELIMITED_MANIFEST
: 指定された URI が、1 行に 1 つの URI が含まれる改行区切りのマニフェスト ファイルであることを示します。ワイルドカード URI は、マニフェスト ファイルではサポートされていません。
たとえば、ソース URI が
"gs://bucket/path/file"
で、file_set_spec_type
がFILE_SYSTEM_MATCH
の場合、このファイルがデータファイルとして直接使用されます。file_set_spec_type
がNEW_LINE_DELIMITED_MANIFEST
の場合、ファイル内の各行は、データファイルを指す URI として解釈されます。--source_format=FORMAT
ソースデータの形式を指定します。次の値のいずれかを使用できます。
AVRO
CSV
DATASTORE_BACKUP
(Filestore にはこの値を使用)GOOGLE_SHEETS
NEWLINE_DELIMITED_JSON
ORC
PARQUET
デフォルト値は
CSV
です。--use_avro_logical_types={true|false}
--source_format
フラグがAVRO
に設定されている場合、未加工型(INTEGER
など)を使用するだけではなく、論理型を対応する型(TIMESTAMP
など)に変換するかどうかを指定します。デフォルトはfalse
です。
bq partition
bq partition
コマンドは、日付パーティショニング用に YYYYMMDD
で終わるテーブルなど、時間単位のサフィックスが付いたテーブルのグループをパーティション分割テーブルに変換するために使用します。
概要
bq partition [FLAGS] SOURCE_TABLE_BASE_NAME PARTITION_TABLE
フラグと引数
bq partition
コマンドでは、次のフラグと引数を使用します。
--no_clobber={true|false}
または-n={true|false}
- 既存のパーティションの上書きを禁止するには、
true
に設定します。デフォルト値はfalse
です。パーティションが存在する場合、そのパーティションは上書きされます。 --time_partitioning_expiration=SECONDS
- 時間ベースのパーティションを削除する必要があるタイミングを指定する整数(秒単位)。パーティションの日付(UTC)に、この整数値を足した値が有効期限になります。負の数は、有効期限がないことを示します。
--time_partitioning_type=INTERVAL
パーティション タイプを指定します。次の表に、
INTERVAL
フラグで使用できる値と、各時間の想定される時間単位サフィックスの形式を示します。INTERVAL
suffix HOUR
YYYYMMDDHH
DAY
YYYYMMDD
MONTH
YYYYMM
YEAR
YYYY
SOURCE_TABLE_BASE_NAME
時間単位のサフィックスが付いたテーブル グループのベース名。
PARTITION_TABLE
変換先パーティション分割テーブルの名前。
bq partition
コマンドの使用方法の詳細については、日付別テーブルの取り込み時間パーティション分割テーブルへの変換をご覧ください。
bq query
bq query
コマンドは、指定した SQL クエリを実行するクエリジョブを作成するために使用します。
概要
bq query [FLAGS] 'QUERY'
フラグと引数
bq query
コマンドでは、次のフラグと引数を使用します。
--allow_large_results={true|false}
- レガシー SQL クエリで大きいサイズの宛先テーブルを有効にするには、
true
に設定します。デフォルト値はfalse
です。 --append_table={true|false}
- 宛先テーブルにデータを追加するには、
true
に設定します。デフォルト値はfalse
です。 --batch={true|false}
- クエリをバッチモードで実行するには、
true
に設定します。デフォルト値はfalse
です。 --clustering_fields=COLUMNS
- クエリで宛先テーブルをクラスタ化するために使用するフィールドを指定する列名のカンマ区切りのリスト。最大 4 つの列名を指定できます。パーティショニングとともに指定すると、テーブルはまず分割され、各パーティションは指定した列を使用してクラスタ化されます。
--destination_kms_key=KEY
- DESTINATION_TABLE のデータを暗号化する Cloud KMS 鍵のリソース ID を指定します。
--destination_schema={PATH_TO_FILE|SCHEMA}
ローカルの JSON スキーマ ファイルへのパス、または「
FIELD:DATA_TYPE, FIELD:DATA_TYPE, …」形式の列定義のカンマ区切りリスト。
スキーマの変更は、クエリの実行とは別のオペレーションで行われます。
--destination_table
フラグを指定することでクエリ結果をテーブルに書き込んだ後、クエリによって例外が発生した場合、スキーマの変更がスキップされる可能性があります。このような場合は、宛先テーブルのスキーマを確認し、必要に応じてスキーマを手動で更新してください。--destination_table=TABLE
指定すると、クエリ結果が
TABLE
に保存されます。TABLE
はPROJECT
:DATASET
.TABLE
の形式で指定します。PROJECT
を指定しない場合、現在のプロジェクトを指定したと想定されます。--destination_table
フラグを指定しないと、クエリ結果は一時テーブルに保存されます。例:
--destination_table myProject:myDataset.myTable
--destination_table myDataset.myTable
--dry_run={true|false}
指定すると、クエリは検証されますが実行されません。
--external_table_definition={TABLE::PATH_TO_FILE|TABLE::DEFINITION}
外部テーブルクエリのテーブル名とテーブル定義を指定します。テーブル定義は、ローカルの JSON スキーマ ファイルへのパスか、インライン テーブル定義です。インライン テーブル定義を指定する形式は
SCHEMA@SOURCE_FORMAT=CLOUD_STORAGE_URI
です。SCHEMA
値の形式は、「FIELD:DATA_TYPE, FIELD:DATA_TYPE
, …」という形の列定義のカンマ区切りリストです。テーブル定義ファイルを使用する場合、拡張子は付けないでください。次に例を示します。
--external_table_definition=myTable::/tmp/tabledef
--external_table_definition=myTable::Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv
複数のテーブルをクエリするには、このフラグを繰り返します。
--flatten_results={true|false}
レガシー SQL クエリの結果でネストされたフィールドと繰り返しフィールドをフラット化しないようにするには、
false
に設定します。デフォルト値はtrue
です。--label=KEY:VALUE
クエリジョブのラベルを指定します。複数のラベルを指定するには、このフラグを繰り返します。
--max_rows=MAX_ROWS
または-n=MAX_ROWS
クエリ結果で返す行数を指定する整数。デフォルト値は
100
です。--maximum_bytes_billed=MAX_BYTES
クエリに対して課金されるバイト数を制限する整数。クエリがこのフラグで設定した上限を超える場合、そのクエリは失敗します(料金は発生しません)。このフラグが指定されていない場合、課金されるバイト数はプロジェクトのデフォルトに設定されます。
--max_statement_results=VALUE
クエリ結果に表示されるスクリプト ステートメントの最大数を指定する整数。デフォルト値は
100
です。--min_completion_ratio=RATIO
[試験運用版] クエリが返される前にスキャンする必要があるデータの最小割合を指定する 0~1.0 の数値。このフラグが指定されていない場合は、デフォルトのサーバーの値
1.0
が使用されます。--parameter={PATH_TO_FILE|PARAMETER}
クエリ パラメータのリストを含む JSON ファイルか、
NAME:TYPE:VALUE
形式のクエリ パラメータ。空の名前を指定すると、位置パラメータが作成されます。TYPE
を省略すると、STRING
型と見なされます。NULL
は null 値を指定します。複数のパラメータを指定するには、このフラグを繰り返します。次に例を示します。
--parameter=/tmp/queryParams
--parameter=Name::Oscar
--parameter=Count:INTEGER:42
--range_partitioning=COLUMN_NAME,START,END,INTERVAL
--destination_table
フラグとともに使用します。宛先テーブル内の整数範囲パーティショニングのオプションを指定します。値は、column_name,start,end,interval
という形式のカンマ区切りのリストです。column_name
は整数範囲パーティションを作成するために使用される列です。start
は範囲パーティショニングの開始値です。パーティションにはこの値も含まれます。end
は範囲パーティショニングの終了値です。パーティションにこの値は含まれません。interval
はパーティション内の各範囲の幅です。
次に例を示します。
--range_partitioning=customer_id,0,10000,100
--replace={true|false}
クエリ結果で宛先テーブルを上書きするには、
true
に設定します。既存のデータとスキーマはすべて消去されます。--destination_kms_key
フラグを指定しない限り、Cloud KMS 鍵も削除されます。デフォルト値はfalse
です。--require_cache={true|false}
指定すると、キャッシュから結果を取得できる場合にのみ、クエリが実行されます。
--require_partition_filter={true|false}
指定すると、そのテーブルに対するクエリにはパーティション フィルタが必要になります。このフラグは、パーティション分割テーブルでのみ使用できます。
--rpc={true|false}
REST API
jobs.insert
メソッドではなく RPC スタイルのクエリ API を使用するには、true
に設定します。デフォルト値はfalse
です。--schedule="SCHEDULE"
クエリを定期的にスケジュールされたものにします。クエリを実行する頻度を指定する必要があります。
例:
--schedule="every 24 hours"
--schedule="every 3 hours"
スケジュールの構文の説明については、schedule の書式をご覧ください。
--schema_update_option=OPTION
読み込みジョブまたはクエリジョブでテーブルにデータを追加するとき、またはテーブル パーティションを上書きするときに、宛先テーブルのスキーマを更新する方法を指定します。次の値のいずれかを使用できます。
ALLOW_FIELD_ADDITION
: 新しいフィールドの追加を許可します。ALLOW_FIELD_RELAXATION
:REQUIRED
フィールドをNULLABLE
に緩めることを許可します。
複数のスキーマ更新オプションを指定するには、このフラグを繰り返します。
--start_row=ROW_NUMBER
または-s=ROW_NUMBER
クエリ結果で返す最初の行を指定する整数。デフォルト値は
0
です。--target_dataset=DATASET
--schedule
とともに指定すると、スケジュールされたクエリのターゲット データセットが更新されます。この場合のクエリは DDL または DML でなければなりません。--time_partitioning_expiration=SECONDS
--destination_table
フラグとともに使用します。時間ベースのパーティションを削除する必要があるタイミングを指定する整数(秒単位)。パーティションの日付(UTC)に、この整数値を足した値が有効期限になります。負の数は、有効期限がないことを示します。--time_partitioning_field=COLUMN_NAME
--destination_table
フラグとともに使用します。時間ベースのパーティショニングのパーティショニング列を指定します。この値を指定せずに時間ベースのパーティショニングを有効にすると、テーブルは取り込み時間に基づいてパーティショニングされます。--time_partitioning_type=INTERVAL
--destination_table
フラグとともに使用します。宛先テーブルのパーティション タイプを指定します。次の値のいずれかを使用できます。DAY
HOUR
MONTH
YEAR
--udf_resource=FILE
このフラグはレガシー SQL クエリにのみ適用されます。Cloud Storage URI、またはレガシー SQL クエリで使用されるユーザー定義関数リソースを含むローカル ファイルへのパスを指定します。複数のファイルを指定するには、このフラグを繰り返します。
--use_cache={true|false}
クエリ結果のキャッシュ保存を禁止するには、
false
に設定します。デフォルト値はtrue
です。--use_legacy_sql={true|false}
GoogleSQL クエリを実行するには、
false
に設定します。デフォルト値はtrue
です。このコマンドではレガシー SQL を使用します。--job_timeout_ms={string (Int64Value)}
クエリを実行する最大時間をミリ秒で指定します。この時間制限を超えた場合、BigQuery によりジョブの停止が試行されます。
QUERY
実行するクエリ。
bq query
コマンドの使用方法の詳細については、インタラクティブ クエリとバッチクエリの実行をご覧ください。
bq remove-iam-policy-binding
bq remove-iam-policy-binding
コマンドは、1 ステップでリソースの IAM ポリシーを取得して、ポリシーからバインディングを削除するために使用します。リソースには、テーブルまたはビューを指定できます。
このコマンドは、以下の 3 ステップの代わりに使用できます。
bq get-iam-policy
コマンドを使用してポリシー ファイル(JSON 形式)を取得する。- ポリシー ファイルを編集する。
bq set-iam-policy
コマンドを使用して、バインディングなしでポリシーを更新する。
概要
bq remove-iam-policy-binding FLAGS --member=MEMBER_TYPE:MEMBER --role=ROLE RESOURCE
フラグと引数
bq remove-iam-policy-binding
コマンドでは、次のフラグと引数を使用します。
--member=MEMBER_TYPE:MEMBER
必須。
--member
フラグは、IAM ポリシー バインディングのメンバー部分を指定するために使用します。--member
フラグは--role
フラグとともに指定する必要があります。--member
と--role
の 1 つの組み合わせが、1 つのバインディングに相当します。MEMBER_TYPE
値は、IAM ポリシー バインディングのメンバーの種類を指定します。次の値のいずれかを使用できます。user
serviceAccount
group
domain
MEMBER
値は、IAM ポリシー バインディングのメンバーのメールアドレスか、ドメインを指定します。--role=ROLE
必須。IAM ポリシー バインディングのロールの部分を指定します。
--role
フラグは、--member
フラグとともに指定する必要があります。--member
と--role
の 1 つの組み合わせが、1 つのバインディングに相当します。--table={true|false}
または-t={true|false}
省略可。テーブルまたはビューの IAM ポリシーからバインディングを削除するには、
true
に設定します。デフォルト値はfalse
です。
RESOURCE
は、ポリシー バインディングを削除するテーブルまたはビューです。
詳細については、IAM ポリシーのリファレンスをご覧ください。
bq rm
bq rm
コマンドは、BigQuery リソースを削除するために使用します。
概要
bq rm [FLAGS] RESOURCE
フラグと引数
bq rm
コマンドでは、次のフラグと引数を使用します。
--capacity_commitment={false|true}
- 容量コミットメントを削除するには、
true
に設定し、--location
フラグを使用して、削除するコミットメントのロケーションを指定します。RESOURCE
は、削除するコミットメントの ID に置き換えます。 --dataset={true|false}
または-d={true|false}
- データセットを削除するには、
true
に設定します。デフォルト値はfalse
です。 --force={true|false}
または-f={true|false}
- 確認メッセージを表示せずにリソースを削除するには、
true
に設定します。デフォルト値はfalse
です。 --job={true|false}
または-j={true|false}
- ジョブを削除するには、true に設定します。デフォルト値は false です。
--model={true|false}
または-m={true|false}
- BigQuery ML モデルを削除するには、
true
に設定します。デフォルトはfalse
です。 --recursive={true|false}
または-r{true|false}
- データセットおよびその中のすべてのテーブル、テーブルデータ、モデルを削除するには、
true
に設定します。デフォルト値はfalse
です。 --reservation={true|false}
- 予約を削除するには、
true
に設定します。デフォルト値はfalse
です。 --reservation_assignment={true|false}
- 予約割り当てを削除するには、
true
に設定します。デフォルト値はfalse
です。 --routine={true|false}
- ルーティンを削除するには、
true
に設定します。デフォルト値はfalse
です。ルーティンには、永続的なユーザー定義関数、テーブル関数(プレビュー)、またはストアド プロシージャがあります。 --table={true|false}
または-t={true|false}
- テーブルまたはビューを削除するには、
true
に設定します。デフォルト値はfalse
です。 --transfer_config={true|false}
- 転送構成を削除するには、
true
に設定します。デフォルト値はfalse
です。 RESOURCE
- 削除するリソース。
bq rm
コマンドの使用方法の詳細については、以下をご覧ください。
bq set-iam-policy
bq set-iam-policy
コマンドは、リソースの IAM ポリシーを指定または更新するために使用します。リソースには、テーブルまたはビューを指定できます。ポリシーを設定すると、新しいポリシーが stdout
に出力されます。このポリシーは JSON 形式です。
更新するポリシーの etag
フィールドは、現在のポリシーの etag
の値と一致する必要があります。一致しない場合、更新は失敗します。この機能により、同時更新が防止されます。
リソースの現在のポリシーと etag
値は、bq get-iam-policy
コマンドを使用することで取得できます。
概要
bq set-iam-policy [FLAGS] RESOURCE FILE_NAME
フラグと引数
bq set-iam-policy
コマンドでは、次のフラグと引数を使用します。
--table={true|false}
または-t={true|false}
- 省略可。テーブルやビューの IAM ポリシーを設定するには、
true
に設定します。デフォルト値はfalse
です。
RESOURCE は、ポリシーを更新するテーブルまたはビューです。
FILE_NAME は、ポリシーを含むファイル(JSON 形式)の名前です。
bq set-iam-policy
コマンドの詳細については、IAM を使用してリソースへのアクセスを制御するをご覧ください。
bq show
bq show
コマンドは、リソースに関する情報を表示するために使用します。
概要
bq show [FLAGS] [RESOURCE]
フラグと引数
bq show
コマンドでは、次のフラグと引数を使用します。
--assignee_id=ASSIGNEE
--reservation_assignment
フラグとともに使用すると、フォルダ、組織、またはプロジェクトの ID を指定します。表示する割り当て先の種類を指定するには、--assignee_type
フラグを使用します。--assignee_type=TYPE
--reservation_assignment
フラグとともに使用されるときに、表示するエンティティのタイプを指定します。次の値のいずれかを使用できます。FOLDER
ORGANIZATION
PROJECT
--connection={true|false}
- 接続に関する情報を表示するには、
true
に設定します。デフォルト値はfalse
です。詳細については、接続リソースの表示をご覧ください。 --dataset={true|false}
または-d={true|false}
- データセットに関する情報を表示するには、
true
に設定します。デフォルト値はfalse
です。 --encryption_service_account={true|false}
- プロジェクトの暗号化サービス アカウントが存在する場合はそれを表示し、存在しない場合にアカウントを作成するには、
true
に設定します。デフォルト値はfalse
です。--project_id
フラグとともに使用します。 --job={true|false}
または-j={true|false}
- ジョブに関する情報を表示するには、
true
に設定します。デフォルト値はfalse
です。 --job_type=JOB_TYPE
--reservation_assignment
フラグとともに使用されるとき、表示する予約割り当てのジョブタイプを指定します。次の値のいずれかを使用できます。QUERY
PIPELINE
ML_EXTERNAL
--model={true|false}
または-m={true|false}
- BigQuery ML モデルに関する情報を表示するには、
true
に設定します。デフォルト値はfalse
です。 --reservation={true|false}
- 予約に関する情報を表示するには、
true
に設定します。デフォルト値はfalse
です。 --reservation_assignment={true|false}
true
に設定すると、このコマンドは、指定したフォルダ、組織、またはプロジェクトの予約割り当てを表示します。このコマンドは、ターゲット リソースの明示的な割り当てがあれば、それを表示します。割り当てがない場合、親リソースから継承した割り当てを表示します。たとえば、プロジェクトは親フォルダから割り当てを継承できます。このフラグを使用する場合は、--job_type
、--assignee_type
、--assignee_id
フラグが適用されます。デフォルト値はfalse
です。--routine={true|false}
- ルーティンに関する情報を表示するには、
true
に設定します。デフォルト値はfalse
です。ルーティンには、永続的なユーザー定義関数、テーブル関数(プレビュー)、またはストアド プロシージャがあります。 --schema={true|false}
- テーブルのスキーマだけを表示するには、
true
に設定します。デフォルト値はfalse
です。 --transfer_config={true|false}
- 転送構成に関する情報を表示するには、
true
に設定します。デフォルト値はfalse
です。 --transfer_run={true|false}
- 転送実行に関する情報を表示するには、
true
に設定します。デフォルト値はfalse
です。 --view={true|false}
- ビューに関する情報を表示するには、
true
に設定します。デフォルト値はfalse
です。 RESOURCE
- 情報を表示するリソース。
bq show
コマンドの使用方法の詳細については、以下をご覧ください。
bq update
bq update
コマンドは、リソースを変更するために使用します。
概要
bq update [FLAGS] [RESOURCE]
フラグと引数
bq update
コマンドでは、次のフラグと引数を使用します。
--add_tags=TAGS
- テーブルでのみ使用できます。リソースに付加するタグをカンマで区切って指定します(例:
556741164180/env:prod,myProject/department:sales
)。各タグには、名前空間付きのキー名と値の略称が必要です。 --autoscale_max_slots=NUMBER_OF_AUTOSCALING_SLOTS
- 予約に割り当てられている自動スケーリング スロットの数。
--reservation
フラグを使用する場合、およびエディションで予約が作成された場合にのみ使用できます。 --capacity_commitment={true|false}
- 容量コミットメントを更新するには、
true
に設定します。このフラグは、--merge
、--plan
、--renewal_plan
、--split
、--slots
フラグと併用します。 --clear_all_tags={true|false}
- テーブルでのみ使用できます。リソースからすべてのタグを消去するには、
true
に設定します。デフォルト値はfalse
です。 --clear_label=KEY:VALUE
- リソースからラベルを削除します。削除するラベルを指定するには、
KEY:VALUE
の形式を使用します。複数のラベルを削除するには、このフラグを繰り返します。 --clustering_fields=COLUMNS
- テーブルのクラスタリング仕様を更新します。COLUMNS 値は、クラスタリングに使用する列名のカンマ区切りリストです。クラスタリングを削除するには、COLUMNS に
""
(空の文字列)を設定します。詳細については、クラスタリング仕様を変更するをご覧ください。 --target_job_concurrency=CONCURRENCY
--reservation
フラグとともに使用すると、同時に実行されるクエリのターゲット数が指定されます。デフォルト値は 0 です。つまり、予約サイズに基づいて同時実行が自動的に設定されます。詳細については、クエリキューの使用をご覧ください。--dataset={true|false}
または-d={true|false}
- データセットを更新するには、
true
に設定します。デフォルト値はfalse
です。 --default_kms_key=KEY
- データセット内のテーブルデータを暗号化するデフォルトの Cloud KMS 鍵のリソース ID を指定します。デフォルトの鍵は、テーブル作成またはクエリの際に明示的な鍵が指定されていない場合に使用されます。
--default_partition_expiration=SECONDS
データセット内に新しく作成されるパーティション分割テーブルのすべてのパーティションに対して、デフォルトの有効期限を秒単位で指定する整数。このフラグには最小値はありません。
パーティションの日付(UTC)にこの整数値を足した値がパーティションの有効期限になります。このプロパティを設定すると、データセット レベルのデフォルトのテーブル有効期限が存在する場合には、それをオーバーライドします。パーティション分割テーブルの作成時または更新時に
--time_partitioning_expiration
フラグを指定した場合は、データセット レベルのデフォルトのパーティション有効期限よりもテーブルレベルのパーティション有効期限が優先されます。既存の有効期限を削除するには、0
を指定します。--default_table_expiration=SECONDS
データセットの新しく作成されるテーブルのデフォルトの存続期間を秒単位で更新する整数。現在の UTC 時間にこの値を足した値が、有効期限に設定されます。既存の有効期限を削除するには、
0
を指定します。--description=DESCRIPTION
データセット、テーブル、テーブル スナップショット、モデル、またはビューの説明を更新します。
--destination_reservation_id=RESERVATION_ID
--reservation_assignment
フラグとともに使用すると、既存の予約割り当てを指定の予約に移動します。値は、移動先の予約の ID です。詳細については、割り当てを別の予約に移動するをご覧ください。--display_name=DISPLAY_NAME
転送構成の表示名を更新します。
--etag=ETAG
フィルタとして機能します。
ETAG
引数で指定された文字列と一致する ETag がリソースに含まれている場合にのみ、リソースを更新します。--expiration SECONDS
テーブル、モデル、テーブル スナップショット、ビューの有効期限を更新するには、このフラグを指定します。
SECONDS
は、更新時刻から有効期限までの時間(秒)に置き換えます。テーブル、モデル、テーブル スナップショット、ビューの有効期限を削除するには、SECONDS
引数を 0 に設定します。--external_table_definition={TABLE::PATH_TO_FILE|TABLE::DEFINITION}
指定されたテーブル定義で外部テーブルを更新します。テーブル定義は、ローカルの JSON テーブル定義ファイルへのパスか、
SCHEMA@SOURCE_FORMAT=CLOUD_STORAGE_URI
形式のインラインのテーブル定義です。SCHEMA
値は、「FIELD:DATA_TYPE, FIELD:DATA_TYPE
, …」形式の列定義のカンマ区切りリストです。テーブル定義ファイルを使用する場合、拡張子は付けないでください。次に例を示します。
--external_table_definition=myTable::/tmp/tabledef
--external_table_definition=myTable::Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv
--ignore_idle_slots={true|false}
--reservation
フラグとともに使用します。指定された予約で実行されているジョブを、その予約に割り当てられたスロットのみに制限するには、true
に設定します。デフォルト値はfalse
で、指定された予約のジョブは、他の予約のアイドル スロット、または予約に割り当てられていないスロットを使用できます。詳細については、アイドル スロットをご覧ください。--max_time_travel_hours=HOURS
データセットのタイムトラベル期間を時間で指定します。
--max_time_travel_hours
値は、24 の倍数(48、72、96、120、144、168)であり、48(2 日)~168(7 日)の範囲にする必要があります。--merge={true|false}
2 つの容量コミットメントを統合するには、
--merge
をtrue
に設定します。--capacity_commitment
フラグをtrue
に設定し、--location
フラグを使用して、マージするコミットメントのロケーションを指定します。RESOURCE
には、統合する 2 つのコミットメントの ID をカンマ区切りで指定します。詳細については、2 つのコミットメントを統合するをご覧ください。--model={true|false}
または-m={true|false}
BigQuery ML モデルのメタデータを更新するには、
true
に設定します。デフォルト値はfalse
です。--params={"PARAMETER":"VALUE"} or -p={"PARAMETER":"VALUE"}
転送構成のパラメータを更新します。パラメータは、データソースによって異なります。詳細については、BigQuery Data Transfer Service の概要をご覧ください。
--plan=PLAN
--capacity_commitment
フラグとともに使用すると、容量コミットメントが、指定よりも長いコミットメント プランに変換されます。PLAN
は、次のいずれかに置き換えます。ANNUAL
THREE_YEAR
--refresh_window_days=DAYS
転送構成の更新後の更新間隔(日数)を指定する整数。
--remove_tags=TAG_KEYS
テーブルでのみ使用できます。リソースから削除するタグをカンマで区切って指定します(例:
556741164180/env,myProject/department
)。各タグキーには名前空間付きのキー名が必要です。--renewal_plan=PLAN
--capacity_commitment
フラグとともに使用すると、年間容量コミットメントの更新プランが更新されます。PLAN
は、次のいずれかに置き換えます。ANNUAL
THREE_YEAR
NONE
従来の定額料金をご利用のお客様は、次のいずれかの値を使用することもできます。
FLEX
MONTHLY
ANNUAL
--reservation={true|false}
予約を更新するかどうかを指定します。デフォルト値は
false
です。--reservation_assignment={true|false}
予約割り当てを更新するかどうかを指定します。デフォルト値は
false
です。--schema={SCHEMA_FILE|SCHEMA
}ローカルの JSON スキーマ ファイルへのパス、または「
FIELD:DATA_TYPE, FIELD:DATA_TYPE
, …」という形の列定義のカンマ区切りリストのいずれかを指定します。スキーマ ファイルを使用する場合、拡張子は指定しないでください。次に例を示します。
--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER
--service_account_name=SERVICE_ACCOUNT
転送構成の認証情報として使用するサービス アカウントを指定します。
--set_label=KEY:VALUE
更新するラベルを指定します。複数のラベルを更新するには、このフラグを繰り返します。
--slots=NUMBER_OF_SLOTS
--capacity_commitment
フラグと--split
フラグとともに使用する場合は、既存の容量コミットメントから新しいコミットメントに分割するスロットの数を指定します。RESOURCE
は、分割するコミットメントの ID に置き換えます。--reservation
フラグとともに使用すると、予約のスロット数が更新されます。--source=FILE
リソースの更新に使用されるペイロードを含むローカル JSON ファイルへのパス。たとえば、このフラグを使用して、更新された
access
プロパティを持つデータセット リソースを含む JSON ファイルを指定できます。このファイルは、データセットのアクセス制御を上書きするために使用されます。JSON ファイルにバイト オーダー マーク(BOM)を含めてはなりません。--split={true|false}
true
に設定して--capacity_commitment
フラグとともに使用すると、既存の容量コミットメントの分割を指定できます。--location
フラグを使用して、分割するコミットメントのロケーションを指定します。--slots
フラグを使用して、分割するスロットの数を指定します。RESOURCE
は、分割するコミットメントの ID に置き換えます。詳細については、コミットメントを分割するをご覧ください。--storage_billing_model=BILLING_MODEL
データセットのストレージ課金モデルを指定します。ストレージ料金の計算時に物理バイトを使用する場合は
--storage_billing_model
値をPHYSICAL
に設定し、論理バイトを使用する場合はLOGICAL
に設定します。データセットの課金モデルを変更した場合は、変更が反映されるまでに 24 時間を要します。
データセットのストレージ課金モデルを変更した後、再度ストレージ課金モデルを変更するには、14 日間お待ちいただく必要があります。
--table={true|false}
または-t={true|false}
テーブルを更新するかどうかを指定します。デフォルト値は
false
です。--target_dataset=DATASET
指定すると、転送構成のターゲット データセットが更新されます。
--time_partitioning_expiration=SECONDS
時間ベースのパーティションを削除する必要があるタイミングを更新する整数(秒単位)。パーティションの日付(UTC)に、この整数値を足した値が有効期限になります。負の数は、有効期限がないことを示します。
--time_partitioning_field=COLUMN_NAME
時間ベースのパーティションの作成方法を決定するために使用するフィールドを更新します。この値を指定せずに時間ベースのパーティショニングを有効にすると、テーブルは読み込み時間に基づいてパーティショニングされます。
--time_partitioning_type=INTERVAL
パーティショニングのタイプを指定します。次の値のいずれかを使用できます。
DAY
HOUR
MONTH
YEAR
既存のテーブルのパーティショニング タイプは変更できません。
--transfer_config={true|false}
転送構成を更新するかどうかを指定します。デフォルト値は
false
です。--update_credentials={true|false}
転送構成の認証情報を更新するかどうかを指定します。デフォルト値は
false
です。--use_legacy_sql={true|false}
false
に設定すると、ビューの SQL クエリがレガシー SQL から GoogleSQL に更新されます。デフォルト値はtrue
です。このクエリではレガシー SQL を使用します。--view=QUERY
指定すると、ビューの SQL クエリが更新されます。
--view_udf_resource=FILE
Cloud Storage URI、またはビューの SQL クエリのユーザー定義関数リソースとして読み込まれてすぐに評価されるローカル コードファイルのパスを更新します。複数のファイルを指定するには、このフラグを繰り返します。
RESOURCE
更新するリソース。
bq update
コマンドの使用方法の詳細については、以下をご覧ください。
bq version
bq コマンドライン ツールのバージョン番号を表示するには、bq version
コマンドを使用します。
概要
bq version
bq wait
bq wait
コマンドは、ジョブの終了を指定した秒間待つために使用します。ジョブが指定されていない場合、コマンドは現在のジョブの終了を待ちます。
概要
bq wait [FLAGS] [JOB] [SECONDS]
例
bq wait
bq wait --wait_for_status=RUNNING 12345 100
フラグと引数
bq wait
コマンドでは、次のフラグと引数を使用します。
--fail_on_error={true|false}
- ジョブが失敗しても、待機時間内にジョブが完了した場合は成功を返すには、
false
に設定します。デフォルト値はtrue
で、待機時間が経過後、ジョブがまだ実行中か、失敗して完了した場合はエラーで終了します。 --wait_for_status=STATUS
指定すると、特定のジョブ ステータスになるまで待機してから終了します。次の値のいずれかを使用できます。
PENDING
RUNNING
DONE
デフォルト値は
DONE
です。JOB
待つ対象のジョブを指定します。ジョブ ID は、
bq ls --jobs myProject
コマンドを使用することで確認できます。SECONDS
ジョブが終了するまでの最大待機時間(秒)を指定します。
0
を入力すると、コマンドでジョブ完了がポーリングされて、すぐに結果が返されます。整数値を指定しない場合、コマンドはジョブが終了するまで待機します。