管理模型
本文說明如何管理 BigQuery ML 模型,包括複製及重新命名模型。
必要的角色
如要取得讀取及建立 BigQuery 模型所需的權限,請要求管理員授予您專案的「BigQuery 資料編輯者」 (roles/bigquery.dataEditor
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色具備讀取及建立 BigQuery 模型所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要讀取及建立 BigQuery 模型,您必須具備下列權限:
-
如要從模型讀取資訊:
bigquery.models.getData
-
建立模型:
bigquery.models.create
重新命名模型
您無法變更現有模型的名稱。如您需要變更模型的名稱,請遵循相關步驟複製模型。當您在複製操作中指定目的地時,請使用新模型名稱。
複製模型
您可透過以下方式,將某個來源資料集的一或多個模型複製至目的地資料集:
- 使用 Google Cloud 控制台。
- 使用 bq 指令列工具的
bq cp
指令。 - 直接呼叫 jobs.insert API 方法並設定複製工作,或是使用用戶端程式庫。
複製模型的限制
模型複製工作有下列限制:
- 複製模型時,目的地模型的名稱必須遵循與您建立模型時相同的命名慣例。
- 模型複製會取決於 BigQuery 針對複製工作的限制。
- Google Cloud 主控台不支援複製模型。
- 不支援使用單一指令複製多個來源模型。
- 使用 CLI 複製模型時,不支援
--destination_kms_key
標記。
複製模型
您可透過以下方式複製模型:
- 使用指令列工具的
bq cp
指令 - 呼叫
jobs.insert
API 方法並設定複製工作,或是使用用戶端程式庫
如要複製模型:
控制台
Google Cloud 控制台不支援複製模型。
bq
請發出 bq cp
指令。選用標記:
-f
或--force
:覆寫目的地資料集中的現有模型,此作業不會有確認提示。如在目的地資料集中已有模型,則
-n
或--no_clobber
會傳回下列錯誤訊息:'[PROJECT_ID]:[DATASET].[MODEL]' already exists, skipping
。如未指定
-n
,則預設行為是提示您選擇是否取代目的地模型。
如果來源或目的地資料集位於非預設專案中,請採用下列格式將專案 ID 新增至該資料集名稱:PROJECT_ID:DATASET
。
提供 --location
標記,並將值設為您的位置。
bq --location=LOCATION cp -f -n PROJECT_ID:DATASET.SOURCE_MODEL PROJECT_ID:DATASET.DESTINATION_MODEL
更改下列內容:
- LOCATION:
您位置的名稱。
--location
是選用旗標。舉例來說,如果您在東京地區使用 BigQuery,就可以將旗標的值設為asia-northeast1
。您可以使用 .bigqueryrc 檔案,設定該位置的預設值。如需完整的位置清單,請參閱 BigQuery 位置。 - PROJECT_ID:您的專案 ID。
- DATASET:來源或目的地資料集的名稱。
- SOURCE_MODEL:您要複製的模型。
- DESTINATION_MODEL:目的地資料集中的模型名稱。
範例:
輸入下列指令,將 mydataset.mymodel
複製到 mydataset2
。
兩個資料集都在您的預設專案中,並且都在 US
多區域位置建立。
bq --location=US cp mydataset.mymodel mydataset2.mymodel
輸入下列指令來複製 mydataset.mymodel
,並覆寫有相同名稱的目的地模型。來源資料集位於預設專案中。目的地資料集位於 myotherproject
中。-f
快速鍵可用來在無提示的情況下覆寫目的地模型。mydataset
和 myotherdataset
是在 US
多地區位置建立的。
bq --location=US cp -f mydataset.mymodel myotherproject:myotherdataset.mymodel
輸入下列指令來複製 mydataset.mymodel
,並在目的地資料集有相同名稱的模型時傳回錯誤。來源資料集位於預設專案中。目的地資料集位於 myotherproject
中。您可使用 -n
快速鍵來避免使用相同名稱覆寫模型。兩個資料集都建立於 US
多地區位置。
bq --location=US cp -n mydataset.mymodel myotherproject:myotherdataset.mymodel
輸入下列指令,將 mydataset.mymodel
複製到 mydataset2
,並將模型重新命名為 mymodel2
。這兩個資料集都在預設專案中。兩個資料集都建立於 asia-northeast1
地區。
bq --location=asia-northeast1 cp mydataset.mymodel mydataset2.mymodel2
API
如要使用 API 複製模型,請呼叫 bigquery.jobs.insert
方法並設定 copy
工作。在工作資源的 jobReference
區段中,利用 location
屬性指定您的位置。
您必須在工作設定中指定下列值:
"copy": { "sourceTable": { // Required "projectId": string, // Required "datasetId": string, // Required "tableId": string // Required }, "destinationTable": { // Required "projectId": string, // Required "datasetId": string, // Required "tableId": string // Required }, "createDisposition": string, // Optional "writeDisposition": string, // Optional },
其中:
sourceTable
:提供所要複製模型的相關資訊。destinationTable
:提供新模型的相關資訊。createDisposition
:指定當模型不存在時是否要建立模型。writeDisposition
: 指定是否要覆寫現有的模型。
加密模型
如要進一步瞭解如何使用客戶自行管理的加密金鑰 (CMEK) 加密模型,請參閱「使用 CMEK 保護 BigQuery ML 模型」。
後續步驟
- 如需 BigQuery ML 的總覽,請參閱 BigQuery ML 簡介。
- 如要開始使用 BigQuery ML,請參閱在 BigQuery ML 中建立機器學習模型。
- 如要進一步瞭解模型的使用方式,請參閱以下說明: