Identificar la dimensión de tabla dinámica y configurar la tabla de hechos

Una tabla de hechos de Autonomous AI Lakehouse almacena los datos del cubo federado. Si no tiene una tabla de hechos que cumpla los requisitos para la particiones federadas y no permite que Essbase gestione la tabla de hechos, debe crear una.

Note:

Si permite que Essbase gestione la tabla de hechos, Essbase crea la tabla de hechos por usted.

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

Identificación de la dimensión de giro

Como parte del diseño de un cubo federado, debe seleccionar la dimensión 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 pivote se deben asignar a las columnas de la tabla de hechos que representan el valor de datos numéricos en Autonomous AI Lakehouse.

  • 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 los cubos federados si la dimensión de giro 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 del giro en el esquema de cubo de Essbase (por ejemplo, agregando o renombrando miembros almacenados) necesita las actualizaciones manuales correspondientes a la tabla del hecho en Autonomous AI Lakehouse, así como la 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.

  • La dimensión de giro seleccionada se proporciona en el momento de crear 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 federados basados en ASO, Oracle recomienda que las dimensiones que contienen jerarquías de miembros almacenados de varios niveles no se seleccionen como dimensión 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).

Creación de la tabla de hechos

Una tabla de hechos de Autonomous AI Lakehouse almacena todos los valores de datos de un cubo federado. Si aún no tiene la tabla de hechos necesaria y el cubo federado no está gestionado por Essbase, debe crear uno.

Note:

Este tema no es necesario si permite que Essbase gestione la tabla de hechos, ya que Essbase crea la tabla de hechos por usted. Consulte Opciones de carga de datos para cubos federados.

Antes de empezar, asegúrese de que tiene un esquema para la tabla de hechos. Consulte Creación de un Esquema para Cubos Federados.

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. Esta excepción se denomina dimensión dinámica.

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

If you are familiar with Essbase data exports, you will notice that the shape of the fact table is exactly like an Essbase column export.

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 en la que se ha girado el tamaño de medidas, lo que significa que esta es la dimensión dinámica. 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 las tablas de hechos mediante las herramientas Autonomous AI Lakehouse o mediante la función de carga del dato 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 AI Lakehouse, puede utilizar SQL.

  1. Con SQL Developer o la herramienta que desee, conéctese a Autonomous AI Lakehouse como propietario del esquema (en el paso Creación de un esquema para cubos federados).

  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 habilitar la creación paralela del índice en Autonomous AI Lakehouse 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. Para ello, deberá configurar credenciales para cargar datos en un cubo federado. Consulte Configuración de credenciales para cubos federados para configurar las credenciales y obtener información sobre cómo exportar datos al formato DBMS mediante el comando DATAEXPORT.