Administra tablas
En este documento, se describe cómo administrar tablas en BigQuery. Puedes administrar tus tablas de BigQuery de las siguientes maneras:
- Actualiza las propiedades de las tablas:
- Hora de vencimiento
- Descripción
- Definición de esquema
- Etiquetas
- Renombra (copia) una tabla.
- Copia una tabla
- Borra una tabla
- Restablece una tabla borrada
Para obtener más información sobre cómo crear y usar tablas, además de cómo obtener de información de las tablas, las listas de tablas y el control de acceso a los datos de estas, consulta Crea y usa tablas.
Antes de comenzar
Otorga roles de Identity and Access Management (IAM) que les brindan a los usuarios los permisos necesarios para realizar cada tarea de este documento. Los permisos necesarios para realizar una tarea (si existen) se enumeran en la sección “Permisos necesarios” de la tarea.
Actualiza las propiedades de las tablas
Puedes actualizar los siguientes elementos de una tabla:
Permisos necesarios
Para actualizar una tabla, necesitas los siguientes permisos de IAM:
bigquery.tables.update
bigquery.tables.get
Cada una de las siguientes funciones predefinidas de IAM incluye los permisos que necesitas para actualizar una tabla:
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
Además, si tienes el permiso bigquery.datasets.create
, puedes actualizar las propiedades de las tablas de los conjuntos de datos que creas.
Para obtener más información sobre las funciones y los permisos de IAM en BigQuery, consulta Funciones y permisos predefinidos.
Actualiza la descripción de una tabla
Puedes actualizar la descripción de una tabla de las siguientes maneras:
- Usa la consola.
- Usa una declaración
ALTER TABLE
del lenguaje de definición de datos (DDL) - Usa el comando
bq
de la herramienta de línea de comandosbq update
- Mediante una llamada al método de la API
tables.patch
- Usa bibliotecas cliente.
Para actualizar la descripción de una tabla, haz lo siguiente:
Console
Cuando creas una tabla mediante la consola, no puedes agregar una descripción. Después de crear la tabla, puedes agregar una en la página de Detalles (Details).
En el panel Explorador, expande el proyecto y conjunto de datos y, luego, selecciona la tabla.
En el panel de detalles, haz clic en Detalles.
En la sección Description (Descripción), haz clic en el ícono de lápiz para editar la descripción.
Ingresa una descripción en el cuadro y haz clic en Update (Actualizar) para guardarla.
SQL
Usa la sentencia ALTER TABLE SET OPTIONS
.
En el siguiente ejemplo, se actualiza la descripción de una tabla llamada mytable
.
En la consola, ve a la página BigQuery.
En el editor de consultas, ingresa la siguiente sentencia:
ALTER TABLE mydataset.mytable SET OPTIONS ( description = 'Description of mytable');
Haz clic en
Ejecutar.
Si deseas obtener más información sobre cómo ejecutar consultas, visita Ejecuta consultas interactivas.
bq
Ejecuta el comando bq update
con la marca --description
. Si actualizas una tabla en un proyecto que no es tu proyecto predeterminado, debes agregar el ID del proyecto al nombre del conjunto de datos en el formato siguiente: project_id:dataset
.
bq update \ --description "description" \ project_id:dataset.table
Reemplaza lo siguiente:
description
: Es el texto que describe la tabla entre comillas.project_id
: Es el ID de tu proyecto.dataset
: Es el nombre del conjunto de datos que contiene la tabla que estás actualizando.table
: Es el nombre de la tabla que estás actualizando.
Ejemplos:
Para cambiar la descripción de la tabla mytable
en el conjunto de datos mydataset
a “Descripción de mytable”, ingresa el comando siguiente. El conjunto de datos mydataset
se encuentra en tu proyecto predeterminado.
bq update --description "Description of mytable" mydataset.mytable
Para cambiar la descripción de la tabla mytable
en el conjunto de datos mydataset
a “Descripción de mytable”, ingresa el comando siguiente. El conjunto de datos mydataset
está en el proyecto myotherproject
, no en tu proyecto predeterminado.
bq update \
--description "Description of mytable" \
myotherproject:mydataset.mytable
API
Llama al método tables.patch
y usa la propiedad description
en el recurso de tabla para actualizar la descripción de la tabla. Debido a que, con el método tables.update
se reemplaza todo el recurso de tabla, es preferible usar el método tables.patch
.
Go
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. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de BigQuery.
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.
Python
Antes de probar esta muestra, 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. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de BigQuery.
Configura la propiedad Table.description y llama a Client.update_table() para enviar la actualización a la API.Actualiza la fecha de vencimiento de una tabla
Puedes determinar una fecha de vencimiento de la tabla predeterminada a nivel de conjunto de datos o puedes configurarla cuando se crea la tabla. Se suele hablar de “tiempo de actividad” o TTL para referirse a la fecha de vencimiento de una tabla.
Cuando una tabla vence, se borra junto con todos los datos que contiene. Si es necesario, puedes recuperar la tabla vencida dentro del período de viaje especificado para el conjunto de datos, consulta Restablece tablas borradas para obtener más información.
Si configuras la fecha de vencimiento cuando se crea la tabla, se ignora el vencimiento predeterminado de la tabla del conjunto de datos. Si no estableces un vencimiento predeterminado de la tabla a nivel de conjunto de datos y no estableces un vencimiento de la tabla cuando la creas, la tabla nunca vencerá y deberás borrarla de forma manual.
En cualquier momento posterior a la creación de la tabla, puedes actualizar la fecha de vencimiento de la tabla de las siguientes maneras:
- Usa la consola.
- Usa una declaración
ALTER TABLE
del lenguaje de definición de datos (DDL) - Usa el comando
bq
de la herramienta de línea de comandosbq update
- Mediante una llamada al método de la API
tables.patch
- Usa bibliotecas cliente.
Para actualizar la fecha de vencimiento de una tabla, haz lo siguiente:
Console
No puedes agregar una fecha de vencimiento cuando creas una tabla mediante la consola. Después de crear una tabla, puedes agregar o actualizar su vencimiento en la página de Detalles de la tabla.
En el panel Explorador, expande el proyecto y conjunto de datos y, luego, selecciona la tabla.
En el panel de detalles, haz clic en Detalles.
Haz clic en el ícono de lápiz junto a Información de tabla.
En Vencimiento de tabla, selecciona Especificar fecha. Luego, selecciona la fecha de vencimiento mediante el widget de calendario.
Haz clic en Actualizar para guardar. La fecha de vencimiento actualizada aparecerá en la sección Información de tabla.
SQL
Usa la sentencia ALTER TABLE SET OPTIONS
.
En el siguiente ejemplo, se actualiza la fecha de vencimiento de una tabla llamada mytable
:
En la consola, ve a la página BigQuery.
En el editor de consultas, ingresa la siguiente sentencia:
ALTER TABLE mydataset.mytable SET OPTIONS ( -- Sets table expiration to timestamp 2025-02-03 12:34:56 expiration_timestamp = TIMESTAMP '2025-02-03 12:34:56');
Haz clic en
Ejecutar.
Si deseas obtener más información sobre cómo ejecutar consultas, visita Ejecuta consultas interactivas.
bq
Ejecuta el comando bq update
con la marca --expiration
. Si actualizas una tabla en un proyecto que no es tu proyecto predeterminado, debes agregar el ID del proyecto al nombre del conjunto de datos en el formato siguiente: project_id:dataset
.
bq update \
--expiration integer \
project_id:dataset.table
Reemplaza lo siguiente:
integer
: Es el ciclo de vida predeterminado (en segundos) de la tabla. El valor mínimo es 3,600 segundos (una hora). La fecha de vencimiento se evalúa según la fecha actual más el valor del número entero. Si especificas0
, se quita el vencimiento y la tabla nunca se vence. Las tablas sin vencimiento deben borrarse de forma manual.project_id
: Es el ID de tu proyecto.dataset
: Es el nombre del conjunto de datos que contiene la tabla que estás actualizando.table
: Es el nombre de la tabla que estás actualizando.
Ejemplos:
Para actualizar la fecha de vencimiento de la tabla mytable
en el conjunto de datos mydataset
a 5 días (432,000 segundos), ingresa el siguiente comando. El conjunto de datos mydataset
se encuentra en tu proyecto predeterminado.
bq update --expiration 432000 mydataset.mytable
Para actualizar la fecha de vencimiento de la tabla mytable
en el conjunto de datos mydataset
a 5 días (432,000 segundos), ingresa el siguiente comando. El conjunto de datos mydataset
está en el proyecto myotherproject
, no en tu proyecto predeterminado.
bq update --expiration 432000 myotherproject:mydataset.mytable
API
Llama al método tables.patch
y usa la propiedad expirationTime
en el recurso de tabla para actualizar el vencimiento de la tabla en milisegundos. Debido a que, con el método tables.update
se reemplaza todo el recurso de tabla, es preferible usar el método tables.patch
.
Go
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. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de BigQuery.
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.
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 Node.js de BigQuery.
Python
Antes de probar esta muestra, 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. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de BigQuery.
Configura la propiedad Table.expires y llama a Client.update_table() para enviar la actualización a la API.Para actualizar el tiempo de vencimiento predeterminado de la partición del conjunto de datos, haz lo siguiente:
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.
Python
Antes de probar esta muestra, 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. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de BigQuery.
Actualiza la definición de esquema de la tabla
Para obtener más información sobre cómo actualizar la definición de esquema de una tabla, consulta Modifica esquemas de tablas.
Cambia el nombre de una tabla
Puedes cambiar el nombre de una tabla después de crearla con la sentencia ALTER TABLE RENAME TO
.
En el siguiente ejemplo, se cambia el nombre de mytable
a mynewtable
:
ALTER TABLE mydataset.mytable
RENAME TO mynewtable;
Limitaciones para cambiar el nombre de las tablas
- En la actualidad, no puedes cambiar el nombre de una tabla hasta 72 horas después de la última operación de transmisión.
Copia una tabla
En esta sección, se describe cómo crear una copia completa de una tabla. Para obtener información sobre otros tipos de copias de tablas, consultaClonaciones de tabla e Instantáneas de tabla.
Puedes copiar una tabla de las maneras siguientes:
- Usa la consola.
- Usa el comando
bq cp
. - Usa una declaración
CREATE TABLE COPY
en el lenguaje de definición de datos (DDL) - Llama al método de la API jobs.insert y configura un trabajo
copy
. - Usa las bibliotecas cliente.
Limitaciones sobre la copia de tablas
Los trabajos de copia de tablas están sujetos a las limitaciones siguientes:
- Cuando copias una tabla, el nombre de la tabla de destino debe respetar las mismas convenciones que cuando creas una tabla.
- Las copias de tablas están sujetas a límites de BigQuery en trabajos de copia.
- Cuando usas la consola para copiar una tabla, no puedes reemplazar una tabla existente en el conjunto de datos de destino. La tabla debe tener un nombre único en el conjunto de datos de destino.
- Cuando copias tablas, el conjunto de datos de destino debe residir en la misma ubicación que el conjunto de datos que contiene la tabla que quieres copiar. Por ejemplo, no puedes copiar una tabla de un conjunto de datos de la UE y escribirlo en un conjunto de datos de EE.UU.
- La consola no admite la copia de múltiples tablas de origen en una tabla de destino.
- Cuando copias varias tablas de origen a una de destino con la API o la herramienta de línea de comandos de
bq
, todas las tablas de origen deben tener esquemas idénticos. - El tiempo que tarda BigQuery en copiar tablas puede variar significativamente en las diferentes ejecuciones, porque el almacenamiento subyacente se administra de forma dinámica.
Permisos necesarios
Para realizar las tareas de este documento, necesitas los siguientes permisos.
Permisos para copiar tablas y particiones
Para copiar tablas y particiones, necesitas permisos de IAM en los conjuntos de datos de origen y de destino.
En el conjunto de datos de origen, necesitas lo siguiente:
bigquery.tables.get
bigquery.tables.getData
En el conjunto de datos de destino, necesitas lo siguiente:
bigquery.tables.create
: Este permiso te permite crear una copia de la tabla o partición en el conjunto de datos de destino.
Cada una de las siguientes funciones predefinidas de IAM incluye los permisos que necesitas para copiar tablas y particiones:
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
Permiso para ejecutar un trabajo de copia
Para ejecutar un trabajo de copia, necesitas el permiso bigquery.jobs.create
de IAM.
Cada una de las siguientes funciones predefinidas de IAM incluye los permisos que necesitas para ejecutar un trabajo de copia:
roles/bigquery.user
roles/bigquery.jobUser
roles/bigquery.admin
Además, si tienes el permiso bigquery.datasets.create
, puedes copiar tablas y particiones en los conjuntos de datos que crees. También necesitas acceso al conjunto de datos de destino.
Para obtener más información sobre las funciones y los permisos de IAM en BigQuery, consulta Funciones y permisos predefinidos.
Copiar una tabla de una sola fuente
Puedes copiar una única tabla de las siguientes maneras:
- Usa la consola.
- Usa el comando
bq
de la herramienta de línea de comandosbq cp
- Usa una declaración
CREATE TABLE COPY
del lenguaje de definición de datos (DDL) - Mediante una llamada al método de API
jobs.insert
, la configuración de un trabajocopy
y la especificación de la propiedadsourceTable
. - Usa bibliotecas cliente.
La consola y la declaración CREATE TABLE COPY
solo admiten una tabla de origen y una tabla de destino en un trabajo de copia. Para copiar múltiples archivos fuente a una tabla de destino, debes usar la herramienta de línea de comandos de bq
o la API.
Para copiar una sola tabla fuente, haz lo siguiente:
Console
En el panel Explorador, expande el proyecto y conjunto de datos y, luego, selecciona la tabla.
En el panel de detalles, haz clic en Crear tabla (Create table).
En el cuadro de diálogo Copiar tabla, en Destino, haz lo siguiente:
- En Nombre del proyecto (Project name), elige el proyecto que almacenará la tabla copiada.
- En Nombre del conjunto de datos (Dataset name), selecciona el conjunto de datos en el que deseas almacenar la tabla copiada. Los conjuntos de datos de origen y de destino deben estar en la misma ubicación.
- En Nombre de tabla, ingresa un nombre para la tabla nueva. El nombre debe ser único en el conjunto de datos de destino. No puedes reemplazar una tabla existente en el conjunto de datos de destino mediante la consola. Para obtener más información sobre los requisitos de los nombres de tablas, consulta Nombres de las tablas.
Haz clic en Copiar para iniciar el trabajo de copia.
SQL
Usa la sentencia CREATE TABLE COPY
para copiar una tabla llamada table1
en una tabla nueva llamada table1copy
:
En la consola, ve a la página BigQuery.
En el editor de consultas, ingresa la siguiente sentencia:
CREATE TABLE
myproject.mydataset.table1copy
COPYmyproject.mydataset.table1
;Haz clic en
Ejecutar.
Si deseas obtener más información sobre cómo ejecutar consultas, visita Ejecuta consultas interactivas.
bq
Ejecuta el comando bq cp
. Se pueden usar marcas opcionales a fin de controlar la disposición de escritura de la tabla de destino:
-a
o--append_table
anexan los datos de la tabla de origen a una tabla existente en el conjunto de datos de destino.-f
o--force
reemplazan una tabla existente en el conjunto de datos de destino sin solicitar confirmación.-n
o--no_clobber
muestran el siguiente mensaje de error si la tabla ya existe en el conjunto de datos de destino:Table 'project_id:dataset.table' already exists, skipping.
Si no se especifica-n
, el comportamiento predeterminado es solicitarte confirmación para reemplazar la tabla de destino.--destination_kms_key
es la clave de Cloud KMS administrada por el cliente que se usa para encriptar la tabla de destino.
--destination_kms_key
no se muestra aquí. Consulta la página sobre protección de datos con claves de Cloud Key Management Service para obtener más información.
Si el conjunto de datos de origen o de destino se encuentra en un proyecto que no es el predeterminado, debes agregar el ID del proyecto a los nombres de los conjuntos de datos con el siguiente formato: project_id:dataset
.
Opcional: Proporciona la marca --location
y configura el valor en tu ubicación.
bq --location=location cp \ -a -f -n \project_id:dataset.source_table
\project_id:dataset.destination_table
Reemplaza lo siguiente:
location
: El nombre de tu ubicación. La marca--location
es opcional. Por ejemplo, si usas BigQuery en la región de Tokio, puedes establecer el valor de la marca enasia-northeast1
. Puedes establecer un valor predeterminado para la ubicación con el archivo.bigqueryrc
.project_id
: Es el ID de tu proyectodataset
: Es el nombre del conjunto de datos de origen o de destino.source_table
: Es la tabla que estás copiando.destination_table
: Es el nombre de la tabla en el conjunto de datos de destino.
Ejemplos:
Para copiar la tabla mydataset.mytable
en la tabla mydataset2.mytable2
, ingresa el siguiente comando. Ambos conjuntos de datos se encuentran en tu proyecto predeterminado.
bq cp mydataset.mytable mydataset2.mytable2
Para copiar la tabla mydataset.mytable
y reemplazar una tabla de destino con el mismo nombre, ingresa el siguiente comando. El conjunto de datos fuente se encuentra en tu proyecto predeterminado. El conjunto de datos de destino se encuentra en el proyecto myotherproject
. Se usa el acceso directo -f
para reemplazar la tabla de destino sin confirmación.
bq cp -f \
mydataset.mytable \
myotherproject:myotherdataset.mytable
Para copiar la tabla mydataset.mytable
y mostrar un error si el conjunto de datos de destino contiene una tabla con el mismo nombre, ingresa el siguiente comando.
El conjunto de datos fuente se encuentra en tu proyecto predeterminado. El conjunto de datos de destino se encuentra en el proyecto myotherproject
. Se usa el acceso directo -n
para evitar reemplazar una tabla con el mismo nombre.
bq cp -n \
mydataset.mytable \
myotherproject:myotherdataset.mytable
Para copiar la tabla mydataset.mytable
y adjuntar los datos a una tabla de destino con el mismo nombre, ingresa el siguiente comando. El conjunto de datos fuente se encuentra en tu proyecto predeterminado. El conjunto de datos de destino se encuentra en el proyecto myotherproject
. Se usa el acceso directo -
a
para anexar los datos a la tabla de destino.
bq cp -a mydataset.mytable myotherproject:myotherdataset.mytable
API
Puedes copiar una tabla existente mediante la API si llamas al método bigquery.jobs.insert
y configuras un trabajo copy
. Especifica tu ubicación en la propiedad location
en la sección jobReference
del recurso de trabajo.
Debes especificar los valores siguientes en tu configuración de 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 },
Aquí, sourceTable
proporciona información sobre la tabla que se copiará, destinationTable
proporciona información sobre la tabla nueva, createDisposition
especifica si se debe crear la tabla en caso de que no exista y writeDisposition
especifica si se debe reemplazar una tabla existente o anexar a ella.
C#
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. Si deseas obtener más información, consulta la documentación de referencia de la API de C# de BigQuery.
Go
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. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de BigQuery.
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.
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 Node.js de BigQuery.
PHP
Antes de probar este ejemplo, sigue las instrucciones de configuración para PHP que se encuentran en la Guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de PHP de BigQuery.
Python
Antes de probar esta muestra, 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. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de BigQuery.
Copia varias tablas de origen
Puedes copiar varias tablas de origen en una tabla de destino de las maneras siguientes:
- Usa el comando
bq
de la herramienta de línea de comandosbq cp
- Mediante una llamada al método
jobs.insert
, la configuración de un trabajocopy
y la especificación de la propiedadsourceTables
. - Usa bibliotecas cliente.
Todas las tablas de origen deben tener esquemas idénticos y solo se permite una tabla de destino.
Las tablas fuente deben especificarse en una lista separada por comas. No puedes usar comodines cuando copias múltiples tablas fuente.
Para copiar múltiples tablas de origen, selecciona una de las siguientes opciones:
bq
Ejecuta el comando bq cp
con varias tablas de origen en una lista separada por comas. Se pueden usar marcas opcionales a fin de controlar la disposición de escritura de la tabla de destino:
-a
o--append_table
anexan los datos de las tablas de origen a una tabla existente en el conjunto de datos de destino.-f
o--force
reemplazan una tabla de destino existente en el conjunto de datos de destino y no te solicitan confirmación.-n
o--no_clobber
muestran el siguiente mensaje de error si la tabla ya existe en el conjunto de datos de destino:Table 'project_id:dataset.table' already exists, skipping.
Si no se especifica-n
, el comportamiento predeterminado es solicitarte confirmación para reemplazar la tabla de destino.--destination_kms_key
es la clave Cloud Key Management Service administrada por el cliente que se usa para encriptar la tabla de destino.
--destination_kms_key
no se muestra aquí. Consulta la página sobre protección de datos con claves de Cloud Key Management Service para obtener más información.
Si el conjunto de datos de origen o de destino se encuentra en un proyecto que no es el predeterminado, debes agregar el ID del proyecto a los nombres de los conjuntos de datos con el siguiente formato: project_id:dataset
.
Opcional: Proporciona la marca --location
y configura el valor en tu ubicación.
bq --location=location cp \ -a -f -n \project_id:dataset.source_table
,project_id:dataset.source_table
\project_id:dataset.destination_table
Reemplaza lo siguiente:
location
: El nombre de tu ubicación. La marca--location
es opcional. Por ejemplo, si usas BigQuery en la región de Tokio, puedes establecer el valor de la marca enasia-northeast1
. Puedes establecer un valor predeterminado para la ubicación con el archivo.bigqueryrc
.project_id
: Es el ID de tu proyectodataset
: Es el nombre del conjunto de datos de origen o de destino.source_table
: es la tabla que copiarás.destination_table
: Es el nombre de la tabla en el conjunto de datos de destino.
Ejemplos:
Para copiar la tabla mydataset.mytable
y la tabla mydataset.mytable2
en la tabla mydataset2.tablecopy
, ingresa el siguiente comando . Todos los conjuntos de datos se encuentran en tu proyecto predeterminado.
bq cp \
mydataset.mytable,mydataset.mytable2 \
mydataset2.tablecopy
Para copiar la tabla mydataset.mytable
y la tabla mydataset.mytable2
en la tabla myotherdataset.mytable
y reemplazar una tabla de destino con el mismo nombre, ingresa el siguiente comando. El conjunto de datos de destino se encuentra en el proyecto myotherproject
, no en el proyecto predeterminado. Se usa el acceso directo -f
para reemplazar la tabla de destino sin confirmación.
bq cp -f \
mydataset.mytable,mydataset.mytable2 \
myotherproject:myotherdataset.mytable
Para copiar la tabla myproject:mydataset.mytable
y la tabla myproject:mydataset.mytable2
y mostrar un error si el conjunto de datos de destino contiene una tabla con el mismo nombre, ingresa el siguiente comando. El conjunto de datos de destino se encuentra en el proyecto myotherproject
. Se usa el acceso directo -n
para evitar reemplazar una tabla con el mismo nombre.
bq cp -n \
myproject:mydataset.mytable,myproject:mydataset.mytable2 \
myotherproject:myotherdataset.mytable
Para copiar la tabla mydataset.mytable
y la tabla mydataset.mytable2
y anexar los datos a una tabla de destino con el mismo nombre, ingresa el siguiente comando.
El conjunto de datos fuente se encuentra en tu proyecto predeterminado. El conjunto de datos de destino se encuentra en el proyecto myotherproject
. Se usa el acceso directo -a
para anexar los datos a la tabla de destino.
bq cp -a \
mydataset.mytable,mydataset.mytable2 \
myotherproject:myotherdataset.mytable
API
Para copiar varias tablas con la API, llama al método jobs.insert
, configura un trabajo copy
de tabla y especifica la propiedad sourceTables
.
Especifica tu región en la propiedad location
en la sección jobReference
del recurso de trabajo.
Go
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. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de BigQuery.
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.
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 Node.js de BigQuery.
Python
Antes de probar esta muestra, 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. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de BigQuery.
Borra las tablas
Puedes borrar una tabla de las maneras siguientes:
- Usa la consola.
- Usa una declaración
DROP TABLE
del lenguaje de definición de datos (DDL) - Usa el comando
bq rm
de la herramienta de línea de comandos debq
. - Mediante una llamada al método de la API
tables.delete
. - Usa bibliotecas cliente.
Por ahora, solo puedes borrar una tabla a la vez.
Cuando borras una tabla, también se borra cualquier dato en ella. Para borrar las tablas de forma automática después de un tiempo determinado, debes establecer el vencimiento predeterminado de la tabla para el conjunto de datos o configurar la fecha de vencimiento cuando creas la tabla.
Permisos necesarios
Para borrar una tabla, necesitas los siguientes permisos de IAM:
bigquery.tables.delete
bigquery.tables.get
Cada una de las siguientes funciones predefinidas de IAM incluye los permisos que necesitas para borrar una tabla:
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
Además, si tienes el permiso bigquery.datasets.create
, puedes borrar tablas de los conjuntos de datos que crees.
Para obtener más información sobre las funciones y los permisos de IAM en BigQuery, consulta Funciones y permisos predefinidos.
Borra una tabla
Para borrar una tabla, haz lo siguiente:
Console
En el panel Explorador, expande el proyecto y conjunto de datos y, luego, selecciona la tabla.
En el panel de detalles*, haz clic en Borrar tabla.
Escribe
"delete"
en el diálogo y haz clic en Borrar para confirmar.
SQL
Usa la sentencia DROP TABLE
.
En el siguiente ejemplo, se borra una tabla llamada mytable
:
En la consola, ve a la página BigQuery.
En el editor de consultas, ingresa la siguiente sentencia:
DROP TABLE mydataset.mytable;
Haz clic en
Ejecutar.
Si deseas obtener más información sobre cómo ejecutar consultas, visita Ejecuta consultas interactivas.
bq
Usa el comando bq rm
con la marca --table
(o el acceso directo -t
) para borrar una tabla. Cuando usas la herramienta de línea de comandos de bq
para quitar una tabla, debes confirmar la acción. Puedes usar la marca --force
(o el acceso directo -f
) para que no se solicite confirmación.
Si la tabla se encuentra en un conjunto de datos en un proyecto que no es el predeterminado, debes agregar el ID del proyecto al nombre del conjunto de datos con el formato siguiente: project_id:dataset
.
bq rm \ -f \ -t \ project_id:dataset.table
Reemplaza lo siguiente:
project_id
: Es el ID de tu proyectodataset
: Es el nombre del conjunto de datos que contiene la tabla.table
: Es el nombre de la tabla que borrarás
Ejemplos:
Para borrar la tabla mytable
del conjunto de datos mydataset
, ingresa el siguiente comando.
El conjunto de datos mydataset
se encuentra en tu proyecto predeterminado.
bq rm -t mydataset.mytable
Para borrar la tabla mytable
del conjunto de datos mydataset
, ingresa el siguiente comando.
El conjunto de datos mydataset
está en el proyecto myotherproject
, no en tu proyecto predeterminado.
bq rm -t myotherproject:mydataset.mytable
Para borrar la tabla mytable
del conjunto de datos mydataset
, ingresa el siguiente comando.
El conjunto de datos mydataset
se encuentra en tu proyecto predeterminado. El comando usa el acceso directo -f
para omitir la confirmación.
bq rm -f -t mydataset.mytable
API
Llama al método de API tables.delete
y especifica la tabla que deseas borrar con el parámetro tableId
.
C#
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. Si deseas obtener más información, consulta la documentación de referencia de la API de C# de BigQuery.
Go
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. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de BigQuery.
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.
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 Node.js de BigQuery.
PHP
Antes de probar este ejemplo, sigue las instrucciones de configuración para PHP que se encuentran en la Guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de PHP de BigQuery.
Python
Antes de probar esta muestra, 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. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de BigQuery.
Ruby
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. A fin de obtener más información, consulta la documentación de referencia de la API de BigQuery para Ruby.
Restablece tablas borradas
Puedes recuperar una tabla dentro del período de viaje en el tiempo especificado para el conjunto de datos, que incluye las eliminaciones explícitas y las implícitas debidas al vencimiento de la tabla. La capacidad de configurar el período de viaje en el tiempo se encuentra en vista previa.
El período de viaje en el tiempo puede tener una duración de dos a siete días. Una vez transcurrido el período de viaje en el tiempo, no es posible recuperar una tabla mediante ningún método, incluida la apertura de un ticket de asistencia.
Cuando restablezcas una tabla particionada que se borró porque venció, debes volver a crear las particiones de forma manual.
Puedes restablecer una tabla que se haya borrado, pero que aún se encuentre dentro del período. Para ello, copia la tabla en una tabla nueva con el decorador de tiempo @<time>
.
Para copiar la tabla, puedes usar la herramienta de línea de comandos de bq
o las bibliotecas cliente:
Console
No puedes recuperar una tabla mediante la consola.
bq
Para restablecer una tabla, usa una operación de copia de tabla con el decorador de instantáneas @<time>
. Primero, determina una marca de tiempo UNIX de cuando existió la tabla (en milisegundos). Luego, usa el comando bq copy
con el decorador de instantáneas.
Por ejemplo, ingresa el siguiente comando para copiar la tabla mydataset.mytable
en el momento 1418864998000
en una nueva tabla mydataset.newtable
.
bq cp mydataset.mytable@1418864998000 mydataset.newtable
Opcional: Proporciona la marca --location
y configura el valor en tu ubicación.
También puedes especificar un desplazamiento relativo. En el siguiente ejemplo, se copia la versión de una tabla de hace una hora atrás:
bq cp mydataset.mytable@-3600000 mydataset.newtable
Para obtener más información, consulta Cómo restablecer una tabla a partir de un momento determinado.
Go
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.
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 Node.js de BigQuery.
Python
Antes de probar esta muestra, 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. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de BigQuery.
Si prevés que quieres restablecer una tabla más tarde de lo que permite el período de viaje en el tiempo, crea una instantánea de la tabla. Para obtener más información, consulta Instantáneas de tabla.
Seguridad de las tablas
Para controlar el acceso a las tablas en BigQuery, consulta Introducción a los controles de acceso a tablas.
¿Qué sigue?
- Si deseas obtener más información sobre cómo crear y usar tablas, consulta Crea y usa tablas.
- Para obtener más información sobre cómo manejar datos, consulta cómo trabajar con datos de tablas.
- Si quieres obtener más información acerca de cómo especificar esquemas de tablas, consulta Especifica un esquema.
- Para obtener más información sobre cómo modificar los esquemas de las tablas, consulta Modifica esquemas de tablas.
- Para obtener más información sobre conjuntos de datos, consulta Introducción a los conjuntos de datos.
- Para obtener más información sobre las vistas, consulta Introducción a las vistas.