Uma tabela de fatos no Autonomous Data Warehouse armazena os dados do cubo do Essbase que tem uma partição federada. Se você não tiver uma tabela de fatos que atenda aos requisitos de partições federadas, crie uma. Você também precisa entender o que é uma dimensão dinâmica para que possa selecionar uma no cubo do Essbase.
Antes de iniciar essa seção, crie um aplicativo e um cubo do Essbase se não tiver um ainda.
Para partições federadas, a tabela de fatos armazena os valores de dados do cubo do Essbase. Se você não tiver a tabela de fatos exigida no Autonomous Data Warehouse, crie uma.
Antes de iniciar, certifique-se de ter um esquema vazio para a tabela de fatos. Consulte Criar um Esquema para Partições Federadas.
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.
Nota:
Em outros lugares na documentação, a dimensão que é girada será referida como 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 exportações de dados do Essbase, notará que a forma da tabela de fatos é 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
Segue um exemplo de tabela de fatos na qual a dimensão de 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. É possível carregar dados na tabela de fatos usando as ferramentas do Autonomous Data Warehouse ou a funcionalidade de carga de dados do Essbase.
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 Data Warehouse, você pode usar SQL.
Usando o SQL Developer ou a ferramenta de sua escolha, faça log-in no Autonomous Data Warehouse como proprietário do esquema (na etapa Criar um Esquema para Partições Federadas).
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 Data Warehouse, 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 se baseia em Sample Basic, que está disponível no galeria no catálogo de filtros 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, configure credenciais para carregar dados em um aplicativo de partição federada. Consulte Carga de Dados da Partição Federada para configurar as credenciais e aprender a exportar dados para o formato DBMS usando o comando DATAEXPORT.
Como parte do design de uma partição federada, selecione 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 da dimensão dinâmica devem ser mapeados para as colunas da tabela de fatos que representam valores de dados numéricos no Autonomous Data Warehouse.
Caso precise executar scripts de cálculo de armazenamento em blocos (BSO) do Essbase, selecione uma dimensão densa como dimensão dinâmica. Não há suporte para scripts de cálculo em partições federadas quando a dimensão dinâmica é dispersa.
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 de cubo do Essbase (por exemplo, adicionando ou renomeando membros armazenados) precisa de correspondência, atualizações manuais para a tabela de fatos no Autonomous Data Warehouse e também exige a 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.
Forneça sua dimensão dinâmica selecionada no momento de criar 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 de armazenamento agregado, as dimensões que contêm hierarquias de membros armazenados de vários níveis não deverão ser selecionadas como 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).