martes, 19 de marzo de 2024

Oracle 23c - Tablas de Staging

Una mejora que no había visto mencionada en otros blogs o artículos hasta que fue publicada por Tim Hall en su blog Oracle-Base, es la posibilidad de definir una tabla como de tipo "Staging" al momento de crearla. Esto hace que la tabla sea optimizada automáticamente para recibir datos en forma rápida y para manejar datos volátiles, como veremos a continuación.

Sintaxis

Se puede crear o modificar una tabla para que sea de tipo Staging:

-- Crear una tabla como Staging:
CREATE TABLE staging_table (col1 number, col2 varchar2(100)) FOR STAGING;

-- Modificar una tabla normal a Staging:
ALTER TABLE normal_table FOR STAGING;

-- Modificar una tabla Staging a normal:
ALTER TABLE normal_table [NOT] FOR STAGING;


Características

Al definir una tabla como "Staging", la misma tiene las siguientes características:

  • La compresión se desactiva y no se permite explícitamente para cualquier carga de datos futura en la tabla y sus particiones y subparticiones. Cambiar una tabla existente al tipo Staging afecta el almacenamiento de los datos existentes, solo afectará las cargas de datos futuras.
  • No se puede cambiar los atributos predeterminados de una tabla Staging, sus particiones o subparticiones, o cargas de datos futuras usando ALTER TABLE.
  • No puede realizar ninguna operación de mantenimiento de partición que mueva datos y los comprima usando ALTER TABLE.
  • No puede particionar una tabla Staging ni especificar compresión en ninguna de sus particiones.
  • El muestreo dinámico (Dynamic Sampling) se utiliza para consultas realizadas a una tabla Staging. No puede recopilar estadísticas sobre las mismas, ni sobre ninguna de sus particiones.
  • Al eliminar una tabla Staging, se eliminará inmediatamente, quedar en la papelera de reciclaje.


Cambiar una tabla Normal a Staging

Al cambiar una tabla existente con ALTER TABLE t FOR STAGING, la misma ahora tiene todas las características de una tabla de Staging creada con CREATE TABLE t FOR STAGING.


Cambiar una tabla Staging a Normal

Al cambiar una tabla creada como Staging a una tabla normal usando la cláusula NOT FOR STAGING, la misma permite:

  • Habilitar la compresión explícitamente en la tabla, sus particiones y cargas de datos futuras.
  • Recopilar estadísticas en la tabla de forma explícita o utilizando una aplicación de recopilación de estadísticas.
  • Al eliminar la tabla, puede mantenerse en la papelera de reciclaje.


Vistas del Diccionario de Datos

Las vistas USER_TABLES, ALL_TABLES y DBA_TABLES incorporan una nueva columna "STAGING" que indica si la tabla es de tipo Staging  indicado con el valor "YES" o el valor "NO" en caso de no serlo.


Esta nueva característica, que no fue destacada en muchos lugares, facilita notablemente las tareas de carga masivas de datos típicas de los Data Warehouse y de procesos de ETL/ELT.




lunes, 18 de marzo de 2024

Oracle Database@Azure Ahora Disponible en Alemania... y pronto en otras regiones

Oracle & Microsoft siguen ampliando la colaboración entre las nubes de ambas empresas, anunciando la semana pasada la disponibilidad del servicio Oracle Database@Azure en la región Germany West Central (Frankfurt) de Azure, la segunda region en soportar este servicio anunciado 2022 y en pleno funcionamiento desde en Diciembre de 2023 en la region East US de Azure.

En en anuncio de prensa se menciona también que en el futuro cercano el servicio también estará disponible en las siguientes regiones de Azure: Australia (Este), Brasil (Sur), Canada (Central), Francia (Central), India (Central), Italia (Norte), Japón (Este), Suecia (Central), Reino Unido (Sur), Estados Unidos (Central), Estados Unidos (Centro-Sur), Emiratos Arabes Unidos (Norte) y Sudeste Asiatico.

Para conocer cómo funciona el Oracle Database@Azure, pueden ver el artículo "Oracle Database Service en Microsoft Azure" que describe los beneficios del mismo.