Accede a los datos históricos
BigQuery te permite consultar y restablecer los datos almacenados en BigQuery que se modificaron o borraron dentro de tu ventana de viaje en el tiempo.
Consulta datos de momentos determinados
Puedes consultar los datos históricos de una tabla desde cualquier momento dentro del período de viaje con una cláusula FOR SYSTEM_TIME AS OF. Esta cláusula usa una expresión de marca de tiempo constante y hace referencia a la versión de la tabla que era la más reciente en esa marca de tiempo. La tabla debe estar almacenada en BigQuery, no puede ser una tabla externa. No existe un límite para el tamaño de la tabla cuando se usa SYSTEM_TIME AS OF.
Por ejemplo, la siguiente consulta muestra una versión histórica de la tabla de una hora antes:
SELECT *
FROM `mydataset.mytable`
FOR SYSTEM_TIME AS OF TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR);
Si la marca de tiempo especifica un período anterior al período de viaje o antes de que se cree la tabla, la consulta fallará y mostrará un error como el siguiente:
Invalid snapshot time 1601168925462 for table myproject:mydataset.table1@1601168925462. Cannot read before 1601573410026.
Después de reemplazar una tabla existente con la sentencia CREATE OR REPLACE TABLE, puedes usar FOR SYSTEM_TIME AS OF para consultar la versión anterior de la tabla.
Si se borró la tabla, falla la consulta y muestra un error como el siguiente:
Not found: Table myproject:mydataset.table was not found in location LOCATION
Restablece la versión de una tabla de un momento determinado
Para restablecer una tabla desde los datos históricos, puedes copiar los datos históricos en una tabla nueva. La copia de datos históricos funciona incluso si la tabla se borró o caducó, siempre que restablezcas la tabla dentro de la duración del período de viaje en el tiempo.
Cuando restableces 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 volver a crear 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 particionar la tabla restaurada.
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>.
No puedes consultar una tabla borrada, incluso si usas un decorador de tiempo. Primero debes restablecerlo.
Usa la siguiente sintaxis con el decorador de tiempo @<time>:
tableid@TIMEen el queTIMEes la cantidad de milisegundos transcurridos desde la época UNIX.tableid@-TIME_OFFSETen el queTIME_OFFSETes la compensación relativa desde la hora actual, en milisegundos.tableid@0: Especifica los datos históricos más antiguos disponibles.
Para restablecer una tabla, elige una de las siguientes opciones:
Console
No puedes recuperar una tabla 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 restablecer una tabla, primero determina una marca de tiempo UNIX de cuando existió 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
Luego, usa el comando
bq copycon el decorador de viajes en el tiempo@<time>para realizar la operación de copia de tabla.Por ejemplo, ingresa el siguiente comando para copiar la tabla
mydataset.mytableen el momento1418864998000en una nueva tablamydataset.newtable.bq cp mydataset.mytable@1418864998000 mydataset.newtable
Opcional: Proporciona la marca
--locationy 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
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. 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.
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.
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.
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.
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 Introducción a las instantáneas de tablas.
No puedes restablecer una vista lógica directamente. Para obtener más información, consulta Cómo restablecer una vista.
¿Qué sigue?
- Obtén más información sobre las instantáneas de tablas.
- Obtén más información sobre la retención de datos con viaje en el tiempo y seguridad ante fallas.
- Obtén más información para administrar tablas.