As empresas estão cada vez mais migrando para armazéns de dados para aproveitar o grande volume de dados que geram todos os dias. Armazenamento de dados é a melhor solução para análise. No entanto, as empresas nem sempre tiveram essa opção. Cedo bases de dados foram projetados principalmente para processamento transacional e não tinham a eficiência necessária para relatórios analíticos, o que deu origem à modelagem dimensional.
No início da década de 1990, Ralph Kimball, uma figura proeminente quando se trata de abordagens de armazém de dados, desenvolveu os princípios da modelagem dimensional. Seu livro “The Data Warehouse Toolkit”, publicado pela primeira vez em 1996, descreveu os conceitos e as melhores práticas de modelagem dimensional. A abordagem de Kimball se concentrou na modelagem de dados de forma alinhada aos processos de negócios e aos requisitos do usuário, enfatizando a simplicidade e a facilidade de uso.
Neste artigo, vamos nos aprofundar nos conceitos de dimensão modelagem de dados e compreender seus processos, benefícios e limitações.
O que é um modelo de dados dimensionais?
Um modelo de dados dimensional é uma forma de organizar e estruturar dados em um banco de dados ou data warehouse para facilitar às empresas a análise e a obtenção de insights de seus dados. Eles são particularmente úteis ao lidar com grandes volumes de dados e quando os usuários precisam explorar dados de diferentes ângulos ou dimensões.
Diferentes aplicações requerem diferentes técnicas de modelagem dimensional. Existem basicamente duas técnicas de modelagem: modelos normalizados de entidade-relacionamento (modelos ER) e modelagem dimensional.
Os modelos normalizados de entidade-relacionamento (modelos ER), por outro lado, são projetados para eliminar a redundância de dados, executar rapidamente as operações de inserção, atualização e exclusão e obter os dados dentro de um banco de dados.
Em contraste, os modelos dimensionais ou modelos de dados dimensionais Kimball são estruturas desnormalizadas projetadas para recuperar dados de um data warehouse. Eles usam tabelas de fatos e dimensões para manter um registro de dados históricos em data warehouses. Além disso, eles são otimizados para realizar o Selecionar operação e são usados na estrutura de design básico para construir data warehouses altamente otimizados e funcionais.
Elementos Envolvidos na Modelagem Dimensional
Tabelas de fatos ou medidas de negócios
As tabelas de fatos armazenam as informações numéricas sobre medidas de negócios e chaves estrangeiras para as tabelas dimensionais. Os fatos comerciais podem ser aditivos, semiaditivos ou não aditivos. A Tabela 1 explica os três tipos de tabelas de fatos.
Tipo de Fato | Descrição |
Fatos Aditivos | Medidas de negócios que podem ser agregadas em todas as dimensões |
Fatos semi-aditivos | Medidas de negócios que podem ser agregadas em algumas dimensões e não em outras (geralmente dimensões de data e hora) |
Fatos não aditivos | Medidas de negócios que não podem ser agregadas em qualquer dimensão |
Tabela 1: Tipos de fatos em uma tabela de fatos
Tipos de fatos explicados com um modelo de dados dimensional
Uma loja de roupas mantém os seguintes dados nas linhas da tabela de fatos para uma transação de vendas:
Data | Localização da loja | Tipo de produto | Qtd. | Preço unitário | Quantidade de vendas | Estoque | Imposto sobre vendas |
6/3/2018 | CA | Nylon | 5 | 100 | 500 | 30 | 7.75% |
6/3/2018 | CA | poliéster | 7 | 250 | 1750 | 50 | 7.75% |
6/3/2018 | PA | Nylon | 6 | 100 | 600 | 65 | 6.00% |
6/3/2018 | PA | poliéster | 3 | 250 | 750 | 25 | 6.00% |
6/4/2018 | CA | Nylon | 7 | 100 | 700 | 36 | 7.75% |
6/4/2018 | CA | poliéster | 6 | 250 | 1500 | 17 | 7.75% |
/ 4 / 2018 | PA | Nylon | 9 | 100 | 900 | 14 | 6.00% |
6/4/2018 | PA | poliéster | 10 | 250 | 2500 | 20 | 6.00% |
Tabela 2: Tabela transacional mantida por uma loja de roupas
As colunas que contêm informações numéricas sobre o processo de negócios são nossos fatos de negócios. Neste exemplo, Qtd., Preço unitário, Quantidade de vendas, Estoque e Imposto sobre vendas são fatos. E o resto das entidades (Data, Store e Tipo de produto) são dimensões.
Quantidade de vendas podem ser adicionados em todas as dimensões. Portanto, é um fato aditivo. Além disso, adicionando Estoque informações em todo o Store dimensão fornece informações comerciais úteis. No entanto, como este é apenas o instantâneo do número de mercadorias em um determinado ponto, adicioná-lo ao longo do Data dimensão não fornece nenhuma visão de negócios útil. Desde Estoque é aditivo em algumas dimensões e não aditivo em outras, é um fato semi-aditivo. Agora considere Imposto sobre vendas. Adicionando Imposto sobre vendas em qualquer dimensão representará problemas durante o processamento analítico. Imposto sobre vendas é, portanto, um fato não aditivo.
Tabelas Dimensionais
As tabelas de dimensão armazenam informações descritivas sobre os fatos comerciais para ajudar a compreender e analisar melhor os dados. No exemplo apresentado na Tabela 2, Data, Localização da loja e Tipo de produto são entidades de dimensão, dando mais informações sobre os fatos do negócio. A quantidade total de vendas é uma medida importante a ser registrada, mas sem as dimensões, uma empresa não pode avaliar qual local da loja ou tipo de produto gera mais vendas.
Figura 1: Esquema estrela com tabelas de fatos e dimensões
Chave primária
A chave primária é uma coluna nas tabelas de dimensão que identifica registros exclusivos. A chave substituta será a chave primária para as dimensões que mudam lentamente.
chave estrangeira
As chaves estrangeiras unem duas tabelas (geralmente tabelas de fatos e dimensões). A chave primária em uma tabela de dimensão é uma chave estrangeira na tabela de fatos relacionada e é usada para fazer referência a essa dimensão específica.
Exemplo de modelagem de dados dimensionais
Vamos considerar um exemplo real de modelagem dimensional para uma empresa de varejo. Imagine uma rede de lojas que deseja analisar seus dados de vendas para obter insights sobre seu desempenho. Neste cenário, um modelo de dados dimensionais poderia ser aplicado da seguinte forma:
- Factos: Os principais fatos neste cenário seriam as transações de vendas. Esses fatos incluiriam dados como:
- Receita das vendas
- Quantidade de produtos vendidos
- Descontos aplicados
- Margens de lucro
- Dimensões: Várias dimensões forneceriam contexto aos dados de vendas:
- Dimensão do tempo: esta dimensão pode incluir atributos como ano, trimestre, mês, dia e até hora do dia. Por exemplo, poderia ajudar a responder perguntas como: “Quais foram nossas vendas em cada trimestre do ano passado?”
- Dimensão do Produto: Poderia descrever os produtos vendidos nas lojas. Pode incluir atributos como categoria do produto, marca e nome do produto. Por exemplo, poderia ajudar a responder perguntas como “Qual categoria de produto gerou mais receita?”
- Dimensão da Loja: este pode conter informações sobre as localizações individuais das lojas, como nome da loja, cidade, estado e gerente da loja. Poderia responder a perguntas como: “Qual loja teve as vendas mais altas no mês passado?”
- Dimensão do Cliente: poderia fornecer insights sobre dados demográficos do cliente, como idade, sexo e localização. Poderia ajudar a responder perguntas como: “Qual é o valor médio de compra por segmento de cliente?”
- Relacionamentos Fatos-Dimensões: A tabela de fatos, contendo as transações de vendas, teria chaves estrangeiras vinculando-a às tabelas de dimensões. Por exemplo, cada registro de transação de vendas pode ter chaves estrangeiras apontando para o horário, produto, loja e cliente correspondentes em suas respectivas tabelas de dimensão.
- Hierarquias: hierarquias dentro de dimensões ajudariam os usuários a navegar e analisar dados em diferentes níveis de granularidade. Por exemplo, a dimensão de tempo pode ter uma hierarquia que vai de ano para trimestre, de mês para dia.
- Medidas: As medidas seriam calculadas a partir dos fatos de vendas para fornecer informações valiosas. Por exemplo:
- Valor total de vendas
- Porcentagem média de desconto
- Porcentagem da Margem de Lucro
Com esse modelo de dados dimensionais implementado, o negócio de varejo poderia usá-lo para responder a uma ampla gama de perguntas, como:
- “Quais foram nossas vendas totais para cada categoria de produto no último trimestre?”
- “Qual loja teve o maior crescimento de vendas em relação ao mesmo período do ano passado?”
- “Qual é a margem de lucro média para produtos em cada categoria de produto?”
Projetando um modelo de dados dimensionais
Para entender o processo de projetando modelos dimensionais, vamos considerar o exemplo de uma linha de roupas que vende dois tipos de blusões - Nylon e Poliéster em suas duas lojas na Califórnia e na Pensilvânia. Os dados de amostra para o exemplo são mostrados na Tabela 2.
Etapa 1: Identificar os processos de negócios
Antes de modelar os dados, você deve encontrar os tipos de modelagem dimensional apropriados para seu modelo de dados. O processo de modelagem dimensional (ou qualquer modelagem de dados) começa com a identificação do processo de negócios que você deseja rastrear. Nesse caso, queremos acompanhar as vendas dos dois tipos de blusão.
Etapa 2: identificar fatos e dimensões em seu modelo de dados dimensionais
As informações em um modelo dimensional são categorizadas em dois tipos de tabelas – Factos e Dimensões. A próxima etapa é identificar os fatos de negócios que você deseja medir e suas dimensões associadas. Em nosso exemplo, a venda de blusão é o fato que queremos medir. Data, localização da loja (Califórnia e Pensilvânia) e tipo de produto (blusões de náilon e blusões de poliéster) são as dimensões que nos fornecem mais informações sobre o processo de vendas.
Etapa 3: identificar os atributos para dimensões
Depois de identificar as dimensões e fatos para seu processo de negócios, a próxima etapa é identificar os atributos e criar uma tabela dimensional separada para cada dimensão. Existem diferentes tipos de tabelas dimensionais para cada tipo de dados. Cada registro na tabela de dimensões deve ter uma chave exclusiva. Essa chave será usada para identificar os registros na tabela de dimensões e como chave estrangeira na tabela de fatos para referenciar a dimensão específica e juntá-la à tabela de fatos. As Tabelas 3-5 mostram os diferentes tipos de dimensões em um data warehouse em nosso exemplo de linha de vestuário.
Dimensão de Data |
Chave de data | Data | Dia |
10201 | 6/3/2018 | Domingo |
10202 | 6/4/2018 | Segunda-feira |
Tabela 3: Tabela de dimensões para data
Dimensão da Loja |
Chave da Loja | Nome da loja | Cidades | Estado |
151 | AngAngie'sparel | Los Angeles | Califórnia |
152 | AngAngie'sparel | Pittsburgh | Pennsylvania |
Tabela 4: Tabela de dimensões para loja
Dimensão do Produto |
Código Do Produto | Coleção | Material | Cor |
131620 | Blusão - coleção outono | Nylon | Laranja |
131571 | Blusão - coleção outono | poliéster | Preto |
Tabela 5: Tabela de dimensões para o produto
Etapa 4: definir a granularidade dos fatos comerciais
A granularidade refere-se ao nível de informações armazenadas em qualquer tabela. Por exemplo, em nosso exemplo, o valor das vendas é registrado diariamente; portanto, a granularidade, neste caso, é diária. As tabelas de fatos em um modelo dimensional devem ser consistentes com a granularidade pré-definida.
Etapa 5: armazenamento de informações históricas (dimensões que mudam lentamente)
Uma característica importante dos modelos dimensionais é que os atributos dimensionais podem ser facilmente modificados sem alterar as informações completas da transação. Por exemplo, a linha de roupas decide continuar o blusão de nylon da coleção de outono para a coleção de primavera e atualiza o nome na Coleção atributo. Fazer a atualização é fácil na tabela dimensional, mas perderemos nossos dados anteriores com a atualização. Se o objetivo de sua modelagem de dados e data warehouse for manter e armazenar o histórico, isso pode ser um problema. Dimensões que mudam lentamente ao longo do tempo são chamadas de Dimensões de Alteração Lenta. Além disso, a tabela de dimensão de tempo em um data warehouse é gerada automaticamente e captura a hora em que ocorrem diferentes transações. Você pode manter e armazenar dados históricos rastreando dimensões que mudam lentamente.
Saiba mais sobre como projetar uma modelagem dimensional automatizada com nosso guia passo a passo
O que é modelo de dados multidimensional em data warehouse?
Um modelo de dados multidimensional é uma implementação específica de modelagem de dados dimensionais adaptada para necessidades analíticas e de relatórios mais avançadas. Ele amplia os conceitos de modelagem de dados dimensionais regulares para fornecer recursos adicionais. Aqui estão alguns fatores importantes a serem observados sobre o modelo de dados dimensionais:
- Acrescenta complexidade ao introduzir o conceito de cubos de dados. Os cubos de dados armazenam dados pré-agregados, o que pode levar a uma estrutura mais complexa, porém mais eficiente, para análise multidimensional.
- Ele continua fácil de usar, mas oferece ainda mais recursos para os usuários interagirem com os dados usando ferramentas OLAP. Os usuários podem dinamizar, detalhar e analisar dados de múltiplas dimensões simultaneamente.
- Muitas vezes envolve tabelas de dimensões desnormalizadas e dados pré-agregados em cubos de dados. Embora isto possa aumentar as necessidades de armazenamento para os dados agregados, pode reduzir a redundância nas tabelas de dimensão, levando a um armazenamento mais eficiente.
- É ideal para análises avançadas, relatórios complexos e cenários onde o desempenho é crítico, como data warehouses em grande escala com dados históricos extensos.
Benefícios da modelagem dimensional
A modelagem dimensional ainda é a técnica de modelagem de dados mais usada para projetar data warehouses corporativos devido aos benefícios que ela proporciona. Esses incluem:
Otimizado para desempenho de consulta: os modelos dimensionais são projetados especificamente para consultas e relatórios, o que resulta em um desempenho de consulta mais rápido, especialmente para consultas analíticas complexas.
Recuperação de dados mais rápida: A modelagem de dados dimensionais mescla as tabelas no próprio modelo, o que permite que os usuários recuperem dados mais rapidamente de diferentes fontes de dados executando consultas de junção. O esquema desnormalizado de um data warehouse de modelo dimensional, em vez do normalizado no esquema floco de neve, é otimizado para executar consultas ad hoc. Como resultado, complementa muito os objetivos de business intelligence (BI) de uma organização.
Flflexível para mudar: Uma estrutura de modelagem dimensional torna o processo de armazenamento de dados extensível. O design pode ser facilmente modificado para incorporar novos requisitos de negócios ou ajustar o repositório central. Novas entidades podem ser adicionadas ao modelo ou o layout das existentes pode ser alterado para refletir os processos de negócios modificados.
Análise Multidimensional: os modelos dimensionais suportam análise multidimensional, para que os usuários possam explorar dados de várias dimensões e hierarquias simultaneamente.
Redundância de dados reduzida: Os modelos dimensionais geralmente envolvem desnormalização, o que reduz a redundância de dados e, consequentemente, melhora o desempenho da consulta em comparação com modelos altamente normalizados.
Limitações da modelagem de dimensões
Embora a modelagem dimensional seja uma técnica poderosa para necessidades analíticas e de relatórios, ela também tem algumas limitações e há cenários em que pode não ser a abordagem mais adequada. Portanto, é essencial avaliar se ele está alinhado com as características e requisitos dos seus dados e casos de uso. Aqui estão algumas limitações da modelagem dimensional e situações em que você pode considerar técnicas de modelagem alternativas:
- Relacionamentos Complexos: A modelagem dimensional pressupõe que as relações entre dimensões e fatos são relativamente simples. Se seus dados envolvem relacionamentos altamente complexos que não podem ser facilmente representados em um esquema estrela ou floco de neve, a modelagem dimensional pode não ser a melhor escolha.
- Mudanças frequentes de dados: os modelos dimensionais são projetados para análise histórica e podem não lidar bem com dados que mudam com frequência ou que exigem atualizações em tempo real. Nesses casos, um modelo transacional ou normalizado pode ser mais apropriado.
- Dados Esparsos: quando você lida com dados em que muitas combinações de dimensões não têm fatos associados (dados esparsos), os modelos dimensionais podem levar a armazenamento e desempenho de consulta ineficientes.
- Dados grandes e não estruturados: Se seus dados incluírem grandes quantidades de dados não estruturados ou semiestruturados (por exemplo, documentos de texto, feeds de mídia social), a modelagem dimensional por si só pode não ser suficiente. Pode ser necessário incorporar técnicas como bancos de dados NoSQL ou bancos de dados orientados a documentos.
Automação – Um divisor de águas para modelagem dimensional
Projetar modelos dimensionais é uma etapa essencial na construção da estrutura de um data warehouse empresarial. O processo pode ser simplificado com a ajuda de uma ferramenta robusta de automação de data warehouse, como Astera Construtor de Data Warehouse.
Com o Astera Construtor de DW, você pode construir rapidamente modelos dimensionais em um ambiente de desenvolvimento integrado sem código visual. As entidades podem ser desnormalizadas com simples arrastar e soltar e mesclagens. As funções da entidade (fatos e dimensões) podem ser atribuídas em massa, economizando um tempo valioso ao trabalhar com centenas de entidades. Além disso, o produto permite gerenciar dimensões que mudam lentamente com suporte integrado para SCD tipos 1, 2, 3 e 6.
Astera O DW Builder é uma plataforma de automação de data warehouse de ponta a ponta com recursos integrados de modelagem de dados dimensionais, suporte para uma ampla variedade de bancos de dados e aplicativos de CRM, recursos automatizados de mapeamento e carregamento de dados e integração nativa com plataformas de inteligência de negócios, como Tableau e Power BI.
See Astera Demonstração do DW Builder ou inscreva-se em um teste grátis para experimentar em primeira mão o poder da automação do data warehouse.
autores:
- Iqbal Ahmed