Você está na página 1de 4

Gerao Automtica de Cdigo SQL para Dimenses em um Ambiente de Data Warehouse

Igor Peterson Oliveira Santos, Juli Kelle Gois Costa, Andr Vinicius Rodrigues Passos Nascimento, Methanias Colao Rodrigues Jnior
Departamento de Sistemas de Informao Universidade Federal de Sergipe Itabaiana-SE, Brasil {igorp.ita,julikelle,mjrse}@hotmail.com, andreviniciusnascimento@gmail.com
Resumo O termo Data Warehouse adotado pelas organizaes como sinnimo de repositrio de dados de alta qualidade. Desse modo, identificar problemas com validade, consistncia e integridade dos dados representa uma preocupao constante das empresas no processo de utilizao dos sistemas de suporte deciso. A codificao manual de rotinas para povoamento de dimenses apontada como uma das principais causas da m qualidade dos dados em um Data Warehouse. Erros de codificao, estratgias incorretas de atualizao, e m interpretao das estratgias de armazenamento de histrico representam os principais problemas que podem ser gerados pela codificao manual. Acreditamos que o uso da gerao automtica de cdigo para rotinas de povoamento possa substituir a codificao manual, reduzir o nmero de erros de codificao e eliminar interpretaes incorretas na codificao de estratgias de atualizao. Nesse trabalho, apresentamos os primeiros resultados da utilizao de uma ferramenta para gerao automtica de cdigo para rotinas de povoamento de dimenses. Experimentos iniciais apresentam fortes evidncias de que possvel capturar a semntica necessria para gerar automaticamente rotinas de povoamento para os principais tipos de dimenses, e contribuir para o aumento da produtividade e reduo de erros de codificao na construo dessas rotinas. Keywords: Data Warehouse; Qualidade de Dados; Gerao Automtica de Cdigo

I. INTRODUO Data Warehouse (DW) representa um banco de dados histrico, separado lgica e fisicamente do ambiente de produo de uma organizao, concebido para dar suporte s anlises e decises gerenciais. A ideia por trs dessa abordagem selecionar, integrar e organizar dados provenientes do ambiente operacional e fontes externas para que possam ser acessados de forma mais eficiente e para que possam representar uma nica realidade da organizao [1] [2] [3] [4]. A importncia de um ambiente de Data Warehouse est diretamente relacionada com a qualidade dos dados que so armazenados. Desse modo, identificar e solucionar problemas com validade, consistncia e integridade dos

dados representam preocupaes constantes das empresas no processo de utilizao dos sistemas de suporte deciso. Os problemas com qualidade de dados podem surgir em vrias fases do processo de carga, conhecido como ETL (Extract, Transform and Load), especialmente no estgio de povoamento [5]. As rotinas de povoamento de dimenses [2] [6] [7] [8], desenvolvidas na ltima fase do processo de carga desse ambiente so, geralmente, codificadas manualmente com o objetivo de capturar os tratamentos especficos que devem ser dados a esses artefatos. Essa codificao manual, assim como os erros nas estratgias de implementao do tratamento de histrico so apontadas, dentre outras, como principais causas para a m qualidade de dados em um Data Warehouse [5]. O objetivo desse trabalho desenvolver uma ferramenta de gerao automtica de cdigo e avaliar a relao existente entre sua utilizao e a qualidade dos dados que so movidos, gerados e atualizados durante o processo de povoamento de um Data Warehouse. A ferramenta desenvolvida busca substituir a codificao manual, total ou em parte, de rotinas em linguagem SQL para o povoamento de dimenses em um ambiente de Data Warehouse. Dentre os principais desafios para a gerao automtica de cdigo, est a coleta e definio de metadados necessrios para o processo de povoamento. O conjunto de metadados precisa conter informaes que possam contemplar as vrias caractersticas das rotinas de povoamento, assim como as variaes que possam ocorrer em diferentes ambientes e aplicaes. Inicialmente, foi realizado um levantamento bibliogrfico sobre as caractersticas dos procedimentos de povoamento de dimenses em um ambiente de Data Warehouse. A partir do levantamento dessas caractersticas foi idealizado um esquema de dados que pudesse capturar a semntica necessria para gerao de rotinas de forma automtica. Em seguida, foi desenvolvida a ferramenta para gerao automtica de cdigo em linguagem SQL. Aps o desenvolvimento da ferramenta, foi realizado um experimento, em ambiente controlado com um grupo de programadores, para avaliar o impacto nas seguintes variveis dependentes: produtividade e erros de codificao.

Os resultados iniciais apresentam indcios de que possvel capturar e modelar a semntica necessria para criao de uma ferramenta de gerao automtica de cdigo para as rotinas de povoamento de dimenses em um ambiente de Data Warehouse. Os resultados iniciais tambm apresentam indcios de que possvel substituir a codificao manual, total ou em parte, pela gerao automtica de cdigo, obtendo um ganho de produtividade e uma reduo ou eliminao dos erros de codificao. O restante do trabalho est estruturado como segue. A Seo II apresenta a metodologia utilizada para o desenvolvimento deste trabalho. Na Seo III so apresentados e discutidos os resultados do experimento. Na Seo IV so apresentados os trabalhos relacionados. As Sees V e VI apresentam, respectivamente, as concluses e os trabalhos futuros. II. METODOLOGIA

Inicialmente, foi realizada a coleta de informaes necessrias para o conjunto de metadados indispensveis para a gerao automtica de cdigo. A coleta de informaes foi realizada atravs de reviso bibliogrfica [1] [2] [6] [7] e anlise de procedimentos de povoamento de dados utilizados em projetos de Data Warehouse de empresas que utilizam codificao manual e linguagem SQL no processo de carga de seus Sistemas de Apoio Deciso. As descries dos tipos de dimenses, tratadas por esse trabalho, e os fluxos genricos dos procedimentos de carga para essas dimenses podem ser encontrados em [9] e [10]. Aps a coleta de informaes, foram selecionados os metadados que fariam parte do projeto de banco de dados que serviria de base de dados para a ferramenta. Definidos os esquemas conceitual e lgico, foram realizadas reunies, nas quais foram validados se os metadados identificados poderiam, de fato, capturar a semntica necessria para a gerao de rotinas para os vrios tipos de dimenses. Os esquemas conceituais e lgicos contendo a definio dos metadados utilizados podem ser vistos em [10]. Aps a definio dos metadados, iniciou-se o projeto da ferramenta, que seguiu um processo iterativo e incremental. Cada incremento foi responsvel pela gerao de cdigo envolvendo um tipo de comportamento para o tratamento de histrico. A cada incremento foram realizados testes com casos de uso para validar as funes sendo incorporadas ferramenta. Com a finalizao do projeto da ferramenta e todos os testes realizados na mesma, passamos para o planejamento e execuo dos experimentos. O principal objetivo dos experimentos encontrar evidncias que possam acatar ou refutar as seguintes hipteses: a) que seja possvel capturar e modelar a semntica necessria para criao de uma ferramenta de gerao automtica de cdigo em linguagem SQL para as rotinas de povoamento em um ambiente de Data Warehouse; b) que a investigao experimental sobre a utilizao da ferramenta possa apresentar indcios de que possvel substituir a codificao manual, total ou em parte, pela gerao automtica de cdigos obtendo um ganho de produtividade, uma reduo ou eliminao dos erros de codificao introduzidos nas fases de construo e

manuteno, e, consequentemente, uma melhoria na qualidade dos dados. A seguir, so enumeradas as etapas de planejamento e execuo dos experimentos. 1) Criao do ambiente de Data Warehouse: nessa fase foi definido e criado o ambiente de DW com os esquemas dimensionais e reas de Staging. Estes artefatos serviram como base para todo o experimento. 2) Definio dos Casos de Uso para as rotinas de povoamento: foram definidas especificaes para povoamento de dados a serem seguidas pelos programadores que fizeram parte do experimento. Foram criadas trs especificaes para o povoamento de dimenses com caractersticas distintas em relao aos tipos de dados dos atributos, comportamento em relao ao histrico e composio de chaves naturais. 3) Seleo dos programadores para execuo dos experimentos: Foram selecionados estudantes do curso de Bacharelado em Sistemas de Informao da Universidade Federal de Sergipe/Campus Itabaiana que possuam conhecimentos sobre ambiente de Data Warehouse, tratamento de histrico e comportamento de atributos, e que j haviam desenvolvido rotinas de povoamento, de forma manual, em extenses da linguagem SQL. Os estudantes participaram dos experimentos de forma voluntria. A seleo buscou, apenas, identificar os estudantes que possuam o conhecimento necessrio para a realizao dos experimentos. Dentre os estudantes selecionados, quatro participaram dos experimentos. 4) Alocao de programadores a Casos de Uso: Em funo das grandes diferenas de desempenho que podem existir entre programadores, foi decidido no realizar o experimento utilizando dois grupos (um utilizando a abordagem manual e outro utilizando a ferramenta). Decidiuse, ento, que todos os programadores selecionados utilizariam todos os tratamentos. 5) Reviso de conceitos bsicos sobre rotinas de povoamento para o grupo de programadores: Foi realizada uma reviso sobre as rotinas de povoamento para ambientes de DW com os programadores selecionados. 6) Treinamento da ferramenta de gerao automtica de cdigo: foi realizado um treinamento com os programadores, a fim de que eles pudessem se familiarizar com a ferramenta de gerao automtica de cdigo. 7) Solicitao de execuo dos Casos de Uso de forma manual: os programadores criaram, com base nos casos de uso apresentados, procedimentos para as rotinas de povoamento manualmente. Isto serviu para fazer a comparao com as rotinas geradas pela ferramenta deste projeto. 8) Solicitao de execuo dos Casos de Uso de forma automtica: nesta etapa os programadores utilizaram a ferramenta para codificar os mesmos casos de uso j criados de forma manual. Durante a execuo dos experimentos, foram registrados os tempos de incio e fim de execuo de cada caso de uso para cada programador, com e sem o uso da ferramenta. Ao final da execuo do experimento, os cdigos gerados de forma manual e automtica foram testados a fim verificar

sua validade. Tambm foram identificados os erros de codificao inseridos durante o processo de criao dos procedimentos. Finalmente, os dados coletados foram analisados e discutidos. III. RESULTADOS E DISCUSSO

existem diferenas de produtividade entre os programadores. Logo, podemos afirmar que existem fortes evidncias que a utilizao da ferramenta de gerao automtica de cdigo aumenta a produtividade dos programadores durante a criao das rotinas de povoamento. C. Nmero de Erros de Codificao A varivel Nmero de Erros de Codificao foi extrada da hiptese: que a gerao automtica de cdigo pode reduzir ou eliminar erros de codificao introduzidos durante as fases de construo e manuteno das rotinas de povoamento. No nosso contexto, erros de codificao representam instrues que causam ou podem causar erros na lgica de povoamento e, consequentemente, inserir ou atualizar registros de forma incorreta nas bases de dados. Os experimentos buscam identificar se existe uma relao entre o uso da ferramenta e os erros de codificao encontrados nos procedimentos. Aps o trmino dos experimentos, os cdigos gerados manualmente e de forma automtica foram analisados e testados para verificar a validade, os possveis erros de codificao e se atendiam aos requisitos dos Casos de Uso. Todos os cdigos gerados pela ferramenta foram considerados vlidos, atendiam aos requisitos dos Casos de Uso e no apresentaram erros de codificao. Os cdigos gerados manualmente apresentaram alguns problemas em relao validade e erros de codificao: a) Um dos procedimentos manuais apresentou problemas no tratamento de histrico para atributos com comportamento tipo 2. b) Todos os procedimentos manuais apresentaram problemas no tratamento de atributos cujos valores so cadeias de caracteres. As comparaes de igualdade efetuadas no levaram em conta as diferenas entre maisculas e minsculas. Essa falta de tratamento pode incluir registros desnecessrios em uma tabela de dimenso. c) Trs procedimentos apresentaram problemas na codificao de restries envolvendo a chave natural da dimenso. A identificao incorreta da chave natural pode gerar incluses desnecessrias e atualizaes incorretas. Em funo dos dados observados, pode-se afirmar, tambm, que existem fortes indcios de que a utilizao de uma ferramenta de gerao automtica de cdigo pode reduzir ou eliminar erros de codificao durante a fase de construo de rotinas de povoamento. Como no foram realizados experimentos com Casos de Uso que especificam manutenes, os dados coletados no podem expressar alguma relao entre o nmero de erros de codificao e a manuteno de rotinas. IV. TRABALHOS RELACIONADOS Outros trabalhos moderadamente relacionados tambm buscam solues para a gerao automtica de cdigo dos processos ETL. Em [11] apresentada uma abordagem dirigida a modelos para a gerao automtica de processos ETL. Essa abordagem difere da nossa uma vez que o

Aps a execuo dos experimentos e coleta dos dados, foram realizadas anlises com o objetivo de acatar ou refutar as hipteses do trabalho. A. Substitiuio da Codificao Manual pela Codificao Automtica Todos os programadores conseguiram gerar automaticamente, atravs da ferramenta, as rotinas de povoamento para todos os casos de uso selecionados. As rotinas foram analisadas e testadas. Todas apresentam o mesmo cdigo e so vlidas em relao ao povoamento de dados. Uma vez que as especificaes apresentavam todas as combinaes possveis para o tratamento de histrico, observa-se que os metadados identificados at o momento mostram-se suficientes para capturar a semntica necessria para a gerao automtica de cdigo para rotinas de povoamento. A utilizao correta da ferramenta por todos os programadores mostrou que os conceitos apresentados pelos metadados da ferramenta so de fcil entendimento e conseguiram, pelo menos para os casos de uso selecionados, expressar as diferentes necessidades de codificao. Desse modo, pode-se afirmar que vlida a hiptese de que a codificao manual pode ser substituda pela codificao automtica. Outro benefcio observado na codificao automtica a imposio de padres de codificao. Os cdigos gerados manualmente apresentaram diferentes padres, mesmo para as rotinas mais simples. Essa padronizao altamente relevante para documentao, legibilidade de cdigo e manuteno. B. Tempo de Desenvolvimento A varivel Tempo de Desenvolvimento foi extrada da seguinte hiptese: que a gerao automtica de cdigo pode aumentar a produtividade dos programadores. Quanto menor o tempo de desenvolvimento, maior ser a produtividade. Os experimentos buscam identificar se existe uma relao entre o uso da ferramenta e o tempo necessrio para a codificao das rotinas de povoamento. Durante a execuo dos experimentos foram coletados os tempos de codificao de todos os programadores para todos os casos de uso durante a codificao manual e durante a utilizao da ferramenta. A mdia das diferenas entre o tempo necessrio para construo das rotinas de forma manual, e o tempo necessrio com a utilizao da ferramenta foi de 22,3 minutos. Os dados coletados podem ser observados com mais detalhes em [10]. A anlise dos tempos apresenta fortes indcios que existe uma relao entre o tipo de tratamento (manual ou automtico) e o tempo necessrio para o desenvolvimento das rotinas de povoamento. A utilizao da ferramenta de gerao automtica de cdigo, para todos os casos e programadores, obteve sempre menores tempos de desenvolvimento. Essa relao se mantm mesmo quando

objetivo gerar processos baseados em modelos de arquitetura de ferramentas ETL j existentes. Nesse sentido, o tratamento dado a dimenses limitado s ferramentas que se integram ao framework. Em [12] apresentado um framework para programao de rotinas ETL em substituio a ferramentas grficas. Embora o framework tenha alcanado bons resultados nos primeiros experimentos, a abordagem para o tratamento de dimenses limitado aos Tipos 1 e 2. A falta de definio de metadados tambm difere da nossa abordagem. No foram encontrados, at o momento, trabalhos fortemente relacionados que busquem gerar automaticamente rotinas de povoamento em dialetos SQL e que apresentem metadados que possam capturar a semntica necessria para essa gerao. V. CONCLUSES Identificar e tentar solucionar os problemas de qualidade de dados em um ambiente de Data Warehouse representa um dos principais obstculos enfrentados pelas grandes empresas no processo de utilizao de Sistemas de Apoio Deciso. Dentre os vrios fatores que contribuem para a m qualidade dos dados, est a codificao manual de rotinas de povoamento de dados. Nesse trabalho, levantamos a hiptese de que a gerao automtica de cdigo pode substituir a codificao manual e contribuir para melhoria da qualidade atravs do impacto em variveis como produtividade e erros de codificao. Para verificar essas hipteses, foi proposta a criao de uma ferramenta para gerao automtica de cdigo para rotinas de povoamento em um ambiente de Data Warehouse. Atravs de reviso da literatura, utilizao de rotinas j empregadas em grandes empresas e inmeras discusses, chegamos a um conjunto satisfatrio de metadados que se mostraram suficientes para a gerao de cdigo. Esse conjunto de metadados tambm se mostrou satisfatrio nos primeiros experimentos realizados com a ferramenta desenvolvida. Os primeiros experimentos realizados com a ferramenta confirmaram a hiptese que a codificao manual de rotinas de povoamento pode ser substituda pela gerao automtica de cdigo. Os experimentos tambm apresentaram fortes indcios de que as variveis Tempo de Desenvolvimento e Nmero de Erros de Codificao possuem relao com o tipo de tratamento empregado. Desse modo, existem fortes evidncias que a ferramenta de gerao de cdigo para rotinas de povoamento pode contribuir para o aumento da produtividade e reduo ou eliminao dos erros de codificao durante a fase de construo de rotinas de povoamento para ambientes de suporte deciso. Ainda no foram realizados experimentos com o objetivo de encontrar evidncias que a utilizao da ferramenta tambm pode melhorar a produtividade e reduzir erros de codificao durante a fase de manuteno das rotinas de povoamento. VI. TRABALHOS FUTUROS Planejamos adicionar ferramenta novas funes de gerao automtica, como o tratamento de agregados, hierarquias em dimenses e dimenses normalizadas (snow flake). Tambm planejamos realizar Estudos de Caso que

possam fortalecer as evidncias encontradas nos primeiros experimentos. AGRADECIMENTOS Esse trabalho fruto do incentivo promovido pela Universidade Federal de Sergipe atravs do Programa Especial de Incluso em Iniciao Cientfica (PIIC). Somos gratos pela colaborao dos alunos do curso de Bacharelado em Sistemas de Informao (Campus Prof. Alberto Carvalho) na participao dos experimentos: Rafael Menezes Santos, Rodrigo Lima Arago, Wenderson Campos Pereira e Weverton dos Santos. REFERNCIAS
[1] M. Colao Jnior. Projetando sistemas de apoio deciso baseados em Data Warehouse. Rio de Janeiro: Axcel Books, 2004. [2] R. Kimball, M. Ross, W. Thornthwaite. The Data Warehouse lifecycle toolkit. 2. ed. Indianapolis, Indiana: Wiley Publishing Inc., 2008. [3] W. H. Inmon. Building the Data Warehouse, Fourth Edition. 4. ed. Indianapolis, Indiana: Wiley Publishing Inc., 2005. [4] C. Imhoff, N. Galemmo, J. G. Geiger. Mastering Data Warehouse Design: Relational and Dimensional Techniques. Indianapolis: Wiley Publish, Inc., 2003. [5] R. Singh, K. Singh. A Descriptive Classification of Causes of Data Quality Problems in Data Warehouse. IJCSI International Journal of Computer Science Issues, Vol. 7, Issue 3, No 2, May 2010. [6] R. Kimball, M. Ross. The Data Warehouse toolkit: The complete Guide to Dimensional Modeling. 2. ed. John Wiley and Sons, Inc., 2002. [7] R. Kimball. The Data Warehouse ETL Toolkit. 1 ed. Wiley India (P) Ltd., 2004. [8] V. Santos, O. Belo. No Need to Type Slowly Changing Dimensions. IADIS International Conference Information Systems, 2011. [9] I. P. O. Santos, J. K. G. Costa, A. V. R. P. Nascimento, M. Colao Jnior. Desenvolvimento e Avaliao de uma Ferramenta de Gerao Automtica de Cdigo para Ambientes de Apoio Deciso. In: XII WTICG, Workshop de Trabalhos de Iniciao Cientfica e de Graduao Bahia-Alagoas-Sergipe, 2012, Juazeiro. XII Escola Regional de Computao Bahia Alagoas Sergipe - ERBASE 2012. [10] I. P. O. Santos, A. V. R. P. Nascimento. Desenvolvimento e Avaliao de uma Ferramenta de Gerao Automtica de Cdigo para Ambientes de Apoio Deciso. Relatrio Final de Pesquisa do Programa Especial de Incluso em Iniciao Cientfica (PIIC/UFS). Julho de 2012. [11] L. Munoz, J. Mazn, J. Trujillo. Automatic generation of ETL processes from conceptual models. Proceedings of the ACM twelfth international workshop on Datawarehousing and OLAP. Hong Kong, China, 2009. [12] C. Thomsen, T. B. Pedersen. pygrametl: a powerful programming framework for extract-transform-load programmers. Proceedings of the ACM twelfth international workshop on Data warehousing and OLAP. Hong Kong, China, 2009.

Você também pode gostar