bq 指令列工具參考資料
本文件說明 bq
(BigQuery 指令列工具) 的語法、指令、標記和引數。本指南適用於熟悉 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 會使用標記的預設值。
指定標記的值
指定旗標值時,等號 (=
) 為選用項目。舉例來說,以下兩個指令的作用相同:
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:DATASET
或DATASET
格式指定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
:盡可能壓縮到最小的 JSONcsv
:包含標頭的 csv 格式
pretty
、sparse
和prettyjson
是使用者能理解的格式。json
和csv
是供其他程式使用的值。如果指定none
,指令就不會產生任何輸出內容。如果缺少--format
標記,系統就會根據指令選擇適當的輸出格式。--headless={true|false}
如要在沒有使用者互動的情況下執行
bq
工作階段,請將其設為true
。舉例來說,debug_mode
不會觸發偵錯工具,列印資訊的頻率也會降低。預設值為false
。--httplib2_debuglevel=DEBUG_LEVEL
指定是否要顯示 HTTP 偵錯資訊。如果
DEBUG_LEVEL
大於0
,則指令除了記錄錯誤訊息外,還會將 HTTP 伺服器要求和回應記錄到 stderr。如果DEBUG_LEVEL
未大於 0,或未使用--httplib2_debuglevel
旗標,則只會顯示錯誤訊息。例如:
--httplib2_debuglevel=1
--job_id=JOB_ID
指定新工作的工作 ID。這個旗標僅適用於建立工作的指令:
cp
、extract
、load
和query
。如果您未使用--job_id
標記,指令會產生專屬的工作 ID。詳情請參閱「透過程式執行工作」。--job_property=KEY:VALUE
要在工作設定的屬性欄位中,加入的鍵/值組合。重複使用這個旗標即可指定其他屬性。
--location=LOCATION
對應地區或多地區位置的字串。當您使用
--jobs
旗標顯示工作相關資訊時,bq cancel
和bq 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) 政策,並將繫結新增至政策。
這個指令可取代下列三步驟程序:
- 使用
bq get-iam-policy
指令擷取政策檔案 (JSON 格式)。 - 編輯政策檔案。
- 使用
bq set-iam-policy
指令,以新的繫結更新政策。
概要
bq add-iam-policy-binding [FLAGS] --member=MEMBER_TYPE:MEMBER --role=ROLE [--table] RESOURCE
範例
bq add-iam-policy-binding --member=user:myAccount@gmail.com \ --role=roles/bigquery.dataViewer myDataset.myTable
旗標和引數
bq add-iam-policy-binding
指令可使用下列標記和引數:
--member=MEMBER_TYPE:MEMBER
這是必要旗標,使用
--member
旗標指定 IAM 政策繫結的成員部分。必須搭配--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 半形字元。您可以使用
\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,則將--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
。如果--autodetect
為false
,且未使用--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 半形字元。您可以使用
\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
的值為何,系統最多只會傳回五個任何類型的錯誤。這個標記僅適用於載入 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.writeDisposition
的WRITE_TRUNCATE
值。--schema={SCHEMA_FILE|SCHEMA
}指定本機 JSON 結構定義檔路徑,或以逗號分隔的資料欄定義清單 (格式為
FIELD:DATA_TYPE, FIELD:DATA_TYPE
等)。如果您使用的是結構定義檔案,請勿為其指定副檔名。例如:
--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER
如果未指定結構定義,且
--autodetect
為false
,且目的地資料表存在,則會使用目的地資料表的結構定義。--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_type
為FILE_SYSTEM_MATCH
,則該檔案會直接用作資料檔案。如果file_set_spec_type
是NEW_LINE_DELIMITED_MANIFEST
,檔案中的每一行都會解讀為指向資料檔案的 URI。--source_format=FORMAT
來源資料的格式,請使用下列其中一個值:
CSV
NEWLINE_DELIMITED_JSON
AVRO
DATASTORE_BACKUP
(適用於 Filestore)PARQUET
ORC
--time_partitioning_expiration=SECONDS
一個整數,用來指定系統應在經過多少時間後刪除時間分區 (以秒為單位)。到期時間為分區的世界標準時間日期加此整數值。負數表示不會到期。
--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 將 ParquetENUM
邏輯類型推斷為STRING
值,請將此旗標設為true
。預設為false
。--parquet_enable_list_inference={true|false}
如果
--source_format
旗標設為PARQUET
,則此旗標會指出是否要為 ParquetLIST
邏輯類型使用結構定義推論。--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
做為鍵,並使用下列其中一個資料來源做為值:
amazon_s3
- Amazon S3 資料移轉azure_blob_storage
- Azure Blob 儲存體資料移轉dcm_dt
- Campaign Manager 資料移轉google_cloud_storage
- Cloud Storage 資料移轉cross_region_copy
- Dataset Copydfp_dt
- Google Ad Manager 資料移轉displayvideo
- Display & Video 360 資料移轉google_ads
- Google Ads 資料移轉merchant_center
- Google Merchant Center 資料移轉mysql
- MySQL 資料移轉play
- Google Play 資料移轉scheduled_query
- 已排定查詢資料移轉search_ads
- Search Ads 360 資料移轉youtube_channel
- YouTube 頻道資料移轉youtube_content_owner
- YouTube 內容擁有者資料移轉redshift
- Amazon Redshift 遷移on_premises
- Teradata 遷移
例如:
--filter labels.dataSourceIds:dcm_dt
對於轉移執行作業,請使用 states
做為鍵,並使用下列一或多個轉移狀態做為值:
SUCCEEDED
FAILED
PENDING
RUNNING
CANCELLED
例如:
--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
。您所選的選項會指定要建立的資源類型。
--capacity_commitment
:購買容量承諾。--connection
:建立連線。--dataset
或-d
:建立資料集。--materialized_view
:建立具體化檢視表。--reservation
:建立預訂。--reservation_assignment
:將資料夾、專案或機構指派給保留項目。--table
或-t
:建立資料表。--transfer_config
:建立移轉設定。--transfer_run
:建立轉移執行作業的時間範圍。--view
:建立檢視畫面。
bq mk
指令支援下列標記,適用於所有類型的資源:
--force={true|false}
或-f={true|false}
- 如要忽略已存在相同名稱的資源,請將其設為
true
。如果資源已存在,則結束代碼為 0,但將此旗標設為true
不會導致bq mk
指令覆寫資源。預設值為false
。
bq mk
指令支援其他旗標,具體取決於您建立的資源類型,如以下各節所述。
bq mk --capacity_commitment
如要購買容量承諾,請將 --capacity_commitment
設為 true
,並使用下列標記:
--location=LOCATION
- 指定承諾的位置。
--plan=PLAN_TYPE
指定承諾方案類型。必須是下列其中一個值:
ANNUAL
THREE_YEAR
使用舊版固定費率定價的客戶也可以使用下列其中一個值:
FLEX
MONTHLY
ANNUAL
--renewal_plan=RENEWAL_TYPE
指定續訂方案類型。適用於
ANNUAL
或THREE_YEAR
承諾企劃書。必須是下列其中一個項目:ANNUAL
THREE_YEAR
NONE
使用舊版固定費率定價的客戶也可以使用下列其中一個值:
FLEX
MONTHLY
ANNUAL
--project_id=PROJECT_ID
指定管理時段的專案。
--slots=NUMBER_OF_BASELINE_SLOTS
指定要購買的基準運算單元數量。
--edition=EDITION
與容量承諾相關的版本。必須是下列其中一個值:
ENTERPRISE
ENTERPRISE_PLUS
詳情請參閱「購買運算單元」。
bq mk --connection
建立連線。系統支援下列旗標:
--connection_type=CONNECTION_TYPE
- 連線類型,例如 Cloud SQL 連線的
CLOUD_SQL
。 --properties=PROPERTIES
以 JSON 格式提供的連線專屬參數。必須指定
instanceId
、database
和type
。如果您建立 Spanner 連線並想使用資料提升功能,請加入
"useParallelism":true
和"useDataBoost":true
組合。--connection_credential=CONNECTION_CREDENTIAL
以 JSON 格式提供連線的憑證。必須指定
username
和password
。--project_id=PROJECT_ID
指定連線所屬專案的 ID。
--location=LOCATION
指定連線的儲存位置。
--display_name=DISPLAY_NAME
指定連線的選用好記名稱。
--description=DESCRIPTION
指定連線的說明 (選用)。
--iam_role_id=ROLE_ID
針對 AWS 上的 BigQuery Omni,指定可存取資源的 IAM 角色。
請使用下列格式:
"arn:aws:iam::AWS_ACCOUNT_ID:role/POLICY_NAME"
,其中:- AWS_ACCOUNT_ID 是連線的 AWS IAM 使用者 ID 編號。
- POLICY_NAME 是政策名稱。
範例:
"arn:aws:iam::0123456789AB:policy/s3-read-role"
--tenant_id=TENANT_ID
針對 Azure 上的 BigQuery Omni,指定包含 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 Storage 和 Google 雲端硬碟 外部資料表:
-
--external_table_definition={PATH_TO_FILE|DEFINITION}
- 這個值可以是包含資料表定義 (
PATH_TO_FILE
) 的檔案路徑,或內嵌資料表定義 (DEFINITION
)。
DEFINITION
欄位的格式為SCHEMA@FORMAT=URI
。SCHEMA
值的格式為以逗號分隔的資料欄定義清單,格式為FIELD:DATA_TYPE, FIELD:DATA_TYPE
等。如果資料格式是自述式 (例如 Avro),或是您使用結構定義自動偵測功能,可以省略SCHEMA
值。FORMAT
值會指定資料格式,即下列其中一種:AVRO
CSV
DATASTORE_BACKUP
(適用於 Filestore)ICEBERG
NEWLINE_DELIMITED_JSON
ORC
PARQUET
如果您指定資料表定義檔案,請勿為其指定副檔名。
例如:
--external_table_definition=/tmp/tabledef
--external_table_definition=Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv
針對 Bigtable 外部資料表和以 AWS 和 Azure 為基礎的 BigLake 資料表:
--external_table_definition=PATH_TO_FILE
- 這個值必須是包含資料表定義的檔案路徑。
適用於以 Cloud Storage 為基礎的 BigLake 資料表:
--external_table_definition=FORMAT=BUCKET_PATH@REGION.CONNECTION_NAME
:FORMAT
值會指定資料格式,即下列其中一種:AVRO
CSV
NEWLINE_DELIMITED_JSON
ICEBERG
ORC
PARQUET
BUCKET_PATH
是 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_type
為FILE_SYSTEM_MATCH
,則該檔案會直接用作資料檔案。如果file_set_spec_type
是NEW_LINE_DELIMITED_MANIFEST
,檔案中的每一行都會解讀為指向資料檔案的 URI。--reference_file_schema_uri=URI
指定參照檔案的路徑,其中包含建立外部資料表的預期資料表結構定義。等同於
ExternalDataConfiguration.referenceFileSchemaUri
。這個標記可啟用 Avro、ORC 和 Parquet 格式。--label=KEY:VALUE
指定資料表的標籤。重複使用這個旗標即可指定多個標籤。
--max_staleness=INTERVAL
指定作業是否會使用快取中繼資料來對應資料表,以及快取中繼資料必須多新才能供作業使用。
適用於 BigLake 資料表和物件資料表。
如要停用中繼資料快取功能,請指定 0。這是目前的預設做法。
如要啟用中繼資料快取功能,請使用
INTERVAL
資料類型說明文件中所述的Y-M D H:M:S
格式,指定 30 分鐘至 7 天之間的間隔值。例如,指定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
,則此標記會指定是否要為 ParquetLIST
邏輯類型使用結構定義推論。--parquet_enum_as_string={true|false}
如果
--external_table_definition
標記的FORMAT
部分設為PARQUET
,則此標記會指定是否要將 ParquetENUM
邏輯類型推斷為STRING
值。
詳情請參閱「建立及使用資料表」。
bq mk --transfer_config
建立移轉設定。系統支援下列旗標:
--data_source=DATA_SOURCE
- 指定資料來源。建立移轉設定時為必要項目。請使用下列其中一個值:
amazon_s3
- Amazon S3 資料移轉azure_blob_storage
- Azure Blob 儲存體資料移轉dcm_dt
- Campaign Manager 資料移轉google_cloud_storage
- Cloud Storage 資料移轉cross_region_copy
- Dataset Copydfp_dt
- Google Ad Manager 資料移轉displayvideo
- Display & Video 360 資料移轉google_ads
- Google Ads 資料移轉merchant_center
- Google Merchant Center 資料移轉mysql
- MySQL 資料移轉play
- Google Play 資料移轉scheduled_query
- 已排定查詢資料移轉search_ads
- Search Ads 360 資料移轉youtube_channel
- YouTube 頻道資料移轉youtube_content_owner
- YouTube 內容擁有者資料移轉redshift
- Amazon Redshift 遷移on_premises
- Teradata 遷移
--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
指令,請參閱以下文章:
- 設定 Amazon S3 轉移作業
- 設定 Campaign Manager 移轉作業
- 設定 Cloud Storage 移轉作業
- 設定 Google Ad Manager 移轉作業
- 設定 Google Ads 轉移作業
- 設定 Google Merchant Center 轉移作業 (Beta 版)
- 設定 Google Play 轉移作業
- 設定 Search Ads 360 轉移作業 (Beta 版)
- 設定 YouTube 頻道轉移作業
- 設定 YouTube 內容擁有者移轉作業
- 從 Amazon Redshift 遷移資料
- 從 Teradata 遷移資料
bq mk --transfer_run
使用指定的資料移轉設定,在指定的時間或時間範圍內建立資料移轉執行作業。
概要
bq mk --transfer_run [--run_time=RUN_TIME | --start_time=START_TIME --end_time=END_TIME] CONFIG
系統支援下列旗標:
--run_time=RUN_TIME
- 時間戳記,用來指定排定資料移轉執行作業的時間。
--start_time=START_TIME
- 一個時間戳記,用來指定一系列資料移轉執行作業的開始時間。
--end_time=END_TIME
- 一個時間戳記,用來指定特定範圍的資料移轉執行作業結束時間。
時間戳記的格式為 RFC3339 UTC Zulu。
CONFIG
引數會指定先前存在的資料移轉設定。
範例
bq mk --transfer_run \ --run_time=2021-01-20T17:00:00.00Z \ projects/p/locations/l/transferConfigs/c
bq mk --transfer_run \ --start_time=2020-12-19T16:39:57-08:00 \ --end_time=2020-12-19T20:39:57-08:00 \ projects/p/locations/l/transferConfigs/c
bq mk --view
建立檢視畫面。系統支援下列旗標:
--add_tags=TAGS
- 指定要附加至新檢視畫面的標記,並以半形逗號分隔。例如:
556741164180/env:prod,myProject/department:sales
。每個標記都必須包含命名空間限定的鍵名稱和值簡稱。 --description=DESCRIPTION
- 指定檢視畫面的說明。
--expiration=SECONDS
- 指定檢視畫面的生命週期。如果
SECONDS
為0
,則檢視畫面不會過期。如果您未指定--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
如果您使用
AUTO
或STRINGS
模式,則可接受下列值:gs://bucket/path_to_table
gs://bucket/path_to_table/
如果您使用
CUSTOM
模式,則可接受下列值:gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:INTEGER}
gs://bucket/path_to_table/{dt:STRING}/{country:STRING}/{id:INTEGER}
gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:STRING}
如要進一步瞭解如何使用 bq mkdef
指令,請參閱「針對外部資料來源建立資料表定義檔」一文。
--ignore_unknown_values={true|false}
或-i={true|false}
- 指定是否要忽略不在結構定義中的資料列中任何值。預設值為
false
。 --metadata_cache_mode=STRING
指定資料表的中繼資料快取是否會自動或手動重新整理。
將其設為
AUTOMATIC
,即可在系統定義的間隔 (通常介於 30 到 60 分鐘之間) 重新整理中繼資料快取。如果您想依照指定的時間表重新整理中繼資料快取,請將其設為
MANUAL
。在這種情況下,您可以呼叫BQ.REFRESH_EXTERNAL_METADATA_CACHE
系統程序來重新整理快取。如果您使用
bq mk
指令設定--max_staleness
標記,就必須設定--metadata_cache_mode
標記。--parquet_enable_list_inference={true|false}
如果
source_format
設為PARQUET
,則此標記會指定是否要為 ParquetLIST
邏輯類型使用結構定義推論。預設為false
。--parquet_enum_as_string={true|false}
如果
source_format
設為PARQUET
,則此標記會指定是否要將 ParquetENUM
邏輯類型推斷為STRING
值。預設為false
。--file_set_spec_type=FILE_SET_SPEC_TYPE
指定如何解讀來源 URI。
FILE_SYSTEM_MATCH
:透過列出物件儲存庫中的檔案,展開來源 URI。這是未設定 FileSetSpecType 時的預設行為。NEW_LINE_DELIMITED_MANIFEST
:表示提供的 URI 是使用換行符號分隔的資訊清單檔案,每行一個 URI。資訊清單檔案不支援萬用字元 URI,且所有參照的資料檔案都必須與資訊清單位於相同的值區。
舉例來說,如果來源 URI 為
"gs://bucket/path/file"
,且file_set_spec_type
為FILE_SYSTEM_MATCH
,則該檔案會直接用作資料檔案。如果file_set_spec_type
是NEW_LINE_DELIMITED_MANIFEST
,檔案中的每一行都會解讀為指向資料檔案的 URI。--source_format=FORMAT
指定來源資料的格式。請使用下列其中一個值:
AVRO
CSV
DATASTORE_BACKUP
(適用於 Filestore)GOOGLE_SHEETS
NEWLINE_DELIMITED_JSON
ORC
PARQUET
預設值為
CSV
。--use_avro_logical_types={true|false}
如果
--source_format
旗標設為AVRO
,則此旗標會指定是否將邏輯類型轉換為對應類型 (例如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
。請使用下列格式指定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
會指定空值。重複使用這個標記即可指定多個參數。例如:
--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
要執行的查詢。您可以使用下列其中一種方法指定查詢:
指定含有查詢的字串。
如果您需要在查詢中使用其他字串文字常值,請務必遵循所用殼層的引號規則,例如 Bash 或 PowerShell。
以下範例說明 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 政策,並從政策中移除繫結。資源可以是資料表或檢視畫面。
這個指令可取代下列三步驟程序:
- 使用
bq get-iam-policy
指令擷取政策檔案 (JSON 格式)。 - 編輯政策檔案。
- 使用
bq set-iam-policy
指令更新不含繫結的政策。
概要
bq remove-iam-policy-binding FLAGS --member=MEMBER_TYPE:MEMBER --role=ROLE RESOURCE
旗標和引數
bq remove-iam-policy-binding
指令可使用下列旗標和引數:
--member=MEMBER_TYPE:MEMBER
這是必要旗標,使用
--member
旗標指定 IAM 政策繫結的成員部分。必須搭配--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
做為篩選器,只在資源的 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_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
旗標指定資料表定義。- 1 天:
--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
,這個指令會輪詢工作完成狀態並立即傳回結果。如果您未指定整數值,則指令會等到工作完成才結束。