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 valorasia-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
- Para obtener una descripción general de BigQuery ML, consulta la introducción a BigQuery ML.
- Para empezar a usar BigQuery ML, consulta el artículo Crear modelos de aprendizaje automático en BigQuery ML.
- Para obtener más información sobre cómo trabajar con modelos, consulta estos artículos: