Data Warehouse Toolkit: Telecomunicações e Utilitários (Cap. 10) Vinícius Ramos Toledo Ferraz Prof. Dr. Ricardo Rodrigues Ciferri Agenda n Dicas para revisão de projetos n O que está errado neste estudo de caso? n Correções! n Dimensão Posição Geográfica Data Warehouse e OLAP dezembro de 2009 2 Dicas para revisão de projetos n Granularidade q Qual o grão da tabela de fatos? “Declarar uma definição clara e concisa do grão da tabela de fatos é fundamental para um esforço de modelagem produtivo” “Devem ser identificados os fatos que são consistentes com a declaração do grão” Data Warehouse e OLAP dezembro de 2009 3 Dicas para revisão de projetos n Granularidade q Qual o grão da tabela de fatos? Fato da transação de vendas a varejo no POS Chave da data (FK) Chave do produto (FK) Chave da loja (FK) Chave da promoção (FK) Número da transação POS (DD) Quantidade de vendas Total de vendas em dólar Valor de custo em dólar Valor de lucro bruto em dólar Grão = 1 linha por linha de transação POS Data Warehouse e OLAP Fato da cesta de mercado no POS Chave da data (FK) Chave do produto A (FK) Chave do produto B (FK) Chave da loja (FK) Chave da promoção (FK) Contagem da cesta Quantidade de vendas do produto A Quantidade de vendas do produto B Total de vendas em dólar do produto A Total de vendas em dólar do produto B Grão = 1 linha para cada par de produtos vendidos em um dia por loja e promoção dezembro de 2009 4 Dicas para revisão de projetos n Granularidade q Qual o grão da tabela de fatos? “Fatos agregados como totais anuais são perigosos, pois não são totalmente aditivos” “Ir para o nível mais baixo de granularidade possível não implica utilizar a maior quantidade de dados detalhados disponíveis na empresa” Data Warehouse e OLAP dezembro de 2009 5 Dicas para revisão de projetos n Granularidade q Qual o grão da tabela das tabelas de dimensão? “Cada dimensão deve utilizar um único valor com cada linha de medições da tabela de fatos” “Devemos recolher as hierarquias de atributos das dimensões, sempre que possível” Data Warehouse e OLAP dezembro de 2009 6 Dicas para revisão de projetos n Granularidade q Qual o grão da tabela das tabelas de dimensão? “A economia de disco com o snowflaking raramente compensa suas desvantagens em complexidade e desempenho da consulta” “Usar outriggers em um cluster de cardinalidade baixa ou atributos reaproveitados com freqüência deve ser a exceção, e não a regra” Data Warehouse e OLAP dezembro de 2009 7 Dicas para revisão de projetos n Dimensão Data A que se refere a Dimensão Data? Data Warehouse e OLAP dezembro de 2009 8 Dicas para revisão de projetos n Dimensões de degeneração q q O grão da tabela de fatos representa uma transação ou item de linha da transação? Se tivéssemos uma dimensão separada para as informações de cabeçalho de uma transação, seríamos redundantes? “Os números de controle operacional normalmente dão origem a dimensões vazias e são representados como dimensões de degeneração” Data Warehouse e OLAP dezembro de 2009 9 Dicas para revisão de projetos Data Warehouse e OLAP dezembro de 2009 10 Dicas para revisão de projetos n Chaves substitutas q Há identificadores operacionais sendo utilizados como chave? “Em vez de contar com chaves ou identificadores operacionais, recomendamos o uso de chaves substitutas no seu projeto dimensional” “Nenhuma chave do DW deve ser inteligente” Data Warehouse e OLAP dezembro de 2009 11 Dicas para revisão de projetos n Dimensões em excesso (ou em falta) q O projeto contém entre 5 e 15 dimensões? “Um número muito grande de dimensões normalmente é um sinal de que várias delas não são completamente independentes e devem ser combinadas. Data Warehouse e OLAP dezembro de 2009 12 Dicas para revisão de projetos Data Warehouse e OLAP dezembro de 2009 13 Agenda n Dicas para revisão de projetos n O que está errado neste estudo de caso? n Correções! n Dimensão Posição Geográfica Data Warehouse e OLAP dezembro de 2009 14 O que está errado neste projeto? n Data Warehouse de uma grande empresa de telecomunicações wireless Ca nal de ve nd as Lin ha de ser viç o X X Da ta Pr od ut o Bilhetagem do cliente X X X X Tráfego de detalhes da chamada X X X X Compras X X Estoque do distribuidor X X Vendas por canal X X X Chamadas de serviço X X X X X X X Itens de reparo X X X X X X X Data Warehouse e OLAP X X X E mp res a X X X Fu nci on ári o Cli ent e X Co nta do LR St atu s da ch am ad a Pla no de Tar ifa Sw itc h Fo rn ec ed or Tip o da ch am ad a X X X X X dezembro de 2009 15 O que está errado neste projeto? n Foco no processo de bilhetagem do cliente, pois deseja-se poder analisar... n n n n q Uso mensal Receita gerada pelo cliente (bilhetagem) Organização de vendas Plano de tarifas ...para medir o desempenho do canal de vendas e seu representante, além de analisar a eficácia dos planos de tarifas. Data Warehouse e OLAP dezembro de 2009 16 O que está errado neste projeto? n Dinâmica dos serviços da empresa: n n n n n n Todo mês, é gerada uma conta para cada linha de serviço (número telefônico) Cada linha de serviço é associada a um único cliente Um cliente pode ser várias linhas de serviço, que aparecem como itens de linha separados na mesma conta Cada linha de serviço possui seu próprio conjunto de métricas de bilhetagem, como o número de minutos usados e a tarifa de serviço mensal Há um único plano de tarifa associado a cada linha de serviço em uma dada conta. Mas tal plano pode mudar Um rep. de vendas (e sua empresa/canal de vendas respectivos) é associado a cada linha de serviço para avaliar a receita gerada por cada rep. de vendas. Data Warehouse e OLAP dezembro de 2009 17 O que está errado neste projeto? n A equipe de DW expõe orgulhosamente sua “obra-prima” da modelagem dimensional e aguarda o SEU pronunciamento... Dimensão Cliente ID do cliente (PK) Nome do cliente Cidade do cliente CEP do cliente Data do primeiro serviço Crédito original Dimensão Rep. Vendas Chave do rep. de vendas (PK natural) Nome do rep. de vendas ID da empresa de vendas Dimensão Empresa de Vendas ID da empresa de vendas (PK) ID do canal de vendas Fato da conta Conta nº (FK) ID do cliente (FK) Nº do rep. de vendas (FK) ID da empresa de vendas (FK) Cod. do plano de tarifas (FK) Cod. do tipo de plano de tarifas Nº de chamadas Nº total de minutos Nº de minutos de Roam Nº de minutos de longa dist. Tarifa de serviço mensal Tarifa de serviço mês anterior Tarifa de serviço anual Tarifa de roaming Tarifa de longa dist. Impostos Tarifas regulatórias Dimensão Conta Conta nº (PK) Data da conta Nº linha de serviço (FK) Dimensão Linha de Serviço Nº linha de serviço (PK) Cód. da área Cód. e prefixo da área Cód. ativação da linha de serviço Dimensão Plano de Tarifas Cód. plano de tarifas (PK natural) Abreviação do plano de tarifas Grão = 1 linha por conta a cada mês Data Warehouse e OLAP dezembro de 2009 18 Revisando o projeto... Dimensão Cliente ID do cliente (PK) Nome do cliente Cidade do cliente CEP do cliente Data do primeiro serviço Crédito original Dimensão Rep. Vendas Chave do rep. de vendas (PK natural) Nome do rep. de vendas ID da empresa de vendas Dimensão Empresa de Vendas ID da empresa de vendas (PK) ID do canal de vendas Conta nº (FK) ID do cliente (FK) Nº do rep. de vendas (FK) ID da empresa de vendas (FK) Cod. do plano de tarifas (FK) Cod. do tipo de plano de tarifas Nº de chamadas Nº total de minutos Nº de minutos de Roam Nº de minutos de longa dist. Tarifa de serviço mensal Tarifa de serviço mês anterior Tarifa de serviço anual Tarifa de roaming Tarifa de longa dist. Impostos Tarifas regulatórias Grão = 1 linha por conta a cada mês Data Warehouse e OLAP Dimensão Conta Fato da conta Conta nº (PK) Data da conta Nº linha de serviço (FK) X Dimensão Linha de Serviço Nº linha de serviço (PK) Cód. da área Cód. e prefixo da área Cód. ativação da linha de serviço Dimensão Plano de Tarifas Cód. plano de tarifas (PK natural) Abreviação do plano de tarifas O grão mais baixo seria: 1 linha por linha de serviço em uma conta dezembro de 2009 19 Revisando o projeto... Vamos criar uma dimensão data! Dimensão Cliente ID do cliente (PK) Nome do cliente Cidade do cliente CEP do cliente Data do primeiro serviço Crédito original Dimensão Rep. Vendas Chave do rep. de vendas (PK natural) Nome do rep. de vendas ID da empresa de vendas Dimensão Empresa de Vendas ID da empresa de vendas (PK) ID do canal de vendas Esta dimensão provavelmente terá o mesmo nº de tuplas que a tabela de fatos! Fato da conta Conta nº (FK) ID do cliente (FK) Nº do rep. de vendas (FK) ID da empresa de vendas (FK) Cod. do plano de tarifas (FK) Cod. do tipo de plano de tarifas Nº da linha de serviço (FK) Nº de chamadas Nº total de minutos Nº de minutos de Roam Nº de minutos de longa dist. Tarifa de serviço mensal Tarifa de serviço mês anterior Tarifa de serviço anual Tarifa de roaming Tarifa de longa dist. Impostos Tarifas regulatórias DD Dimensão Conta Conta nº (PK) Data da conta Dimensão Linha de Serviço Nº linha de serviço (PK) Cód. da área Cód. e prefixo da área Cód. ativação da linha de serviço Dimensão Plano de Tarifas Cód. plano de tarifas (PK natural) Abreviação do plano de tarifas Grão = 1 linha por linha de serviço em uma conta Data Warehouse e OLAP dezembro de 2009 20 Revisando o projeto... Fato da conta Chave da data da conta (FK) Conta nº (DD) ID do cliente (PK) ID do cliente (FK) Nome do cliente Nº do rep. de vendas (FK) Cidade do cliente ID da empresa de vendas (FK) CEP do cliente Cod. do plano de tarifas (FK) Data do primeiro serviçoEste snowflaking Cod. é do tipo de plano de tarifas Crédito original Nº da linha de serviço (FK) desnecessário! Nº de chamadas Nº total de minutos Dimensão Rep. Vendas Nº de minutos de Roam Chave do rep. de vendas (PK natural) Nº de minutos de longa dist. Nome do rep. de vendas Tarifa de serviço mensal ID da empresa de vendas Tarifa de serviço mês anterior Tarifa de serviço anual Tarifa de roaming Dimensão Empresa de Vendas Tarifa de longa dist. Impostos ID da empresa de vendas (PK) Tarifas regulatórias ID do canal de vendas Dimensão Cliente Dimensão Data da conta Chave da data da conta (PK) Data da conta Ano da data da conta ...mais atributos Dimensão Linha de Serviço Nº linha de serviço (PK) Cód. da área Cód. e prefixo da área Cód. ativação da linha de serviço Dimensão Plano de Tarifas Cód. plano de tarifas (PK natural) Abreviação do plano de tarifas Grão = 1 linha por linha de serviço em uma conta Data Warehouse e OLAP dezembro de 2009 21 Revisando o projeto... Vamos agupar este fato textual e seus atributos descritivos na Dimensão Plano de Tarifas! Fato da conta Dimensão Cliente ID do cliente (PK) Nome do cliente Cidade do cliente CEP do cliente Data do primeiro serviço Crédito original Dimensão Rep. Vendas Chave do rep. de vendas (PK natural) Nome do rep. de vendas ID da empresa de vendas Nome empresa de vendas ID do canal de vendas Nome canal de vendas Dimensão Data da conta Chave da data da conta (FK) Conta nº (DD) Chave da data da conta (PK) ID do cliente (FK) Data da conta Fatos textuais raramente são Ano da data da conta Nº do rep. de vendas (FK) uma boa escolha de projeto! Cod. do plano de tarifas (FK) ...mais atributos Cod. do tipo de plano de tarifas Nº da linha de serviço (FK) Dimensão Linha de Serviço Nº de chamadas Nº total de minutos Nº linha de serviço (PK) Nº de minutos de Roam Cód. da área Nº de minutos de longa dist. Cód. e prefixo da área Tarifa de serviço mensal Cód. ativação da linha de serviço Tarifa de serviço mês anterior Tarifa de serviço anual Tarifa de roaming Tarifa de longa dist. Dimensão Plano de Tarifas Impostos Tarifas regulatórias Cód. plano de tarifas (PK natural) Abreviação do plano de tarifas Grão = 1 linha por linha de serviço em uma conta Data Warehouse e OLAP dezembro de 2009 22 Revisando o projeto... Incentiva-se a implementação de chaves substitutas! Fato da conta Dimensão Cliente ID do cliente (PK) Nome do cliente Cidade do cliente CEP do cliente Data do primeiro serviço Crédito original Dimensão Rep. Vendas Chave do rep. de vendas (PK natural) Nome do rep. de vendas ID da empresa de vendas Nome empresa de vendas ID do canal de vendas Nome canal de vendas Chave da data da conta (FK) Conta nº (DD) ID do cliente (FK) Nº do rep. de vendas (FK) Cod. do plano de tarifas (FK) Nº da linha de serviço (FK) Nº de chamadas Nº total de minutos Nº de minutos de Roam Nº de minutos de longa dist. Tarifa de serviço mensal Tarifa de serviço mês anterior Tarifa de serviço anual Tarifa de roaming Tarifa de longa dist. Impostos Tarifas regulatórias Dimensão Data da conta Chave da data da conta (PK) Data da conta Ano da data da conta ...mais atributos Dimensão Linha de Serviço Nº linha de serviço (PK) Cód. da área Cód. e prefixo da área Cód. ativação da linha de serviço Dimensão Plano de Tarifas Cód. plano de tarifas (PK natural) Abreviação do plano de tarifas Descrição do plano de tarifas Código do tipo de plano de tarifas Descrição do tipo de plano de tarifas Grão = 1 linha por linha de serviço em uma conta Data Warehouse e OLAP dezembro de 2009 23 Revisando o projeto... Dimensão Cliente Chave do cliente (PK) ID do cliente (chave natural) Nome do cliente Cidade do cliente CEP do cliente Data do primeiro serviço Crédito original ...mais atributos Fato da conta Dimensão Data da conta Chave da data da conta (FK) Conta nº (DD) Chave da data da conta (PK) Chave do cliente (FK) Data da conta Ano da data da conta Chave do rep. de vendas (FK) Chave do plano de tarifas (FK) ...mais atributos Chave da linha de serviço (FK) Nº de chamadas Dimensão Linha de Serviço Nº total de minutos Chave da linha de serviço (PK) Nº de minutos de Roam Nº linha de serviço (chave natural) Fato atualizado anualmente Nº de minutos de longa dist. em meio Dimensão Rep. Vendas da área Tarifa de serviço mensal a fatos atualizados mensalmente! Cód. Cód. e prefixo da área Chave do rep. de vendas (PK) Tarifa de serviço mês anterior Prefixo da linha de serviço ID do rep. de vendas (chave natural) Tarifa de serviço anual Data de ativação da linha de serviço Nome do rep. de vendas Tarifa de roaming ID da empresa de vendas Tarifa de longa dist. Dimensão Plano de Tarifas Nome empresa de vendas Impostos ID do canal de vendas Tarifas regulatórias Chave do plano de tarifas (PK) Nome canal de vendas Cód. plano de tarifas (chave natural) Abreviação do plano de tarifas Descrição do plano de tarifas Código do tipo de plano de tarifas Descrição do tipo de plano de tarifas Grão = 1 linha por linha de serviço em uma conta Data Warehouse e OLAP dezembro de 2009 24 Revisando o projeto... Dimensão Cliente Chave do cliente (PK) ID do cliente (chave natural) Nome do cliente Cidade do cliente CEP do cliente Data do primeiro serviço Crédito original ...mais atributos Dimensão Rep. Vendas Chave do rep. de vendas (PK) ID do rep. de vendas (chave natural) Nome do rep. de vendas ID da empresa de vendas Nome empresa de vendas ID do canal de vendas Nome canal de vendas Versão final! Dimensão Data da conta Fato da conta Chave da data da conta (FK) Conta nº (DD) Chave do cliente (FK) Chave do rep. de vendas (FK) Chave do plano de tarifas (FK) Chave da linha de serviço (FK) Nº de chamadas Nº total de minutos Nº de minutos de Roam Nº de minutos de longa dist. Tarifa de serviço mensal Tarifa de serviço mês anterior Tarifa de roaming Tarifa de longa dist. Impostos Tarifas regulatórias Chave da data da conta (PK) Data da conta Ano da data da conta ...mais atributos Dimensão Linha de Serviço Chave da linha de serviço (PK) Nº linha de serviço (chave natural) Cód. da área Cód. e prefixo da área Prefixo da linha de serviço Data de ativação da linha de serviço Dimensão Plano de Tarifas Chave do plano de tarifas (PK) Cód. plano de tarifas (chave natural) Abreviação do plano de tarifas Descrição do plano de tarifas Código do tipo de plano de tarifas Descrição do tipo de plano de tarifas Grão = 1 linha por linha de serviço em uma conta Data Warehouse e OLAP dezembro de 2009 25 Dimensão Posição Geográfica n Utilizada quando a localização geográfica faz parte do conjunto de atributos q q q Pode ser uma rua, cidade, estado CEP ou mesmo um conjunto de latitudes e longitudes Cria-se uma tabela geográfica mestra, onde os dados são padronizados e depois reutilizados Cada linha desta tabela é um uma localização geográfica. Data Warehouse e OLAP dezembro de 2009 26 Dimensão Posição Geográfica n Outrigger de localização Notem que a hierarquia de localização não foi normalizada! Outrigger de localização: Normalização aceitável de uma dimensão com atributos de localização que, de outra forma, seriam demasiadamente replicados. Notem também que este exemplo não aplica algumas das dicas apresentadas neste capítulo ;-) Data Warehouse e OLAP dezembro de 2009 27 Dimensão Posição Geográfica n Integração com GIS q q Possibilita visualização espacial das consultas, permitindo evidenciar informações antes “escondidas” em planilhas e relatórios tradicionais Permite que o GIS tire proveito dos recursos espaciais dos SGBD’s Data Warehouse e OLAP dezembro de 2009 28 Perguntas Vinícius R. T. Ferraz vinicius_ferraz@dc.ufscar.br Data Warehouse e OLAP dezembro de 2009 29