IBM Cloud Docs
Creación y modificación de objetos para viajes en el tiempo

Creación y modificación de objetos para viajes en el tiempo

Visión general

Para ejecutar consultas de viaje en el tiempo en NPSaaS, cree una tabla, esquema o base de datos de viaje en el tiempo (objetos de viaje en el tiempo) estableciendo DATA_VERSION_RETENTION_TIME (intervalo de tiempo de retención) en un valor distinto de cero. Para establecer DATA_VERSION_RETENTION_TIME, utilice el mandato CREATE o ALTER para estos tipos de objeto o utilice la consola web. Puede seleccionar entre 1 día y hasta 99 días, o cero para alterar un objeto temporal a no temporal.

Antes de establecer los intervalos de tiempo de retención para todas las tablas de un esquema o base de datos, tenga en cuenta el coste de almacenamiento para las tablas temporales, que podría ser significativo. Consulte Gestión del uso del espacio de viaje en el tiempo.

Además, puede establecer un valor predeterminado de DATA_VERSION_RETENTION_TIME para el sistema.

Las tablas temporales suelen tener filas actuales y filas históricas. Las filas actuales no están marcadas para su supresión. Las filas históricas se marcan para su supresión (mediante las sentencias DELETE, UPDATE, MERGE o TRUNCATE ) y son visibles para las consultas de viaje en el tiempo hasta el intervalo de tiempo de retención especificado después de sus indicaciones de fecha y hora de supresión.

Una tabla con un valor de DATA_VERSION_RETENTION_TIME de cero no es temporal. Sólo sus filas actuales (no suprimidas) son visibles para las consultas. Algunas filas históricas se pueden conservar con fines de copia de seguridad incremental, pero las filas no son accesibles para las consultas de viaje en el tiempo.

Si modifica DATA_VERSION_RETENTION_TIME de una tabla temporal existente a cero, la tabla se convierte en una tabla no temporal. Ya no da soporte al acceso a datos históricos con consultas de viaje en el tiempo.

Limitaciones

Los cambios en los intervalos de tiempo de retención para tablas, esquemas y bases de datos no se replican desde los nodos primarios a los nodos de réplica. Tampoco son filas de tabla históricas (suprimidas).

Los intervalos de tiempo de retención de tablas, esquemas y bases de datos se copian automáticamente mediante el mandato nzbackup y se restauran mediante el mandato nzrestore. Las indicaciones de fecha y hora de inserción y supresión de las filas de tabla no se copian ni se restauran. Las filas restauradas obtienen nuevas indicaciones de fecha y hora de inserción en la base de datos o sistema de destino, y las filas suprimidas por la restauración incremental obtienen nuevas indicaciones de fecha y hora de supresión en la base de datos o sistema de destino. No hay ninguna expectativa o garantía de que el número de versiones históricas de una fila en el destino coincidirá con el de la base de datos de origen. Por ejemplo, una fila específica puede actualizarse varias veces, o actualizarse y luego suprimirse, entre incrementos de copia de seguridad en el origen. Estas acciones dan como resultado una única supresión de esa fila en el destino.

Si intenta expandir el sistema NPSaaS con alojamientos SPU adicionales, el procedimiento da como resultado la pérdida de filas históricas (suprimidas). Todas las filas actuales se redistribuyen con indicaciones de fecha y hora de inserción nuevas.

Los siguientes tipos de tablas no pueden ser tablas temporales:

  • Tablas temporales
  • Tablas externas
  • Tablas con versión que se han modificado añadiendo y/o descartando columnas
  • Tablas de filas seguras.

Esta limitación afecta a los mandatos siguientes:

El mandato GROOM TABLE VERSIONS convierte una tabla con versión en no versionada. Cuando esto sucede, puede especificar un DATA_VERSION_RETENTION_TIME distinto de cero con el mandato ALTER TABLE.

Excepciones relacionadas con DATA_VERSION_RETENTION_TIME para watsonx.data

Existen excepciones para watsonx.data relacionadas con DATA_VERSION_RETENTION_TIME. La tabla siguiente describe el comportamiento de la propiedad DATA_VERSION_RETENTION_TIME para bases de datos, esquemas y tablas para watsonx.data.

Comportamiento y excepciones
Comportamiento Excepción
CREATE DATABASE con DATA_VERSION_RETENTION_TIME para watsonx.data No permitido
ALTER DATABASE con DATA_VERSION_RETENTION_TIME para watsonx.data No permitido
CREATE SCHEMA con DATA_VERSION_RETENTION_TIME para watsonx.data No permitido
ALTER SCHEMA con DATA_VERSION_RETENTION_TIME para watsonx.data No permitido excepto para NETEZZA_SCHEMA
Tabla CREATE TABLE con DATA_VERSION_RETENTION_TIME (temporal) Solo se permite en NETEZZA_SCHEMA
ALTER TABLE con la tabla DATA_VERSION_RETENTION_TIME (temporal) Solo se permite en NETEZZA_SCHEMA

Si SYSTEM DEFAULT DATA_VERSION_RETENTION_TIME es distinto de cero, CREATE DATABASE no heredará la propiedad de SYSTEM DEFAULT. CREATE SCHEMA, incluido NETEZZA_SCHEMA, no heredará la propiedad DB. No habrá ningún impacto ni cambios necesarios para la tarea de automatización relacionada con el viaje en el tiempo para watsonx.data.

Creación de objetos de viaje en el tiempo con la línea de mandatos

Creación de tablas temporales con la línea de mandatos

Para crear una tabla temporal, establezca DATA_VERSION_RETENTION_TIME en un valor distinto de cero.

Para obtener información detallada sobre la sintaxis y los privilegios, consulte el mandato CREATE TABLE.

CREATE TABLE <tablename> ( <col>[, <col>… ] ) DATA_VERSION_RETENTION_TIME <number-of-days>;

Ejemplo:

CREATE TABLE PRODUCT (prodid int, proddesc char(100)) DATA_VERSION_RETENTION_TIME 30;

Cuando inserta una fila en la tabla, la fila recibe una indicación de fecha y hora de inserción virtual que es igual a la hora de confirmación de la transacción de inserción.

Cuando suprime una fila de la tabla, la fila recibe una indicación de fecha y hora de supresión virtual que es igual a la hora de confirmación de la transacción de supresión (o truncamiento).

Creación de esquemas temporales con la línea de mandatos

Para crear un esquema temporal, establezca DATA_VERSION_RETENTION_TIME en un valor distinto de cero.

Para obtener información detallada sobre la sintaxis y los privilegios, consulte el mandato CREATE SCHEMA.

CREATE SCHEMA <schema_name> DATA_VERSION_RETENTION_TIME <number-of-days>;

Ejemplo:

CREATE SCHEMA SCHEMA1 DATA_VERSION_RETENTION_TIME 30;

Creación de bases de datos temporales con la línea de mandatos

Para crear una base de datos temporal, establezca DATA_VERSION_RETENTION_TIME en un valor distinto de cero.

Para obtener información detallada sobre la sintaxis y los privilegios, consulte el mandato CREATE DATABASE.

CREATE DATABASE <db_name> DATA_VERSION_RETENTION_TIME <number-of-days>;

Ejemplo:

CREATE DATABASE DB1 DATA_VERSION_RETENTION_TIME 30;

Creación de objetos de viaje en el tiempo con la consola web

Creación de tablas temporales con la consola web

  1. Inicie sesión en la consola web tal como se describe en Iniciación a la consola web.
  2. Cree una tabla temporal tal como se describe en Creación de tablas.

Debe establecer el intervalo de tiempo de retención en un valor distinto de cero.

Bases de datos, esquemas y nombres de tabla que contienen un carácter de punto (".") no se muestran en las estadísticas y gráficos de viaje en el tiempo cuando se establece el intervalo de tiempo de retención en un valor distinto de cero. Cuando no establece el intervalo de tiempo de retención, se da soporte a todos los caracteres especiales.

Cuando inserta una fila en la tabla, la fila recibe una indicación de fecha y hora de inserción virtual que es igual a la hora de confirmación de la transacción de inserción.

Cuando suprime una fila de la tabla, la fila recibe una indicación de fecha y hora de supresión virtual que es igual a la hora de confirmación de la transacción de supresión (o truncamiento).

Creación de esquemas temporales con la consola web

Para crear un esquema temporal, establezca intervalo de tiempo de retención en un valor distinto de cero.

  1. Inicie sesión en la consola web tal como se describe en Iniciación a la consola web.
  2. Cree un esquema temporal tal como se describe en Creación de esquemas.

Creación de bases de datos temporales con la línea de mandatos

Para crear una base de datos temporal, establezca intervalo de tiempo de retención en un valor distinto de cero.

  1. Inicie sesión en la consola web tal como se describe en Iniciación a la consola web.
  2. Cree una base de datos temporal tal como se describe en Creación de bases de datos.

Modificación de objetos de viaje en el tiempo con la línea de mandatos

Modificación de tablas temporales a no temporales con la línea de mandatos

Para modificar una tabla temporal a no temporal, establezca DATA_VERSION_RETENTION_TIME en 0.

Para obtener información detallada sobre la sintaxis y los privilegios necesarios, consulte el mandato ALTER TABLE.

ALTER TABLE <table> DATA_VERSION_RETENTION_TIME 0;

Ejemplo:

ALTER TABLE PRODUCT DATA_VERSION_RETENTION_TIME 0;

Cuando establece DATA_VERSION_RETENTION_TIME en 0, no puede ejecutar consultas de viaje en el tiempo y ya no tiene acceso a filas históricas para esa tabla. Puede reclamar algunas o todas las filas históricas ahora inaccesibles en la tabla con GROOM TABLE.

Modificación de tablas no temporales a temporales con la línea de mandatos

Para modificar una tabla no temporal en temporal, establezca DATA_VERSION_RETENTION_TIME] en un valor distinto de cero.

Para obtener información detallada sobre la sintaxis y los privilegios necesarios, consulte el mandato ALTER TABLE.

ALTER TABLE <table> DATA_VERSION_RETENTION_TIME <number-of-days>;

Ejemplo:

ALTER TABLE PRODUCT DATA_VERSION_RETENTION_TIME 30;

Si primero ha inhabilitado la tabla temporal y, a continuación, ha convertido la misma tabla en una tabla temporal, no tiene acceso a las filas históricas anteriores para dicha tabla. Los datos históricos se recopilan cuando las filas se suprimen o actualizan después de que la tabla se convierta en temporal.

Al igual que con el mandato CREATE TABLE, una fila que se inserta en la tabla recibe una indicación de fecha y hora de inserción virtual que es igual a la hora de confirmación de la transacción de inserción. Una fila que se suprime de la tabla recibe una indicación de fecha y hora de supresión virtual que es igual a la hora de confirmación de la transacción de supresión (o truncamiento). El límite inferior de retención de la tabla y la hora de inicio de retención son iguales o anteriores a la hora de confirmación de esta transacción ALTER TABLE.

A diferencia del mandato CREATE TABLE, que no tiene ninguna fila existente, las filas visibles existentes en la tabla se tratan como si las hubiera insertado esta transacción ALTER TABLE. Las filas visibles existentes reciben indicaciones de fecha y hora de inserción virtual que son iguales a la hora de inicio de retención. Con estas indicaciones de fecha y hora, las filas son potencialmente visibles para las consultas de viaje en el tiempo.

Modificación de esquemas temporales a no temporales con la línea de mandatos

Para modificar un esquema temporal a no temporal, establezca DATA_VERSION_RETENTION_TIME en 0.

Para conocer la sintaxis detallada, los privilegios necesarios y la opción CASCADE, consulte el mandato ALTER SCHEMA.

ALTER SCHEMA <schema_name> DATA_VERSION_RETENTION_TIME 0 NOCASCADE;

Ejemplo:

ALTER SCHEMA SCHEMA DATA_VERSION_RETENTION_TIME 0 NOCASCADE;

Modificación de esquemas no temporales a temporales con la línea de mandatos

Para modificar un esquema no temporal en temporal, establezca DATA_VERSION_RETENTION_TIME en un valor distinto de cero.

Para conocer la sintaxis detallada, los privilegios necesarios y la opción CASCADE, consulte el mandato ALTER SCHEMA.

ALTER SCHEMA <schema_name> DATA_VERSION_RETENTION_TIME <number-of-days> NOCASCADE;

Ejemplo:

ALTER SCHEMA DB1 DATA_VERSION_RETENTION_TIME 30 NOCASCADE;

Modificación de bases de datos temporales a no temporales con la línea de mandatos

Para modificar una base de datos temporal a no temporal, establezca DATA_VERSION_RETENTION_TIME en 0.

Para obtener información detallada sobre la sintaxis y los privilegios necesarios, consulte el mandato ALTER DATABASE.

ALTER DATABASE <db_name> DATA_VERSION_RETENTION_TIME 0 NOCASCADE;

Ejemplo:

ALTER DATABASE DB1 DATA_VERSION_RETENTION_TIME 0 NOCASCADE;

Modificación de bases de datos no temporales a temporales con la línea de mandatos

Para modificar una base de datos no temporal a temporal, establezca DATA_VERSION_RETENTION_TIME en un valor distinto de cero.

Para obtener información detallada sobre la sintaxis y los privilegios necesarios, consulte el mandato ALTER DATABASE.

ALTER DATABASE <db_name> DATA_VERSION_RETENTION_TIME <number-of-days> NOCASCADE;

Ejemplo:

ALTER DATABASE DB1 DATA_VERSION_RETENTION_TIME 30 NOCASCADE;

Modificación de objetos de viaje en el tiempo con la consola web

Modificación de tablas temporales a no temporales con la consola web

Para modificar una tabla temporal a no temporal, establezca intervalo de tiempo de retención en 0.

  1. Inicie sesión en la consola web tal como se describe en Iniciación a la consola web.
  2. Modifique la tabla tal como se describe en Actualización del intervalo de tiempo de retención para tablas.

Cuando establece intervalo de tiempo de retención en 0, no puede ejecutar consultas de viaje en tiempo y ya no tiene acceso a las filas históricas para esa tabla. Puede reclamar algunas o todas las filas históricas ahora inaccesibles en la tabla con GROOM TABLE.

Modificación de tablas no temporales a temporales con la consola web

Para modificar una tabla no temporal en temporal, establezca intervalo de tiempo de retención en un valor distinto de cero.

  1. Inicie sesión en la consola web tal como se describe en Iniciación a la consola web.
  2. Modifique la tabla tal como se describe en Actualización del intervalo de tiempo de retención para tablas.

Si primero ha inhabilitado la tabla temporal y, a continuación, ha convertido la misma tabla en una tabla temporal, no tiene acceso a las filas históricas anteriores para dicha tabla. Los datos históricos se recopilan cuando las filas se suprimen o actualizan después de que la tabla se convierta en temporal.

De forma similar a cuando crea una tabla, una fila que se inserta en la tabla recibe una indicación de fecha y hora de inserción virtual que es igual a la hora de confirmación de la transacción de inserción. Una fila que se suprime de la tabla recibe una indicación de fecha y hora de supresión virtual que es igual a la hora de confirmación de la transacción de supresión (o truncamiento). El límite inferior de retención de la tabla y la hora de inicio de retención son iguales o justo antes de la hora de confirmación de esta transacción de modificación.

A diferencia de cuando se crea una tabla, las filas visibles existentes en la tabla se tratan como si se hubieran insertado mediante esta transacción de modificación. Las filas visibles existentes reciben indicaciones de fecha y hora de inserción virtual que son iguales a la hora de inicio de retención. Con estas indicaciones de fecha y hora, las filas son potencialmente visibles para las consultas de viaje en el tiempo.

Modificación de esquemas temporales a no temporales con la consola web

Para modificar un esquema temporal a no temporal, establezca intervalo de tiempo de retención en 0.

  1. Inicie sesión en la consola web tal como se describe en Iniciación a la consola web.
  2. Modifique la tabla tal como se describe en Actualización del intervalo de tiempo de retención para esquemas.

Modificación de esquemas no temporales a temporales con la consola web

Para modificar un esquema no temporal en temporal, establezca intervalo de tiempo de retención en un valor distinto de cero.

  1. Inicie sesión en la consola web tal como se describe en Iniciación a la consola web.
  2. Modifique la tabla tal como se describe en Actualización del intervalo de tiempo de retención para esquemas.

Modificación de bases de datos temporales a no temporales con la consola web

Para modificar una base de datos temporal a no temporal, establezca intervalo de tiempo de retención en 0.

  1. Inicie sesión en la consola web tal como se describe en Iniciación a la consola web.
  2. Modifique la tabla tal como se describe en Actualización del intervalo de tiempo de retención para bases de datos.

Modificación de bases de datos no temporales a temporales con la consola web

Para modificar una base de datos no temporal a temporal, establezca intervalo de tiempo de retención en un valor distinto de cero.

  1. Inicie sesión en la consola web tal como se describe en Iniciación a la consola web.
  2. Modifique la tabla tal como se describe en Actualización del intervalo de tiempo de retención para bases de datos.

Qué hacer a continuación

Después de crear objetos de viaje en el tiempo, puede empezar a ejecutar consultas de viaje en el tiempo. Para obtener información adicional, consulte los siguientes enlaces: