Retención de datos con viaje en el tiempo y seguridad ante fallas
En este documento se describe la retención de datos viajes en el tiempo y segura para fallas de las ventanas de conjuntos de datos. Durante los períodos de viaje en el tiempo y seguridad ante fallas, los datos que cambiaste o borraste en cualquier tabla del conjunto de datos se siguen almacenando en caso de que necesites recuperarlos.
Viaje en el tiempo y retención de datos
Puedes acceder a los datos modificados o borrados desde cualquier punto dentro del período de viaje en el tiempo, que abarca los últimos siete días de forma predeterminada. El viaje en el tiempo te permite consultar datos actualizados o borrados y restablecer una tabla o un conjunto de datos que se borró o una tabla que venció.
Puedes configurar la duración del período de viaje en el tiempo, desde un mínimo de dos días hasta un máximo de siete días. Un período de viaje en el tiempo más largo es útil en los casos en los que es importante poder recuperar datos actualizados o borrados. Un período de viaje en el tiempo más corto te permite ahorrar en costos de almacenamiento cuando usas el modelo de facturación de almacenamiento físico. Estos ahorros no se aplican cuando se usa el modelo de facturación de almacenamiento lógico. Para obtener más información sobre cómo el modelo de facturación de almacenamiento afecta el costo, consulta Facturación.
Configura el período de viaje en el tiempo
Puedes establecer el período de viaje en el tiempo a nivel del conjunto de datos o del proyecto. Luego, esta configuración se aplica a todas las tablas asociadas con el conjunto de datos o el proyecto.
Cómo establecer el período de viaje en el tiempo a nivel del proyecto
Para especificar el período de viaje en el tiempo predeterminado a nivel del proyecto, puedes usar instrucciones del lenguaje de definición de datos (DDL). Para obtener información sobre cómo establecer el período de viaje en el tiempo a nivel del proyecto, consulta Administra la configuración.
Cómo establecer el período de viaje en el tiempo a nivel del conjunto de datos
Para especificar o modificar el período de tiempo de un conjunto de datos, puedes usar la consola deTrusted Cloud , la herramienta de línea de comandos de bq o la API de BigQuery.
- Para especificar el período de viaje predeterminado para los conjuntos de datos nuevos, consulta Crea conjuntos de datos.
- Para modificar o actualizar el período de viaje en el tiempo de un conjunto de datos existente, consulta Actualiza los períodos de viaje en el tiempo.
Cuando se modifica un período de viaje en el tiempo, si la marca de tiempo especifica un período fuera del período de viaje en el tiempo o anterior a la creación de la tabla, la consulta falla y muestra un error como el siguiente:
TableID
was created at time which is before its allowed time travel intervaltimestamp
. Creation time:timestamp
Cómo funciona la función de Acceder a datos históricos
BigQuery usa un formato de almacenamiento en columnas. Esto significa que los datos se organizan y almacenan por columna en lugar de por fila. Cuando tienes una tabla con varias columnas, los valores de cada columna en todas las filas se almacenan juntos en bloques de almacenamiento.
Cuando modificas una celda en una tabla de BigQuery, cambias un valor específico dentro de una fila y una columna determinadas. Dado que BigQuery almacena las columnas juntas, modificar incluso una sola celda dentro de una columna suele requerir leer todo el bloque de almacenamiento que contiene los datos de esa columna para las filas afectadas, aplicar el cambio y, luego, escribir una nueva versión de ese bloque de almacenamiento.
La función de viaje en el tiempo funciona haciendo un seguimiento de las versiones de los bloques de almacenamiento que componen tu tabla. Cuando actualizas datos, BigQuery no solo modifica el bloque de almacenamiento existente. En su lugar, crea una nueva versión de los bloques de almacenamiento afectados con los datos actualizados. Luego, se retiene la versión anterior para fines de viajes en el tiempo.
BigQuery usa tamaños de archivo y bloques de almacenamiento adaptativos. El tamaño de los bloques de almacenamiento no es fijo, sino que puede variar según factores como el tamaño de la tabla y su distribución de datos. Si cambias incluso una celda en un bloque de almacenamiento, se modifican los datos de esa columna, lo que podría afectar a muchas filas. Por lo tanto, la unidad de datos que se versiona y se envía al viaje en el tiempo suele ser el bloque de almacenamiento completo que contiene los datos modificados de esa columna, no solo una sola celda.
Por este motivo, cambiar una celda puede hacer que se envíen más datos a Viaje en el tiempo que solo el tamaño del cambio.
Cómo el período de viaje en el tiempo afecta la recuperación de la tabla y el conjunto de datos
Una tabla o un conjunto de datos borrados usa la duración del período de viaje en el tiempo que estaba vigente en el momento de la eliminación.
Por ejemplo, si tienes una duración de período de dos días y, luego, aumenta la duración a siete días, las tablas borradas antes de ese cambio solo se podrán recuperar durante dos días. Del mismo modo, si tienes una duración de período de cinco días y reduces esa duración a tres días, cualquier tabla que se haya borrado antes del cambio se podrá recuperar durante cinco días.
Debido a que los períodos de viaje en el tiempo se establecen a nivel del conjunto de datos, no puedes cambiar el período de viaje en el tiempo de un conjunto de datos borrado hasta que se recupere.
Si reduces la duración del período de viaje en el tiempo, borra una tabla y, luego, te das cuenta de que necesitas un período más largo de capacidad de recuperación de esos datos, puedes crear una instantánea de la tabla desde un momento anterior a la eliminación de tablas. Debes hacerlo mientras la tabla borrada aún se puede recuperar. Para obtener más información, consulta Crea una instantánea de tabla mediante viajes en el tiempo.
Viaje en el tiempo y acceso a nivel de fila
Si una tabla tiene o tuvo políticas de acceso a nivel de fila, solo un administrador de tabla puede acceder a los datos históricos de la tabla.
Se necesita el siguiente permiso de Identity and Access Management (IAM):
Permiso | Recurso |
---|---|
bigquery.rowAccessPolicies.overrideTimeTravelRestrictions
|
La tabla a cuyos datos históricos se accede |
El siguiente rol de BigQuery proporciona el permiso necesario:
Función | Recurso |
---|---|
roles/bigquery.admin
|
La tabla a cuyos datos históricos se accede |
El permiso bigquery.rowAccessPolicies.overrideTimeTravelRestrictions
no se puede agregar a un rol personalizado.
Ejecuta el siguiente comando para obtener el tiempo Unix equivalente:
date -d '2023-08-04 16:00:34.456789Z' +%s000
Reemplaza el tiempo Unix
1691164834000
que se recibió del comando anterior en la herramienta de línea de comandos de bq. Ejecuta el siguiente comando para restablecer una copia de la tabla borradadeletedTableID
en otra tablarestoredTable
, dentro del mismo conjunto de datosmyDatasetID
:bq cp myProjectID:myDatasetID.deletedTableID@1691164834000 myProjectID:myDatasetID.restoredTable
Seguridad ante fallas
BigQuery proporciona un período de seguridad ante fallas. Durante el período de seguridad ante fallas, los datos borrados se conservan automáticamente durante siete días más después del período de viaje en el tiempo, de modo que estén disponibles para la recuperación de emergencia. Los datos se pueden recuperar a nivel de la tabla. Los datos de una tabla se recuperan desde el momento representado por la marca de tiempo de cuándo se borró esa tabla. El período de seguridad ante fallas no se puede configurar.
No puedes consultar ni recuperar directamente los datos en el almacenamiento de seguridad ante fallas. Para recuperar datos del almacenamiento de seguridad ante fallas, comunícate con Atención al cliente de Cloud.
Facturación
Si configuras tu modelo de facturación de almacenamiento para usar bytes físicos, se te facturarán por separado los bytes usados para el almacenamiento de seguridad ante fallas y viaje en el tiempo. El almacenamiento de viaje en el tiempo y de seguridad ante fallas se cobran según la tarifa de almacenamiento físico activo. Puedes configurar la ventana de viaje en el tiempo para balancear los costos de almacenamiento con tus necesidades de retención de datos.
Si configuras tu modelo de facturación de almacenamiento para usar bytes lógicos, los costos totales de almacenamiento de seguridad ante fallas y viaje en el tiempo se incluyen en la tarifa base que se te cobra.
En la siguiente tabla, se muestra una comparación de los costos de almacenamiento físico y lógico:
Modelo de facturación | ¿Qué es lo que pagas? |
---|---|
Almacenamiento físico (comprimido) |
|
Almacenamiento lógico (sin comprimir) (configuración predeterminada) |
|
Si usas almacenamiento físico, puedes ver los bytes que se usaron en el viaje en el tiempo y la seguridad ante fallas; para ello, consulta las columnas TIME_TRAVEL_PHYSICAL_BYTES
y
FAIL_SAFE_PHYSICAL_BYTES
en las vistas
TABLE_STORAGE
y
TABLE_STORAGE_BY_ORGANIZATION
. Si deseas ver un ejemplo de cómo usar una de estas vistas para calcular los costos,
consulta
Predice la facturación de almacenamiento.
Los costos de almacenamiento se aplican a los datos de viaje en el tiempo y seguros para fallas, pero solo se te facturará si las tarifas de almacenamiento de datos no se aplican en otro lugar de BigQuery. Se aplican los siguientes detalles:
- Cuando se crea una tabla, no hay costos de almacenamiento de viaje en el tiempo ni de seguridad ante fallas.
- Si se cambian o borran datos, se te cobrará por el almacenamiento de los datos modificados o borrados que se guardaron con el viaje en el tiempo durante el período de viaje en el tiempo y el período de seguridad ante fallas. Esto es similar a los precios de almacenamiento de las instantáneas y clonaciones de tablas.
Ejemplo de retención de datos
En la siguiente tabla, se muestra cómo se mueven los datos borrados o modificados entre los períodos de retención de almacenamiento. En este ejemplo, se muestra una situación en la que el almacenamiento activo total es de 200 GiB y se borran 50 GiB con un período de viaje en el tiempo de siete días:
Día 0 | Día 1 | Día 2 | Día 3 | Día 4 | Día 5 | Día 6 | Día 7 | Día 8 | Día 9 | Día 10 | Día 11 | Día 12 | Día 13 | Day 14 | Día 15 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Almacenamiento activo | 200 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 | 150 |
Almacenamiento de viaje en el tiempo | 50 | 50 | 50 | 50 | 50 | 50 | 50 | |||||||||
Almacenamiento de seguridad ante fallas | 50 | 50 | 50 | 50 | 50 | 50 | 50 |
Borrar datos del almacenamiento físico a largo plazo funciona de la misma manera.
Limitaciones
La recuperación de datos con el viaje en el tiempo está sujeta a las siguientes limitaciones:
- La función retroactiva solo proporciona acceso a los datos históricos durante el período de viaje. Para conservar los datos de la tabla para fines que no sean de emergencia durante más tiempo que el período de viaje en el tiempo, usa las instantáneas de tabla.
- Si una tabla tiene o tuvo políticas de acceso a nivel de fila, solo los administradores de la tabla pueden usar el viaje en el tiempo. Para obtener más información, consulta Viaje en el tiempo y acceso a nivel de fila.
- El viaje en el tiempo no restablece los metadatos de la tabla.
- La función de viaje en el tiempo no es compatible con los siguientes tipos de tablas:
- Tablas externas
- Tablas de resultados de consultas almacenadas en caché temporales
- Tablas de sesión temporales
- Tablas de varias instrucciones temporales
- Tablas que se muestran en los conjuntos de datos externos.
¿Qué sigue?
- Aprende a consultar y recuperar datos de viajes en el tiempo.
- Obtén más información sobre las instantáneas de tablas.