Identificar a Dimensão Dinâmica e Configurar a Tabela de Fatos
Uma tabela de fatos no Autonomous AI Lakehouse armazena os dados do cubo federado. Se você não tiver uma tabela de fatos que atenda aos requisitos para partições federadas e não estiver permitindo que o Essbase gerencie a tabela de fatos, você deverá criar uma.
Observação:
Se você estiver permitindo que o Essbase gerencie a tabela de fatos, o Essbase criará a tabela de fatos para você.
Antes de iniciar essa seção, crie um aplicativo e um cubo do Essbase se não tiver um ainda.
Identificar a Dimensão Dinâmica
Como parte da criação de um cubo federado, você precisa selecionar a dimensão dinâmica. Dimensão dinâmica é aquela que você designa no outline de cubo do Essbase para representar valores de dados numéricos.
-
A dimensão dinâmica não precisa ser medidas/contas, mas pode ser.
-
Todos os membros armazenados da dimensão dinâmica devem mapear as colunas da tabela de fato que representam seus valores de dados numéricos no Autonomous AI Lakehouse.
-
Caso precise executar scripts de cálculo de armazenamento em blocos (BSO) do Essbase, selecione uma dimensão densa como dimensão dinâmica. Scripts de cálculo não são suportados para cubos federados se a dimensão dinâmica for esparsa.
-
A dimensão dinâmica deve ter nomes de membros estáticos apropriados e não um número enorme de membros. Motivo: A alteração da dimensão dinâmica no outline do cubo do Essbase (por exemplo, adicionando ou renomeando membros armazenados) requer atualizações manuais correspondentes à tabela de fato no Autonomous AI Lakehouse e também requer recriação da partição federada.
-
As dimensões do Essbase que incluem membros que exigem fórmulas dinâmicas complexas (como "Abrindo Inventário" e "Finalizando Inventário", usando o Sample Basic como exemplo) não devem ser selecionadas como dimensão dinâmica.
-
Você fornece a dimensão dinâmica selecionada no momento da criação de uma partição federada.
-
O Oracle Database tem um limite de 1.000 colunas e a dimensão dinâmica herda esse limite. Determine o número de membros elegíveis da coluna na dimensão dinâmica para garantir que você não alcance o limite. O número de possíveis combinações de membros armazenados na tabela dinâmica mais o número de dimensões no cubo deve ser menor ou igual a 1.000.
-
Para cubos federados com base no ASO, a Oracle recomenda que as dimensões que contêm hierarquias de membros armazenados de vários níveis não sejam selecionadas como a dimensão dinâmica. Selecione uma dimensão dinâmica com hierarquias dinâmicas ou uma hierarquia armazenada, que é sem formatação e tem um único nível (em que todos os membros são armazenados de nível 0).
Criar a Tabela de Fatos
Uma tabela de fatos no Autonomous AI Lakehouse armazena todos os valores de dados de um cubo federado. Se você ainda não tiver a tabela de fatos necessária e o seu cubo federado não for gerenciado pelo Essbase, crie um.
Observação:
Este tópico não será obrigatório se você estiver permitindo que o Essbase gerencie a tabela de fatos, porque o Essbase cria a tabela de fatos para você. Consulte Opções de Carregamento de Dados para Cubos Federados.Antes de começar, certifique-se de ter um esquema para a tabela de fatos. Consulte Criar um Esquema para Cubos Federados.
A tabela de fatos deve estar no formato preparado para o Essbase, o que significa que atende aos seguintes requisitos em termos de conteúdo e forma:
-
Cada uma das dimensões (que não são atributo) do cubo deve ser representada como cabeçalho de coluna única, com exceção de que uma das dimensões do cubo (normalmente a que contém medidas/contas) deve ser girada em duas ou mais colunas. Essa exceção é chamada de dimensão dinâmica.
-
A tabela de fatos deve ser composta por registros exclusivos (sem duplicações), com uma linha por sequência de interseções de célula do Essbase.
Se você estiver familiarizado com as exportações do Essbase, notará que a forma da tabela é exatamente como uma exportação de coluna do Essbase.
Da mesma forma que uma exportação de coluna, a tabela de fatos deve incluir:
-
uma coluna para cada dimensão (que não seja de atributo) do outline (exceto dimensão dinâmica)
-
uma coluna para cada membro armazenado da dimensão dinâmica
Veja a seguir um exemplo de tabela de fato na qual a dimensão medidas foi girada, o que significa que é a dimensão dinâmica. A dimensão dinâmica afeta a forma da tabela de fatos, uma vez que os membros armazenados da dimensão se tornam cabeçalhos de coluna: SALES, COGS, MARKETING, PAYROLL, MISC, INTITIAL_INVENTORY e ADDITIONS.

Você pode criar a tabela de fatos usando SQL ou pode criá-la com base em uma exportação de dados do Essbase. Você pode carregar dados para a tabela de fato usando as ferramentas Autonomous AI Lakehouse ou usando a funcionalidade do carregamento de dados doEssbase.
As diretrizes adicionais para criar uma tabela de fatos incluem:
-
A tabela de fatos deve ter menos de 1.000 colunas.
-
Não inclua colunas que serão mapeadas no Essbase para dimensões de atributo.
-
A tabela de fatos não deve ter menor precisão do que IEEE binary64 (duplo).
-
Ela deve ter strings internacionalizadas para membros de dimensão, usando o tipo NVARCHAR2, com tamanho de caractere de 1.024 bits.
Exemplo de Criação de Tabela de Fatos
Para criar uma tabela de fatos no Autonomous AI Lakehouse, você pode usar a SQL.
-
Usando o SQL Developer ou sua ferramenta de escolha, faça log-in no Autonomous AI Lakehouse como o proprietário do esquema (na etapa Criar um Esquema para Cubos Federados).
-
Use SQL para criar a tabela de fatos se você ainda não tiver uma.
Por exemplo, a SQL a seguir cria uma tabela de fatos usando os dados de exportação do cubo do 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;
Observações
-
No exemplo acima, o nome da tabela de fatos é SAMP_FACT e está baseado em Sample Basic.
-
Para melhor desempenho, todas as colunas não numéricas da tabela de fatos devem ser do tipo NVARCHAR2(1024) e todas as colunas numéricas devem ser do tipo NUMBER.
-
A Oracle recomenda ativar a criação paralela do índice no Autonomous AI Lakehouse, adicionando PARALLEL 4.
-
As colunas de metadados não devem permitir a inclusão de valores NULOS.
-
A Oracle recomenda NOCOMPRESS quando o uso do cubo incluir processos gerativos de dados, como carga de dados incremental ou atualizações de script em lotes. Se o cubo for usado em operações de leitura na maioria das vezes, utilize COMPRESS para otimizar a tabela de fatos para geração de relatórios.
-
Se você obtiver o erro de validação a seguir durante a criação da tabela de fatos, exclua as linhas nulas.
ORA-18265: fact table key column ("<DIM_NAME>") with value ('') not in dimension("<Name_of_Column") star table key column -
Para obter melhor desempenho, não adicione restrições específicas na tabela sem uma necessidade definitiva.
-
No exemplo acima, o nome da tabela de fatos é baseado no Sample Basic, que está disponível na galeria no catálogo de arquivos do Essbase. Você pode exportar os dados desse cubo de amostra ou de qualquer outro cubo do Essbase e carregá-lo para criar uma tabela de fatos. Para poder fazer isso, você precisará configurar credenciais para carregar dados em um cubo federado. Consulte Configurar Credenciais para Cubos Federados para configurar as credenciais e saber como exportar dados para o formato DBMS usando o comando DATAEXPORT.