bq 指令列工具參考資料

本文件說明 bq (BigQuery 指令列工具) 的語法、指令、標記和引數。本指南適用於熟悉 BigQuery 但想瞭解如何使用特定 bq 指令列工具指令的使用者。如要進一步瞭解如何使用 bq 指令列工具,請參閱「使用 bq 指令列工具」一文。

概要

bq 指令列工具使用下列格式:

bq COMMAND [FLAGS] [ARGUMENTS]

部分標記可搭配多個 bq 指令列工具指令使用,這些標記的說明請見「通用標記」一節。

其他標記則是指令專屬,只能搭配特定 bq 指令列工具指令使用。指令專屬標記的說明請參閱指令相關章節。

布林標記

部分 bq 指令列工具旗標為布林值;您可以將旗標值設為 truefalse。bq 指令列工具接受下列格式,用於設定布林標記。

格式 範例
true --FLAGNAME=true --debug_mode=true
true --FLAGNAME --debug_mode
false --FLAGNAME=false --debug_mode=false
false --noFLAGNAME --nodebug_mode

本文件使用 --FLAGNAME=VALUE 格式表示布林標記。

所有布林值標記皆為選用項目;如果沒有布林值標記,BigQuery 會使用標記的預設值。

指定標記的值

指定旗標值時,等號 (=) 為選用項目。舉例來說,以下兩個指令的作用相同:

bq ls --format prettyjson myDataset
bq ls --format=prettyjson myDataset

為了方便說明,本文件會使用等號。

線上說明

您可以在 bq 指令列工具中查看說明文件,如下所示:

說明 Help 指令格式 範例
列出所有指令和範例 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

如果未指定專案,BigQuery 會使用目前的專案。舉例來說,如果目前的專案是 myProject,BigQuery 會將 myDataset.myTable 解讀為 myProject:myDataset.myTable (或 myProject.myDataset.myTable)。

部分資源 ID 必須使用倒引號 (`) 括住。如果資源 ID 開頭為英文字母或底線字元,且只包含英文字母、數字和底線字元,則不需要括住。不過,如果資源 ID 包含其他類型的字元或保留用關鍵字,您必須在 ID (或含有特殊字元或保留用關鍵字的 ID 部分) 兩側加上反斜線。詳情請參閱「識別碼」。

通用標記

您可以在任何適用的 bq 指令中使用下列旗標:

--api=ENDPOINT
指定要呼叫的 API 端點。預設值為 https://www.googleapis.com
--api_version=VERSION
指定要使用的 API 版本。預設值為 v2
--apilog=FILE

將所有 API 要求和回應記錄至 FILE 指定的檔案。可能的值如下:

  • 檔案路徑 - 記錄到指定檔案
  • stdout - 記錄至標準輸出內容
  • stderr - 記錄至標準錯誤
  • false - 不會記錄 API 要求和回應 (預設)
--use_google_auth={true|false}

如果設為 true,則會啟用使用 Google 驗證程式庫的驗證機制。預設值為 true

--bigqueryrc=PATH

指定 bq 指令列工具設定檔的路徑。如果未指定 --bigqueryrc 標記,指令會使用 BIGQUERYRC 環境變數。如果未設定環境變數,系統會使用 $HOME/.bigqueryrc。如果該檔案不存在,系統就會使用 ~/.bigqueryrc。詳情請參閱「設定指令列旗標的預設值」。

--ca_certificates_file=PATH

指定 Certificate Authority Service (CA) 檔案的位置。

--dataset_id=DATASET_ID

指定要與指令搭配使用的預設資料集。如果不適用的話,系統會忽略這個標記。您可以使用 PROJECT:DATASETDATASET 格式指定 DATASET_ID 引數。如果缺少 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;要求具有 Drive 範圍的新 OAuth 權杖。如要在使用使用者帳戶驗證時將此標記設為 false--use_google_auth 標記必須設為 false

--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_LEVEL 大於 0,則指令除了記錄錯誤訊息外,還會將 HTTP 伺服器要求和回應記錄到 stderr。如果 DEBUG_LEVEL 未大於 0,或未使用 --httplib2_debuglevel 旗標,則只會顯示錯誤訊息。

例如:

--httplib2_debuglevel=1

--job_id=JOB_ID

指定新工作的工作 ID。這個旗標僅適用於建立工作的指令:cpextractloadquery。如果您未使用 --job_id 標記,指令會產生專屬的工作 ID。詳情請參閱「透過程式執行工作」。

--job_property=KEY:VALUE

要在工作設定的屬性欄位中,加入的鍵/值組合。重複使用這個旗標即可指定其他屬性。

--location=LOCATION

對應地區或多地區位置的字串。當您使用 --jobs 旗標顯示工作相關資訊時,bq cancelbq show 指令都需要位置旗標。對於下列指令,位置標記是選用的:

  • query
  • cp
  • load
  • extract
  • partition
  • update
  • wait
  • 使用 --dataset--reservation--capacity_commitment--reservation_assignment 標記時的 mk
  • 使用 --reservation--capacity_commitment--reservation_assignment 旗標時,請使用 ls

所有其他指令都會忽略 --location 旗標。

--max_rows_per_request=MAX_ROWS

一個整數,用來指定每次讀取所傳回的資料列數量上限。

--project_id=PROJECT

指定要用於指令的專案。

--proxy_address=PROXY

指定用來連線至 Google Cloud的 Proxy 主機名稱或 IP 位址。

--proxy_password=PASSWORD

指定透過 Proxy 主機進行驗證時使用的密碼。

--proxy_port=PORT

指定用來連線至 Proxy 主機的通訊埠編號。

--proxy_username=USERNAME

指定透過 Proxy 主機進行驗證時使用的使用者名稱。

--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 指令,一次即可擷取資料表或檢視表的身分與存取權管理 (IAM) 政策,並將繫結新增至政策。

這個指令可取代下列三步驟程序:

  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 政策繫結的成員部分。必須搭配 --role 旗標使用 --member 旗標。--member--role 標記的組合等於一個繫結。

MEMBER_TYPE 值會指定 IAM 政策繫結中的成員類型。請使用下列其中一個值:

  • user
  • serviceAccount
  • group
  • domain

MEMBER 值會在 IAM 政策繫結中指定成員的電子郵件地址或網域。

--role=ROLE

這是必要旗標,指定 IAM 政策繫結的角色部分。--role 旗標必須搭配 --member 旗標。--member--role 標記的組合等於一個繫結。

--table={true|false}

如要針對 RESOURCE 引數不是資料表或檢視畫面 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,則目的地資料表的類型會與基本資料表相同。需要使用 --no_clobber 旗標。

您無法同時使用旗標設定 --append_table=true--clone=true

--destination_kms_key=KEY

指定用來加密目的地資料表資料的 Cloud KMS 金鑰資源 ID

例如:

--destination_kms_key=projects/myProject/locations/global/keyRings/myKeyRing/cryptoKeys/myKey

--expiration=SECONDS

資料表快照到期前的秒數。如果未納入,資料表快照到期時間就會設為包含新資料表快照的資料集的預設到期時間。請搭配 --snapshot 旗標使用。

--force={true|false}-f={true|false}

如要覆寫現有的目的地資料表 (如有),但不顯示提示訊息,請將此值設為 true。預設值為 false;如果目標資料表已存在,則指令會在覆寫前提示確認。

--no_clobber={true|false}-n={true|false}

如要禁止覆寫現有的目的地資料表,請將其設為 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 半形字元。您可以使用 \ttab 指定分隔符號。

--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,則將 --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 help 指令,即可在工具中顯示 bq 指令列工具的說明文件。

概要

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 會忽略任何與資料表結構定義不符的鍵/值組合,並插入資料列,其中的資料與結構定義相符。設為 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 旗標指定結構定義,且目的地資料表存在,則會使用目的地資料表的結構定義。
--clustering_fields=COLUMNS
以逗號分隔的清單,最多包含四個資料欄名稱,用於指定用於資料表分群的欄位。
--destination_kms_key=KEY
指定用來加密目的地資料表資料的 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 半形字元。您可以使用 \ttab 指定定位點分隔符號。
--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 的值為何,系統最多只會傳回五個任何類型的錯誤。這個標記僅適用於載入 CSV、JSON 和 Google 試算表資料。

--null_marker=STRING

選用的自訂字串,代表 CSV 資料中的 NULL 值。

--projection_fields=PROPERTY_NAMES

如果將 --source_format 設為 DATASTORE_BACKUP,這個標記會指出要從 Datastore 匯出內容中載入的實體屬性。使用逗號分隔的清單指定資源名稱。屬性名稱有大小寫之分,且必須參照頂層屬性。您也可以將此標記與 Firestore 匯出內容搭配使用。

--quote=CHARACTER

指定在 CSV 資料中用來括住欄位的引號字元。CHARACTER 引數可以是任何半形字元。預設值為雙引號 (")。如要指定不加上引號字元,請使用空白字串 ""

--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 是使用換行符號分隔的資訊清單檔案,每行一個 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

一個整數,用來指定系統應在經過多少時間後刪除時間分區 (以秒為單位)。到期時間為分區的世界標準時間日期加此整數值。負數表示不會到期。

--time_partitioning_field=COLUMN_NAME

指定用來決定時間分區建立方式的欄位。如果啟用時間分區時沒有這個值,系統就會根據載入時間對資料表進行分區。

--time_partitioning_type=INTERVAL

針對資料表啟用時間分區功能並設定分區類型。請使用下列其中一個值:

  • DAY
  • HOUR
  • MONTH
  • YEAR

時間分區的預設分區類型為 DAY

--use_avro_logical_types={true|false}

如果 --source_format 標記設為 AVRO,請將此標記設為 true,將邏輯類型轉換為對應類型 (例如 TIMESTAMP),而非只使用原始類型 (例如 INTEGER)。

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

目的地資料表的結構定義。

如要進一步瞭解如何使用 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 包含一或多個以空格分隔的三元組,格式為 labels.KEY:VALUE。如果提供多個三元組,指令只會傳回與「所有」三元組相符的資料集 (也就是指令會使用 AND 邏輯運算子,而非 OR)。如果您想指定多個三元組,請將 FILTER 值括在引號內。

如要依據資料集標籤篩選資料,請使用套用至資料集的鍵和值。

例如:

 --filter "labels.department:marketing labels.team:sales"
 

對於轉移設定,請使用 dataSourceIds 做為鍵,並使用下列其中一個資料來源做為值:

例如:

   --filter labels.dataSourceIds:dcm_dt
   

對於轉移執行作業,請使用 states 做為鍵,並使用下列一或多個轉移狀態做為值:

  • SUCCEEDED
  • FAILED
  • PENDING
  • RUNNING
  • CANCELLED

例如:

--filter="states:FAILED"

針對工作,請使用 states 做為鍵,並使用下列一或多個工作狀態做為值:

  • RUNNING
  • PENDING
  • DONE

例如:

bq ls --jobs --filter="states:RUNNING"

bq ls --jobs --filter="states:RUNNING,PENDING"
--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 Epoch 時間戳記。如果搭配使用 --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

如果指定,就會列出資料表中的所有資料列層級存取權政策。資料列層級存取權政策用於資料列層級安全性。您必須以 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 標記,指定要建立的資源類型,以及取決於資源類型的其他標記。

TYPE_FLAG將下列其中一個標記設為 true。您所選的選項會指定要建立的資源類型。

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

指定續訂方案類型。適用於 ANNUALTHREE_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 連線並想使用資料提升功能,請加入 "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,指定包含 Azure 儲存體帳戶的 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
一個整數,用來指定資料集中新建立分區資料表中,所有分區的預設到期時間 (以秒為單位)。分區的到期時間會設定為分區的世界標準時間日期加此整數值。如果設定此屬性,系統會覆寫資料集層級預設資料表到期時間 (如果存在)。如果您在建立或更新分區資料表時使用了 --time_partitioning_expiration 旗標,則資料表層級的分區到期時間會覆寫資料集層級的預設分區到期時間。
--default_table_expiration=SECONDS
一個整數,用來指定資料集中新建立資料表的預設生命週期 (以秒為單位)。到期時間會設為目前世界標準時間加此值。
--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。建立 materialized view 時的預設值為 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 標記。
--max_slots=MAXIMUM_NUMBER_OF_SLOTS
預留項目會使用的運算單元數量上限。必須使用 --scaling_mode 標記 (Preview) 進行設定。
--scaling_mode=SCALING_MODE

預訂的調度模式。必須是下列其中一個值:

  • IDLE_SLOTS_ONLY
  • ALL_SLOTS
  • AUTOSCALE_ONLY
  • SCALING_MODE_UNSPECIFIED

必須使用 --max_slots 標記進行設定 (預先發布版)。

詳情請參閱「使用專屬的運算單元建立保留項目」。

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
以逗號分隔的清單,最多包含四個資料欄名稱,用於指定用於資料表分群的欄位。如果指定分區,系統會先對資料表進行分區,然後使用提供的資料欄為每個分區進行分群。
--description=DESCRIPTION
指定資料表的說明。
--destination_kms_key=KEY
指定用來加密目的地資料表資料的 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 是 Cloud Storage 中包含 BigLake 資料表資料的一或多個檔案路徑。您可以使用下列格式指定 BUCKET_PATH

    • 單一檔案:gs://bucket_name/[folder_name/]file_name
    • 單一儲存桶中的多個檔案: 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 是使用換行符號分隔的資訊清單檔案,每行一個 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 天之間的間隔值。例如,指定 0-0 0 4:0:0 為 4 小時的過時間隔。使用這個值時,如果資料表在過去 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

一個整數,用來指定系統應在經過多少時間後刪除時間分區 (以秒為單位)。到期時間為分區的世界標準時間日期加此整數值。負數表示不會到期。

--time_partitioning_field=COLUMN_NAME

指定用來決定時間分區建立方式的欄位。如果啟用時間分區時沒有這個值,系統就會根據載入時間對資料表進行分區。

--time_partitioning_type=INTERVAL

針對資料表啟用時間分區功能並設定分區類型。請使用下列其中一個值:

  • DAY
  • HOUR
  • MONTH
  • YEAR
--use_avro_logical_types={true|false}

如果 --external_table_definition 旗標FORMAT 部分設為 AVRO,則此旗標會指定是否將邏輯類型轉換為其對應類型 (例如 TIMESTAMP),而非只使用原始類型 (例如 INTEGER)。

--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 參數是逗號分隔的清單,列出要納入轉移作業的資料表。如要排除資料表,請在資料表前加上連字號 (-)。預設值會納入轉移作業中的所有資料表。
--destination_kms_key=KEY
指定用來加密目的地資料表資料的 Cloud KMS 金鑰資源 ID

如要進一步瞭解如何在 BigQuery 資料移轉服務使用 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}
設為 false,即可使用 GoogleSQL 查詢建立檢視表。預設值取決於您的設定。如果未指定設定,預設值為 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

如果您使用 AUTOSTRINGS 模式,則可接受下列值:

  • 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,則此標記會指定是否要為 Parquet LIST 邏輯類型使用結構定義推論。預設為 false

--parquet_enum_as_string={true|false}

如果 source_format 設為 PARQUET,則此標記會指定是否要將 Parquet ENUM 邏輯類型推斷為 STRING 值。預設為 false

--file_set_spec_type=FILE_SET_SPEC_TYPE

指定如何解讀來源 URI。

  • FILE_SYSTEM_MATCH:透過列出物件儲存庫中的檔案,展開來源 URI。這是未設定 FileSetSpecType 時的預設行為。
  • NEW_LINE_DELIMITED_MANIFEST:表示提供的 URI 是使用換行符號分隔的資訊清單檔案,每行一個 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,則此旗標會指定是否將邏輯類型轉換為對應類型 (例如 TIMESTAMP),而非只使用原始類型 (例如 INTEGER)。預設為 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
此整數值是用來指定系統應在經過多少時間後刪除時間分區 (以秒為單位)。到期時間為分區的世界標準時間日期加此整數值。負數表示不會到期。
--time_partitioning_type=INTERVAL

指定分區類型。下表列出 INTERVAL 標記的可能值,以及每個值的預期時間單位後置字串格式:

INTERVAL 字尾
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
以逗號分隔的清單,最多包含四個資料欄名稱,用於指定在查詢中分群目的地資料表的欄位。如果指定分區,系統會先對資料表進行分區,然後使用提供的資料欄將每個分區分群。
--connection_property=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

指定用來加密目的地資料表資料的 Cloud KMS 金鑰資源 ID

--destination_schema={PATH_TO_FILE|SCHEMA}

本機 JSON 結構定義檔路徑,或以逗號分隔的資料欄定義清單 (格式為 FIELD:DATA_TYPE, FIELD:DATA_TYPE)。

結構定義異動會在查詢執行作業的不同操作中發生。如果您指定 --destination_table 旗標,將查詢結果寫入資料表,而查詢隨後發生例外狀況,則可能會略過任何結構定義變更。如果發生這種情況,請檢查目的地資料表結構定義,並視需要手動更新

--destination_table=TABLE

如果有指定此旗標,系統會將查詢結果儲存到 TABLE。請使用下列格式指定 TABLEPROJECT: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_URISCHEMA 值的格式為以逗號分隔的資料欄定義清單,格式為 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 會指定空值。重複使用這個標記即可指定多個參數。

例如:

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

如果有指定,查詢提供的資料表時就需要分區篩選器。這個標記只能與分區資料表搭配使用。

**--reservation_id=RESERVATION

預覽。如果指定,則為查詢執行的保留項目。

--rpc={true|false}

如要使用 RPC 樣式查詢 API (而非 REST API jobs.insert 方法),請將其設為 true。預設值為 false

--schedule="SCHEDULE"

讓查詢成為重複發生的排定查詢。您必須排定查詢的執行頻率。

範例:

--schedule="every 24 hours"
--schedule="every 3 hours"

如需排程語法的說明,請參閱「設定排程格式」。

--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 旗標使用。這個整數值是用來指定系統應在經過多少時間後刪除時間分區 (以秒為單位)。到期時間為分區的世界標準時間日期加整數值。負數表示不會到期。

--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 指令,即可在單一步驟中擷取資源的 IAM 政策,並從政策中移除繫結。資源可以是資料表或檢視畫面。

這個指令可取代下列三步驟程序:

  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 政策繫結的成員部分。必須搭配 --role 旗標使用 --member 旗標。--member--role 標記的組合等於一個繫結。

MEMBER_TYPE 值會指定 IAM 政策繫結中的成員類型。請使用下列其中一個值:

  • user
  • serviceAccount
  • group
  • domain

MEMBER 值會在 IAM 政策繫結中指定成員的電子郵件地址或網域。

--role=ROLE

這是必要旗標,指定 IAM 政策繫結的角色部分。--role 旗標必須搭配 --member 旗標。--member--role 標記的組合等於一個繫結。

--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 值相符,否則更新會失敗。這項功能可避免同時更新。

您可以使用 bq get-iam-policy 指令,取得資源目前的政策和 etag 值。

概要

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

一個整數,用來指定資料集中新建立分區資料表中,所有分區的預設到期時間 (以秒為單位)。此標記沒有最小值。

分區的到期時間會設定為分區的世界標準時間日期加此整數值。如果設定此屬性,系統會使用此整數覆寫資料集層級的預設資料表到期時間 (如果存在)。如果您在建立或更新分區資料表時使用 --time_partitioning_expiration 旗標,則資料表層級的分區到期時間會覆寫資料集層級的預設分區到期時間。指定 0 可移除現有的到期時間。

--default_table_expiration=SECONDS

一個整數,用來更新資料集裡新建立資料表的預設生命週期 (以秒為單位)。到期時間會設為目前世界標準時間加此值。指定 0 可移除現有的到期時間。

--description=DESCRIPTION

更新資料集、資料表、資料表快照、模型或檢視表的說明。

--destination_reservation_id=RESERVATION_ID

--reservation_assignment 標記搭配使用時,可將現有的預留項目指派移至指定的預留項目。值是目的地預訂項目的 ID。詳情請參閱「將指派項目移至其他預留項目」。

--display_name=DISPLAY_NAME

更新移轉設定的顯示名稱。

--etag=ETAG

做為篩選器,只在資源的 ETagETAG 引數中指定的字串相符時更新資源。

--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_staleness=INTERVAL

指定 INTERVAL 值,用於決定查詢已具現檢視表或外部資料表時,允許的最大過時時間。預設值為 0-0 0 0:0:0

例如:

  • 1 天:0-0 1 0:0:0
  • 1 小時:0-0 0 1:0:0

如要使用這個旗標,您必須使用 --external_table_definition 旗標指定資料表定義。

--max_time_travel_hours=HOURS

指定資料集的時間回溯期 (以小時為單位)。--max_time_travel_hours 值必須是整數,以 24 的倍數 (48、72、96、120、144、168) 表示,介於 48 (2 天) 和 168 (7 天) 之間。

--merge={true|false}

如要合併兩個容量承諾,請將 --merge 設為 true。將 --capacity_commitment 標記設為 true,使用 --location 標記指定要合併的版本,然後將 RESOURCE 替換為要合併的兩個版本 ID,並以半形逗號分隔。詳情請參閱「合併兩個承諾」。

--metadata_cache_mode=METADATA_CACHE_MODE

為具有連線的外部資料表啟用中繼資料快取功能。請使用下列其中一個值:

  • AUTOMATIC
  • MANUAL

指定 AUTOMATIC 可自動重新整理快取的中繼資料。指定 MANUAL 即可停止自動重新整理。如要使用這個標記,您必須使用 --external_table_definition 標記指定資料表定義。

--model={true|false}-m={true|false}

如要更新 BigQuery ML 模型的中繼資料,請將其設為 true。預設值為 false

--params={"PARAMETER":"VALUE"} or -p={"PARAMETER":"VALUE"}

更新移轉設定的參數。參數會因資料來源而異。詳情請參閱 BigQuery 資料移轉服務簡介一文。

--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 檔案路徑。例如,您可以使用此旗標指定 JSON 檔案,其中包含具有已更新 access 屬性的資料集資源。該檔案可用來覆寫資料集的存取權控管。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

一個整數,用來更新系統應在經過多少時間後刪除時間分區 (以秒為單位)。到期時間為分區的世界標準時間日期加此整數值。負數表示不會到期。

--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 version 指令,即可顯示 bq 指令列工具的版本號碼。

概要

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

指定要等待的工作。您可以使用 bq ls --jobs myProject 指令找出工作 ID。

SECONDS

指定等待工作完成的秒數上限。如果您輸入 0,這個指令會輪詢工作完成狀態並立即傳回結果。如果您未指定整數值,則指令會等到工作完成才結束。