Configuración de la tabla de hechos e identificación de la dimensión de giro

Una tabla de hechos de Autonomous Data Warehouse almacena los datos del cubo de Essbase que tiene una partición federada. Si no tiene una tabla de hechos que cumpla los requisitos para las particiones federadas, debe crear una. También debe comprender lo que es una dimensión de giro, para que pueda seleccionar una en el cubo de Essbase.

Antes de comenzar con esta sección, cree una aplicación y un cubo de Essbase, si no los tiene.

Creación de la tabla de hechos

Para las particiones federadas, la tabla de hechos guarda los valores de datos del cubo de Essbase. Si no tiene la tabla de hechos necesaria en Autonomous Data Warehouse, debe crear una.

Antes de empezar, asegúrese de que tiene un esquema vacío para la tabla de hechos. Consulte Creación de una esquema para particiones federadas.

La tabla de hechos debe tener un formato listo para Essbase, lo que significa que debe cumplir los siguientes requisitos en su forma y contenido:

  • Cada una de las dimensiones (no de atributo) del cubo se debe representar como una cabecera de columna individual, con la excepción de que una de las dimensiones del cubo (normalmente, la que contiene medidas/cuentas) se debe girar a dos o más columnas.

    Nota:

    En el resto de la documentación, se hace referencia a la dimensión que se gira como dimensión de giro.

  • La tabla de hechos debe estar formada por registros únicos (no duplicados) con una fila por secuencia de intersecciones de celdas de Essbase.

Si está familiarizado con las exportaciones de datos de Essbase, observará que la forma de la tabla de hechos es exactamente igual a una exportación de columna de Essbase.

Al igual que una exportación de columnas, la tabla de hechos debe incluir:

  • una columna para cada dimensión (no de atributo) del esquema (excepto para la dimensión de giro)

  • una columna por cada miembro almacenado de la dimensión de giro

A continuación se muestra un ejemplo de una tabla de hechos en la que se ha girado la dimensión de medidas, lo que significa que esta es la dimensión de giro. La dimensión de giro afecta a la forma de la tabla de hechos, ya que los miembros almacenados de esa dimensión pasan a ser cabeceras de columna: SALES, COGS, MARKETING, PAYROLL, MISC, INTITIAL_INVENTORY y ADDITIONS.


Tabla de hechos con datos y metadatos desnormalizados

Puede crear la tabla de hechos utilizando SQL o bien a partir de una exportación de datos de Essbase. Puede cargar datos en la tabla de hechos mediante herramientas de Autonomous Data Warehouse o utilizando la funcionalidad de carga de datos de Essbase.

Hay algunas directrices adicionales para crear una tabla de hechos:

  • La tabla de hechos debe tener menos de 1000 columnas.

  • No incluya columnas que se asignarán en Essbase a dimensiones de atributo.

  • La tabla de hechos no debe tener una precisión inferior a IEEE binary64 (doble).

  • La tabla de hechos debe tener cadenas internacionalizadas para los miembros de dimensión, utilizando el tipo NVARCHAR2, con una longitud de caracteres de 1024 bits.

Ejemplo de creación de tabla de hechos

Para crear una tabla de hechos en Autonomous Data Warehouse, puede utilizar SQL.

  1. Mediante SQL Developer o la herramienta de su elección, inicie sesión en Autonomous Data Warehouse como propietario del esquema (desde el paso Creación de una esquema para particiones federadas).

  2. Utilice SQL para crear la tabla de hechos, si aún no tiene una.

    Por ejemplo, el siguiente SQL crea una tabla de hechos a partir de la exportación de datos desde el cubo de Essbase, Sample Basic.

    CREATE TABLE "SAMP_FACT"
    ( "PRODUCT" NVARCHAR2(1024),
    "MARKET" NVARCHAR2(1024),
    "YEAR" NVARCHAR2(1024),
    "SCENARIO" NVARCHAR2(1024),
    "SALES" NUMBER(38,0),
    "COGS" NUMBER(38,0),
    "MARKETING" NUMBER(38,0),
    "PAYROLL" NUMBER(38,0),
    "MISC" NUMBER(38,0),
    "INITIAL_INVENTORY" NUMBER(38,0),
    "ADDITIONS" NUMBER(38,0)
    ) NOCOMPRESS LOGGING PARALLEL 4;

Notas

  • En el ejemplo anterior, el nombre de la tabla de hechos es SAMP_FACT y se basa en Sample Basic.

  • Para obtener el máximo rendimiento, todas las columnas no numéricas de la tabla de hechos deben ser del tipo NVARCHAR2(1024), y todas las columnas numéricas deben ser del tipo NUMBER.

  • Oracle recomienda activar la creación paralela del índice en Autonomous Data Warehouse agregando PARALLEL 4.

  • Las columnas de metadatos no deberían permitir la inclusión de valores NULL.

  • Oracle recomienda NOCOMPRESS cuando el uso del cubo incluya procesos generativos de datos, como la carga de datos incrementales o las actualizaciones de scripts por lotes. Si el cubo se utilizará principalmente para las operaciones de lectura, utilice COMPRESS para optimizar la tabla de hechos para la generación de informes.

  • Si obtiene el siguiente error de validación al crear la tabla de hechos, suprima las filas nulas.

    ORA-18265: fact table key column ("<DIM_NAME>") with value ('') not in
          dimension("<Name_of_Column") star table key column
  • Para un mejor rendimiento, absténgase de agregar restricciones específicas en la tabla si no es absolutamente necesario.

  • En el ejemplo anterior, el nombre de la tabla de hechos se basa en Sample Basic, que está disponible en la galería del catálogo de archivos de Essbase. Puede exportar los datos de este cubo de muestra o de cualquier otro cubo de Essbase y cargarlos para crear una tabla de hechos. Antes de hacerlo, es necesario configurar las credenciales para cargar datos en una aplicación de partición federada. Consulte Carga de datos de partición federada para configurar las credenciales y obtener información sobre cómo exportar datos al formato DBMS mediante el comando DATAEXPORT .

Identificación de la dimensión de giro

Como parte del diseño de una partición federada, debe seleccionar la dimensión de tabla dinámica. Una dimensión de giro es una dimensión que designa desde el esquema del cubo de Essbase para representar valores de datos numéricos.

  • La dimensión de giro puede ser de medidas o cuentas, pero no es obligatorio.

  • Todos los miembros almacenados de la dimensión de giro se deben asignar a las columnas de la tabla de hechos que representan los valores de datos numéricos en Autonomous Data Warehouse.

  • Si necesita ejecutar scripts de cálculo de almacenamiento de bloques (BSO) de Essbase, seleccione una dimensión densa como dimensión de giro. Los scripts de cálculo no están soportados para las particiones federadas si la dimensión de tabla dinámica es ligera.

  • La dimensión de giro debe tener nombres de miembros bastante estáticos y un número no muy grande de miembros. Motivo: Cambiar la dimensión de tabla dinámica en el esquema del cubo de Essbase (por ejemplo, agregando o cambiando el nombre de los miembros almacenados) requiere las actualizaciones manuales correspondientes de la tabla de hechos en Autonomous Data Warehouse, así como una nueva creación de la partición federada.

  • Las dimensiones de Essbase que incluyen miembros requieren fórmulas dinámicas complejas (como "Inventario de apertura" e "Inventario final", usando Sample Basic como ejemplo) no se deben seleccionar como dimensión de giro.

  • Se proporciona la dimensión de giro seleccionada en el momento de la creación de una partición federada.

  • Oracle Database tiene un límite de 1000 columnas, y la dimensión de giro hereda este límite. Determine el número de miembros de columna que se puedan seleccionar en la dimensión de giro para asegurarse de que no alcance el límite. El número de posibles combinaciones de miembros almacenadas junto con el número de dimensiones en el cubo debe ser menor o igual que 1000.

  • Para los cubos de almacenamiento agregado, las dimensiones que contienen jerarquías de miembros almacenadas de varios niveles no se deben seleccionar como dimensión de tabla dinámica. Seleccione una dimensión de tabla dinámica con jerarquías dinámicas, o una jerarquía almacenada que sea una jerarquía plana de un único nivel (en la que todos los miembros sean miembros almacenados de nivel 0).