管理模型
本页面介绍如何管理 BigQuery ML 模型,包括复制模型和重命名模型。
重命名模型
目前,您无法更改现有模型的名称。如果需要更改模型的名称,请按照复制模型的步骤操作。在复制操作中指定目标时,使用新的模型名称。
复制模型
您可以通过以下方式将一个或多个模型从源数据集复制到目标数据集:
- 使用 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 文件设置该位置的默认值。[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 中创建机器学习模型。
- 如需详细了解如何使用模型,请参阅以下内容: