Mapper: an Efficient Data Transformation Operator
Total Page:16
File Type:pdf, Size:1020Kb
Universidade de Lisboa FACULDADE DE CIÊNCIAS DEPARTAMENTO DE INFORMÁTICA Mapper: An Efficient Data Transformation Operator Paulo Jorge Fernandes Carreira DOUTORAMENTO EM INFORMÁTICA ESPECIALIDADE ENGENHARIA INFORMÁTICA 2007 Universidade de Lisboa FACULDADE DE CIÊNCIAS DEPARTAMENTO DE INFORMÁTICA Mapper: An Efficient Data Transformation Operator Paulo Jorge Fernandes Carreira DOUTORAMENTO EM INFORMÁTICA ESPECIALIDADE ENGENHARIA INFORMÁTICA 2007 Tese orientada pela Prof.a Doutora Helena Isabel de Jesus Galhardas e pelo Prof. Doutor Mário Jorge Costa Gaspar da Silva Abstract Data transformations are fundamental operations in legacy data mi- gration, data integration, data cleaning, and data warehousing. These operations are often implemented as relational queries that aim at leveraging the optimization capabilities of most DBMSs. However, re- lational query languages like SQL are not expressive enough to specify one-to-many data transformations, an important class of data trans- formations that produce several output tuples for a single input tuple. These transformations are required for solving several types of data heterogeneities, like those that occur when the source data represents aggregations of the target data. This thesis proposes a new relational operator, named data mapper, as an extension to the relational algebra to address one-to-many data transformations and focus on its optimization. It also provides alge- braic rewriting rules and execution algorithms for the logical and phys- ical optimization, respectively. As a result, queries may be expressed as a combination of standard relational operators and mappers. The proposed optimizations have been experimentally validated and the key factors that influence the obtained performance gains identified. Keywords: Relational Algebra, Data Transformation, Data Integra- tion, Data Cleaning, Data Warehousing. v Sumário As transformações de dados são operações fundamentais em proces- sos de migração de dados de sistemas legados, integração de dados, limpeza de dados e ao refrescamento de Data Warehouses. Usual- mente, estas operações são implementadas através de interrogações relacionais por forma a explorar as optimizações proporcionadas pela maioria dos SGBDs. No entanto, as linguagens de interrogação rela- cionais, como o SQL, não são suficientemente expressivas para especi- ficar as transformações de dados do tipo um-para-muitos. Esta im- portante classe de transformações é necessária para resolver de forma adequada diversos tipos de heterogeneidades de dados tais como as que decorrem de situações em que os dados do esquema origem repre- sentam uma agregação dos dados do sistema destino. Esta tese propõe a extensão da álgebra relacional com um novo opera- dor relacional denominado data mapper, por forma a permitir a especi- ficação e optimização de transformações de dados um-para-muitos. O trabalho apresenta regras de reescrita algébrica juntamente com diver- sos algoritmos de execução que proporcionam, respectivamente, a op- timização lógica e física de transformações de dados um-para-muitos. Como resultado, é possivel optimizar transformações de dados que combinem operadores relacionais comuns com data mappers. As opti- mizações propostas foram validadas experimentalmente e identificados os factores que influênciam os seus respectivos ganhos. Palavras Chave: Álgebra Relacional, Transformação de dados, In- tegração de Dados, Limpeza de Dados, Data Warehousing. vii Resumo Alargado A envolvente económica actual tornou frequente a evolução dos sistemas de infor- mação. Esta evolução é desencadeada pela aquisição de novos pacotes de software ou pela necessidade de integrar múltiplos sistemas heterogéneos num único sis- tema. Quando a evolução dos sistemas de informação é efectuada através da sua substituição, torna-se necessário migrar os dados do sistema legado para o novo sistema. Este processo é conhecido como migração de dados. A integração de sistemas heterogéneos requer a integração de múltiplas fontes de dados numa base de dados unificada (Halevy et al., 2005). Uma outra actividade importante nos sistemas de informação é a prospecção de informação, que consiste na exploração dos dados para deduzir conhecimento para apoio à tomada de decisão. Esta actividade assenta em duas operações fundamentais: a já mencionada integração de dados, que visa juntar os dados provenientes de fontes distintas, e a limpeza de dados, cujo objectivo é assegurar a qualidade dos dados. Os processos de migração, de integração e de limpeza de dados, bem como de refrescamento de Data Warehouses são constituídas por diversas etapas que em- pregam transformações de dados como operações fundamentais (Rundensteiner, 1999). De uma forma geral, uma transformação de dados converte dados de uma determinada representação, ou esquema origem, numa outra representação, ou esquema destino. Verifica-se na prática que os mesmos dados são representados de maneiras diferentes em sistemas diferentes, especialmente se estes sistemas foram desen- volvidos usando técnicas de análise distinctas ou por profissionais com formações diversas. Estas discrepâncias de representação são conhecidas na literatura como heterogeneidades dos dados e determinam a complexidade de transformações dos dados: diferenças mais substanciais de representação requerem transformações mais elaboradas (Kim et al., 2003; Rahm & Do, 2000). Alguns tipos comuns de heterogeneidades são, por exemplo: ix i) a utilização de unidades de medida diferentes — por exemplo, a conversão de dólares em euros; ii) diferenças nas representações de dados compostos — por exemplo, a rep- resentação de uma data utilizando atributos distintos para dia, mês e ano por oposição a um único atributo do tipo date; iii) representações distintas do mesmo domínio — por exemplo, diferentes rep- resentações para Booleanos: {true, false} por oposição a {yes, no}; iv) representação dos dados segundo diferentes níveis de agregação — por exem- plo, dados que representam eventos com frequência diária e que têm de ser representados como eventos com frequência horária noutro esquema. Os diferentes tipos de heterogeneidades de dados são resolvidos empregando classes distintas de transformações de dados. De acordo com Galhardas (2001) e Cui & Widom (2001), uma transformação de dados pode ser classificada de acordo com o tipo de mapeamento que ela representa em termos da multiplicidade dos tuplos de entrada e de saída. As transformações um-para-um produzem exactamente um tuplo de saída para cada tuplo da entrada. Esta classe de mapeamentos pode ser usada, por exemplo, para resolver as heterogeneidades dos dados decorrentes da utilização de diferentes unidades de medida. As transformações um-para-muitos produzem diversos tuplos na saída para cada tuplo na entrada. Esta classe de transformação de dados é empregue sempre que os dados de fonte representam uma agregação dos dados do destino (por exemplo, dados agregados por ano na fonte e dados mensais no destino). As transformações muitos-para-um são as que geram no máximo um tuplo de saída para cada conjunto de tuplos da entrada. Esta classe de transformações ocorre quando grupos de tuplos da fonte têm que ser consolida- dos, por exemplo, através do comando GROUP BY do SQL, que pode ser aplicado, por exemplo, para transformar os salários dos empregados nos montantes brutos correspondentes. As transformações muitos-para-muitos caracterizam as trans- formações de dados que geram conjuntos de tuplos a partir de conjuntos de tuplos, tais como sejam as operações de ordenação e de normalização. Estas últimas, x são operações matemáticas que convertem um conjunto de tuplos num novo con- junto com determinadas características, sendo utilizadas fundamentalmente em contextos de limpeza de dados ou na preparação de dados para prospecção de informação (Han & Kamber, 2001, Section 3.3.2). Esta tese debruça-se sobre a problemática das transformações de dados um- para-muitos, que, apesar da sua predominância no contexto da migração, inte- gração e limpeza de dados, não foram até à data, estudadas de forma sistemática. Descrição do problema Tendo em vista a minimização do esforço de desenvolvimento e a maximização do desempenho das transformações de dados, é altamente desejável que estas sejam descritas recorrendo a um formalismo simultaneamente declarativo, expressivo, e optimizável. Os benefícios da utilização do paradigma declarativo para a especificação de transformações dos dados são destacados por Rahm & Do (2000). Um aspecto importante das linguagens declarativas é poderem ser equipadas com um con- junto de construções específicas para um domínio (van Deursen et al., 2000). A utilização de construções específicas de domínio nas transformações de dados, torna-as mais fáceis de descrever e de compreender, uma vez que estas não são poluídas com detalhes desnecessários. De facto, o desacoplamento entre as especificações das transformações de da- dos e a sua execução abre diversas oportunidades interessantes do ponto de vista da optimização, uma vez que muitos aspectos complexos da execução podem ser deduzidos automaticamente. Por exemplo, uma vez que nem todos os planos de acesso têm o mesmo tempo de execução, os mais eficientes podem ser determina- dos automaticamente. Finalmente, as construções de linguagens declarativas atrás mencionadas po- dem ser combinadas para expressar uma multiplicidade de transformações de dados distintas. Entretanto, esta expressividade não surge gratuitamente: mais expressividade significa também maior complexidade em termos de optimização.