管理模型

本页面介绍如何管理 BigQuery ML 模型,包括复制模型和重命名模型。

重命名模型

目前,您无法更改现有模型的名称。如果需要更改模型的名称,请按照复制模型的步骤操作。在复制操作中指定目标时,使用新的模型名称。

复制模型

您可以通过以下方式将一个或多个模型从源数据集复制到目标数据集:

  • 使用 Google Cloud 控制台。
  • 使用 bq 命令行工具的 bq cp 命令。
  • 直接调用 jobs.insert API 方法并配置复制作业或使用客户端库。

复制模型的限制

模型的复制作业受到以下限制:

  • 复制模型时,目标模型的名称必须遵循与创建模型相同的命名惯例。
  • 模型副本需遵循 BigQuery 对复制作业的限制
  • 目前,Google Cloud 控制台不支持复制模型。
  • 复制模型时,目标数据集必须与要复制的模型所属的数据集位于同一位置。例如,您无法从欧盟的数据集复制模型并将其写入美国的数据集。
  • 不支持在单个命令中复制多个源模型。
  • 目前,使用 CLI 复制模型时,不支持 --destination_kms_key 标志。

复制模型

您可以通过以下方式复制模型:

要复制模型,请执行以下操作:

控制台

目前,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 快捷键用于在无提示的情况下覆盖目标模型。mydatasetmyotherdataset 是在 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 模型

后续步骤