管理模型
本文件說明如何管理 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 中建立機器學習模型」一文。
- 如要進一步瞭解如何使用模型,請參閱: