Administra conjuntos de datos
En este documento, se describe cómo copiar conjuntos de datos, volver a crearlos en otra ubicación, protegerlos, borrar conjuntos de datos, restablecer tablas de conjuntos de datos borrados y recuperar conjuntos de datos en BigQuery.
Como administrador de BigQuery, puedes organizar y controlar el acceso a las tablas y las vistas que usan los analistas. Para obtener más información sobre conjuntos de datos, consulta Introducción a los conjuntos de datos.
No puedes cambiar el nombre de un conjunto de datos existente ni reubicar un conjunto de datos después de crearlo. Como solución alternativa para cambiar el nombre del conjunto de datos, puedes copiar un conjunto de datos y cambiar el nombre del conjunto de datos de destino. Para reubicar un conjunto de datos, puedes seguir uno de los siguientes métodos:
Roles obligatorios
En esta sección, se describen los roles y los permisos que necesitas para administrar los conjuntos de datos. Si tu conjunto de datos de origen o de destino está en el mismo proyecto que usas para copiar, no necesitas roles ni permisos adicionales en ese conjunto de datos.
Para obtener los permisos que necesitas a fin de administrar los conjuntos de datos, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Copia un conjunto de datos (Beta):
-
Administrador de BigQuery (
roles/bigquery.admin
) en el proyecto de destino -
Visualizador de datos de BigQuery (
roles/bigquery.dataViewer
) en el conjunto de datos de origen -
Editor de datos de BigQuery (
roles/bigquery.dataEditor
) en el conjunto de datos de destino
-
Administrador de BigQuery (
- Borrar un conjunto de datos: Propietario de datos de BigQuery (
roles/bigquery.dataOwner
) en el proyecto - Restablece un conjunto de datos borrado: Usuario de BigQuery (
roles/bigquery.user
) en el proyecto
Si quieres obtener más información para otorgar roles, consulta Administra el acceso.
Estos roles predefinidos contienen los permisos necesarios para administrar conjuntos de datos. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para administrar conjuntos de datos:
-
Copiar un conjunto de datos:
bigquery.transfers.update
en el proyecto de destinobigquery.jobs.create
en el proyecto de destino-
bigquery.datasets.get
en el conjunto de datos de origen y de destino -
bigquery.tables.list
en el conjunto de datos de origen y de destino bigquery.datasets.update
en el conjunto de datos de destinobigquery.tables.create
en el conjunto de datos de destino
-
Borrar un conjunto de datos:
bigquery.datasets.delete
en el proyectobigquery.tables.delete
en el proyecto
-
Restablece un conjunto de datos borrado:
bigquery.datasets.create
en el proyecto-
bigquery.datasets.get
en el conjunto de datos
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos
Para obtener más información sobre los roles y permisos de IAM en BigQuery, consulta Introducción a IAM.
Copia conjuntos de datos
Puedes copiar un conjunto de datos, incluidos los datos particionados dentro de una región o entre regiones, sin extraer, mover o volver a cargar los datos en BigQuery. BigQuery usa el Servicio de transferencia de datos de BigQuery en el backend para copiar conjuntos de datos. Para conocer las consideraciones de ubicación cuando transfieres datos, consulta Ubicación y transferencias de datos.
Para cada configuración de copia de conjunto de datos, puedes tener una ejecución de transferencia activa a la vez. Las ejecuciones de transferencia adicionales están en cola. Si usas la consola de Google Cloud, puedes programar copias recurrentes y configurar notificaciones por correo electrónico o Pub/Sub con el Servicio de transferencia de datos de BigQuery.
Limitaciones
Las siguientes limitaciones se aplican cuando copias conjuntos de datos:
No puedes copiar los siguientes recursos de un conjunto de datos de origen:
- Vistas.
- Rutinas, incluidas las UDF
- Tablas externas.
- Cambia las tablas de captura de datos (CDC) si el trabajo de copia está entre regiones. Se admite la copia de tablas de CDC dentro de la misma región.
Tablas encriptadas con claves de encriptación administradas por el cliente (CMEK) si el trabajo de copia está entre regiones. Se admite la copia de tablas con la encriptación predeterminada entre regiones.
Puedes copiar todas las tablas encriptadas en la misma región, incluidas las tablas encriptadas con CMEK.
No puedes usar los siguientes recursos como conjuntos de datos de destino para trabajos de copia:
- Almacenamiento optimizado para escritura.
Conjuntos de datos encriptados con CMEK si el trabajo de copia se encuentra entre regiones
Sin embargo, las tablas encriptadas con CMEK se permiten como tablas de destino cuando se copian dentro de la misma región.
La frecuencia mínima entre los trabajos de copia es de 12 horas.
No se admite agregar datos a una tabla particionada en el conjunto de datos de destino.
Si existe una tabla en el conjunto de datos de origen y el conjunto de datos de destino, y la tabla de origen no cambió desde la última copia exitosa, se omite. La tabla de origen se omite incluso si se selecciona la casilla de verificación Reemplazar tablas de destino.
Cuando se truncan las tablas en el conjunto de datos de destino, el trabajo de copia del conjunto de datos no detecta ningún cambio realizado en los recursos del conjunto de datos de destino antes de comenzar el trabajo de copia. El trabajo de copia del conjunto de datos reemplaza todos los datos del conjunto de datos de destino, incluidos los esquemas y las tablas.
Es posible que la tabla de destino no refleje los cambios realizados en las tablas de origen después de que se inicia un trabajo de copia.
La copia de un conjunto de datos no es compatible con las regiones de BigQuery Omni.
Para copiar un conjunto de datos en un proyecto en otro perímetro de servicio de Controles del servicio de VPC, debes configurar las siguientes reglas de salida:
En la configuración del perímetro de servicio de los Controles del servicio de VPC del proyecto de destino, la principal de IAM debe tener los siguientes métodos:
bigquery.datasets.get
bigquery.tables.list
bigquery.tables.get
,bigquery.tables.getData
En la configuración del perímetro de servicio de los Controles del servicio de VPC del proyecto de origen, el principal de IAM que se usa debe tener el método configurado como
All Methods
.
Copia un conjunto de datos
Selecciona una de las opciones siguientes:
Consola
Habilita el Servicio de transferencia de datos de BigQuery para tu conjunto de datos de destino.
Habilitar la API del Servicio de transferencia de datos de BigQuery.
Asegúrate de tener los roles necesarios.
Si quieres configurar las notificaciones de ejecución de transferencias para Pub/Sub (la Opción 2 más adelante en estos pasos), debes tener el permiso
pubsub.topics.setIamPolicy
.Si solo configuras notificaciones por correo electrónico, los permisos de Pub/Sub no son necesarios. Para obtener más información, consulta la sección sobre notificaciones de ejecución del Servicio de transferencia de datos de BigQuery.
Crea un conjunto de datos de BigQuery en la misma región o en una región diferente a la de tu conjunto de datos de origen.
Opción 1: Usa la función de copia de BigQuery
Para crear una transferencia única, usa la función de copia de BigQuery:
Ve a la página de BigQuery.
En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos.
En la sección Información del conjunto de datos, haz clic en
Copiar y, luego, haz lo siguiente:En el campo Conjunto de datos, crea un conjunto de datos nuevo o selecciona el ID de un conjunto de datos existente de la lista.
Los nombres de conjuntos de datos dentro de un proyecto deben ser exclusivos. El proyecto y el conjunto de datos pueden estar en regiones diferentes, pero no todas las regiones se admiten para la copia de conjuntos de datos entre regiones.
En el campo Ubicación, se muestra la ubicación del conjunto de datos de origen.
Opcional: Para reemplazar los datos y el esquema de las tablas de destino por las tablas de origen, selecciona la casilla de verificación Reemplazar tablas de destino. Las tablas de origen y destino deben tener el mismo esquema de partición.
Para copiar el conjunto de datos, haz clic en Copiar.
Opción 2: Usa el Servicio de transferencia de datos de BigQuery.
Para programar copias recurrentes y configurar notificaciones por correo electrónico o Pub/Sub, usa el Servicio de transferencia de datos de BigQuery en la consola de Google Cloud:
Ve a la página Transferencias de datos.
Haz clic en Crear una transferencia.
En la lista Origen, selecciona Copia de conjunto de datos.
En el campo Nombre visible, ingresa un nombre para la ejecución de la transferencia.
En la sección Opciones de programación, haz lo siguiente:
En Frecuencia de repetición, elige una opción para la frecuencia con la que se ejecutará la transferencia:
Si seleccionas Personalizado, ingresa una frecuencia personalizada, por ejemplo,
every day 00:00
. Para obtener más información, consulta Da formato al programa.En Fecha de inicio y hora de ejecución (Start date and run time), ingresa la fecha y hora para iniciar la transferencia. Si seleccionas Start now (Comenzar ahora), esta opción se inhabilitará.
En la sección Configuración de destino, selecciona un conjunto de datos de destino para almacenar tus datos de transferencia. También puedes hacer clic en CREAR CONJUNTO DE DATOS NUEVO para crear un conjunto de datos nuevo antes de seleccionarlo para esta transferencia.
En la sección Detalles de fuente de datos, ingresa la siguiente información:
- En Conjunto de datos de origen, ingresa el ID del conjunto de datos que deseas copiar.
- En Proyecto de origen, ingresa el ID del proyecto de tu conjunto de datos de origen.
Para reemplazar los datos y el esquema de las tablas de destino por las tablas de origen, selecciona la casilla de verificación Reemplazar tablas de destino. Las tablas de origen y destino deben tener el mismo esquema de partición.
En el menú Cuenta de servicio, selecciona una cuenta de servicio de las cuentas de servicio asociadas a tu proyecto de Google Cloud. Puedes asociar una cuenta de servicio con tu transferencia en lugar de usar tus credenciales de usuario. Para obtener más información sobre el uso de cuentas de servicio con transferencias de datos, consulta Usa cuentas de servicio.
- Si accediste con una identidad federada, se requiere una cuenta de servicio para crear una transferencia. Si accediste con una Cuenta de Google, la cuenta de servicio para la transferencia es opcional.
- La cuenta de servicio debe tener las funciones necesarias.
Opcional: En la sección Opciones de notificación, haz lo siguiente:
- Para habilitar las notificaciones por correo electrónico, haz clic en el botón de activación. Cuando habilitas esta opción, el propietario de la configuración de la transferencia recibe una notificación por correo electrónico cuando falla una ejecución de transferencia.
- Para habilitar las notificaciones de Pub/Sub, haz clic en el botón de activar o desactivar y, luego, selecciona un nombre de tema de la lista o haz clic enCrear un tema. Esta opción configura las notificaciones de ejecución de Pub/Sub para tu transferencia.
Haga clic en Save.
bq
Habilita el Servicio de transferencia de datos de BigQuery para tu conjunto de datos de destino.
Asegúrate de tener los roles necesarios.
Para crear un conjunto de datos de BigQuery, usa el comando
bq mk
con la marca de creación de conjunto de datos--dataset
y la marcalocation
:bq mk \ --dataset \ --location=LOCATION \ PROJECT:DATASET
Reemplaza lo siguiente:
LOCATION
: La ubicación en la que deseas copiar el conjunto de datosPROJECT
: Es el ID del proyecto de tu conjunto de datos de destino.DATASET
: Es el nombre del conjunto de datos de destino.
Para copiar un conjunto de datos, usa el comando
bq mk
con la marca de creación de transferencias--transfer_config
y la marca--data_source
. Debes establecer la marca--data_source
encross_region_copy
. A fin de obtener una lista completa de los valores válidos para la marca--data_source
, consulta las marcas de transfer-config en la referencia de la herramienta de línea de comandos de bq.bq mk \ --transfer_config \ --project_id=PROJECT \ --data_source=cross_region_copy \ --target_dataset=DATASET \ --display_name=NAME \ --service_account_name=SERCICE_ACCOUNT \ --params='PARAMETERS'
Reemplaza lo siguiente:
NAME
: Es el nombre visible del trabajo de copia o la configuración de transferencia.SERVICE_ACCOUNT
: El nombre de la cuenta de servicio que se usa para autenticar tu transferencia. La cuenta de servicio debe ser propiedad del mismoproject_id
que se usa para crear la transferencia y debe tener todos los permisos necesarios.PARAMETERS
: son los parámetros de la configuración de la transferencia en formato JSON.Los parámetros para una configuración de copia de conjunto de datos incluyen los siguientes:
source_dataset_id
: Es el ID del conjunto de datos de origen que deseas copiar.source_project_id
: Es el ID del proyecto en el que se encuentra tu conjunto de datos de origen.overwrite_destination_table
: Es una marca opcional que te permite truncar las tablas de una copia anterior y actualizar todos los datos.
Las tablas de origen y destino deben tener el mismo esquema de partición.
En los siguientes ejemplos, se muestra el formato de los parámetros, según el entorno de tu sistema:
Linux: usa comillas simples para encerrar la string JSON, por ejemplo:
'{"source_dataset_id":"mydataset","source_project_id":"mysourceproject","overwrite_destination_table":"true"}'
Línea de comandos de Windows: usa comillas dobles para encerrar la string JSON y escapa las comillas dobles en la string con una barra inversa, por ejemplo:
"{\"source_dataset_id\":\"mydataset\",\"source_project_id\":\"mysourceproject\",\"overwrite_destination_table\":\"true\"}"
PowerShell: usa comillas simples para encerrar la string JSON y escapa las comillas dobles en la string con una barra inversa, por ejemplo:
'{\"source_dataset_id\":\"mydataset\",\"source_project_id\":\"mysourceproject\",\"overwrite_destination_table\":\"true\"}'
Por ejemplo, el siguiente comando crea una configuración de copia de conjunto de datos llamada
My Transfer
con un conjunto de datos de destino llamadomydataset
y un proyecto con el ID demyproject
.bq mk \ --transfer_config \ --project_id=myproject \ --data_source=cross_region_copy \ --target_dataset=mydataset \ --display_name='My Transfer' \ --params='{ "source_dataset_id":"123_demo_eu", "source_project_id":"mysourceproject", "overwrite_destination_table":"true" }'
API
Habilita el Servicio de transferencia de datos de BigQuery para tu conjunto de datos de destino.
Asegúrate de tener los roles necesarios.
Para crear un conjunto de datos de BigQuery, llama al método
datasets.insert
con un recurso de conjunto de datos definido.Para copiar un conjunto de datos, usa el método
projects.locations.transferConfigs.create
y proporciona una instancia del recursoTransferConfig
.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Instala el cliente de Python para la API de Data Transfer de BigQuery conpip install google-cloud-bigquery-datatransfer
. Luego, crea una configuración de transferencia para copiar el conjunto de datos.
Para evitar costos de almacenamiento adicionales, considera borrar el conjunto de datos anterior.
Visualiza trabajos de copia de conjuntos de datos
Para ver el estado y visualizar los detalles de un trabajo de copia de conjunto de datos en la consola de Google Cloud, haz lo siguiente:
En la consola de Google Cloud, ve a la página Transferencia de datos.
Selecciona la transferencia cuyos detalles deseas ver y, luego, haz lo siguiente:
En la página Detalles de la transferencia, selecciona una ejecución de la transferencia.
Para actualizar, haz clic en
Actualizar.
Vuelve a crear conjuntos de datos en otra ubicación
Para mover de forma manual un conjunto de datos de una ubicación a otra, sigue estos pasos:
-
Exporta los datos desde tus tablas de BigQuery hasta un bucket de Cloud Storage en la misma ubicación de tu conjunto de datos o en una ubicación dentro de la ubicación de tu conjunto de datos. Por ejemplo, si tu conjunto de datos se encuentra en la ubicación multirregional
EU
, puedes exportar tus datos a la ubicacióneurope-west1
de Bélgica, que forma parte de la UE.No se aplican cargos por exportar datos desde BigQuery, pero sí por almacenar los datos exportados en Cloud Storage. Las exportaciones de BigQuery están sujetas a los límites de los trabajos de exportación.
-
Copia o mueve los datos de tu bucket de exportación de Cloud Storage a un bucket nuevo que hayas creado en la ubicación de destino. Por ejemplo, si mueves tus datos desde la multirregión
US
a la regiónasia-northeast1
de Tokio, debes transferir los datos a un bucket que hayas creados en Tokio. Para obtener más información sobre la transferencia de objetos de Cloud Storage, consulta Copia, cambia el nombre y mueve objetos en la documentación de Cloud Storage.La transferencia de datos entre regiones incurre en cargos de salida de red en Cloud Storage.
-
Crea un conjunto de datos de BigQuery nuevo en la ubicación nueva y, luego, carga los datos del bucket de Cloud Storage en el conjunto de datos nuevo.
No se te cobrará por cargar los datos en BigQuery, pero sí por almacenar los datos en Cloud Storage hasta que borres los datos o el bucket. También se te cobra por almacenar los datos en BigQuery después de que se carguen. La carga de datos en BigQuery está sujeta a los límites de trabajos de carga.
También puedes usar Cloud Composer para mover y copiar conjuntos de datos grandes de manera programática.
A fin de obtener más información sobre el uso de Cloud Storage para almacenar y mover conjuntos de datos grandes, consulta Usa Cloud Storage con macrodatos.
Conjuntos de datos seguros
Para controlar el acceso a los conjuntos de datos en BigQuery, consulta Controla el acceso a los conjuntos de datos. Para obtener información sobre la encriptación de datos, consulta Encriptación en reposo.
Borrar conjuntos de datos
Cuando borras un conjunto de datos mediante la consola de Google Cloud, sus tablas y vistas, incluidos sus datos, se borran. Cuando borras un conjunto de datos con la herramienta de línea de comandos de bq, debes usar la marca -r
para borrar las tablas y vistas.
Para borrar un conjunto de datos, elige una de las siguientes opciones:
Consola
Ve a la página de BigQuery.
En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos.
Expande la opción Acciones
y haz clic en Borrar.En el cuadro de diálogo Borrar conjunto de datos, escribe
delete
en el campo y, luego, haz clic en Borrar.
SQL
Para borrar un conjunto de datos, usa elDROP SCHEMA
de la declaración DDL.
En el siguiente ejemplo, se borra un conjunto de datos llamado mydataset
:
En la consola de Google Cloud, ve a la página de BigQuery.
En el editor de consultas, escribe la siguiente sentencia:
DROP SCHEMA IF EXISTS mydataset;
Según la configuración predeterminada, esto solo funciona para borrar un conjunto de datos vacío. Para borrar un conjunto de datos y todo su contenido, usa la palabra clave
CASCADE
:DROP SCHEMA IF EXISTS mydataset CASCADE;
Haz clic en
Ejecutar.
Si deseas obtener información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
bq
Usa el comando bq rm
con la marca --dataset
o -d
, que es opcional.
Si tu conjunto de datos contiene tablas, debes usar la marca -r
para quitar todas las tablas del conjunto de datos. Si usas la marca -r
, puedes omitir la marca --dataset
o -d
.
Después de ejecutar el comando, el sistema solicita confirmación. Puedes usar la marca -f
para omitir la confirmación.
Si borras una tabla en un proyecto que no sea tu proyecto predeterminado, agrega el ID del proyecto al nombre del conjunto de datos en el siguiente formato: PROJECT_ID:DATASET
.
bq rm -r -f -d PROJECT_ID:DATASET
Reemplaza lo siguiente:
PROJECT_ID
: El ID de tu proyectoDATASET
: Es el nombre del conjunto de datos que borrarás
Ejemplos:
Ingresa el siguiente comando para quitar un conjunto de datos llamado mydataset
y todas las tablas que contiene de tu proyecto predeterminado. En el comando, se usa la marca -d
.
bq rm -r -d mydataset
Cuando se te solicite, escribe y
y presione Entrar.
Ingresa el siguiente comando para quitar mydataset
y todas las tablas que contiene de myotherproject
. El comando no usa la marca -d
opcional.
La marca -f
se usa para omitir la confirmación.
bq rm -r -f myotherproject:mydataset
Puedes usar el comando bq ls
para confirmar que se borró el conjunto de datos.
API
Llama al método datasets.delete
a fin de borrar el conjunto de datos y establece el parámetro deleteContents
en true
para borrar las tablas que contiene.
C#
En la siguiente muestra de código, se borra un conjunto de datos vacío.
Antes de probar este ejemplo, sigue las instrucciones de configuración para C# incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para C#.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Instala el cliente de Python para la API de Data Transfer de BigQuery conpip install google-cloud-bigquery-datatransfer
. Luego, crea una configuración de transferencia para copiar el conjunto de datos.
En la siguiente muestra de código, se borra un conjunto de datos y todo su contenido:
Comienza a usarlo
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Instala el cliente de Python para la API de Data Transfer de BigQuery conpip install google-cloud-bigquery-datatransfer
. Luego, crea una configuración de transferencia para copiar el conjunto de datos.
Java
En la siguiente muestra de código, se borra un conjunto de datos vacío.
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Instala el cliente de Python para la API de Data Transfer de BigQuery conpip install google-cloud-bigquery-datatransfer
. Luego, crea una configuración de transferencia para copiar el conjunto de datos.
En la siguiente muestra de código, se borra un conjunto de datos y todo su contenido:
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Node.js.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Instala el cliente de Python para la API de Data Transfer de BigQuery conpip install google-cloud-bigquery-datatransfer
. Luego, crea una configuración de transferencia para copiar el conjunto de datos.
PHP
Antes de probar este ejemplo, sigue las instrucciones de configuración para PHP incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para PHP.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Instala el cliente de Python para la API de Data Transfer de BigQuery conpip install google-cloud-bigquery-datatransfer
. Luego, crea una configuración de transferencia para copiar el conjunto de datos.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Instala el cliente de Python para la API de Data Transfer de BigQuery conpip install google-cloud-bigquery-datatransfer
. Luego, crea una configuración de transferencia para copiar el conjunto de datos.
Rita
En la siguiente muestra de código, se borra un conjunto de datos vacío.
Antes de probar este ejemplo, sigue las instrucciones de configuración para Ruby incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Ruby.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Instala el cliente de Python para la API de Data Transfer de BigQuery conpip install google-cloud-bigquery-datatransfer
. Luego, crea una configuración de transferencia para copiar el conjunto de datos.
En la siguiente muestra de código, se borra un conjunto de datos y todo su contenido:
Restablece tablas de conjuntos de datos borrados
Puedes restablecer tablas a partir de un conjunto de datos borrado que se encuentran dentro del período de viaje en el tiempo del conjunto de datos. Para restablecer todo el conjunto de datos, consulta Recupera conjuntos de datos.
- Crea un conjunto de datos con el mismo nombre y en la misma ubicación que el original.
- Elige una marca de tiempo anterior a la eliminación del conjunto de datos original mediante un formato de milisegundos desde la época, por ejemplo,
1418864998000
. Copia la tabla
originaldataset.table1
en el momento1418864998000
en el nuevo conjunto de datos:bq cp originaldataset.table1@1418864998000 mydataset.mytable
Para encontrar los nombres de las tablas no vacías que estaban en el conjunto de datos borrado, consulta la vista
INFORMATION_SCHEMA.TABLE_STORAGE
del conjunto de datos dentro del período de viaje en el tiempo.
Recupera conjuntos de datos
Puedes recuperar un conjunto de datos para recuperarlo al estado que tenía cuando se borró. Solo puedes recuperar conjuntos de datos que se encuentren dentro de tu período de viaje en el tiempo. Esta recuperación incluye todos los objetos que se encontraban en el conjunto de datos, las propiedades del conjunto de datos y la configuración de seguridad. Para los recursos que no se recuperan, consulta Recupera las limitaciones de los conjuntos de datos.
Recupera las limitaciones de los conjuntos de datos
- Los conjuntos de datos restablecidos pueden hacer referencia a las principales de seguridad que ya no existen.
- Las referencias a un conjunto de datos borrado en los conjuntos de datos vinculados no se restablecen mediante la recuperación. Los suscriptores deben volver a suscribirse para restablecer los vínculos manualmente.
- Las etiquetas de negocios no se restablecen mediante la recuperación.
- Debes actualizar de forma manual las vistas materializadas y volver a autorizar las vistas autorizadas, los conjuntos de datos autorizados y las rutinas autorizadas. Ten en cuenta que, cuando se borran recursos autorizados (vistas, conjuntos de datos y rutinas), la autorización tarda hasta 24 horas en borrarse. Por lo tanto, si recuperas un conjunto de datos con un recurso autorizado menos de 24 horas después de la eliminación, es posible que no sea necesario volver a autorizarlo. Como práctica recomendada, siempre verifica la autorización después de recuperar los recursos.
Recupera un conjunto de datos
Para recuperar un conjunto de datos, selecciona una de las siguientes opciones:
SQL
Usa la declaración del lenguaje de definición de datos UNDROP SCHEMA
(DDL):
En la consola de Google Cloud, ve a la página de BigQuery.
En el editor de consultas, escribe la siguiente sentencia:
UNDROP SCHEMA
DATASET_ID
;Reemplaza
DATASET_ID
por el conjunto de datos que deseas recuperar.Especifica la ubicación del conjunto de datos que deseas recuperar.
Haz clic en
Ejecutar.
Si quieres obtener información para ejecutar consultas, visita Ejecuta consultas interactivas.
API
Llama al
método datasets.undelete
.
Cuando recuperas un conjunto de datos, pueden ocurrir los siguientes errores:
ALREADY_EXISTS
: ya existe un conjunto de datos con el mismo nombre en la región que intentaste recuperar. No puedes usar la recuperación para reemplazar o combinar los conjuntos de datos.NOT_FOUND
: el conjunto de datos que intentas recuperar ya pasó su período de viaje en el tiempo o nunca existió.ACCESS_DENIED
: no tienes los permisos correctos para recuperar este conjunto de datos.
Cuotas
Para obtener información sobre las cuotas de copia, consulta Trabajos de copia.
El uso de los trabajos de copia está disponible en INFORMATION_SCHEMA
. Para obtener información sobre cómo consultar la vista INFORMATION_SCHEMA.JOBS
, consulta Utiliza los trabajos de copia.
Precios
Los cargos de salida de datos por los datos que se copian entre regiones o multirregiones se facturan con las mismas tarifas que los precios de extracción de datos.
BigQuery envía datos comprimidos para copiar entre regiones, de modo que los datos que se facturan puedan ser menores que el tamaño real de tu conjunto de datos. Para obtener más información, consulte los Precios de BigQuery.
¿Qué sigue?
- Obtén información sobre cómo crear conjuntos de datos.
- Obtén información sobre cómo actualizar conjuntos de datos.