INTEGRAÇÃO E PROCESSAMENTO ANALÍTICO DE INFORMAÇÃO Modelação Dimensional 3 António Manuel Silva Ferreira UNIVERSIDADE DE LISBOA FACULDADE DE CIÊNCIAS DEPARTAMENTO DE INFORMÁTICA asfe@di.fc.ul.pt
Sumário Dimensões de mudança lenta Técnicas para registar mudanças em dimensões Role- playing de dimensões Sinónimos e vistas Dimensões conformadas Matriz de processos Relatórios transdepartamentais Gestão de dados mestre Dimensões muito grandes Bifurcações Mini- dimensões 2
Dimensões de Mudança Lenta 1 Dimensão data atualizada frequentemente Precisa de acompanhar a evolução dos factos Exemplo Encomendas de produtos e atualização diária do data warehouse Na dimensão data: novo registo correspondente ao dia anterior Na tabela de factos: registos com encomendas efetuadas no dia anterior Datas atualizadas em condnuo Outras dimensões também vão sendo alteradas com o tempo Mas Vpicamente mudam mais lentamente Por vezes de forma inesperada e discreta Designam- se slowly changing dimensions 3
Dimensões de Mudança Lenta 2 Exemplos de mudanças lentas Vendedor muda de região Empregado muda de departamento Produto muda de secção na loja Cliente muda de morada Aluno muda de curso Por que não ligar tabelas de dimensões à dimensão data? Chaves estrangeiras para a data originariam snowflaking Esquema de dados mais complicado e menos inteligível Eficiência piora devido à necessidade de fazer junções de tabelas 4
Técnicas para Registar Mudanças Lentas Tipo 1: subsftuir o valor na tabela de dimensão Apropriada para correções nos dados Ex. corrigir erro na morada do cliente Tipo 2: acrescentar uma linha na tabela de dimensão Indicada para manter o histórico de alterações Ex. registar que o cliente mudou de morada Tipo 3: acrescentar uma coluna na tabela de dimensão Usada para representar realidade alternavva Ex. capturar segunda morada do cliente 5
Técnica de Tipo 1 para Mudanças Lentas SubsFtuir o valor na tabela de dimensão Apropriada para correções nos dados Cenário: produto muda de secção na loja (para aumentar vendas) ID Ref. Descrição Secção 123 MG2 Magalhães Educação ID Ref. Descrição Secção 123 MG2 Magalhães InformáVca Vantagem Fácil e rápida de concrevzar Desvantagens Não admite histórico de alterações: único valor é o mais recente Ex. como verificar se vendas melhoraram devido à mudança de secção? Necessário atualizar valores agregados pré- calculados 6
Técnica de Tipo 2 para Mudanças Lentas 1 Acrescentar uma linha na tabela de dimensão Indicada para manter o histórico de alterações Cenário: produto muda de secção na loja (para aumentar vendas) ID Ref. Descrição Secção 123 MG2 Magalhães Educação ID Ref. Descrição Secção 123 MG2 Magalhães Educação 456 MG2 Magalhães InformáVca Chave estrangeira para produto na tabela de factos Antes da mudança de secção: 123 Depois da mudança: 456 (valor válido até à próxima alteração) Requer uflização de chave subsftuta Chave natural (referência de produto) não é alterada 7
Técnica de Tipo 2 para Mudanças Lentas 2 Registos incluem datas e indicador de validade, e razão da alteração Chave natural permite agrupar registos de alterações ID Ref. Descrição Secção Início Val. Fim Val. Razão Em Vigor 123 MG2 Magalhães Educação 01.01.2010 22.03.2010 Vender mais 456 MG2 Magalhães InformáVca 23.03.2010 x Vantagens Regista todas as alterações que vão acontecendo ao longo do tempo Valores agregados pré- calculados convnuam válidos Produto convnua a estar afeto à secção educação no período em causa Desvantagem Acelera o crescimento das tabelas de dimensão 8
Técnica de Tipo 3 para Mudanças Lentas Acrescentar uma coluna na tabela de dimensão Usada para representar uma realidade alternavva Ex. categorizar de acordo com uma ontologia diferente Cenário: produto tem nova de categoria, mas anterior convnua válida ID Ref. Descrição Categoria 123 MG2 Magalhães Educação ID Ref. Descrição Categoria C. Altern. 123 MG2 Magalhães InformáVca Educação Vantagem Facilidade em passar de uma realidade para outra Desvantagens Pode ser necessário atualizar valores agregados pré- calculados Coluna extra diminui inteligibilidade da dimensão 9
Técnicas Híbridas para Realidades Alternativas 1 Mudanças previsíveis Mesma realidade alternavva pode ter várias versões Caso dpico: reorganizações/atualização periódica de mapas (overlays) Exemplo: atribuição anual de zonas a equipas de vendedores Técnica 2 parece ser adequada, mas: Interessa poder analisar em função de qualquer versão da realidade Como seriam as vendas de 2009 segundo o mapa de zonas de 2010? Pode ser aplicada generalização da técnica 3 EID Equipa Sede Zona Atual Zona 2008 Zona 2009 Zona 2010 1 Bons Melgas Lisboa Lumiar Benfica Carnide Lumiar 2 Insistentes Porto Paranhos Campanhã Bonfim Paranhos Cada versão da realidade corresponde a uma coluna extra 10
Técnicas Híbridas para Realidades Alternativas 2 Mudanças previsíveis (convnuação) Regularidade nas mudanças cria padrão para nome das colunas Ex. atribuição anual de zonas colunas Zona ano Cada coluna extra é aplicada a todas as linhas Pode ser usado o valor não aplicável Existe o problema do número de colunas ir crescendo Mudanças imprevisíveis E se atribuição de zonas em datas diferentes para cada equipa? Deixa de fazer senvdo colunas com nome Zona ano Técnica 2 permite registar datas de validade de cada atribuição de zona Comparação de vendas segundo dois mapas de zonas Mapa em vigor aquando de uma data selecionada + mapa atual Técnica 3 permite mudar rapidamente de realidade 11
Técnicas Híbridas para Realidades Alternativas 3 Mudanças imprevisíveis (convnuação) Ex. atribuição dessincronizada de zonas a equipas de vendedores ID EID Equipa Sede Zona Início Val. Fim Val. Zona R Zona Atual 1 1 Bons Melgas Lisboa Benfica 30.03.2008 10.03.2009 Benfica Carnide 5 1 Bons Melgas Lisboa Carnide 11.03.2009 Benfica Carnide ID EID Equipa Sede Zona Início Val. Fim Val. Zona R Zona Atual 1 1 Bons Melgas Lisboa Benfica 30.03.2008 10.03.2009 Benfica Lumiar 5 1 Bons Melgas Lisboa Carnide 11.03.2009 29.11.2009 Benfica Lumiar 9 1 Bons Melgas Lisboa Lumiar 30.11.2009 Benfica Lumiar Zona R (de referência) é zona de cada equipa numa data específica 12
Registo de Mudanças Lentas em Dimensões Técnicas 1 e 2 são as mais usadas Técnica 3 incomum (reportado 1% numa palestra da indústria) Técnicas híbridas Aproveitam o melhor de cada técnica Mas complexidade aumenta Decisores podem senvr dificuldades Regras de negócio ditam escolha da técnica Nenhuma técnica serve para todos os casos Exemplo: número de telefone muda InúVl preservar o histórico: usar técnica 1 Necessário histórico: usar técnica 2 13
Role- Playing de Dimensões 1 Tabela de factos pode referir várias vezes a mesma dimensão Caso dpico: várias datas no mesmo facto Cada data desempenha um papel diferente Ex. data de encomenda, de faturação, de despacho, Ponto de vista do decisor Existem várias tabelas de dimensões com datas Posso arrastar colunas de qualquer dessas dimensões O que realmente acontece Uma tabela com todas as datas: poupa espaço em disco e manutenção Dimensões data são simuladas com vistas ou sinónimos de SQL Chaves estrangeiras na tabela de factos referenciam vistas ou sinónimos 14
Role- Playing de Dimensões 2 CREATE TABLE dimdata ( id NUMERIC(9,0) IDENTITY(1,1) PRIMARY KEY, ano NUMERIC(4,0) NOT NULL, mês NUMERIC(2,0) NOT NULL, dia NUMERIC(2,0) NOT NULL, );! - - Sinónimos para a mesma tabela de datas. CREATE SYNONYM dimdataencomenda FOR dimdata; CREATE SYNONYM dimdatafatura FOR dimdata;! CREATE TABLE factvenda ( idtransccao NUMERIC(12,0) PRIMARY KEY, dataencomenda NUMERIC( 9,0) REFERENCES dimdataencomenda(id), datafactura NUMERIC( 9,0) REFERENCES dimdatafatura(id), cliente NUMERIC( 9,0) REFERENCES dimcliente(id), produto NUMERIC( 6,0) REFERENCES dimproduto(id), euros NUMERIC( 9,2) NOT NULL, ); 15
Role- Playing de Dimensões 3 CREATE TABLE dimdata ( id NUMERIC(9,0) IDENTITY(1,1) PRIMARY KEY, ano NUMERIC(4,0) NOT NULL, mes NUMERIC(2,0) NOT NULL, dia NUMERIC(2,0) NOT NULL, );! - - Vistas permitem mudar o nome dos atributos consoante a dimensão em causa. CREATE VIEW dimdataencomenda(iddataencomenda, anoencomenda, mesencomenda, diaencomenda) AS SELECT id, ano, mes, dia FROM dimdata; CREATE VIEW dimdatafatura(iddatafatura, anofatura, mesfatura, diafatura) AS SELECT id, ano, mês, dia FROM dimdata;! CREATE TABLE factvenda ( idtransccao NUMERIC(12,0) PRIMARY KEY, dataencomenda NUMERIC( 9,0) REFERENCES dimdataencomenda(id), datafactura NUMERIC( 9,0) REFERENCES dimdatafatura(id), cliente NUMERIC( 9,0) REFERENCES dimcliente(id), produto NUMERIC( 6,0) REFERENCES dimproduto(id), euros NUMERIC( 9,2) NOT NULL, ); 16
Dimensões Conformadas 1 Data warehouse reúne vários data marts departamentais Data marts podem (devem) ter dimensões sobre as mesmas envdades Ex. encomendas e apoio a cliente usam dimensões data e cliente Matriz de processos (bus matrix) Mostra dimensões comuns aos vários processos de negócio IdenFfica dimensões comuns aos processos Processo de Negócio Dimensões Data Produto Loja Cliente Encomendas x x x x Apoio a Cliente x x x Dimensões são conformadas quando parflham atributos Dimensão cliente em encomendas tem: código, nome, e morada Dimensão cliente em apoio a cliente tem: código, nome, e idade 17
Dimensões Conformadas 2 Permitem relatórios transdepartamentais Designado drill- across Várias tabelas de factos envolvidas Time Dimension Finished Goods Inventory Orders Shipments Customer Dimension Procedimento em dois passos 1. Interrogações separadas a cada tabela de factos Product Dimension 2. Junção de resultados através de atributos com o mesmo nome Customer Inventory Customer Sales Exemplo Qual a relação entre o número de chamadas para o apoio a clientes e as encomendas do produto XK- 21 em Espanha? 1. a) nos factos de apoio a clientes: filtrar por país, agrupar por cliente, e contar chamadas; b) nos factos de encomendas: filtrar por país e produto, agrupar por cliente, e somar valor das encomendas 2. Juntar dois resultados com base no número de cliente 18
Master Conformed Dimensions Definidas por um comité de execuvvos (dimension authority) Para cada dimensão conformada mestre Reunir representantes dos processos de negócio Chegar a consenso sobre todos os atributos a incluir a) Comuns a todos os processos, nomeadamente o idenvficador de linha b) Específicos de cada processo Cliente ID e outros atributos comuns Atributos só de encomendas Atributos só de apoio a clientes Passagens de dados do data warehouse para os data marts Dimensões iguais à mestre: normalmente por cópias locais Cópia de subconjunto de atributos (só os relevantes a cada processo) Cópia de subconjunto das linhas (ex. uma parte dos produtos) 19
Gestão de Dados Mestre 1 Serviço que gere dados críticos comuns aos processos de negócio Centrado na qualidade dos dados da organização Dados mestre são versão única da verdade Ex. cada cliente tem um só registo mestre, devidamente validado Por oposição a cada processo ter o seu próprio registo do cliente Relação com os sistemas operacionais Responde a pedidos de dados com valores corretos e coerentes Ex. os vários sistemas operacionais usam os mesmos dados de cliente Aceita, para validação, pedidos de registo de dados novos Relação com os data warehouses Simplifica a limpeza e integração de dados de várias fontes Facilita o carregamento de dados nas dimensões conformadas mestre 20
Gestão de Dados Mestre 2 1. Criar processo dedicado à gestão de dados mestre Equipa deve incluir técnicos e responsáveis pelo negócio AVvidade condnua para assegurar o correto uso e parvlha de dados 2. Integrar dados existentes Várias ilhas de dados consolidadas numa versão única da verdade Esforço muito significavvo: dados nunca ficarão 100% corretos 3. Reformular sistemas e processos Reprogramar sistemas operacionais e alterar processos de negócio para passarem a usar o serviço de gestão de dados mestre 4. Aumentar massa crívca de apoio Vantagens dos dados mestre atravessam toda a organização Pouca qualidade dos dados propaga- se a todos os processos (GIGO ) 21
Dimensões Muito Grandes Dimensão cliente pode ser muito grande ou monstra Dezenas ou centenas de atributos 3000 atributos no contexto de empresa de telemarke@ng Eventualmente milhões de linhas 100 milhões de clientes em companhias de cartões de crédito Sujeita a atualizações frequentes Tipicamente a mais diƒcil de modelar Podem surgir problemas sérios de desempenho Simplicidade do desenho pode ficar compromevda Duas opções: bifurcações e mini- dimensões Em ambos os casos, ideia é transferir alguns atributos para outra tabela 22
Bifurcações (Outriggers) 1 Resultam de snowflaking de uma dimensão muito grande Transferir atributos que mudam pouco para outra tabela Critérios para a escolha de atributos Relacionados entre si Mudarem em conjunto Mudarem devagar Procedimento 1. Criar dimensão separada de desvno dos atributos 2. Remover esses atributos da dimensão original 3. Colocar chave estrangeira para dimensão separada 23
Bifurcações (Outriggers) 2 Exemplo Dados demográficos da região do cliente mudam com pouca frequência Dimensão separada para população por escalão etário, sexo, escolaridade Evitar repefção de blocos de valores para clientes da mesma região Vantagens Dimensão original passa a ocupar menos espaço em disco Potenciais ganhos de desempenho Mais fácil atualizar dados demográficos Desvantagens Perda de simplicidade: duas tabelas em vez de uma Pode ser parcialmente resolvido com uma vista Junção extra de tabelas pode diminuir desempenho 24
Bifurcações (Outriggers) 3 Exemplos na dimensão cliente Dados demográficos da região onde vive Fact Table Customer Key (FK) More Foreign Keys Facts Customer Dimension Customer Key (PK) Customer ID (Natural Key) Customer Salutation Customer First Name Customer Surname Customer City Customer County County Demographics Key (FK) Customer State and more Data da primeira compra na loja County Demographics Outrigger Dimension County Demographics Key (PK) Total Population Population under 5 Years % Population under 5 Years Population under 18 Years % Population under 18 Years Population 65 Years and Older % Population 65 Years and Older Female Population % Female Population Male Population % Male Population Number of High School Graduates Number of College Graduates Number of Housing Units Homeownership Rate and more Fact Table Transasction Date Key (FK) Customer Key (FK) More Foreign Keys Facts Neste caso, para cada cliente, os valores na bifurcação não mudam Customer Dimension Customer Key (PK) Customer ID (Natural Key) Customer Salutation Customer First Name Customer Surname Customer City Customer State Customer Attributes Date of 1st Purchase (FK) Date of 1st Purchase Dimension Date of 1st Purchase Key (PK) Date of 1st Purchase Date of 1st Purchase Month Date of 1st Purchase Year Date of 1st Purchase Fiscal Month Date of 1st Purchase Fiscal Quarter Date of 1st Purchase Fiscal Year Date of 1st Purchase Season and more 25
Mini- Dimensões 1 Dimensões monstras têm tendência a mudar rapidamente Ex. atributos de cliente, como idade, filhos, rendimentos, ImpraVcável ter mais linhas devido a alterações em alguns atributos Pode ser criada mini- dimensão para atributos quentes Guarda combinações possíveis de valores desses atributos Tabela de factos com chave estrangeira adicional para mini- dimensão Dimensão monstra não é afetada por mudanças nesses atributos Critérios para escolha de atributos Mudarem com frequência Podem não estar relacionados entre si Interesse em acompanhar alterações Valores condnuos poderem ser convervdos em intervalos discretos 26
Mini- Dimensões 2 Valores em mini- dimensões converfdos em intervalos Para reduzir número de combinações possíveis de valores Ex. idade faixa etária, rendimentos ]< a] ; [a b[ ; [ b[ Vantagens Combinações de valores na mini- dimensão podem ser reuflizadas Novas linhas na mini- dimensão só são criadas quando necessárias Desvantagens Valores em intervalos fixos (impravcável alterar posteriormente) Mini- dimensão pode tornar- se muito grande devido a combinações Pode ser resolvido acrescentando outra mini- dimensão Mini- dimensão desligada da dimensão Ligação entre mini- dimensão e dimensão através da tabela de factos 27
Mini- Dimensões 3 Exemplo na dimensão cliente Antes: atributos quentes guardados na dimensão Uma alteração em algum desses atributos cria uma nova linha na dimensão Customer Dimension Customer Key (PK) Customer ID (Natural Key) Customer Name Customer Address Customer Date of Birth Customer Date of 1st Order Age Gender Annual Income Number of Children Marital Status Customer Dimension Customer Key (PK) Customer ID (Natural Key) Customer Name Customer Address Customer Date of Birth Customer Date of 1st Order Customer Demographics Dimension Customer Demographics Key (PK) Customer Age Band Customer Gender Customer Income Band Customer Number of Children Band Customer Marital Status Fact Table Customer Key (FK) Customer Demographics Key (FK) More Foreign Keys Facts Depois: atributos quentes guardados na mini- dimensão Uma alteração pode criar uma nova linha na mini- dimensão, se ainda não exisvr Sempre necessária uma nova linha na tabela de factos Dimensão cliente não cresce devido a alterações nos atributos quentes 28
Alguns Conceitos da Modelação Dimensional Tabela de Dimensão Bifurcação Atributos Medidas Dimensões Dimensões Degeneradas Ro le- Playing de Dimensões Chave SubsFtuta Duas Tabelas de Factos Tabelas de Dimensões Fonte: Adventure Works Sample Database 29
Bibliografia Ralph Kimball e Margy Ross, The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling, Wiley, 2002 Capítulos 3, 4, 5, 6 Ralph Kimball e Margy Ross, The Kimball Group Reader: Relentlessly Prac@cal Tools for Data Warehousing and Business Intelligence, Wiley, 2010 Secções 1.8, 5.4, 6.2, 9.8, 9.17, 9.18, 9.21, 10.1, 12.2 30