建立工作階段
本文件說明如何在 BigQuery 中建立工作階段。本文章適用於熟悉 BigQuery 工作階段的使用者。
建立工作階段
如要擷取一組 SQL 活動,請建立 BigQuery 工作階段。建立工作階段後,您可以在工作階段中執行互動式查詢,直到工作階段終止為止。工作階段中的所有查詢都會在建立工作階段的位置執行 (處理)。
完成這些步驟前,請確認您具備建立工作階段的必要權限。
主控台
在 Google Cloud 控制台中,每個工作階段都會指派至編輯器分頁。
前往 Google Cloud 控制台的「BigQuery」頁面。
按一下「Compose new query」(編寫新查詢)
。系統會開啟新的編輯器分頁。依序按一下「更多」>「查詢設定」。系統會顯示「查詢設定」面板。
在「工作階段管理」專區中,按一下「使用工作階段模式」,啟用工作階段模式。
在「其他設定」>「資料位置」中選取位置。建立工作階段後,工作階段中的所有查詢都會受限於這個位置,且無法變更位置。
按一下 [儲存]。
在編輯器分頁中編寫查詢並執行。系統會在執行這項第一個查詢後建立新的工作階段。
bq
開啟 Cloud Shell,然後輸入下列 bq query
指令:
bq query \ --nouse_legacy_sql \ --create_session [--location 'SESSION_LOCATION'] \ 'SQL_STATEMENT'
其中:
- SESSION_LOCATION:將工作階段繫結至實體位置。將工作階段中的所有查詢限制在這個位置。選填。
- SQL_STATEMENT:工作階段的第一個 SQL 陳述式。
測試工作階段
使用以下指令建立工作階段和暫存資料表:
bq query \
--nouse_legacy_sql \
--create_session \
--location 'asia-northeast1' \
'SELECT 1;'
確認產生的結果類似下列內容:
In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
API
使用已定義的工作資源呼叫 jobs.insert 方法或 jobs.query 方法。
jobs.insert
使用下列參數呼叫 jobs.insert
方法:
{ "jobReference": { "projectId": "PROJECT_ID", "jobId": "JOB_ID", ["location": "SESSION_LOCATION"] }, "configuration": { "query": { "query": "SQL_STATEMENT", "createSession": { "value": true } } } }
其中:
- PROJECT_ID:要建立工作階段的專案。
- JOB_ID:要建立工作階段的工作。
- SESSION_LOCATION:將工作階段繫結至實體位置。將工作階段中的所有查詢限制在這個位置。選填。
- SQL_STATEMENT:工作階段的第一個 SQL 陳述式。
測試工作階段
輸入以下要求主體。將 myProject
和 job_123
替換為專案 ID 和工作 ID。
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"configuration": {
"query": {
"query": "SELECT 1;",
"createSession": {
"value": true
}
}
}
}
請確認回應主體類似以下內容:
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}
jobs.query
使用下列參數呼叫 jobs.query
方法:
{ "query": "SQL_STATEMENT", "createSession": true, ["location": "SESSION_LOCATION"] }
其中:
- SQL_STATEMENT:工作階段的第一個 SQL 陳述式。
- SESSION_LOCATION:將工作階段繫結至實體位置。將工作階段中的所有查詢限制在這個位置。選填。
測試工作階段
輸入以下要求主體。將 myProject
和 job_123
替換為專案 ID 和工作 ID。
{
"query": "SELECT 1;",
"createSession": true
}
請確認回應主體類似以下內容:
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}