Uma tabela de factos no Autonomous Data Warehouse armazena os dados do cubo do Essbase com uma partição federada. Se não tiver uma tabela de factos que cumpra os requisitos para a partição federada, deve criar uma. Também precisa de compreender o que é uma dimensão de rotação, para poder selecionar uma no seu cubo do Essbase.
Antes de iniciar esta secção, crie uma aplicação e um cubo do Essbase, se ainda não os tiver.
Para partições federadas, a tabela de factos armazena os valores de dados do cubo do Essbase. Se não tiver a tabela de factos necessária no Autonomous Data Warehouse, deve criar uma.
Antes de iniciar, certifique-se de que tem um schema vazio para a tabela de factos. Consulte Criar um Schema para Partições Federadas.
A tabela de factos deve estar num formato pronto para o Essbase, o que significa que cumpre os seguintes requisitos em termos de conteúdo e forma:
Cada uma das dimensões (sem ser de atributos) do cubo deve ser representada como um cabeçalho de coluna única, com a exceção de que uma das dimensões do cubo (normalmente a que contém medidas/contas) deve ser rodada em duas ou mais colunas.
Nota:
Noutras partes da documentação, a dimensão que é rodada será referida como a dimensão de rotação.
A tabela de factos deve ser composta por registos exclusivos (sem duplicados), com uma linha por sequência de intersecções de células do Essbase.
Se estiver familiarizado com as exportações de dados do Essbase, irá reparar que a forma da tabela de factos é exatamente igual a uma exportação de colunas do Essbase.
De forma semelhante à exportação de colunas, a tabela de factos deve incluir:
uma coluna para cada dimensão (sem ser de atributos) da estrutura (exceto para a dimensão de rotação)
uma coluna para cada membro armazenado da dimensão de rotação
Segue-se um exemplo de uma tabela de factos na qual a dimensão de medidas foi rodada, o que significa que é a dimensão de rotação. A dimensão de rotação afeta a forma da tabela de factos, uma vez que os membros armazenados dessa dimensão se tornam cabeçalhos das colunas: SALES, COGS, MARKETING, PAYROLL, MISC, INTITIAL_INVENTORY e ADDITIONS.
Pode criar a tabela de factos utilizando SQL ou pode criá-la a partir de uma exportação de dados do Essbase. Pode carregar dados para a tabela de factos utilizando as ferramentas do Autonomous Data Warehouse ou a funcionalidade de carregamento de dados do Essbase.
Diretrizes adicionais para criar uma tabela de factos:
A tabela de factos deve ter menos de 1000 colunas.
Não inclua colunas que irão efetuar correspondência no Essbase com dimensões de atributos.
A tabela de factos não deve ter uma precisão inferior a IEEE binary64 (double).
A tabela de factos deve ter cadeias de caracteres internacionalizadas para os membros da dimensão, utilizando o tipo NVARCHAR2, com um comprimento de caracteres de 1024 bits.
Exemplo de Criação da Tabela de Factos
Para criar uma tabela de factos no Autonomous Data Warehouse, pode utilizar SQL.
Com o SQL Developer ou a sua ferramenta pretendida, entre em sessão no Autonomous Data Warehouse como o proprietário do schema (do passo Criar um Schema para Partições Federadas).
Utilize o SQL para criar a tabela de factos, se ainda não tiver uma.
Por exemplo, o seguinte SQL cria uma tabela de factos a partir da exportação de dados 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;
Notas
No exemplo acima, o nome da tabela de factos é SAMP_FACT e encontra-se em Sample Basic.
Para um melhor desempenho, todas as colunas não numéricas da tabela de factos 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, acrescentando PARALLEL 4.
As colunas de metadados não deverão permitir a inclusão de valores NULL.
A Oracle recomenda NOCOMPRESS quando a utilização do cubo incluir processos geradores de dados como o carregamento de dados incremental ou atualizações de script em batch. Se o cubo se destinar a ser utilizado principalmente para operações de leitura, utilize COMPRESS para otimizar a tabela de factos para relatórios.
Se obtiver o seguinte erro de validação ao criar a tabela de factos, apague as linhas nulas.
ORA-18265: fact table key column ("<DIM_NAME>") with value ('') not in dimension("<Name_of_Column") star table key column
Para um melhor desempenho, evite acrescentar restrições específicas à tabela sem que haja uma necessidade absoluta.
No exemplo acima, a tabela de factos encontra-se em Sample Basic, que está disponível em galeria no catálogo de ficheiros do Essbase. Pode exportar os dados deste cubo de exemplo ou qualquer outro cubo do Essbase e carregá-lo para criar uma tabela de factos. Antes de o fazer, terá de configurar credenciais para carregar dados para uma aplicação de partição federada. Consulte Carregamento de Dados da Partição Federada para configurar as credenciais e obter informações sobre como exportar dados para o formato DBMS utilizando o comando DATAEXPORT.
Como parte da conceção de uma partição federada, precisa de selecionar a dimensão de rotação. Uma dimensão de rotação é uma dimensão designada a partir da estrutura do cubo do Essbase para representar os valores de dados numéricos.
A dimensão de rotação não tem de ser medidas/contas, mas pode ser.
Todos os membros armazenados da dimensão de rotação devem efetuar correspondência com as colunas da tabela de factos que representam os seus valores de dados numéricos no Autonomous Data Warehouse.
Se for necessário executar scripts de cálculo de armazenamento em blocos (BSO) do Essbase, selecione uma dimensão densa como dimensão de rotação. Os scripts de cálculo não são suportados para partições federadas se a dimensão de rotação for dispersa.
A dimensão de rotação deve ter nomes de membros razoavelmente estáticos e um número de membros não muito grande. Motivo: A alteração da dimensão de rotação na estrutura do cubo do Essbase (por exemplo, ao acrescentar ou renomear membros armazenados) necessita de atualizações manuais correspondentes na tabela de factos no Autonomous Data Warehouse e também requer a recriação da partição federada.
As dimensões do Essbase que incluem membros que requerem fórmulas dinâmicas complexas (como "Opening Inventory" e "Ending Inventory," utilizando o Sample Basic como exemplo) não devem ser selecionadas como dimensão de rotação.
A sua dimensão de rotação selecionada é fornecida ao criar uma partição federada.
O Oracle Database tem um limite de 1000 colunas e a dimensão de rotação herda este limite. Determine o número de membros de colunas elegíveis na dimensão de rotação para garantir que não atinge o limite. O número de combinações de membros armazenados potenciais na dimensão de rotação mais o número de dimensões no cubo deve ser menor que ou igual a 1000.
Para os cubos de armazenamento de agregação, as dimensões com hierarquias de membros armazenados de vários níveis não deverão ser selecionadas como a dimensão de rotação. Selecione uma dimensão de rotação com hierarquias dinâmicas ou uma hierarquia armazenada que é uma hierarquia simples de um único nível (onde todos os membros são membros armazenados de nível 0).