Data Warehousing junta vidas separadas!

11
——————————- David Campos Luís Ribeiro Marco Pereira {david.campos,luisribeiro,marcopereira}@ua.pt IEETA - Instituto de Engenharia Electrónica e Telemática de Aveiro Universidade de Aveiro, Portugal 1. Introdução Estrudes e Maria Antonieta foram separadas à nascença! A história começa na Amadora, quando um incêndio devasta o apartamento 2º frente-esquerdo localizado num bairro social da Amadora, mais conhecido como “Bairro de Hollywood”. Estrudes é levada pelo senhor do Talho para Aveiro, enquanto Maria Antonieta fica a mercê de qualquer mão, sendo levada para Aveiro por uma mulher com dificuldades em engravidar, Célia a cigana. Alguns anos depois, Maria Antonieta e Estrudes têm destinos completamente diferentes, não sabendo da existência uma da outra: Estrudes vive na casa dos Salgado, uma família rica e é gerente da cadeia de hipermercados Salgado. O senhor do Talho trouxe-a para aquela casa e a família decidiu fingir que a mãe de Estrudes tinha morrido após o parto. O segredo é guardado pela família Salgado. Maria Antonieta tem 28 anos, tal como a sua irmã gémea. Vive no campo, com a sua mãe Célia a cigana, mais precisamente numa aldeia perto de Aveiro, a Vessada. O seu ritual diário é cuidar do minimercado da terra deixado pelo seu falecido pai. Como boa gestora que é, Maria Antonieta rapidamente expande o seu negócio para a aldeia mais próxima, Nariz, abrindo um supermercado de dimensões nunca antes vistas na aldeia, era o falatório geral, um supermercado nunca antes visto! No entanto, tudo mudou! Quando Maria Antonieta foi à Loja do Cidadão em Aveiro, para requerer o cartão do Cidadão e acaba por se encontrar com a sua irmã gémea, Estrudes, na fila para tirar a senha para ser atendida no posto 45 B à esquerda das finanças. Mais uma vez o cartão do cidadão une o que o destino separou! Instantaneamente, o impacto de um olhar profundo mudou as suas vidas para sempre! Após os testes de ADN efectuados na CliAve por debaixo do Banco BPI perto da rotunda das Pontes, descobriram o que o tempo tinha apagado: são irmãs gémeas! Ao saber do sucedido, o senhor do Talho resolve contar os pormenores do início da vida das duas jovens gestoras de vendas a retalho. Revelando a verdadeira identidade do seu pai biológico: Josefino Repolho. Estrudes Repolho e Maria Antonieta Repolho decidem honrar o seu falecido pai biológico e fundem as suas duas empresas de vendas a retalho, dando origem aos Supermercados Repolho Lda. 2. Analise de requesitos Estrudes e Maria Antonieta como empresárias de sucesso estão sempre à procura de novas formas de optimizarem o desempenho da empresa Supermercados Repolho Lda. Para tal sentiram a necessidade de possuir uma ferramenta de análise que lhes permitisse analisar e integrar os dados que provenientes das sub-empresas. A escolha recaiu na construção de um Data Warehouse cujas fontes seriam a base de dados centralizada Oracle da sub-empresa Salgado (Figura 1), a folha de cálculo do Excel do minimercado Pedra na Vessada (Figura 2) e a base de dados em MySQL do Supermercado Pedra em Nariz (Figura 3). A complexidade de cada uma destas fontes de dados reflecte directamente a dimensão da loja que representa. O minimercado Pedra é uma tipica pequena loja de bairro, com uma base de clientes leais. Os clientes são praticamente todos conhecidos pelo nome, por isso não existia a necessidade de incluir os seus nomes na folha do Excel se mantêm o registo dos negócios do dia. Por outro o Supermercado em Nariz já tem uma dimensão considerável, tendo por isso lançado um programa de cartões de lealdade antes da fusão das empresas, o que já implica manter algum registo dos clientes. A cadeia de hipermercados Salgado é constituída por três lojas, todas na região de Aveiro. Antes da fusão das empresas esta loja também tinha o seu próprio programa de cartões de

description

Uma bela história em que o data warehousing ajuda a unir o que o destino separou :p Quem disse que os trabalhos de cadeiras de PhD não podem ser animados

Transcript of Data Warehousing junta vidas separadas!

Page 1: Data Warehousing junta vidas separadas!

——————————-

David CamposLuís Ribeiro

Marco Pereira{david.campos,luisribeiro,marcopereira}@ua.pt

IEETA - Instituto de Engenharia Electrónica e Telemática de AveiroUniversidade de Aveiro, Portugal

1. Introdução

Estrudes e Maria Antonieta foram separadas à nascença! A história começa na Amadora, quando um incêndiodevasta o apartamento 2º frente-esquerdo localizado num bairro social da Amadora, mais conhecido como“Bairro de Hollywood”. Estrudes é levada pelo senhor do Talho para Aveiro, enquanto Maria Antonieta fica amercê de qualquer mão, sendo levada para Aveiro por uma mulher com dificuldades em engravidar, Célia acigana. Alguns anos depois, Maria Antonieta e Estrudes têm destinos completamente diferentes, não sabendoda existência uma da outra: Estrudes vive na casa dos Salgado, uma família rica e é gerente da cadeia dehipermercados Salgado. O senhor do Talho trouxe-a para aquela casa e a família decidiu fingir que a mãede Estrudes tinha morrido após o parto. O segredo é guardado pela família Salgado. Maria Antonieta tem 28anos, tal como a sua irmã gémea. Vive no campo, com a sua mãe Célia a cigana, mais precisamente numaaldeia perto de Aveiro, a Vessada. O seu ritual diário é cuidar do minimercado da terra deixado pelo seufalecido pai. Como boa gestora que é, Maria Antonieta rapidamente expande o seu negócio para a aldeia maispróxima, Nariz, abrindo um supermercado de dimensões nunca antes vistas na aldeia, era o falatório geral,um supermercado nunca antes visto! No entanto, tudo mudou! Quando Maria Antonieta foi à Loja do Cidadãoem Aveiro, para requerer o cartão do Cidadão e acaba por se encontrar com a sua irmã gémea, Estrudes, nafila para tirar a senha para ser atendida no posto 45 B à esquerda das finanças. Mais uma vez o cartão docidadão une o que o destino separou! Instantaneamente, o impacto de um olhar profundo mudou as suasvidas para sempre! Após os testes de ADN efectuados na CliAve por debaixo do Banco BPI perto da rotundadas Pontes, descobriram o que o tempo tinha apagado: são irmãs gémeas! Ao saber do sucedido, o senhor doTalho resolve contar os pormenores do início da vida das duas jovens gestoras de vendas a retalho. Revelandoa verdadeira identidade do seu pai biológico: Josefino Repolho. Estrudes Repolho e Maria Antonieta Repolhodecidem honrar o seu falecido pai biológico e fundem as suas duas empresas de vendas a retalho, dandoorigem aos Supermercados Repolho Lda.

2. Analise de requesitos

Estrudes e Maria Antonieta como empresárias de sucesso estão sempre à procura de novas formas deoptimizarem o desempenho da empresa Supermercados Repolho Lda. Para tal sentiram a necessidade depossuir uma ferramenta de análise que lhes permitisse analisar e integrar os dados que provenientes dassub-empresas. A escolha recaiu na construção de um Data Warehouse cujas fontes seriam a base de dadoscentralizada Oracle da sub-empresa Salgado (Figura 1), a folha de cálculo do Excel do minimercado Pedra naVessada (Figura 2) e a base de dados em MySQL do Supermercado Pedra em Nariz (Figura 3). A complexidadede cada uma destas fontes de dados reflecte directamente a dimensão da loja que representa. O minimercadoPedra é uma tipica pequena loja de bairro, com uma base de clientes leais. Os clientes são praticamentetodos conhecidos pelo nome, por isso não existia a necessidade de incluir os seus nomes na folha do Excel semantêm o registo dos negócios do dia. Por outro o Supermercado em Nariz já tem uma dimensão considerável,tendo por isso lançado um programa de cartões de lealdade antes da fusão das empresas, o que já implicamanter algum registo dos clientes. A cadeia de hipermercados Salgado é constituída por três lojas, todas naregião de Aveiro. Antes da fusão das empresas esta loja também tinha o seu próprio programa de cartões de

Page 2: Data Warehousing junta vidas separadas!

lealdade. Após a fusão das sub-empresas foi decidido que os programas de cartões de lealdade seriam tambémunificados num só: o programa de cartões de lealdade “Repolho Feliz”.

Figura 1: Base de dados centralizada da Sub-empresa Salgado

Page 3: Data Warehousing junta vidas separadas!

Figura 2: Colunas da folha de calculo do Excel do Mini mercado Pedra

Figura 3: Base de dados do Supermercado Pedra

Reuniões com Estrudes e Maria Antonieta revelaram o que pretendem obter deste projecto de construção deum Data Warehouse: uma ferramenta que lhes permita tomar decisões estratégicas com base no desempenhodas vendas de cada produto ao longo do tempo, sem no entanto comprometer a independência da gestãode cada loja. Foi-nos explicado que estavam convencidas de que o posicionamento de um produto dentro dasuperfície comercial (e até mesmo na prateleira) tinha um impacto relevante nas vendas, e que esse impactopoderia ser explorado para a criação de novas promoções, ou para a obtenção de preços mais favoráveis juntoaos fornecedores, mediante o reposicionamento do produto fornecido. Este teria de ser um dos aspectos mais

Page 4: Data Warehousing junta vidas separadas!

relevantes a ser explorado pelo Data Warehouse. Outro aspecto que influencia directamente as vendas é operfil dos clientes. Se por um lado a base de clientes do minimercado é extremamente leal e homogénea, omesmo não pode ser dito dos clientes do supermercado e hipermercado. Torna-se por isso relevante saber osprodutos mais apelativos a cada tipo de consumidor, e mais importante do que isso saber quando os compram.Espera-se que seja possível identificar grupos de clientes de forma a criar promoções que atraiam estes gruposde clientes ao mesmo tempo que assegurem uma boa margem de lucro. Deve ser também possível analisaro desempenho de cada produto em cada loja da empresa, de tal forma a que seja possível tomar decisõescom base na procura de cada produto em cada loja. Novamente procura-se ter vantagem nas negociaçõescom fornecedores de forma a obter preços mais favoráveis O aspecto final que deve ser contemplado sãoas próprias promoções: quer sejam propostas pelos fornecedores ou criadas pela empresa Repolho Lda., aspromoções afectam directamente as vendas, inflacionando a venda de alguns produtos durante a sua duração,muitas vezes a custa de outros produtos equivalentes. Como tal estas devem ser levadas em consideração emqualquer ferramenta que analise as vendas.

Uma análise das fontes de dados revelou alguns possíveis problemas com os objectivos propostos, para osquais foi necessário negociar soluções de compromisso. Para começar a quando da fusão das empresas nãoexistiu um esforço real para a modernização das infra-estruturas presentes no minimercado Pedra. Isto querdizer que apesar de por vontade das administradoras este dever ser incluído nos planos para a construçãodo Data Warehouse, a qualidade dos dados fornecidos pela sua folha de Excel é bastante pobre. Não temindicação do posicionamento dos produtos, das promoções aplicáveis a cada produto ou dos clientes. Pararesolver estes problemas chegou-se ao seguinte acordo que tanto Estrudes e Maria Antonieta aceitaram. Emrelação aos clientes é sabido que se trata de clientes leais, que partilham praticamente todos os mesmoperfil. Decidiu-se criar um cliente genérico do minimercado, que será representativo desse perfil (isto porquenos foi comunicado que o aparecimento de clientes ocasionais é negligivel, de acordo com o estado docomercio tradicional em Portugal). Quanto a ausência do posicionamento dos produtos, dado que a áreatotal da loja é sensivelmente correspondente a uma secção dos super e hipermercados, e que de qualquerparte do minimercado se consegue ver a caixa registadora, todos os produtos vendidos no minimercado sãoconsiderados como tendo sido vendidos nas área junto as caixas registadoras dos super e híper mercados dogrupo. Por outro lado os super e hiper mercados fazem bastantes vendas a clientes sem cartão de lealdade.Novamente estes clientes vão ser agrupados em grupos genéricos que os representem.

3. Modelo dimensional

Para suportar o Data Warehouse foram identificadas cincon dimensões:

• Calendário: representa a dimensão temporal.• Produto: representa os detalhes de cada produto.• Loja: representa a loja onde o produto foi vendido.• Promoção: representa as promoçoes aplicaveis ao produto no a quando da venda.• Cliente: representa o cliente que comprou o produto.

Page 5: Data Warehousing junta vidas separadas!

3.1. Calendário

Figura 4: Dimensão Calendário

3.2. Produto

Figura 5: Dimensão Produto

Nesta dimensão foram identificados três atributos que potencialmente podem mudar ao longo do tempo.Estes são o nome, o sector e a prateleira. A estratégia adoptada para lidar com mudanças nesta dimensão édo tipo 4, onde os valores mais antigos são guardados numa tabela de história, acrescidos da data em queestiveram em vigor. Foi escolhida esta estratégia de forma a preservar os dados do posicionamento de umproduto na loja ao longo do tempo. Isto permitirá a realização de análises comparativas de desempenho, oque vai de encontro aos requisitos definidos por Estrudes e Maria Antonieta.

3.3. Loja

Figura 6: Dimensão Loja

Page 6: Data Warehousing junta vidas separadas!

3.4. Promoção

Figura 7: Dimensão Promoção

Nesta dimensão o atributo DataFim foi identificado como podendo mudar ao longo do tempo. Isto deve-sea introdução de promoções sem data prevista para o seu final, ou ao prolongamento do prazo de validade dasmesmas. Ambas as situações não requerem a manutenção de qualquer tipo de história, por isso foi adoptadauma estratégia do tipo 1 para lidar com as possíveis alterações.

3.5. Cliente

Figura 8: Dimensão Cliente

Nesta dimensão foram identificados dois atributos que podem mudar ao longo do tempo, localidade ecodigopostal. A estratégia adoptada para lidar com mudanças nesta dimensão é do tipo 1. Esta estratégia foiescolhida após uma reunião com Estrudes e Maria Antonieta, onde nos foi dito que ao mudar a cidade deresidência o cliente essencialmente transfere os seus hábitos de consumo para a nova residência, não sendoassim relevante manter um registo das cidades, ou do código postal onde residiu anteriormente.

Page 7: Data Warehousing junta vidas separadas!

3.6. Modelo Completo

Figura 9: Modelo dimensional completo

Cada linha da tabela de factos representa um artigo presente numa factura emitida para um cliente. Avenda de múltiplos artigos iguais é agregada na medida Quantidade, sendo que o preço final cobrado pelosprodutos é representado na medida Total. Dado que em cada factura emitida um cliente pode levar váriosprodutos distintos foi sentida a necessidade de incluir uma dimensão degenerada representada pelo atributoCodigoVenda. Este atributo permite reconstituir a factura original emitida a um cliente, com todos os produtosdistintos que lá se encontravam.

4. ETL

Para o processo de ETL (extract, transform, and load) foi decidido que deveria ser criada uma staging areadividida em duas secções, uma onde se possa trabalhar sobre os dados recolhidos das três fontes disponiveis,e outra para onde os dados já processados devem ser enviados, antes de serem carregados.

Page 8: Data Warehousing junta vidas separadas!

Figura 10: Vista geral do processo de ETL

4.1. Convergência de dados

Processo GlobalNo mapeamento das datas a partir das bases de dados (Tabela 1), é necessário verificar se a data já existe no

Data Warehouse. As datas que não existem no sistema serão automaticamente adicionadas, caso já existam,ficarão relacionadas com as já existentes. Desta forma, a replicação de dados é evitada.

O mapeamento dos dados do cliente (Tabela 2) será efectuado utilizando o número de Bilhete de Identidade

Page 9: Data Warehousing junta vidas separadas!

Tabela 1: Mapeamento de atributos da tabela Calendário.

SCD Processo Origem#Data - - surrogate keyAno - Prog1 db1.Venda.Data, db2.Venda.Data, db3.movimentos.DataMes - Prog1 db1.Venda.Data, db2.Venda.Data, db3.movimentos.DataSemana - Prog1 db1.Venda.Data, db2.Venda.Data, db3.movimentos.DataDia - Prog1 db1.Venda.Data, db2.Venda.Data, db3.movimentos.DataHora - Prog1 db1.Venda.Data, db2.Venda.Data, db3.movimentos.DataMinuto - Prog1 db1.Venda.Data, db2.Venda.Data, db3.movimentos.Data

(BI), tirando partido da sua unicidade. Desta forma, caso o BI não exista no Data Warehouse, o cliente seráautomaticamente adicionado. Caso o cliente possua cartão das duas lojas, a relação será estabelecida com ojá existente no sistema. No entanto, o minimercado Pedra não possui informação relativa aos clientes, peloque será criado um perfil geral que irá representar todos estes clientes.

Tabela 2: Mapeamento de atributos da tabela Cliente.

SCD Processo Origem#CodigoCliente - - surrogate keyNome - Prog2 db1.Cliente.Nome, db2.Cliente.NomeDataNascimento - Prog2 db1.Cliente.DataNascimento, db2.Cliente.DataNascimentoLocalidade - Prog2 db1.Cliente.Localidade, db2.Cliente.LocalidadeCodigoPostal - Prog2 db1.Cliente.CodigoPostal, db2.Cliente.CodigoPostal

Relativamente aos dados do Produto (Tabela 3), são necessárias duas tarefas distintas para executar omapeamento com sucesso.

Uma vez que cada uma das lojas tem as suas categorias de produtos específicas, é necessário normalizar ascategorias e sub-categorias. Com a ajuda de Estrudes e Maria Antonieta, foi definido um conjunto de estritode categorias e sub-categorias, de forma a respeitar todos os produtos existentes nas várias lojas. Desta forma,foi definido um conjunto de regras para estabelecer a relação entre as categorias antigas e as novas. Assim,quando os produtos são adicionados das bases de dados Salgado e do supermercado Pedra, todos ficarão comcategorias e sub-categoria devidamente normalizadas.

De realçar que quando um produto é adicionado, o Código de Barras é verificado. Ou seja, caso este já existano sistema, isto indica que o produto já existe, logo este não será adicionado para evitar replicação de dados.Esta estratégia resolve outro problema grave, a ausência de dados relativos às categorias e sub-categorias dosprodutos na folha de Excel no minimercado Pedra. De forma a resolver esta falha, todos os produtos das outrasbases de dados terão de ser adicionados em primeiro. Posteriormente, aquando da adição de um produto,será verificado se o Código de Barras do Produto já existe no sistema, caso exista este não será adicionadopara evitar replicação. Caso não exista, ao produto será atribuída uma categoria e sub-categoria geral. Noentanto, uma vez que as outras lojas são de dimensão muito superior ao mini-mercado Pedra, esta situaçãoserá estritamente excepcional.

TERMINAR DE ESCREVER ISTORelativamente ao posicionamento dos produtos, é necessário recolher informação relativa ao sector e

prateleira. No entanto, apenas a base de dados dos Salgado possui toda a informação necessária. Para resolvero problema,

Tabela 3: Mapeamento de atributos da tabela Produto.

SCD Processo Origem#CodigoProduto - - surrogate keyNome - Prog3 db1.Produto.nome, db2.Produto.nome, db3.movimentos.ProdutoCategoria - Prog3 db1.Categoria.Nome, db2.Categoria.NomeSub-Categoria - Prog3 db1.SubCategoria.Nome, db2.SubCategoria.NomeSector - Prog3 db1.Posição.Sector, db2.Posicionamento.SectorPrateleira - Prog3 db1.Posição.Prateleira

O mapeamento dos dados das lojas é relativamente directo. Apenas os hipermercados Salgado tem várias

Page 10: Data Warehousing junta vidas separadas!

lojas, contendo toda a informação relativa a cada uma delas. Relativamente às outras lojas, esta informaçãoserá adicionada manualmente, uma vez que não existe em qualquer uma das bases de dados.

Tabela 4: Mapeamento de atributos da tabela Loja.

SCD Processo Origem#CodigoLoja - - surrogate keyNome - Prog5 db1.Loja.NomeLocalidade - Prog5 db1.Loja.LocalidadeCodigoPostal - Prog5 db1.Loja.CodigoPostal

Tabela 5: Mapeamento de atributos da tabela Promoção.

SCD Processo Origem#CodigoPromocao - - surrogate keyNome - Prog6 db1.promocao.Nome, db2.promocao.Nome,Categoria - Prog6 db1.Promoção.TipoPromoção, db2.Promoção.TipoPromoçãoDescricao - Prog6 db1.Promoção.Descrição, db2.Promoção.DescriçãoDataInicio - Prog6 db1.Promoção.DataInicio, db2.Promoção.DataInicioDataFim - Prog6 db1.Promoção.DataFim, db2.Promoção.DataFim

Tabela 6: Mapeamento de atributos da tabela Venda Produto.

SCD Process Source#CodigoVendaProduto - - surrogate key#CodigoProduto - - dw.Produtos.CodigoProduto#CodigoCliente - - dw.Cliente.CodigoCliente#Data - - dw.Calendário.Data#CodigoLoja - - dw.Loja.CodigoLoja#CodigoPromocao - - dw.Promocao.CodigoPromocaoCodigoVenda - Prog7 db1.promocao.Nome, db2.promocao.Nome,IVA - Prog7 db1.Promoção.TipoPromoção, db2.Promoção.TipoPromoçãoQuantidade - Prog7 db1.Promoção.Descrição, db2.Promoção.DescriçãoPreçoUnitário - Prog7 db1.Promoção.DataInicio, db2.Promoção.DataInicioTotal - Prog7 db1.Promoção.DataFim, db2.Promoção.DataFim

4.2. Janela Temporal

As lojas que constituem o grupo Supermercados Repolho Lda. possuem horários de funcionamento dis-tintos. O minimercado Pedra é classificado como fazendo parte do comércio tradicional. O seu horário defuncionamento é das 8h as 19h aos dias da semana, e das 8h da manha as 13h aos sábados O ficheiro deExcel que regista os detalhes da venda é enviado por correio electrónico no final de cada dia de trabalho,para ser processado. Por outro lado o supermercado Pedra funciona das 9h as 22, toda a semana. Depoisdeste horário são efectuadas verificações de rotina que terminam as 0h, e os primeiros funcionários chegamao supermercado cerca das 8h da manhã. Isto implica que existe um janela de 8h na qual os dados referentesas vendas de cada dia podem ser acedidos. O mesmo se passa com os hipermercados (sendo que neste casose encontram encerrados ao domingo de tarde). Tendo em conta este horários de funcionamento foi decididoque o carregamento de dados das fontes para a primeira secção da stagging area deve ser feita a partir das0h de cada dia.

5. Conclusões

Com a construção deste Data Warehouse a empresa Supermercados Repolho Lda. possui agora uma plataformaque pode utilizar para criar outras ferramentas de análise de dados. Este data warehouse responde a quasetodos os requisitos propostos por Estrudes e Maria Antonieta. A notável excepção é que não existe forma directade relacionar os produtos com o seu respectivo fornecedor, sendo que um dos objectivos seria a obtenção de

Page 11: Data Warehousing junta vidas separadas!

informação que permita obter melhores condições na aquisição de produtos. Isto deve-se ao data warehouseestar essencialmente focado nas vendas aos consumidores. De forma a cumprir este objectivo, seria desejávela construção de outra estrela baseada no processo de gestão de stocks. Ambas partilhariam a dimensão querepresenta os produtos, o que permitiria depois combinar os factos presentes em cada uma.

Como trabalho futuro, seria possível melhorar a gestão de stocks e de encomendas de todos as lojas. Paraisso, seria necessário adicionar uma nova estrela no modelo dimensional, estabelecendo relações entre asencomendas efectuadas aos fornecedores e o stock presente em cada uma das lojas. No entanto, para imple-mentar esta solução, existe um problema bastante grave, que é a ausência de dados relativos a encomendase stock no mini-mercado Pedra. Este problema poderia ser facilmente resolvido através da migração destasresponsabilidades para o super-mercado Pedra. Ou seja, toda a gestão de encomendas e stock do mini-mercadoPedra estaria dependente do super-mercado Pedra. No entanto, esta solução iria quebrar uma das principaisexigências de Estrudes e Maria Antonieta: manter a independência de gestão de todos os mercados. Destaforma, para implementar esta solução, teria de haver uma renegociação de requisitos com as empresárias desucesso.

6. Notas

Qualquer semelhança entre a historia apresentada na introdução e outras não é pura coincidencia.