Fact tables are the foundation of the data warehouse. Eles contêm as medições fundamentais da empresa, e eles são o alvo final da maioria das consultas de data warehouse. Não vale a pena içar tabelas de factos pelo mastro, a menos que tenham sido escolhidas para reflectir prioridades de negócios urgentes, tenham sido cuidadosamente asseguradas de qualidade e estejam rodeadas por dimensões que proporcionam uma riqueza de pontos de entrada para restringir e agrupar. Agora que preparamos o caminho para tabelas de fatos, vamos ver como construí-las e usá-las. a primeira e mais importante etapa de projeto é declarar o fato do grão de mesa. O grão é a definição de negócio do que um único registro de tabela de fatos representa. A declaração de grãos não é uma lista de chaves dimensionais estrangeiras que implementam uma chave primária para a tabela de fatos. Pelo contrário, o grão é a descrição do evento de medição no mundo físico que dá origem a uma medição. Quando o scanner do supermercado mede a quantidade e o preço cobrado de um produto que está sendo comprado, o grão é literalmente o bip do scanner. Essa é uma grande definição de cereais!
imediatamente após a declaração do grão, é possível listar as chaves dimensionais estranhas que existem nesse grão. Ao declarar o grão primeiro, a discussão das chaves estrangeiras permanece fundamentada e precisa.
O objetivo real da tabela de fatos é ser o repositório dos fatos numéricos que são observados durante o evento de medição. É extremamente importante que estes factos sejam verdadeiros para o grão. O supermercado “beep” mede a quantidade e o preço prolongado do produto que está a ser digitalizado. Nunca incluímos outras medições numéricas que violem o grão, como as vendas globais da categoria ou as vendas deste produto no mês passado. Embora estas outras medições possam ser extremamente úteis para cálculos seleccionados, não podem ser combinadas através de registos de factos e introduzem assimetrias estranhas na concepção das aplicações. Nós deixamos nossas ferramentas de inteligência de negócios (BI) computar esses valores fora do tópico em tempo de consulta ao invés de codificá-los em nossas tabelas de fatos. nós sempre nos esforçamos para tornar os fatos aditivos nas dimensões e exatamente consistentes com o grão. Observe que não armazenamos o preço do produto que está sendo escaneado porque o preço não é acessório. Em vez disso, armazenamos o preço prolongado, que pode ser adicionado livremente em todos os produtos, lojas, tempos e todas as outras dimensões. o armazém de dados deve ser sempre construído com base em quadros factuais expressos ao nível mais baixo possível. No exemplo, o bip da caixa registadora da mercearia é o menor grão possível, porque não pode ser dividido mais. As tabelas de fato no grão mais baixo são as mais expressivas porque têm o conjunto mais completo das dimensões possíveis para esse processo de Negócio. A tabela beep grain fact pode ter Data, Loja, Produto, Caixa, Gerente, cliente, promoção, concorrência, cesto e até mesmo tempo se todas essas fontes de dados podem ser marshaled quando os registros de fatos são criados. Quadros agregados de grãos mais elevados, como as vendas por categoria por Distrito, não podem suportar todas estas dimensões e, portanto, são muito menos expressivos. É um erro fundamental publicar apenas tabelas agregadas para os usuários finais sem fazer com que as tabelas mais baixas de fatos de grãos sejam facilmente acessíveis por perfuração. A maioria das falsas noções de que as tabelas dimensionais pressupõem a questão do negócio vem de cometer este erro fundamental.
três tipos de tabelas de fatos
Se você permanecer fiel ao grão, então todas as suas tabelas de fatos podem ser agrupadas em apenas três tipos: transaction grain, Periodic snapshot grain e acumulando snapshot grain (os três tipos são mostrados na Figura 1). Na Figura 1, As dimensões são designadas por FK (chave estrangeira) e os factos numéricos são em itálico. o grão de transacção corresponde a uma medida tomada num único instante. O sinal da mercearia é um grão de transacção. Os factos medidos são válidos apenas para esse instante e para esse acontecimento. O próximo evento de medição pode acontecer um milissegundo mais tarde ou no próximo mês ou nunca. Assim, os quadros de dados relativos aos cereais de transacção são imprevisivelmente esparsos ou densos. Não temos qualquer garantia de que todas as possíveis chaves estrangeiras estejam representadas. Transaction grain fact tables can be enormous, with the largest containing many billions of records.
o grão instantâneo periódico corresponde a um período de tempo predefinido, frequentemente um período de Relato Financeiro. A figura 1 ilustra uma imagem periódica da conta mensal. Os factos medidos resumem a actividade durante ou no final do período de tempo. O snapshot grain periódico tem uma forte garantia de que todas as entidades inquiridas (como a conta bancária na Figura 1) aparecerão em cada snapshot, mesmo que não haja actividade. O instantâneo periódico é previsivelmente denso, e as aplicações podem contar com combinações de teclas sempre presentes. Tabelas de dados de instantâneos periódicos também podem ficar grandes. Um banco com 20 milhões de contas e 10 anos de história teria 2.4 bilhões de registros na conta mensal instantânea periódica!
a tabela de factos instantâneos acumulados corresponde a um processo previsível que tem um início e um fim bem definidos. Processamento de Pedidos, processamento de Pedidos, resolução de chamadas de serviço e admissões da faculdade são candidatos típicos. O grão de um instantâneo acumulativo para processamento de pedidos, por exemplo, é geralmente o item de linha na ordem. Observe na Figura 1 que existem várias datas representando o cenário padrão que uma ordem sofre. Acumulando registros instantâneos são revisitados e substituídos à medida que o processo progride através de seus passos do início ao fim. Acumulando snapshot fact tables geralmente são muito menores do que os outros dois tipos por causa desta estratégia de substituição.