Gestionar modelos

En este documento se explica cómo gestionar los modelos de BigQuery ML, como copiar y cambiar el nombre de los modelos.

Roles obligatorios

Para obtener los permisos que necesitas para leer y crear modelos de BigQuery, pide a tu administrador que te asigne el rol de gestión de identidades y accesos Editor de datos de BigQuery (roles/bigquery.dataEditor) en el proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para leer y crear modelos de BigQuery. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para leer y crear modelos de BigQuery, se necesitan los siguientes permisos:

  • Para leer información de los modelos, sigue estos pasos: bigquery.models.getData
  • Para crear modelos, sigue estos pasos: bigquery.models.create

También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Cambiar el nombre de los modelos

No puedes cambiar el nombre de un modelo que ya tengas. Si necesitas cambiar el nombre del modelo, sigue los pasos para copiar el modelo. Cuando especifique el destino en la operación de copia, utilice el nuevo nombre del modelo.

Copiar modelos

Puedes copiar uno o varios modelos de un conjunto de datos de origen a un conjunto de datos de destino de las siguientes formas:

  • Con la Google Cloud consola.
  • Usando el comando bq cp de la herramienta de línea de comandos bq.
  • Llamar directamente al método de API jobs.insert y configurar un trabajo de copia o usar las bibliotecas de cliente.

Limitaciones al copiar modelos

Las tareas de copia de modelos están sujetas a las siguientes limitaciones:

  • Cuando copies un modelo, el nombre del modelo de destino debe seguir las mismas convenciones de nomenclatura que cuando creas un modelo.
  • Las copias de modelos están sujetas a los límites de BigQuery en las tareas de copia.
  • La consola Google Cloud no admite la copia de modelos.
  • No se pueden copiar varios modelos de origen en un solo comando.
  • Cuando copias un modelo mediante la CLI, no se admite la marca --destination_kms_key.

Copiar un modelo

Para copiar un modelo, sigue estos pasos:

  • Usar el comando bq cp de la herramienta de línea de comandos
  • Llamando al método de API jobs.insert y configurando una tarea de copia o usando las bibliotecas de cliente

Para copiar un modelo, sigue estos pasos:

Consola

La consola de Google Cloud no admite la copia de modelos.

bq

Ejecuta el comando bq cp. Marcas posibles

  • -f o --force sobrescribe un modelo en el conjunto de datos de destino sin pedirte confirmación.
  • -n o --no_clobber devuelve el siguiente mensaje de error si el modelo existe en el conjunto de datos de destino: '[PROJECT_ID]:[DATASET].[MODEL]' already exists, skipping.

    Si no se especifica -n, el comportamiento predeterminado es pedirle que elija si quiere sustituir el modelo de destino.

Si el conjunto de datos de origen o de destino se encuentra en un proyecto que no es el predeterminado, añade el ID del proyecto a los nombres de los conjuntos de datos con el siguiente formato: PROJECT_ID:DATASET.

Proporcione la marca --location y asigne el valor a su ubicación.

bq --location=LOCATION cp -f -n PROJECT_ID:DATASET.SOURCE_MODEL PROJECT_ID:DATASET.DESTINATION_MODEL

Haz los cambios siguientes:

  • LOCATION: el nombre de tu ubicación. La marca --location es opcional. Por ejemplo, si usas BigQuery en la región de Tokio, puedes asignar el valor asia-northeast1 a la marca. Puedes definir un valor predeterminado para la ubicación mediante el archivo.bigqueryrc. Para ver una lista completa de las ubicaciones, consulta Ubicaciones de BigQuery.
  • PROJECT_ID: el ID de tu proyecto.
  • DATASET: el nombre del conjunto de datos de origen o de destino.
  • SOURCE_MODEL: el modelo que vas a copiar.
  • DESTINATION_MODEL: el nombre del modelo en el conjunto de datos de destino.

Ejemplos:

Introduce el siguiente comando para copiar mydataset.mymodel en mydataset2. Ambos conjuntos de datos están en tu proyecto predeterminado y se crearon en la ubicación multirregional US.

bq --location=US cp mydataset.mymodel mydataset2.mymodel

Introduce el siguiente comando para copiar mydataset.mymodel y sobrescribir un modelo de destino con el mismo nombre. El conjunto de datos de origen está en tu proyecto predeterminado. El conjunto de datos de destino está en myotherproject. La combinación de teclas -f se usa para sobrescribir el modelo de destino sin una petición. mydataset y myotherdataset se crearon en la ubicación multirregional US.

bq --location=US cp -f mydataset.mymodel myotherproject:myotherdataset.mymodel

Introduce el siguiente comando para copiar mydataset.mymodel y devolver un error si el conjunto de datos de destino contiene un modelo con el mismo nombre. El conjunto de datos de origen está en tu proyecto predeterminado. El conjunto de datos de destino está en myotherproject. El acceso directo -n se usa para evitar que se sobrescriba un modelo con el mismo nombre. Ambos conjuntos de datos se crearon en la ubicación multirregional US.

bq --location=US cp -n mydataset.mymodel myotherproject:myotherdataset.mymodel

Introduce el siguiente comando para copiar mydataset.mymodel en mydataset2 y cambiar el nombre del modelo mymodel2. Ambos conjuntos de datos están en tu proyecto predeterminado. Ambos conjuntos de datos se crearon en la región asia-northeast1.

bq --location=asia-northeast1 cp mydataset.mymodel mydataset2.mymodel2

API

Para copiar un modelo mediante la API, llama al método bigquery.jobs.insert y configura una tarea copy. Especifica tu ubicación en la propiedad location de la sección jobReference del recurso de trabajo.

Debe especificar los siguientes valores en la configuración del trabajo:

"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
    },

Donde:

  • sourceTable: proporciona información sobre el modelo que se va a copiar.
  • destinationTable: proporciona información sobre el nuevo modelo.
  • createDisposition: especifica si se debe crear el modelo si no existe.
  • writeDisposition: especifica si se debe sobrescribir un modelo ya creado.

Cifrar modelos

Para obtener más información sobre cómo usar una clave de cifrado gestionada por el cliente (CMEK) para cifrar un modelo, consulta Usar CMEK para proteger modelos de BigQuery ML.

Siguientes pasos