Acceder al historial de datos
BigQuery te permite consultar y restaurar datos almacenados en BigQuery que se hayan modificado o eliminado en tu ventana de viaje en el tiempo.
Consultar datos en un momento concreto
Puedes consultar los datos históricos de una tabla desde cualquier momento del periodo de viaje en el tiempo mediante una cláusula FOR SYSTEM_TIME AS OF. Esta cláusula toma una expresión de marca de tiempo constante y hace referencia a la versión de la tabla que estaba vigente en esa marca de tiempo. La tabla debe estar almacenada en BigQuery. No puede ser una tabla externa. No hay límite en el tamaño de las tablas cuando se usa SYSTEM_TIME AS OF.
Por ejemplo, la siguiente consulta devuelve una versión histórica de la tabla de hace una hora:
SELECT *
FROM `mydataset.mytable`
FOR SYSTEM_TIME AS OF TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR);
Si la marca de tiempo especifica una hora anterior al periodo de viaje en el tiempo o a la creación de la tabla, la consulta fallará y devolverá un error como el siguiente:
Invalid snapshot time 1601168925462 for table myproject:mydataset.table1@1601168925462. Cannot read before 1601573410026.
Después de sustituir una tabla con la declaración CREATE OR REPLACE TABLE, puedes usar FOR SYSTEM_TIME AS OF para consultar la versión anterior de la tabla.
Si se ha eliminado la tabla, la consulta fallará y devolverá un error como el siguiente:
Not found: Table myproject:mydataset.table was not found in location LOCATION
Restaurar una tabla a partir de un momento dado
Puedes restaurar una tabla a partir de datos históricos copiando los datos históricos en una tabla nueva. La copia de datos históricos funciona aunque la tabla se haya eliminado o haya caducado, siempre que la restaure durante el periodo de la ventana de viaje en el tiempo.
Cuando restauras una tabla a partir de datos históricos, las etiquetas de la tabla de origen no se copian en la tabla de destino. La información de partición de la tabla tampoco se copia en la tabla de destino. Para recrear el esquema de partición de la tabla original, puedes ver la solicitud de creación de la tabla inicial en Cloud Logging y usar esa información para crear particiones en la tabla restaurada.
Puedes restaurar una tabla que se haya eliminado, pero que aún esté dentro del periodo de la función de viaje en el tiempo, copiándola en una tabla nueva con el decorador de tiempo @<time>.
No puedes consultar una tabla eliminada, aunque uses un decorador de tiempo. Primero debes restaurarlo.
Usa la siguiente sintaxis con el decorador de tiempo @<time>:
tableid@TIME, dondeTIMEes el número de milisegundos transcurridos desde el inicio del registro de tiempo Unix.tableid@-TIME_OFFSET, dondeTIME_OFFSETes el desplazamiento relativo desde la hora actual, en milisegundos.tableid@0: especifica los datos históricos más antiguos disponibles.
Para restaurar una tabla, selecciona una de las siguientes opciones:
Consola
No puedes restaurar una tabla eliminada con la Google Cloud consola.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Para restaurar una tabla, primero debes determinar la marca de tiempo UNIX de cuándo existía la tabla (en milisegundos). Puedes usar el comando
datede Linux para generar la marca de tiempo de Unix a partir de un valor de marca de tiempo normal:date -d '2023-08-04 16:00:34.456789Z' +%s000
A continuación, usa el comando
bq copycon el decorador de viaje en el tiempo@<time>para copiar la tabla.Por ejemplo, introduce el siguiente comando para copiar la tabla
mydataset.mytableen el momento1418864998000en una tabla nuevamydataset.newtable.bq cp mydataset.mytable@1418864998000 mydataset.newtable
(Opcional) Proporcione la marca
--locationy asigne el valor a su ubicación.También puedes especificar una variación relativa. En el siguiente ejemplo se copia la versión de una tabla de hace una hora:
.bq cp mydataset.mytable@-3600000 mydataset.newtable
Go
Antes de probar este ejemplo, sigue las Goinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Node.js
Antes de probar este ejemplo, sigue las Node.jsinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Si prevé que puede que quiera restaurar una tabla más adelante de lo que permite el periodo de viaje en el tiempo, cree una instantánea de la tabla. Para obtener más información, consulta el artículo Introducción a las capturas de tablas.
No puedes restaurar una vista lógica directamente. Para obtener más información, consulta Restaurar una vista.
Siguientes pasos
- Más información sobre las capturas de tablas
- Más información sobre la conservación de datos con la función de viaje en el tiempo y el sistema de seguridad
- Consulta más información sobre cómo gestionar tablas.