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.myTablemyProject:myDataset.myTable(または myProject.myDataset.myTable)と解釈します。

一部のリソース識別子は、バッククォート(`)で囲む必要があります。リソース識別子が英文字かアンダースコアで始まり、英文字、数字、アンダースコアのみで構成される場合は、それを囲む必要はありません。ただし、リソース識別子に他の種類の文字や予約済みキーワードが含まれている場合は、ID(または ID の特殊文字や予約済みキーワードの部分)をバッククォートで囲む必要があります。詳細については、識別子をご覧ください。

グローバル フラグ

次のフラグは、どの bq コマンドにも、必要に応じて使用できます。

--api=ENDPOINT
呼び出す API のエンドポイントを指定します。デフォルト値は https://www.googleapis.com です。
--api_version=VERSION
使用する API のバージョンを指定します。デフォルトは v2 です。
--apilog=FILE

すべての 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 形式

prettysparseprettyjson は、人が読めるように意図されています。jsoncsv は、別のプログラムで使用されることを想定したものです。none を指定すると、出力は生成されません。--format フラグが指定されていない場合は、コマンドに基づいて適切な出力形式が選択されます。

--headless={true|false}

ユーザー操作なしで bq セッションを実行するには、true に設定します。たとえば、debug_mode で中断してデバッガに入ることがなくなり、情報出力の頻度が低くなります。デフォルト値は false です。

--httplib2_debuglevel=DEBUG_LEVEL

HTTP デバッグ情報を表示するかどうかを指定します。DEBUG_LEVEL0 より大きい場合、このコマンドはエラー メッセージに加えて、HTTP サーバーのリクエストとレスポンスを stderr に出力します。DEBUG_LEVEL が 0 以下の場合、または --httplib2_debuglevel フラグが使用されていない場合は、エラー メッセージのみが出力されます。

次に例を示します。

--httplib2_debuglevel=1

--job_id=JOB_ID

新しいジョブのジョブ ID を指定します。このフラグは、ジョブを作成するコマンド(cpextractloadquery)にのみ適用されます。--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 ステップの代わりに使用できます。

  1. bq get-iam-policy コマンドを使用してポリシー ファイル(JSON 形式)を取得する。
  2. ポリシー ファイルを編集する。
  3. 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 です。--autodetectfalse で、--schema フラグでスキーマが指定されず、DESTINATION_TABLE が存在する場合は、DESTINATION_TABLE のスキーマが使用されます。
--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}
CSV ファイルと JSON ファイルに対して true を設定すると、テーブル スキーマと一致しない余分な列値を持つ行は読み込まれますが、余分な列は無視されます。Avro、Parquet、ORC ファイルに対して true を設定すると、テーブル スキーマに存在しないファイル スキーマのフィールドは無視され、読み込まれません。
--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_formatDATASTORE_BACKUP に設定すると、このフラグは Datastore エクスポートから読み込むエンティティ プロパティを示します。プロパティ名は、カンマ区切りのリストで指定します。プロパティ名では大文字と小文字が区別され、最上位のプロパティを参照する必要があります。また、このフラグは Firestore のエクスポートでも使用できます。

--quote=CHARACTER

CSV データのフィールドを囲む引用符を指定します。CHARACTER 引数には、任意の 1 バイト文字を使用できます。デフォルト値は二重引用符(")です。引用符がないことを指定するには、空の文字列("")を使用します。

--replace={true|false}

新しいデータを読み込むときに既存のデータとスキーマを消去するには、true に設定します。--destination_kms_key フラグを指定しない限り、Cloud KMS 鍵も削除されます。デフォルト値は false です。

JobConfigurationLoad.writeDispositionWRITE_TRUNCATE 値に相当します。

--schema={SCHEMA_FILE|SCHEMA}

ローカルの JSON スキーマ ファイルへのパスか、FIELD:DATA_TYPE, FIELD:DATA_TYPE 形式の列定義のカンマ区切りリストのいずれかを指定します。スキーマ ファイルを使用する場合、拡張子は指定しないでください。

次に例を示します。

--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER

スキーマが指定されず、--autodetectfalse で、宛先テーブルが存在する場合は、宛先テーブルのスキーマが使用されます。

--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_typeFILE_SYSTEM_MATCH の場合、このファイルがデータファイルとして直接使用されます。file_set_spec_typeNEW_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 で Parquet ENUM 論理型を 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 からのデータ読み込みの詳細については、以下をご覧ください。

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 をキーとして使用し、次のいずれかのデータソースを値として使用します。

例:

   --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、最大値は 1000 です。1000 を超えるジョブがある場合は、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 に設定します。これにより、作成するリソースのタイプを指定します。

bq mk コマンドは、すべてのタイプのリソースに対して次のフラグをサポートします。

--force={true|false} または -f={true|false}
同じ名前のリソースがすでに存在する場合にエラーを無視するには、true に設定します。リソースがすでに存在する場合、終了コードは 0 になりますが、このフラグを true に設定しても、bq mk コマンドによってリソースが上書きされることはありません。デフォルト値は false です。

以降のセクションで説明するように、bq mk コマンドでは、作成するリソースのタイプに応じて追加のフラグがサポートされています。

bq mk --capacity_commitment

容量コミットメントを購入するには、--capacity_commitmenttrue に設定し、次のフラグを使用します。

--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_BASELINE_SLOTS

購入するスロットの数を指定します。

--edition=EDITION

容量コミットメントに関連付けられたエディション。次のいずれかの値を設定する必要があります。

  • ENTERPRISE
  • ENTERPRISE_PLUS

詳細については、スロットの購入をご覧ください。

bq mk --connection

接続を作成します。次のフラグがサポートされています。

--connection_type=CONNECTION_TYPE
接続タイプ。たとえば、Cloud SQL 接続の場合は CLOUD_SQL です。
--properties=PROPERTIES

接続固有の JSON 形式のパラメータ。instanceIddatabasetype を指定する必要があります。

Spanner 接続を作成し、Data Boost を使用する場合は、"useParallelism":true"useDataBoost":true のペアを含めます。

--connection_credential=CONNECTION_CREDENTIAL

JSON 形式の接続の認証情報。usernamepassword を指定する必要があります。

--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

データセットを作成します。次のフラグがサポートされています。

--add_tags=TAGS
新しいデータセットに付加するタグをカンマで区切って指定します。例: 556741164180/env:prod,myProject/department:sales。各タグには、名前空間付きのキー名と値の略称が必要です。
--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_BASELINE_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 StorageGoogle ドライブの外部テーブルの場合:

--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 外部テーブルAWSAzure に基づく 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_typeFILE_SYSTEM_MATCH の場合、このファイルがデータファイルとして直接使用されます。file_set_spec_typeNEW_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 に設定されている場合、このフラグによって、Parquet LIST 論理型に対してスキーマ推定を使用するかどうかが指定されます。

--parquet_enum_as_string={true|false}

--external_table_definition フラグFORMAT 部分が PARQUET に設定されている場合、このフラグによって Parquet ENUM 論理型を STRING 値として推論するかどうかが指定されます。

詳細については、テーブルの作成と使用をご覧ください。

bq mk --transfer_config

転送構成を作成します。次のフラグがサポートされています。

--data_source=DATA_SOURCE
データソースを指定します。転送構成を作成する場合は必須です。 次の値のいずれかを使用できます。
--display_name=DISPLAY_NAME
転送構成の表示名を指定します。
--no_auto_scheduling={true|false}
この構成のデータ転送の自動スケジュールを無効にします。デフォルト値は false です。
--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 コマンドを使用する方法については、以下をご覧ください。

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

ビューを作成します。次のフラグがサポートされています。

--add_tags=TAGS
新しいビューに付加するタグをカンマで区切って指定します。例: 556741164180/env:prod,myProject/department:sales。各タグには、名前空間付きのキー名と値の略称が必要です。
--description=DESCRIPTION
ビューの説明を指定します。
--expiration=SECONDS
ビューの存続期間を指定します。SECONDS0 の場合、ビューに期限はありません。--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_formatPARQUET に設定されている場合、このフラグは Parquet LIST 論理型に対してスキーマ推定を使用するかどうかを指定します。デフォルトは false です。

--parquet_enum_as_string={true|false}

source_formatPARQUET に設定されている場合、このフラグは Parquet ENUM 論理型を 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_typeFILE_SYSTEM_MATCH の場合、このファイルがデータファイルとして直接使用されます。file_set_spec_typeNEW_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 個の列名を指定できます。パーティショニングとともに指定すると、テーブルはまず分割され、各パーティションは指定した列を使用してクラスタ化されます。
--connection_property=KEY:VALUE

接続レベルのプロパティを指定してクエリ動作をカスタマイズできる Key-Value ペア。追加のプロパティを指定するには、このフラグを繰り返します。

サポートされている接続プロパティは次のとおりです。

  • dataset_project_id: @@dataset_project_id システム変数と同様に、クエリで使用されるデータセットのデフォルト プロジェクトを表します。
  • query_label: クエリを特定のジョブラベルに関連付けます。設定すると、スクリプトまたはセッションの後続のすべてのクエリにこのラベルが付けられます。クエリラベルの形式の要件の詳細については、JobConfiguration リソースlabels フィールドをご覧ください。
  • service_account: クエリの実行に使用するサービス アカウントを指定します。例: --connection_property=service_account=myserviceaccount@project.iam.gserviceaccount.com
  • session_id: クエリを特定のセッションに関連付けます。
  • time_zone: クエリの実行に使用するデフォルトのタイムゾーンを表します。
--continuous={true|false}

継続的クエリプレビュー)を実行するには、true に設定します。デフォルト値は false です。

--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

実行するクエリ。クエリは、次のいずれかの方法で指定できます。

  • クエリを含む文字列を指定します。

    クエリ内で追加の文字列リテラルを使用する必要がある場合は、使用しているシェル(BashPowerShell など)の引用符ルールに従う必要があります。

    次の例は、Bash の一般的なアプローチを示しています。ダブル クォーテーションを使用してクエリ内の文字列リテラルを指定し、クエリ自体をシングルクォーテーションで囲みます。

    'SELECT * FROM mydataset.mytable WHERE column1 = "value";'
    

    別の場所からクエリをコピーする場合は、クエリ内のコメントもすべて削除する必要があります。

  • クエリを含む SQL スクリプトを渡します。次の例では、Bash シェルで SQL スクリプトを渡す方法を示します。

    bq query --use_legacy_sql=false < query.sql
    

bq query コマンドの使用の詳細については、クエリを実行するをご覧ください。

bq remove-iam-policy-binding

bq remove-iam-policy-binding コマンドは、1 ステップでリソースの IAM ポリシーを取得して、ポリシーからバインディングを削除するために使用します。リソースには、テーブルまたはビューを指定できます。

このコマンドは、以下の 3 ステップの代わりに使用できます。

  1. bq get-iam-policy コマンドを使用してポリシー ファイル(JSON 形式)を取得する。
  2. ポリシー ファイルを編集する。
  3. 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 つの容量コミットメントを統合するには、--mergetrue に設定します。--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_BASELINE_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 を使用します。

--vertex_ai_model_id=VERTEX_AI_MODEL_ID

指定すると、Vertex AI Model Registry に登録されている BigQuery ML モデルのモデル ID が更新されます。

--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 を入力すると、コマンドでジョブ完了がポーリングされて、すぐに結果が返されます。整数値を指定しないと、ジョブが終了するまでコマンドが待機します。