Complementação dos Dados no Contexto do Processo de ETL
Lívia de Souza Ribeiro Maria Cláudia Cavalcanti Ronaldo Ribeiro Goldschmidt
Mestrado em Sistemas e Computação
Departamento de Engenharia de Sistemas do Instituto Militar de Engenharia liviaribeiro14@gmail.com, yoko@ime.eb.br, ronaldo_goldschmidt@yahoo.com.br
Ano de Inclusão: Fev/2008 Época esperada de conclusão: Mar/2010
Etapa: Seminário em andamento
Resumo: Os dados contidos em um Data Warehouse (DW) típico são provenientes de diversas fontes. É necessário que os valores contidos no DW apresentem boa qualidade para que numa futura análise dos mesmos seja apresentado resultado coerente. Entretanto, dados de algumas fontes podem não estar disponíveis em determinadas datas/períodos. Assim, é comum ocorrer ausência de valores na tabela de fatos do DW. No processo de carga deste ambiente, conhecido como ETL (“Extration, Tranformation, Load�), a etapa de Transformação tem como objetivo principal melhorar a qualidade dos dados, amenizando os problemas existentes na base. Assim sendo, esta etapa também trata dos dados ausentes no ambiente de DW. Uma das abordagens utilizadas na resolução do problema da ausência dos valores nas tabelas é a técnica de imputação de dados. Esta técnica consiste no preenchimento das ausências em uma tabela com novos valores. Entre as técnicas de imputação, a mais utilizada é a observação dos valores presentes na tabela para a geração de um novo valor. No entanto, esta técnica não leva em consideração o enriquecimento da tabela. No contexto do processo ETL os dados das dimensões podem ser utilizados para enriquecimento da tabela de fatos. A proposta deste trabalho, portanto, é o desenvolvimento de uma estratégia para tratar do problema de ausência de valores na tabela de fatos de um DW, durante o processo de ETL, considerando o enriquecimento da mesma, no sentido de obter melhores resultados de imputação.
Palavraschave: Imputação de dados, Data Warehouse, proveniência de dados, processo de ETL.
1. Introdução
A necessidade de ferramentas para análises dos dados de uma organização e o crescente poder de processamento dos computadores impulsionaram a geração de sistemas para armazenar dados oriundos de diversas fontes de forma consolidada, que são conhecidos como sistemas de Data Warehouse (DW). Os DW têm como principal objetivo dar suporte às ferramentas de Sistemas de Apoio a Decisões (SAD), as quais auxiliam decisões gerenciais [Kimball, 1998].
Assim, os DW visam à integração de dados de diversas fontes e possibilitam um acesso consolidado ao grande volume de dados resultante.
Por abrangerem grandes volumes de dados, os DW requerem investimento volumoso de tempo e recursos. Além disso, como seus dados são a base para decisões estratégicas para uma organização, é um requisito importante que sejam dados de qualidade. Assim, se existem inconsistências, são necessárias transformações nos dados, tornandoos consistentes e coerentes. Caso contrário, os dados analisados poderão levar a decisões erradas.
O processo de Extração, Transformação e Carga (Extration, Transformation, Load – ETL) tem como função a extração dos dados de diversas fontes, transformação dos dados conforme as regras do negócio e a carga dos mesmos dados em um DW [Kimball e Caserta, 2004]. Na etapa de extração, os dados são capturados das múltiplas fontes, sendo necessárias diferentes ferramentas, adaptadas para cada fonte. Ferramentas de extração devem ser periodicamente ativadas para capturar dados ao longo do dia a dia de um sistema fonte. Informações de origem e do momento em que um dado surge no contexto de um sistema fonte (e.g. o total de vendas da loja A na data 26/05/2009) são indicadoras da proveniência daquele dado. A proveniência em base de dados é uma abordagem que permite descrever as informações históricas dos dados [Buneman, Khanna e Tan, 2001]. Assim, tipicamente, os dados de um DW já vêm acompanhados de sua proveniência.
A transformação é a etapa que trata da limpeza e integração dos dados. A limpeza de dados compreende é responsável por procurar as inconsistências e os erros que podem ocorrer durante a extração das bases de dados dos sistemas fonte ou na fusão das diversas bases no DW. Esta etapa também detecta e corrige a ausência de valores nos atributos também chamados de variáveis ou colunas oriundos das diversas fontes [Rahm e Do, 2005].
Em um esquema estrela [Kimbal, 1998] típico de DW, a tabela de fatos contém informações sobre alguma ação que as dimensões realizaram em conjunto [Wu e Barbará, 2002]. Isto é, uma combinação de identificadores de dimensão determina um valor de uma medida na tabela de fatos. No entanto, algumas combinações podem não constar nos fatos.
Para exemplificar, considere a tabela de fatos de vendas, a qual envolve as dimensões produto, fabricante, tempo. Uma tupla na tabela de fatos representa a venda do produto p, do fabricante f realizada em um dia t, que corresponde a um valor q, indicando a quantidade vendida. O fato da tupla <p,f,t,q> não constar na tabela de fatos não significa que a venda daquele produto/fabricante naquele dia não tenha sido realizada. Pode ser que esta informação não tenha sido capturada por alguma falha na comunicação com o sistema fonte. Para disponibilizar dados de qualidade para o usuário do DW, este problema necessita ser tratado.
Com intuito de amenizar os prejuízos que o problema da ausência de dados traz, existem diversas abordagens para a complementação destes valores [Wu e Barbará, 2002] [Farhangfar et al, 2007][Soares, 2007]. A imputação de dados é a principal técnica de complementação, a qual consiste em substituir o valor ausente com um novo dado gerado a partir da análise da base nos registros onde há ausência de valor. No entanto, entre as abordagens citadas, não foram encontradas técnicas de complementação que consideram o enriquecimento das tabelas com dados de proveniência como forma de atingir melhores resultados. No caso do DW, isso se torna possível, pois as tabelas de fatos podem ser enriquecidas a partir dos dados das tabelas dimensão. Além disso, no contexto do que se chama atualmente de DW 2.0 [Inmon,
2009], onde há uma tendência de integração maior entre os metadados e o modelo de dados, podese enriquecer ainda mais a tabela de fatos.
Este artigo descreve o desenvolvimento de uma estratégia de imputação nas tuplas da tabela de fatos em que os atributos de medida (variáveis) apresentam valores ausentes.
Atributos de proveniência, encontrados nas dimensões, serão utilizados para enriquecer a tabela de fatos, possibilitando, desta forma, melhores valores de imputação. Neste trabalho, considerase que as dimensões não apresentam ausência de dados, estando, portanto, focado somente na imputação de uma medida da tabela de fatos. A seção 2 do artigo mostra uma visão geral dos conceitos básicos sobre complementação de dados e na 3 é apresentada a estratégia desenvolvida para tratar o problema da ausência com atributos de enriquecimento.
Nas seções 4, 5 e 6 são relatados o estado atual do trabalho, os trabalhos relacionados e os resultados já obtidos, respectivamente. Na última seção, as referências utilizadas no estudo..
2. Fundamentação Teórica
Em qualquer levantamento de dados há possibilidade de erros de ausência de valores de diversas origens, tais como: erros em dados capturados automaticamente, ou dados negados de entrevistados em pesquisas, falhas humanas, erros de sistemas, entre outros [Wu e Barbará, 2002] [Farhangfar et al, 2007][Soares, 2007].
Algumas pesquisas desenvolvidas para o tratamento da ausência dos dados levam em consideração somente valores ausentes em um atributo contido na base, isto é, problema univariado. Já outras pesquisas são desenvolvidas para as bases que apresentam problemas não somente em um atributo, como também em vários atributos contidos na base de dados, conhecidos como ausência multivariada de dados [Castaneda et al, 2008].
Várias técnicas que tratam o problema da ausência dos dados foram desenvolvidas e aplicadas em áreas onde há a necessidade de descoberta de conhecimento contido nas bases dos sistemas. Entre as abordagens disponíveis como solução, se encontram: a eliminação dos registros ou atributos que apresentam dados ausentes, complementação de dados ou soluções híbridas. Complementação é todo tipo de abordagem usada para solucionar o problema de dados ausentes [Soares, 2007].
Uma das abordagens de complementação é a imputação de dados. O método de imputação consiste em oferecer novos valores para todos os valores ausentes de uma base, com intuito de preenchêla completamente. Para cada valor ausente numa base de dados, um novo é inserido, sendo esse valor consequência de algum algoritmo usado na imputação. Existem diversos algoritmos utilizados para imputar dados [Soares, 2007] [Farhangfar et al, 2007].
Diversos trabalhos, como [Farhangfar et al, 2007][Soares, 2007][Castaneda et al, 2008], utilizam o algoritmo kNN (k-Nearest Neighbour ou, em português, kVizinhos mais Próximos), uma abordagem de imputação baseada em instâncias [Goldschmidt e Passos, 2005]. A ideia principal do algoritmo kNN é, ao receber um registro com informação ausente, recuperar os k registros mais similares sem informação ausente e que estejam disponíveis na base de dados, a fim de completar, a partir dos dados destes registros, as lacunas de informação. A similaridade entre registros é expressa por alguma medida de distância entre registros, sendo a distância euclidiana uma opção bastante utilizada. O valor ausente a ser imputado deverá ser calculado com base nos valores presentes nos k vizinhos mais próximos encontrados. A média aritmética entre os valores presentes é um dos métodos mais empregados no cálculo do novo valor.
3. Caracterização da Contribuição
Como dito anteriormente, uma vez que os DW são utilizados para a tomada de decisão, é preciso que sejam tratados os problemas de ausência na tabela de fatos. Segundo Hong et al
[2008], há duas importantes questões decorrentes da ausência de dados: o resultado da mineração de dados seria confuso e pouco confiável, e a falta do valor aumenta significativamente a incerteza dos dados no DW.
Este trabalho, portanto, tem como objetivo prover um mecanismo para imputação de valores ausentes que leve em consideração a proveniência dos dados em um ambiente de DW.
Neste ambiente, os dados de proveniência que estão nas dimensões do DW podem ser usados para enriquecer a tabela de fatos na busca por um maior grau de semelhança entre os dados, resultando numa imputação com melhores resultados. Para tanto, foi desenvolvida uma estratégia de imputação a ser incorporada nos processos ETL.
Figura 3.1 As quatro etapas da estratégia de imputação de dados utilizando atributos de proveniência A figura 3.1 mostra a visão resumida da estratégia de imputação, a qual será incorporada na etapa de transformação dos dados do processo de ETL. A primeira etapa tem como objetivo definir quais atributos de proveniência serão utilizados para o enriquecimento da tabela de fatos. Esses atributos de proveniência, que podem ser vistos como metadados, indicam a origem dos dados e o momento em que eles foram gerados. Os usuários serão responsáveis por selecionar os atributos das dimensões que melhor representam proveniência e, desses atributos, o conjunto de combinações será definido. O conjunto será criado por uma heurística de combinação onde todas as dimensões devem ser representadas por, pelo menos, um atributo.
A segunda etapa da estratégia é responsável por separar as tuplas completas, isto é, aquelas que não apresentam ausência no atributo a ser complementado, das tuplas que apresentam ausência no referido atributo. A partir das tuplas completas, a base de treino é criada, onde valores ausentes são aleatoriamente introduzidos.
A etapa seguinte realiza uma série de testes com o conjunto de atributos selecionado na primeira etapa. Para cada combinação de atributos, aplicase o processo de imputação na base de treino e são armazenados os resultados para uma análise posterior que definirá qual melhor combinação a ser utilizada na base real. Neste passo, o método de imputação usado na estratégia é o kNN, por ser um método que apresenta bons resultados em trabalhos de imputação de dados [Farhangfar et al, 2007][Soares, 2007]. Ao final do processamento imputação de cada combinação de atributos, calculase a taxa de erro dos valores imputados, observando cada tupla com valor ausente e comparando com o valor original da base, usando a métrica RAD (Relative Absolute Derivation)[Soares, 2007]. A métrica é calculada da seguinte forma:
onde é o valor original na base completa do atributo X da tupla i, é valor imputado nesta tupla i e n é o total de tuplas ausentes no atributo X.
A quarta etapa consiste em, a partir deste conjunto de testes e das taxas de erro obtidas, determinar qual combinação de atributos apresenta melhores resultados de imputação. Assim, a combinação que apresente a menor taxa de erro deve ser a escolhida para realizar a efetiva imputação dos dados na base real, isto é, a base inicial que apresenta o problema de ausência.
O algoritmo kNN e a combinação de atributos escolhida serão aplicados na base real para a imputação dos dados ausentes.
4. Estado Atual do Trabalho
O trabalho se encontra em fase de desenvolvimento da aplicação que executará a estratégia de imputação, utilizando atributos de proveniência. A aplicação está sendo desenvolvida na linguagem de programação Java, utilizando o sistema gerenciador de banco de dados MySQL.
Especificações de testes iniciais já foram realizadas. Uma base de dados sintéticos para os testes também está sendo preparada. O mecanismo para simular ausência de valores está pronto para ser aplicado na estratégia.
5. Trabalhos Relacionados
Há na literatura um número razoável de trabalhos que veem a importância da qualidade dos dados de um DW. No entanto, não foram encontrados muitos trabalhos sobre complementação de dados em DW.
Wu e Barbará [2002] tratam do problema de ausência em DW. A abordagem consiste na utilização de dois modelos para o processo de imputação. Primeiro a regressão linear, onde são verificadas as medidas ausentes e a melhor combinação de atributos, e após é realizada a efetiva imputação, com o modelo loglinear. O trabalho trata do problema da ausência com abordagens estatísticas. Nos resultados descritos naquele artigo, a abordagem proposta obteve um melhor resultado comparando com uma abordagem estatística comum, a imputação por média. A abordagem de imputação foi adicionada ao framework chamado Quasi-Cube, utilizado para análise dos dados. Entretanto, os autores não abordam o problema no contexto do processo de ETL, mas na etapa de análise dos dados. Além disso, também não consideram o enriquecimento da tabela de fatos, aplicando a técnica de imputação com a tabela de fatos tradicional, isto é, contendo somente as chaves estrangeiras que identificam os registros das dimensões.
6. Avaliação dos Resultados
A aplicação da estratégia para realizar um conjunto de experimentos para comprovar que atributos de proveniência melhoram os resultados na tarefa de imputação ainda está em desenvolvimento. Para tal tarefa, foi pesquisada uma base para realização dos testes. O TPC (Transaction Processig Performance Council) [TPCH, 2009] é uma organização que disponibiliza benchmarks de banco de dados, usados na avaliação de sistemas. Dentre os benchmarks disponíveis, existe o TPCH, o qual define uma aplicação de data warehouse e visa o armazenamento de dados históricos relativos a pedidos e vendas de uma organização.
Esse benchmark foi escolhido porque sua estrutura apresenta um ambiente típico de DW.
Houve, no entanto, necessidade de mudança no esquema do TPCH, para um esquema estrela típico. Uma dimensão, a qual indica o tempo, foi acrescentada ao esquema. Essas mudanças foram realizadas com o uso do PDI (Pentaho Data Integrator) [Pentaho, 2009], também conhecido como Kettle, uma ferramenta que tem como objetivo realizar o processo de ETL em sistemas de DW. A ferramenta faz parte do Pentaho, projeto o qual agrega subprojetos na comunidade de código aberto para a análise de dados.
A partir da aplicação da estratégia, alguns testes iniciais serão realizados. Parâmetros desses testes já foram definidos. No primeiro momento, os testes serão realizados em bases com tamanho de 1GB e 5GB e porcentagem de ausência de 10%, 30% e 50% de tuplas na medida em que deve ser imputada. Essas porcentagens são utilizadas, pois bases reais apresentam, em geral, estas mesmas porcentagens de ausência [Soares, 2007]. O mecanismo de geração de valores ausentes na base para os testes foi realizado pelo aplicativo Eraser [Cataneda, 2008], o qual atribui, de forma aleatória, ausência em campos de um atributo.
Como, até o momento, não foram encontradas estratégias semelhantes à proposta para uma comparação, a avaliação levará em conta o diferencial obtido com a estratégia deste trabalho, se comparado à imputação sem enriquecimento. A métrica com valores ausentes na tabela de fatos será imputada de três formas (observando os parâmetros de tamanho da base e de total de ausência): (i) somente com atributos da tabela de fatos, isto é, as chaves das dimensões; (ii) somente com atributos de enriquecimento oriundos das dimensões, sem considerar os atributos da tabela de fatos; e (iii) considerar tanto atributos da tabela de fatos, quanto os atributos de enriquecimento. Com base nas taxas de erro obtidas será possível observar que (i) obtém resultados inferiores a (ii), confirmando que a tabela com enriquecida traz melhores resultados. O teste (iii) verificará se a junção dos atributos próprios da tabela de fatos e de enriquecimento resulta numa resposta melhor no processo de imputação.
7. Referências
Buneman, P.; Khanna, S.; Tan, W. Why And Where: A Characterization of Data Provenance. In: Intern. Conference on Database Theory. London, V. 1973, p. 316330, 2001.
Batista, G. E. A. P. A.; Monard, M. C. An Analysis of Four Missing Data Treatment Methods for Supervised Learning. Applied Artificial Intelligence, V. 17, N. 56, p. 519
533, 2003.
Inmon, B. DW 2.0 � Architecture for the Next Generation of Data Warehouse. Disponível em: <http://www.informationmanagement.com/issues/20060401/10511111.html> Acesso em: Mai/2009.
Castaneda, R.; Ferlin, C.; Goldschmidt, R.; Soares, J. A.; Carvalho, L. A. V.; Choren, R.
Aprimorando Processo de Imputação Multivariada de Dados com Workflows. XXIII Simpósio Brasileiro de Banco de Dados – SBBD, CampinasSP, 2008.
Castaneda, R. Um Ambiente de Imputação Sequencial Para Cenários Multivariados.
2008. 79 f. Dissertação (Mestrado) – Instituto Militar de Engenharia, Rio De Janeiro, 2008.
Farhangfar, A.; Kurgan, L.; Pedrycz, W. A Novel Framework for Imputation of Missing Values in Databases. IEEE Trans. Syst., Man, and Cybernetics, V. 37(5), p. 692–709, 2007.
Goldschmidt, R.; Passos, E. Data Mining: Um Guia Prático. Rio de Janeiro: Elsevier, 2005.
261 p.
Kimball, R. The Data Warehouse Toolkit. São Paulo: Makron Books, 1998. 387 p.
Kimball, R.; Caserta, J. The Data Warehouse ETL Toolkit : Practical Techniques for Extracting, Cleaning, Conforming, and Delivering Data. Indianapolis: Wiley Publishing, 2004. 526 p.
Pentaho. Pentaho Data Integration. Pentaho. Diponível em: <www.pentaho.com>. Acesso em: Fev/2009.
Rahm, E.; Do, H. H. Data Cleaning: Problems and Current Approaches. In: IEEE Bulletin Of The Technical Committee On Data Engineering, v. 23, no. 4, 2000.
Soares, J. A. PréProcessamento em Mineração de Dados: Um Estudo Comparativo em Complementação. 2007. 232 f. Tese (Doutorado) – Universidade Federal Do Rio De Janeiro, Coordenação dos Programas de PósGraduação de Engenharia, Rio De Janeiro, 2007.
TPCH. TPC Benchmark H � Standard Specification Revision 2.8.0. Disponível em: <
http://www.tpc.org/tpch/spec/tpch2.8.0.pdf> Acesso em: Fev/2009.
Wu, X; Barbará, D. Modeling and Imputation of Large Incomplete Multidimensional Datasets. In: Proc. of the 4th Int. Conf. on Data Warehousing and Knowledge Discovery, p.
286 – 295, 2002.