01_avaliando ferramentas etl para aplicação em casos de migração entre sgbd_v2

81
PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁ Elaine Letícia Camargo do Nascimento Tatiane Araujo Muniz Avaliando Ferramentas ETL Para Aplicação em casos de Migração entre SGBD CURITIBA 2011

Upload: rodgers-fritoli

Post on 17-Dec-2015

64 views

Category:

Documents


29 download

DESCRIPTION

1_Avaliando Ferramentas ETL Para Aplicação Em Casos de Migração Entre SGBD_v2

TRANSCRIPT

  • PONTIFICIA UNIVERSIDADE CATLICA DO PARAN

    Elaine Letcia Camargo do Nascimento

    Tatiane Araujo Muniz

    Avaliando Ferramentas ETL

    Para Aplicao em casos de Migrao entre SGBD

    CURITIBA

    2011

  • Elaine Letcia Camargo do Nascimento

    Tatiane Araujo Muniz

    Avaliando Ferramentas ETL

    Para Aplicao em casos de Migrao entre SGBD

    Trabalho de Concluso de Curso Apresentado como requisito parcial para concluso da Especializao em Banco de Dados, Pontifcia Universidade Catlica do Paran.

    Orientador: Prof. Marcelo Dalagassa

    CURITIBA

    2011

  • Agradecimentos

    Primeiramente agradecemos a Deus pela oportunidade de termos concludo mais este desafio.

    Agradecemos tambm aos nossos familiares por todo o apoio, principalmente aos nossos companheiros e filhas por toda a pacincia nas horas que tivemos que nos ausentar para estudos ou preparao de trabalhos.

    Nossos sinceros agradecimentos aos professores pelo conhecimento compartilhado e tambm ao nosso professor orientador Marcelo Dalagassa pela disponibilidade e por todas as dicas e sugestes.

  • LISTA DE ILUSTRAES

    Figura 1 - Representao de um sistema de banco de dados

    Figura 2 Representao do processo de ETL

    Figura 3 Representao do processo de Extrao

    Figura 4 Representao do processo de transformao

    Figura 5 Representao do processo de carga

    Figura 6 - Modelo Relacional Reduzido

    Figura 7 - Datastage extrao tabela pessoa

    Figura 8 - Datastage configurao Oracle

    Figura 9 - Datastage extrao tabela edificacao

    Figura 10 - Datastage Job de Transformao 1

    Figura 11 - Datastage meta dados

    Figura 12 - Datastage Job de Transformao 2

    Figura 13 Datastage Job de Agregao

    Figura 14 - Talend conexo com banco Oracle

    Figura 15 - Talend estgio de Input Oracle

    Figura 16 - Talend conexo com banco PostgreSQL

    Figura 17 - Talend Job Extrao Pessoa

    Figura 18 - Talend Extrao tabela edificacao

    Figura 19 - Talend estgio de Join - chaves

    Figura 20 - Talend Job de Transformao 1

    Figura 21 - Talend estgio de agregao

    Figura 22 - Talend Job de agregao

    Figura 23 - Apatar conexo com banco Oracle

    Figura 24 Apatar mapeamento de colunas

  • Figura 25 - Apatar Extrao tabela pessoa

    Figura 26 - Talend Extrao tabela edificacao

    Figura 27 - Apatar Job de Transformao 1

    Figura 28 - Apatar job de agregao

    Grfico 1 Efetividade

    Grfico 2 Produtividade

    Grfico 3 Segurana

    Grfico 4 Satisfao

  • LISTA DE TABELAS

    Tabela 1 Quantidade de Registros por tabela

    Tabela 2 Tabela Imovel_Avaliado

    Tabela 3 Comparao Tipos de Dados entre Oracle e PostgreSQL

    Tabela 4 Comparao entre Oracle e PostgreSQL

    Tabela 5 Seleo entre Mtricas

  • LISTA DE ABREVIATURAS E SIGLAS

    ACID - Atomicidade, Consistncia, Isolamento e Durabilidade

    DDL - Data Definition Language

    DW - Data Warehouse

    ETL - Extract, Transform and Load

    ODBC - Open Data Base Connectivity

    ORD - Object Relational Database ORDBMS - Object Relational Database Management System PL/SQL - Procedural Language/Structured Query Language

    SGBD - Sistemas Gerenciadores de Banco de Dados

    SGBDOR - Sistema Gerenciador de Banco de Dados Objeto Relacional SGC - Sistema de Gesto Cadastral

    SQL - Structured Query Language

  • RESUMO

    O relato de caso de migrao entre sistemas gerenciadores de banco de dados avaliando ferramentas de ETL foi elaborado para servir como um instrumento de apoio aos profissionais da rea na escolha de ferramentas para migrao e transformao de dados em geral.

    Foi desenvolvida uma metodologia para avaliao das ferramentas, onde uma seleo entre as tabelas do banco do sistema atual foi feita baseada no volume e tipos distintos de dados. Aps a seleo das tabelas, optamos pelas ferramentas de ETL que iramos avaliar.

    Tomamos a deciso de escolher ferramentas com licenas pagas, e duas ferramentas de software livre, O Talend e o Apatar. O Datastage uma ferramenta bem conhecida no mercado, enquanto as outras esto se estabelecendo no mercado e ganhando cada vez mais clientes.

    As ferramentas de ETL foram avaliadas usando como guia as normas sobre qualidade de produto de software ISO/IEC 9126 e 14598 2000. Avaliamos a qualidade em uso atravs da efetividade, produtividade, segurana e satisfao, isso com o objetivo de dizer o quanto o produto de software atende ou no a necessidade de um usurio.

    Palavras-chave: ETL, Banco de Dados, qualidade de software, Migrao de dados

  • ABSTRACT

    The Migration case report between data base management systems evaluating ETL tools was elaborated to support the professionals to choose a tool to migrate and transform general data.

    It was developed a methodology to evaluate the tools, a selection between the tables in the current data base was based on the volume and distinct types of data. After the table selection, we chose the tools that we were going to evaluate.

    We decided to use commercial license tools and two open source tools, Talend and Apatar. Datastage is a well known tool while the others are still being established in the market and getting more and more clients.

    The ETL tools were evaluated using software engineering - product quality guide ISO/IEC 9126 and 14598 - 2000. We have evaluated the quality of usage through effectiveness, productivity, security and satisfaction, the objective was to tell how much the software product meets or not the users requirement.

    Keywords: ETL, Data Base, software quality, data migration

  • SUMRIO 1. INTRODUO .......................................................................................................... 11 2. OBJETIVOS ............................................................................................................. 12

    2.1 OBJETIVO GERAL ............................................................................................... 12

    2.2 OBJETIVOS ESPECFICOS ................................................................................. 12 3. REVISO BIBLIOGRFICA ..................................................................................... 13

    3.1 Banco de Dados................................................................................................... 13

    3.2 Sistemas Gerenciadores de Banco de Dados - SGBD ...................................... 14

    3.3 Oracle ................................................................................................................... 15

    3.3.1 Descrio ............................................................................................. 15 3.3.2 Histria ................................................................................................. 16 3.3.3 Verses ................................................................................................. 16 3.3.4 Caractersticas ..................................................................................... 17

    3.4 Postgresql ............................................................................................................ 18

    3.4.1 Descrio ............................................................................................. 18 3.4.2 Histria do PostgreSQL ...................................................................... 18 3.4.3 Verses ................................................................................................. 19 3.4.4 Caractersticas ..................................................................................... 19

    3.5 Extrao, Transformao e Carga (ETL Extract, transform, load) ................ 21 3.5.1 Extrao ............................................................................................... 22 3.5.2 Transformao ..................................................................................... 24 3.5.3 Carga .................................................................................................... 25

    3.6 Software Livre ...................................................................................................... 26

    3.6.1 Cdigo Aberto (Open Source) ............................................................ 27 3.6.2 Domnio publico ................................................................................... 27 3.6.3 Software protegido com copyletf ....................................................... 27 3.6.4 Software livre e no protegido com copyleft .................................... 27 3.6.5 Software semi-livre .............................................................................. 28 3.6.6 Software proprietrio .......................................................................... 28 3.6.7 Freeware ............................................................................................... 28 3.6.8 Shareware ............................................................................................ 28

  • 3.6.9 Commercial Software .......................................................................... 28 3.6.10 GNU General Public License (Licena Pblica Geral) ...................... 29 3.7 Software livre de Banco de Dados ........................................................ 29

    4. METODOLOGIA ....................................................................................................... 30

    4.1 Modelo do Experimento ...................................................................................... 30

    4.1.1 Modelo de Dados proposto................................................................. 30 4.1.2 Tabelas e Volume de dados ................................................................ 31 4.1.3 Extraes e Transformaes propostas ........................................... 31 4.1.4 Estudo comparativo entre Oracle e PostgreSQL .............................. 32

    4.2 Escolha das ferramentas ETL ............................................................................. 34

    4.2.1 Datastage ............................................................................................. 34 4.2.2 Talend ................................................................................................... 35 4.2.3 Apatar ................................................................................................... 37

    4.3 Experimento ......................................................................................................... 38

    4.3.1 Datastage ............................................................................................. 39 4.3.2 Talend ................................................................................................... 43 4.3.3 Apatar ................................................................................................... 49

    4.4 Resultados ........................................................................................................... 54

    4.4.1 Avaliao das Ferramentas ............................................................................. 54

    4.4.2 Efetividade ........................................................................................................ 57

    a) Log de erro de fcil compreenso: ........................................................................ 57 b) Possui GNU General Public License Software livre: ......................................... 57 c) Operador Join suporta mais que duas tabelas: .................................................... 57 d) Possui diversos tipos de operadores como join, filter:........................................ 58 e) Conexo ODBC genrica: ....................................................................................... 58 f) Faz conexo com a maioria dos bancos de dados: .............................................. 58 g) Faz diversos tipos de agregaes: ........................................................................ 58 h) Diferentes plataformas: .......................................................................................... 58 i) Sem necessidade de codificao: ......................................................................... 59 j) Fcil utilizao: ....................................................................................................... 59

  • 4.4.3 Produtividade ................................................................................................... 59

    4.4.4 Segurana ......................................................................................................... 60

    4.4.5 Satisfao ......................................................................................................... 61

    5. CONSIDERAES FINAIS ...................................................................................... 63 6. REFERNCIA ........................................................................................................... 64 7. ANEXOS ................................................................................................................... 67

    ANEXO A DDL Tabelas usadas no experimento ....................................................... 67

    ANEXO B Ferramenta Ora2pg .................................................................................... 77

  • 1. INTRODUO

    O presente trabalho tem como proposta apresentar diferentes ferramentas de ETL utilizadas durante as fases de migrao e transformao de dados entre os Bancos de Dados Oracle e PostgreSQL.

    A solicitao da migrao veio da Prefeitura Municipal de Joinville, que necessita se adequar poltica governamental de uso do software livre. Cada Banco de dados possui particularidades, vantagens e desvantagens. No faz parte do escopo desse trabalho definir qual dos bancos o melhor, ou mais eficiente para ser usado com determinada aplicao. Nossa finalidade propor uma metodologia eficiente para se efetuar tal migrao, avaliando ferramentas de ETL.

    Um comparativo entre as funcionalidade dos SGBD (sistemas Gerenciadores de Banco de Dados) ser traado. Ressaltaremos as principais diferenas em relao aos tipos de dados, funes e queries, bem como toda e qualquer adaptao se fizer necessria.

    A aplicao SGC - Sistema de Gesto Cadastral se utiliza do banco de dados Oracle, que possui hoje cerca de cento e trinta oito tabelas, com quantidade de registros variando entre seis milhes e dez linhas. O Sistema de Gesto Cadastral fica disponvel vinte e quatro horas por dia durante os sete dias da semana, porm s utilizado em dias e horrios comerciais.

    Para realizao do comparativo entre ferramentas de ETL, executaremos um piloto, que consiste em pegar um pequeno numero de tabelas, que possuam diversidade no seu tipo de dados, grande quantidade de linhas e estrutura bem definida.

    Avaliaremos trs ferramentas de ETL, Talend, Apatar e Datastage atravs de uma comparao entre suas funes e facilidades para a migrao proposta. Como resultado da comparao, a comunidade poder optar pela ferramenta que se adeque ao seu caso de uso.

  • 2. OBJETIVOS

    2.1 OBJETIVO GERAL

    Este projeto tem como objetivo relatar a experincia de migrao e transformao de dados entre os Sistemas Gerenciadores de Banco de Dados Oracle e PostgreSQL, avaliando diferentes ferramentas de ETL.

    2.2 OBJETIVOS ESPECFICOS

    Analisar e comparar aspectos de efetividade, produtividade, segurana e satisfao nas ferramentas para processo de ETL segundo Willian H Inmon, ETL um programa de computador ou uma srie de procedimentos que so usados para integrar e converter dados de uma determinada aplicao em um formato verdadeiramente amplo;

    Levantar caractersticas e especificidades de cada um dos bancos; Levantar caractersticas e especificidades para avaliao de

    ferramentas de ETL;

  • 3. REVISO BIBLIOGRFICA

    3.1 Banco de Dados

    A definio de banco de dados convenientemente ligada aos antigos sistemas de arquivamento. Um grande armrio, com arquivos, ou fichas organizadas de forma alfabtica. Um banco de dados exatamente como um desses armrios, aonde as tabelas viram as fichas, e as informaes contidas nas fichas, sero os dados contidos em cada uma das tabelas dos bancos de dados.

    Um sistema de banco de dados basicamente apenas um sistema computadorizado de manuteno de registros. O banco de dados, por si s, pode ser considerado como o equivalente eletrnico de um armrio de arquivamento; ou seja; ele um repositrio ou recipiente para uma coleo de arquivos de dados computadorizados. (DATE, 2003).

    Ainda segundo C. J. Date, um banco de dados uma coleo de dados persistentes, usada pelos sistemas de aplicao de uma determinada empresa.

    Cada autor define banco de dados a sua prpria maneira e como dito por Elmasri Navathe, banco de dados uma coleo de dados relacionados. Os dados so fatos que podem ser gravados e que possuem um significado implcito.

    Elmasri trouxe junto definio de banco de dados a definio do que dado. Alguns autores diferenciam o conceito entre dado e informao, outras tratam ambos com o mesmo conceito.

    Dados so todos os elementos que servem de base para a formao de opinies ou para a tomada de decises. Um dado apenas um ndice, um registro, uma manifestao objetiva, passvel de analise, exigindo interpretao da pessoa para sua manipulao. Em si, os dados tm pouco valor, mas quando classificados, armazenados e relacionados entre si, eles permitem a obteno de informaes. A informao apresenta significado e intencionalidade, aspectos que a diferenciam do conceito de dados (FERRARI, 1991).

  • Informao o dado trabalhado que permite ao executivo tomar decises. o resultado do tratamento dos dados existentes acerca de algum ou de alguma coisa Pode-se definir tambm a informao como um conjunto de fatos organizados de tal forma que adquirem valor adicional alm do valor do fato em si. (CARVALHO, 1993)

    Pode-se dizer que informao o dado trabalhado que permite ao gestor tomar decises. A informao seria o resultado da anlise da capacidade de produo, custo de venda de produtos, produtividade dos funcionrios etc. Ao serem utilizadas pelos gestores, podem afetar ou modificar o comportamento existente na empresa, bem como o relacionamento entre as suas vrias unidades organizacionais (CHESWICK, 2005).

    O termo Banco de Dados indica um conjunto de dados ou informaes gravados em um disco de computador. Muitas vezes confundido com SGBD, que na verdade software utilizado para controle do Banco de Dados em si. Um banco de dados usualmente mantido e acessado por meio de um software conhecido como SGBD.

    3.2 Sistemas Gerenciadores de Banco de Dados - SGBD

    Um Sistema Gerenciador de Banco de Dados, um sistema computadorizado de manuteno de registros; ou em outras palavras, um sistema computadorizado cuja finalidade geral armazenar informaes e permitir que usurios busquem e atualizem essas informaes quando as solicitar (DATE, 2004).

    A origem comercial desses sistemas se deu por volta de 1960, com base nos sistemas de arquivos. Os sistemas de arquivos eram primitivos, possuam muitas limitaes tecnolgicas, uma vez que, toda e qualquer alterao na estrutura de um sistema de arquivo, automaticamente refletia numa alterao de programao. Com o surgimento do armazenamento em discos magnticos, foi possvel a criao de ferramentas (SGBD) capazes de gerenciar e manipular dados da forma mais eficiente.

  • A figura 1 mostra uma viso de um sistema gerenciador de banco de dados, vrias aplicaes podem acessar e alterar o banco e seus dados, o sistema gerenciador de banco de dados controla o banco, e os usurios finais acessam as informaes.

    Figura 1 - Representao de um sistema de banco de dados

    Os SGBD evoluram e passaram a utilizar diferentes formas de representao, ou modelos de dados, para descrever a estrutura das informaes contidas em seus bancos de dados. Atualmente, os modelos hierrquico, em redes, relacional e o modelo orientado a objetos so usados. Sendo o modelo relacional o mais utilizado e o proposto nesse trabalho.

    3.3 Oracle

    3.3.1 Descrio

    O Oracle uma ferramenta de gerenciamento de banco de dados, que trabalha com tecnologia cliente/servidor. Portanto, para sua utilizao, primeiro, instalamos o servidor e depois a base de dados em si. A Oracle est sempre aperfeioando suas verses e adicionando novas funcionalidades.

  • 3.3.2 Histria

    A histria da Oracle se iniciou fim dos anos 70, quando Larry Ellison teve a iniciativa de comercializar um banco de dados relacional. Ellison e os co-fundadores da Oracle, Bob Miner e Ed Oates, perceberam que havia um tremendo potencial de negcios no modelo de banco de dados relacional, mas no se deram conta de que mudariam a face da computao empresarial para sempre. Inicialmente a Oracle foi chamada de software development labs (sdl), uma empresa de consultoria que contava com Bob Miner (Presidente), Ed Oates e Bruce Scott (engenheiros de software) no seu primeiro projeto. Larry Ellison, trabalhava na empresa para a qual a sdl prestava a consultoria.

    A Oracle o principal fornecedor de software para gerenciamento de informaes e a segunda maior empresa de software independente do mundo.

    3.3.3 Verses

    A Oracle est no mercado h vrios anos, e possui uma srie de verses. A partir de 1977 o banco Oracle comeou a ser desenvolvido. A Cia se torna o primeiro cliente da Oracle. Em 1979 a primeira verso comercial do banco disponibilizada, este, era escrito em linguagem assembler.

    Em 1981, comeam a surgir s primeiras ferramentas da Oracle, como a iaf - interactive application facility, que uma ferramenta antecessora do SQL.

    A verso seguinte do primeiro banco relacional (Oracle verso 3), foi escrita em linguagem c. A verso 4 voltada para os computadores pessoais e possui coerncia de leitura.

    As verses 5 e 5.1, possuem o servidor paralelo, e o Oracle client/Server introduzido. A verso seis, tem o bloqueio em nvel de linha, o sistema de backup surge.

    No ano de 1997 o oracle 8 apresentado, mostrando-se como o primeiro banco de dados para web. Ferramentas oracle BI, como Discoverer, so introduzidas para data warehousing. Ferramentas possuem suporte nativo para java.

    Nos ltimos anos e verses, o Oracle ainda vem progredindo atravs da insero de servios como real application clusters e grid computing (alta taxa de processamento).

  • 3.3.4 Caractersticas

    O Oracle esta no mercado h muitos anos, entre suas caractersticas, podemos falar de sua linguagem padro de SQL, que o PL/SQL (Procedural Language/Structured Query Language).

    A unidade bsica em PL/SQL um bloco. Todos os programas em PL/SQL so compostos por blocos, que podem estar localizados uns dentro dos outros. Geralmente, cada bloco efetua uma ao lgica no programa.

    O Oracle roda em todos os grandes sistemas operacionais, como Windows, Unix AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64, Z/OS.

    O servidor Oracle vem pr configurado para os ambientes de grupos de trabalho, dinmicos e diversificados. Ele possui um conjunto integrado de ferramentas de gerenciamento, alm de recursos completos de distribuio, replicao e utilizao na Web.

    O Oracle oferece um novo nvel de sistemas de computao para usurios de grupos de trabalho distribudos. Consultas e atualizaes distribudas permitem o compartilhamento de dados entre vrios servidores e garante a consistncia dos dados. A replicao de dados permite que os usurios criem vrias cpias de leitura de partes de tabelas ou tabelas completas com consistncia transacional e integridade de dados garantida. Atualizaes baseadas em eventos ou conforme demandas proporcionam a flexibilidade mxima. Os links de bancos de dados permitem que dados remotos sejam definidos e utilizados como se fossem locais, garantindo que os aplicativos nunca precisem de recodificao, caso os dados sejam transferidos de um n a outro.

    O gerenciador do servidor Oracle aperfeioa automaticamente o desempenho do banco de dados. Depois de analisar os recursos do sistema e os requisitos de aplicativos durante o processamento do banco de dados.

  • Ferramentas de gerenciamento local executam tarefas difceis de maneira rpida e facilmente, de forma independente ou em conjunto com o console de gerenciamento central. As tarefas de gerenciamento local incluem:

    Inicializao e parada temporria do banco de dados. Criao do usurio e atribuio de funes/privilgios; Monitorao de sesses do usurio final; Backup e recuperao do banco de dados; Criao de tabela e gerenciamento de tamanhos; Importao e exportao de dados. O Oracle proporciona um sistema nico de gerenciamento de banco de

    dados, oferece uma plataforma avanada e escalvel de banco de dados de cliente leve ou cliente/servidor. Para garantir o mais alto nvel de desempenho em todos os sistemas operacionais suportados.

    3.4 Postgresql

    3.4.1 Descrio

    O PostgreSQL um sistema gerenciador de banco de dados objeto-relacional (SGBDOR) de cdigo aberto. Sendo assim ele pode ser utilizado, modificado e distribudo por qualquer pessoa para qualquer finalidade, comercial ou acadmica.

    Segundo ITL Education Solutions Limited, um banco de dados objeto-relacional (ORD), ou sistema de gerenciamento de banco de dados objeto-relacional (ORDBMS ou SGBDOR) um sistema de gerenciamento de banco de dados relacional que permite aos desenvolvedores integrar ao banco de dados seus prprios tipos de dado e mtodos personalizados.

    3.4.2 Histria do PostgreSQL

  • O PostgreSQL derivado do pacote POSTGRES escrito na Universidade da Califrnia em Berkeley. A implementao do POSTGRES comeou em 1986 e foi liderado pelo professor Michael Stonebraker.

    3.4.3 Verses

    A primeira verso foi a verso demonstrao do sistema e se tornou operacional em 1987. Foi exibida em 1988 na conferencia de ACM-SIGMO.

    A primeira verso foi liberada para poucos usurios externos em junho de 1989. A segunda verso foi liberada em junho de 1990, contendo um novo sistema de regras. A terceira verso surgiu em 1991 adicionando suporte a mltiplos gerenciadores de armazenamento, um executor de comandos melhorado, e um sistema de regras reescrito.

    Em 1994 foi adicionado um interpretador da linguagem SQL e passou a ser chamado do Postgres95, em seguida foi liberado na Web como de software de cdigo aberto.

    Aps muitas mudanas internas e melhoria de desempenho, em 1996 foi escolhido um novo nome, PostgreSQL, para refletir o relacionamento entre o POSTGRES original e as verses mais recentes com capacidade SQL, ao mesmo tempo foi mudado o nmero da verso para comear em 6.0. Atualmente sua ultima verso a 9.

    3.4.4 Caractersticas

    O PostgreSQL suporta grande parte do padro SQL e oferece funcionalidades como:

    Comandos complexos;

  • Chaves estrangeiras;

    Triggers;

    Views;

    Integridade transacional

    Controle de simultaneidade multi verso.

    O PostgreSQL pode ser ampliado pelo usurio de muitas maneiras, como:

    Incluso/criao de tipos de dado;

    Funes;

    Operadores:

    Funes de agregao;

    Mtodo de ndice;

    Linguagens procedurais.

    O PostgreSQL tem mais de 15 anos de desenvolvimento ativo e uma arquitetura que ganhou forte reputao de confiabilidade, integridade de dados e conformidade a padres.

    Ele roda em todos os grandes sistemas operacionais, incluindo GNU/Linux, Unix (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), e MS Windows. totalmente compatvel com ACID, tem suporte completo a chaves estrangeiras, junes (JOINs), vises, gatilhos e procedimentos armazenados (em mltiplas linguagens).

    Inclui a maior parte dos tipos de dados do ISO SQL:1999, incluindo INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, e TIMESTAMP.

    Suporta tambm o armazenamento de objetos binrios, incluindo figuras, sons ou vdeos. Possui interfaces nativas de programao para C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, entre outros.

  • O PostgreSQL possui ainda funcionalidades sofisticadas como:

    O controle de concorrncia multiversionado (MVCC, em ingls); Recuperao em um ponto no tempo (PITR em ingls); Tablespaces; Replicao assncrona; Transaes agrupadas (savepoints); Cpias de segurana (online/hot backup); Planejador de consultas (otimizador); Registrador de transaes sequencial (WAL) para tolerncia a falhas.

    Suporta conjunto de caracteres internacionais, codificao de caracteres multibyte, Unicode e sua ordenao por localizao, sensibilidade a caixa (maisculas e minsculas) e formatao. altamente escalvel, tanto na quantidade enorme de dados que pode gerenciar, quanto no nmero de usurios concorrentes que pode acomodar.

    3.5 Extrao, Transformao e Carga (ETL Extract, transform, load)

    O processo de ETL (Extract, Transform and Load) destina-se extrao, transformao e carga dos dados de uma ou mais bases ou fontes de dados de origem para uma ou mais bases ou fontes de dados de destino.

    A extrao e carga so obrigatrias para o processo, sendo a transformao/limpeza opcional. Um sistema ETL tem que ser capaz de se comunicar com as bases de dados e ler diversos formatos de arquivos utilizados por toda a organizao. Essa pode ser uma tarefa no trivial, e muitas fontes de dados podem no ser acessadas com facilidade.

    O termo ETL comumente relacionado Data warehouse, que nada mais que um banco de dados gigantesco que contem os dados de uma organizao de forma consolidada. Os dados armazenados no Data warehouse geralmente so unidos e agregados em relatrios de nveis gerenciais. Devido ao grande volume de informaes e de transformaes necessrias para esses relatrios, as ferramentas

  • de ETL foram criadas para suportar usurios nessas produes. No entanto um processo de ETL pode ser aplicado a qualquer tipo de fonte de destino, no necessariamente um Data warehouse.

    A figura 2 mostra um processo de ETL, onde podemos ver vrias fontes de dados (DB2, MySQL, Access, MS Excel e Oracle), sendo extradas. Em seguida passam por um processo de transformao e transferncia ou carga. Podemos observar que a carga poder ser feita para um data warehouse, ou para um banco de dados como o PostgreSQL. Na figura 2 encontra-se destacado, a extrao e transformao do Oracle para o PostgreSQL, por tratar-se do experimento proposto nesse trabalho. Um processo de ETL pode cobrir tambm a extrao dos dados do prprio warehouse para datamarts, que so bancos organizados por assunto em uma organizao, ou ainda os dados do warehouse servindo diretamente como fonte para gerao de relatrios (cubo).

    Figura 2 Representao do processo de ETL

    3.5.1 Extrao

    A primeira parte do processo de ETL a extrao de dados dos sistemas de origem. Essa extrao pode produzir diversos tipos de arquivos, como por exemplo, para um simples arquivo de texto, para um arquivo com delimitadores, para arquivos de hash e proprietrios da ferramenta, como por exemplo o dataset que um

  • arquivo prprio do datastage, uma ferramenta que ser abordada nos prximos tpicos.

    Na figura 3, podemos ver que uma extrao pode ser efetuada de uma base de dados qualquer, como do db2, para um flat file, do Oracle para um dataset, e tambm podemos extrair as informaes a partir de planilhas Excel, no necessariamente de bases de dados.

    A maioria das ferramentas de ETL consolida dados extrados de diferentes sistemas de origem. Cada sistema pode utilizar um formato ou organizao de dados diferente. Formatos de dados comuns so bases de dados relacionais e flat files (tambm conhecidos como arquivos planos), mas podem incluir estruturas de bases de dados no relacionais. Como exemplo, podemos pensar em um campo tipo date, na base de dados possui um determinado formato, mas durante a extrao, podemos especificar qual o formato da data desejamos. Exemplos: YYYY-MM-DD (base), DD/MM/YYYY (resultado da extrao). A extrao converte para um determinado formato para a entrada no processamento da transformao.

    Figura 3 Representao do processo de Extrao

  • 3.5.2 Transformao

    O estgio de transformao aplica uma srie de mudanas, filtros ou funes aos dados extrados para derivar os dados a serem carregados. A figura 4 mostra uma viso macro do processo de transformao.

    Figura 4 Representao do processo de transformao

    A quantidade de manipulao necessria extremamente variada. Podemos ter casos onde se mapeam absolutamente todos os campos vindos de um arquivo de extrao, sem grandes necessidades de mudanas nos formatos, ou em outros casos, pode ser necessrio um ou mais tipos de transformao:

    Seleo de apenas determinadas colunas para carregar (o arquivo possui trinta colunas e mapearemos somente as dez primeiras)

    Traduo de valores codificados (valores codificados podem ser decodificados para aparecerem em relatrios)

  • Gerao de chaves artificiais para data warehouse (tambm conhecidas como Surrogate Keys. So chaves para as tabelas do warehouse)

    Derivao de um novo valor calculado, aps join entre tabelas (tabela A possui coluna valor, tabela B possui multiplicador. Como resultado teremos a coluna resultado, que receber valor X multiplicador)

    Transposio ou rotao (fazer um piv, o que coluna vira linha ou o que linha vira coluna)

    Quebra de uma coluna em diversas colunas (como por exemplo, colocar uma lista separada por vrgulas e especificada como uma cadeia em uma coluna com valores individuais em diferentes colunas).

    Agregao de dados de vrios tipos (soma de uma coluna atravs de agrupamento por determinado campo).

    No caso de data warehouse, a gerao de chaves artificiais praticamente mandatria para evitarmos a duplicao de dados, uma vez que gravamos dados histricos.

    3.5.3 Carga

    A fase de carga carrega os dados no Data Warehouse (DW), como representado na figura 5. Dependendo das necessidades da organizao, este processo varia amplamente. Podem existir processos genricos de carga, ou especficos para cada processo. A volatilidade dos dados pode depender da necessidade de cada empresa. Alguns data warehouses podem substituir as informaes existentes semanalmente, com dados cumulativos e atualizados, ao passo que outro DW (ou at mesmo outras partes do mesmo DW) podem adicionar dados a cada hora, dia ou ms.

    A temporizao e o alcance de reposio ou acrscimo constituem opes de projeto estratgicas que dependem do tempo disponvel e das necessidades de

  • negcios. Sistemas mais complexos podem manter histrico e pistas de auditoria de todas as mudanas sofridas pelos dados.Os processos de histrico podem ser encarados nesse caso como parte da transformao e no somente da carga.

    Figura 5 Representao do processo de carga

    3.6 Software Livre

    Software livre um software que permite qualquer um copiar, usar e distribuir, modificar e melhorar, gratuitamente ou por um preo. O usurio de um software livre tem as quatro seguintes liberdades:

    Liberdade para rodar o programa, para qualquer propsito;

    Acesso ao cdigo fonte e liberdade para estudar como o programa funciona e modific-lo conforme necessidade;

    Liberdade para redistribuir uma ou mais copias;

    Liberdade para distribuir copia de suas verses modificadas.

    Existe uma confuso quando se fala em software livre, pois muitas empresas afirmam que seu produto um software livre, porm necessrio verificar os termos

  • de distribuio para ver se os usurios realmente possuem todas as liberdades que um software livre implica. Software livre uma questo de liberdade e no de preo. A seguir o detalhamento dos tipos de software livre, baseados nas informaes retiradas da pagina http://www.gnu.org/philosophy/categories.pt-br.html:

    3.6.1 Cdigo Aberto (Open Source)

    O termo cdigo aberto usado por algumas pessoas para se referir ao software livre.

    3.6.2 Domnio publico

    Software de domnio publico software livre mas no protegido por copyright, ou sem copyright, o que significa que algumas cpias ou verses modificadas podem no ser livres.

    3.6.3 Software protegido com copyletf

    Software protegido com copyleft significa que toda cpia do software, mesmo que tenha sido modificada, precisa se livre.

    3.6.4 Software livre e no protegido com copyleft

    Vem do autor com permisso para redistribuir e modificar, e tambm para incluir restries adicionais a ele.

    Se um programa livre, mas no protegido com copyleft, algumas cpias ou verses modificadas podem no se livres, uma empresa pode compilar o programa,

  • com ou sem modificaes, e distribuir o arquivo executvel na forma de um produto proprietrio.

    3.6.5 Software semi-livre

    Software semi-livre software que no livre, mas que vem com permisso para indivduos usarem, copiarem, distriburem e modificarem (incluindo a distribuio de verses modificadas) para fins no lucrativos.

    3.6.6 Software proprietrio

    Software proprietrio aquele que no livre ou semi-livre. Seu uso, redistribuio ou modificao proibida.

    3.6.7 Freeware

    O termo "freeware" no possui uma definio clara e aceita, mas muito usada para pacotes que permitem redistribuio, mas no modificao (e seu cdigo fonte no esta disponvel).

    3.6.8 Shareware

    Shareware um software que vem com permisso para redistribuir, mas diz que qualquer uma que continue usando uma cpia deve pagar por uma licena. No um software livre, ou mesmo semi-livre.

    3.6.9 Commercial Software

  • Commercial Software ou Software comercial software sendo desenvolvido por uma empresa que procura ter lucro atravs do uso do software. Comercial e proprietrio no so a mesma coisa. A maior parte do software comercial proprietria, mas existem softwares livres comerciais, e software no-comecial e no-livre.

    3.6.10 GNU General Public License (Licena Pblica Geral)

    As licenas para a maioria dos softwares so designadas para garantir que o software no seja modificado e que copias no sejam distribudas sem que se possua uma licena.

    J a GNU General Public tem por objetivo garantir a liberdade de distribuio e modificaes em todas as verses de um programa, garantindo que o software ainda seja distribudo livremente para todos os usurios interessados. Esta licena foi idealizada por Richard Matthew Stallman em 1989, no mbito do projeto GNU da Free Software Foundation.

    3.7 Software livre de Banco de Dados

    Quando se trata de software livre para banco de dados, ainda estamos em expanso devido complexidade de servidores de banco de dados, j os sistemas pagos esto bem consolidados nesse sentido. Quando fazemos a opo por um software proprietrio ou livre, uma analise das necessidades obrigatria, uma vez que hoje os sistemas no so mais simples armazenadores de informaes, possuem uma grande quantidade de ferramentas agregadas que podem ser de importncia vital. Entre os parmetros a serem comparados na hora da escolha temos o desempenho, controle de acesso, estabilidade, suporte a programao e transaes e compartilhamento de dados.

  • 4. METODOLOGIA

    4.1 Modelo do Experimento

    Devido a polticas do governo federal, muitos rgos pblicos esto tendo que migrar software proprietrio para software livre. O motivo simples, economizar com licenas pagas.

    Para o avaliarmos as ferramentas de ETL, proporemos um projeto piloto, onde migraremos sete tabelas, sendo que para duas delas, adicionaremos algumas transformaes especificas.

    4.1.1 Modelo de Dados proposto

    Como dito anteriormente, selecionamos sete tabelas para o experimento. Sendo elas:

    Pessoa; Edificacao; UnidadeAvaliacao; Territorial; Pessoa_Territorial; Pessoa_Edificacao; Valores_Imoveis;

    O Anexo A traz maiores detalhes sobre os nomes de campos e tipos de dados. As chaves e relacionamentos podem ser verificados na figura 6 aonde temos o Modelo Relacional Reduzido.

  • Figura 6 - Modelo Relacional Reduzido

    4.1.2 Tabelas e Volume de dados

    Os valores especificados abaixo foram extrados do Sistema de Gesto Cadastral, banco de dados Oracle em Setembro de 2012.

    Tabela Numero de Registros PESSOA 923173 EDIFICACAO 267913 TERRITORIAL 159662 UNIDADEAVALIACAO 440187 PESSSOA_EDIFICACAO 283404 PESSOA_TERRITORIAL 162016 VALORES_IMOVEIS 142111

    Tabela 1 Quantidade de Registros por tabela

    4.1.3 Extraes e Transformaes propostas

    Extraes Extrao simples das tabelas pessoa e edificacao mencionadas anteriormente;

  • Transformao 1 - Criao de uma nova tabela que contenha o valor dos imveis por bairro. Hoje a tabela unidadeavaliacao, possui a rea do imvel, e a tabela valores_imoveis possui o valor do metro quadrado do imvel. Uniremos essas tabelas e demais tabelas necessrias para manipulao dos dados na segunda transformao;

    Criao da tabela IMOVEL_AVALIADO

    Nome Coluna Tipo do Dado RazaoSocial Varchar Bairro Varchar ValorAvaliacao Decimal

    Tabela 2 Tabela Imovel_Avaliado

    Transformao 2 Agregar os dados da nova tabela Imovel_Avaliado pelo campo bairro, produzindo um relatrio no formato csv, que contenha o total em termos de imveis por bairro;

    4.1.4 Estudo comparativo entre Oracle e PostgreSQL

    Antes da migrao necessrio fazer um estudo dos SGDBS, identificar diferenas de sintaxe e funcionalidades. Nas tabelas 3 e 4 citamos algumas diferenas entre o Oracle e o PostgreSQL:

    Tipo de Dados Oracle PostgreSQL

    Integer NUMBER SMALLINT (16-bit), INTEGER (32-bit), BIGINT (64-bit)

    Floating point BINARY_FLOAT, BINARY_DOUBLE

    REAL (32-bit), DOUBLE PRECISION (64-bit)

    Decimal NUMBER DECIMAL, NUMERIC

  • String CHAR, VARCHAR2, CLOB, NCLOB, NVARCHAR2, NCHAR

    CHAR, VARCHAR, TEXT

    Binary BLOB, RAW, LONGRAW, BFILE

    BYTEA

    Date/Time DATE, TIMESTAMP (with/without TIMEZONE), INTERVAL

    DATE, TIME (with/without TIMEZONE), TIMESTAMP (with/without TIMEZONE), INTERVAL

    Boolean N/A BOOLEAN

    Outros SPATIAL, IMAGE, AUDIO, VIDEO, DICOM, XMLType

    ENUM, POINT, LINE, LSEG, BOX, PATH, POLYGON, CIRCLE, CIDR, INET, MACADDR, BIT, UUID, XML, arrays

    Tabela 3 Comparao Tipos de Dados entre Oracle e PostgreSQL

    ORACLE PostgreSQL

    Sistema Operacional Windows, Linux, UNIX, MAC OS X

    Windows, Linux, UNIX, MAC OS X, BDS (PostgreSQL 8.0)

    JOIN FROM t1, t2 WHERE t1.id = t2.id(+)

    FROM t1 LEFT OUTER JOIN t2 ON t1.id = t2.id

    FUNES DECODE (sexo, 'M', 'Masculino', 'F', 'Feminino')

    CASE WHEN sexo = 'M' THEN 'Masculino' WHEN sexo = 'F' THEN 'Feminino' END)

    NVL COALESCE

    sysdate, systimestamp current_date, current_timestamp

  • UNION MINUS EXCEPT

    Clausula LIMT e OFFSET

    ROWNUM, ROWID LIMIT, OFFSET, OID

    Catalogo de sistema SYS, SYSTEM pg_catalog, information_schema

    Vises materializadas Possui vises materializadas

    No possui vises materializadas, porm possvel contornar com gatilhos e funes

    Tabela 4 Comparao Oracle X PostreSQL

    4.2 Escolha das ferramentas ETL

    Como proposto, faremos a migrao dos dados entre os bancos envolvidos, Oracle e PostgreSQL, usando ferramentas de ETL para extrao, transformao e carga. Selecionamos trs ferramentas para fazer a migrao, o Datastage, o Talend e o Apatar. Optamos pelo Talend e pelo Apatar por serem livres de custos com licena, j o Datastage foi escolhido por ser uma ferramenta bem estabelecida em termos de mercado.

    4.2.1 Datastage

    O Datastage uma ferramenta lder de mercado quando se falam em Business Intelligence e ETL. Esta ferramenta permite integrao de dados com mltiplas plataformas, capaz de processar altssimos volumes de dados. Tem uma interface grfica muito amigvel, possui dezenas de conectores e estgios para manipulao de dados.

    O Datastage pertence a IBM (IBM Infosphere Datastage), mas iniciou numa empresa chamada VMark. Seu primeiro prottipo foi desenvolvido por Lee Scheffler, no ano de 1996. A Vmark adquiriu a Unidata e se tornou a Ardent Software, que mais tarde se foi comprada pela Informix e se tornou Ascential Software. No ano de 2005 a IBM comprou a Ascential Software.

    a) Produtos

  • Administrator especifica configuraes default do servidor, adiciona e remove projetos, configura propriedades do projeto e acessa o repositrio atravs de linha de comando;

    Designer especifica extrao e transformao, denormaliza, agrega e divide dados;

    Director valida, executa, monitora, agenda e mostra estatsticas dos Jobs;

    Manager grava e gerencia meta dados reutilizvel para Jobs datastage, cria rotinas e transformaes customizadas.

    b) Tecnologia

    Linguagem de Programao: Universe Programming language, html e java

    Linguagens query: SQL Sistemas operacionais: Windows e UNIX

    c) Aplicaes

    Migrao de banco de dados;

    Integrao de Aplicaes, data warehouses e data marts;

    Operaes entre diferentes bancos, import/export;

    Agregao de dados;

    4.2.2 Talend

    A Talend um distribuidor de software open source de integrao de dados. Lanou no ano de 2006, a primeira verso do Talend Open Studio. Essa ferramenta possui vrias funcionalidades, principalmente para a migrao e integrao entre os sistemas operativos, para ETL (Extract, Transform, Load), Business Intelligence,

  • Data Warehousing e Data Quality. Ao contrrio das solues proprietrias fechadas que apenas as maiores organizaes podem adquirir, a Talend cria solues de integrao de dados acessveis a organizaes de todas as dimenses.

    a) Produtos

    Talend Open Studio - Job Designer oferece uma interface grfica e funcional para visualizao dos processos integrados. Exibe opes e componentes conectores, so unidos de forma simples, arrastando e soltando um componente para a rea de criao.

    Talend Open Studio - Business Modeler - uma ferramenta para modelagem que auxilia os profissionais do mundo dos negcios a relacionarem as atividades de design com todas as etapas de um processo especfico.

    Talend Open Studio Component Library - biblioteca com componentes e conectores para voc desenvolver mapas e funes de integrao. Pode aumentar as opes de componentes criando padres nas linguagens de Perl, Java ou SQL.

    Talend Open Studio Matadata Repository - os meta dados trabalhados ficam armazenados nesse repositrio. Todas as informaes de projetos ficam salvas por mdulos e podem rapidamente ter seus processo integrados.

    b) Tecnologia

    Linguagem de Programao: Java e Perl Plataforma: Eclipse Linguagens query: SQL, SOAP/XML Sistemas Operacionais: Windows, Linux e Unix

    c) Aplicaes

    Migrao de banco de dados;

  • Integrao de Aplicaes;

    Criao e alterao de Banco de Dados;

    Operaes entre diferentes bancos de dados, import/export;

    Agregao de dados;

    4.2.3 Apatar

    O Apatar uma ferramenta de ETL e de integrao de dados open source. Foi fundada no ano de 2005. Seu primeiro release aconteceu no ano de 2007 onde o produto foi demonstrado a parceiros estratgicos, incluindo MySQL e BlackDuck. Apatar tambm a empresa que fornece suporte para sua ferramenta open source.

    a) Produtos

    O Apatar um aplicativo desktop que efetua integrao de dados atravs de conexes com uma diversidade de banco de dados, aplicaes, protocolos e arquivos. A ferramenta permite que desenvolvedores, administradores de banco de dados e usurios integrem informaes de uma variedade de fontes e formatos de dados. A ferramenta bem intuitiva e no h necessidade de desenvolvimento de cdigo para integrao de dados. Apatar ainda desenvolveu duas outras ferramentas:

    Apatar Merge um MS Word plug-in que permite o desenvolvimento de documentos Microsoft Word, usando templates de dados Salesforce CRM1.

    Apatar On-Demand uma aplicao baseada em Web que integra o aplicativo Salesforce CRM com edies desktop do QuickBooks accounting system 2.

  • b) Tecnologia

    Linguagem de Programao: J2EE

    Plataforma: Eclipse

    Linguagens query: SQL, SOAP/XML

    Sistemas Operacionais: Windows, Linux, MacOS

    c) Aplicaes

    Migrao de banco de dados;

    Integrao de Aplicaes;

    Criao e alterao de Banco de Dados;

    Operaes entre diferentes bancos de dados, import/export;

    Agregao de dados;

    4.3 Experimento

    Para o experimento, definimos algumas etapas a serem seguidas: A extrao simples das tabelas pessoa e edificao. Uma tranformao que unir as tabelas unidadeavaliacao,

    pessoa_edificacao, valores_imoveis, edificao, territorial e bairro. Uma agregao que determinara o valor total dos imveis por bairro.

    Atravs dos procedimentos acima listados pretendemos avaliar a qualidade em uso de cada uma das ferramentas de ETL segundo as normas sobre qualidade de software ISO/IEC 9126 e 14598. Mediremos a efetividade, produtividade,

  • segurana e qualidade. Abaixo seguem os experimentos com cada uma das ferramentas.

    4.3.1 Datastage

    a) Extrao da tabela Pessoa

    Para fazermos uma extrao no Datastage, precisamos decidir o tipo de job que queremos. O Datastage possui jobs tipo Parallel e Server. Atualmente a maior parte do cdigo desenvolvido ser em parallel, ou seja, com as linhas processadas sendo distribudas entre os processadores, visando quantidade de dados e focando principalmente em desempenho. Para esse experimento desenvolvemos jobs parallel tambm conhecidos como PX. A figura 7 ilustra o job de extrao da tabela pessoa.

    Figura 7 - Datastage extrao tabela pessoa

    A figura 8 mostra os detalhes de conexo com o banco Oracle.

  • Figura 8 - Datastage configurao Oracle

    b) Extrao da tabela Edificacao

    O PostgreSQL no possui um conector especifico, mas o datastage trabalha com conectores ODBC. As configuraes so similares as de configurao de um conector qualquer de banco de dados. Na figura 8 vemos a conexo com o estgio de extrao do Oracle e o conector ODBC comunicando com o banco de dados PostgreSQL.

  • Figura 9 - Datastage extrao tabela edificacao

    c) Transformao 1 Carregar tabela Imovel_Avaliado

    O Datastage permite mais de dois conectores de banco de dados por estgio de join. Optamos por usar somente dois links por vez para ficar similar as demais ferramentas. Temos um estgio de transformao, que poder efetuar multiplicao entre as colunas ou outra operao matemtica qualquer.

    Figura 10 - Datastage Job de Transformao 1

  • A figura 10 acima mostra os joins entre as tabelas relacionadas para a carga no PostgreSQL.

    O mapeamento de meta dados feito manual ou automtica de acordo com a escolha do desenvolvedor. A figura 11 a seguir mostra os meta dados no estgio do Oracle.

    Figura 11 - Datastage meta dados

    d) Transformao 2 Agregao de dados Imovel_Avaliado

    A figura 12 mostra o segundo job de transformao. O resultado da transformao 1 a entrada da transformao 2. O diferencial nesse caso o estgio de agregao, que efetuar a soma agregando pelo campo bairro. A figura 13 mostra o detalhamento do estgio de agregao.

  • Figura 12 - Datastage Job de Transformao 2

    Figura 13 Datastage Job de Agregao

    4.3.2 Talend

  • a) Extrao da tabela Pessoa

    A tarefa de extrao no Talend foi simples. O primeiro passo foi a configurao da conexo com o banco de dados Oracle. A figura 14 destaca a configurao efetuada com o Oracle:

    Figura 14 - Talend conexo com banco Oracle

    Depois de configurada a conexo banco, podemos escolher o estgio de Oracle na aba Base de Dados, como ilustrado na figura 15.

    Figura 15 - Talend estgio de Input Oracle

  • O mapeamento dos campos nos estgios podem ser feitas de maneira automtica. Quando escolhemos a conexo com o banco, podemos preencher o nome da tabela, e clicar na opo Guess Schema, os nomes dos campos e tipos de dados so preenchidos automaticamente. O mesmo funciona quando clicamos na opo Guess Query, a query preenchida de maneira automtica. Para insero no PostgreSQL , devemos fazer a configurao com o banco de dados de maneira muito similar a feita com o Oracle anteriormente, a figura a seguir mostra um exemplo.

    Figura 16 - Talend conexo com banco PostgreSQL

    Depois de configurada a conexo com os dois bancos, conectamos os banco e os schemas sero sincronizados. Quando estamos escrevendo em um banco podemos solicitar inclusive que a tabela seja criada. A figura 17 mostra o job de extrao da tabela pessoa configurado e pronto para ser executado.

  • Figura 17 - Talend Job Extrao Pessoa

    b) Extrao da tabela Edificacao

    As demonstraes feitas anteriormente para a tabela pessoa tambm so vlidas para qualquer outra tabela do banco. importante salientar que algumas tabelas no Oracle possuem o tipo de dados sem tamanho (number), no estgio de postgreSQL os que possuir a tabela alvo, o tamanho do campo obrigatrio.

    A figura 18 demonstra a estrutura do job de extrao da tabela edificao.

    Figura 18 - Talend Extrao tabela edificacao

  • c) Transformao 1 Carregar tabela Imovel_Avaliado

    Como proposto anteriormente, unimos diversas tabelas, com intuito de mapear dificuldades durante um processo de transformao. Os estgios de join do Talend possuem conexo somente com dois links por vez. As figuras a seguir demonstram respectivamente a configurao de batimento de chaves no estgio de join, e o job de transformao de resultado.

    Figura 19 - Talend estgio de Join - chaves

  • Figura 20 - Talend Job de Transformao 1

    d) Transformao 2 Agregao de dados Imovel_Avaliado

    A segunda transformao na verdade uma agregao de dados. Usamos um estgio de agregao, configurando as colunas que serviro de agrupamento e tambm qual coluna armazenar o novo resultado. Isso est ilustrado na figura 21.

    Figura 21 - Talend estgio de agregao

    A figura 22 mostra o resultado final do job de agregao.

  • Figura 22 - Talend Job de agregao

    4.3.3 Apatar

    a) Extrao da tabela Pessoa

    A extrao da tabela pessoa no Apatar foi simples, como visto no exemplo da ferramenta anterior tambm o primeiro passo fazer a conexo com o banco de dados, para o nosso caso de estudo, com o conector Oracle:

  • Figura 23 - Apatar conexo com banco Oracle

    E na tela seguinte basta escolher qual tabela ser a tabela fonte, neste caso, a tabela pessoa. Aps o termino da configurao do conector de banco de dados fonte, necessrio fazer o mesmo para o conector do banco de dados de destino. Uma vez que conectores fonte e destino estiverem configurados, possvel fazer o mapeamento das colunas fonte e destino atravs do operador Transform. Este mapeamento feito de maneira manual, o que pode ser bem trabalhoso para uma tabela que contenha muitas colunas. Abaixo podemos ver o mapeamento das colunas no Transform:

    Figura 24 Apatar mapeamento de colunas

    A nomenclatura dos estgios feita de maneira automtica pelo Apatar, e esta nomenclatura especifica de cada estagio muito til na leitura de logs gerados a partir do processamento do job.

    A figura abaixo mostra o job finalizado e pronto para ser executado:

  • Figura 25 - Apatar Extrao tabela pessoa

    a) Extrao da tabela Edificacao

    Para fazer a carga da tabela edificacao foi necessrio criar um job exatamente como vemos anteriormente. Apenas temos que novamente mapear todas as colunas fonte e destino. Abaixo temos o job para a carga da tabela edificacao criado:

  • Figura 26 - Talend Extrao tabela edificacao

    b) Transformao 1 Carregar tabela Imovel_Avaliado

    Assim como o Talend, o Apatar tambm possui apenas dois links para joins. Outra dificuldade encontrada foi que o Apatar no faz multiplicao ou diviso de valores. Ento tivemos que criar uma tabela staging no PostgreSQL para carregar o resultado dos joins e ento acrescentamos mais um conector PostgreSQL onde fizemos a multiplicao das colunas VALOR e NRAREAGEO atravs de uma query, conseguindo assim carregar os dados do caso proposto na tabela imvel_avaliado.

  • Figura 27 - Apatar Job de Transformao 1

    c) Transformao 2 Agregao de dados Imovel_Avaliado

    No encontramos dificuldades para fazer esta agregao no Apatar. O estgio de criao de arquivos muito intuitivo.

    Na figura 28 podemos ver o job criado e pronto para ser executado:

  • Figura 28 - Apatar job de agregao

    4.4 Resultados

    4.4.1 Avaliao das Ferramentas

    Para avaliao das ferramentas de ETL, usaremos como guia as normas sobre qualidade de produto de software ISO/IEC 9126 e 14598 2000. A avaliao do produto de software tem sido uma das formas empregadas por organizaes que produzem ou adquirem software para obteno de maior qualidade nestes produtos, sem ele produtos completos ou partes a serem integradas num sistema computacional mais amplo.

    Em nossa avaliao utilizaremos o modelo que qualidade definido pela norma 9126.

    a) Qualidade em Uso

  • Qualidade em uso a viso de qualidade do usurio e medido pelo efeito do uso do software. O modelo de Qualidade para Qualidade em Uso faz a avaliao de quanto o usurio pode atingir seus objetivos em um ambiente, sem medir as propriedades do produto de software. Esse modelo possui quatro caractersticas de qualidade: Efetividade, Produtividade, Segurana e Satisfao.

    Efetividade: capacidade do produto de software de permitir ao usurio atingir metas especficas com acurcia e completude, em um contexto de uso especfico;

    Produtividade: capacidade do produto de software de permitir que seus usurios empreguem quantidade adequada de recursos em relao efetividade alcanada em um contexto de uso especfico;

    Segurana: capacidade do produto de software de apresentar nveis aceitveis de riscos de danos a pessoas, negcios, software, propriedade ou ambiente em um contexto de uso especfico;

    Satisfao: capacidade do produto de software de satisfazer usurios em um contexto de uso especfico;

    b) Mtricas de Qualidade em Uso ISO/IEC 9126-4

  • Mtricas de qualidade de uso medem quanto um produto de software atende s necessidades de um usurio especfico. As medidas so obtidas pela observao do uso do produto ou por uma simulao de um ambiente real.

    Na tabela abaixo foram descritas as mtricas selecionadas na coluna Mtrica e na parte superior podemos ver os nveis de pontuao definidos para nossa avaliao.

    Tabela 5 Seleo de Mtricas

  • Abaixo criamos alguns grficos para melhor visualizao dos resultados acima descritos:

    4.4.2 Efetividade

    Grfico 1 Efetividade

    a) Log de erro de fcil compreenso:

    Talend: Como o Talend uma ferramenta desenvolvida em Java os erros que aparecem no log so especficos do Java, portando se o usurio no possui um conhecimento em Java a compreenso destes erros no log no to simples.

    Apatar: O tratamento de erros do Apatar tornou a compreenso simples, a maioria dos erros encontrados em nosso experimento foi de fcil compreenso e para aqueles erros que no eram to simples, podemos encontrar uma melhor descrio e como resolver no site de suporte do Apatar, um site em formato wiki ou em um frum especifico do Apatar.

    Datastage: O Datastage mostra um cdigo de erro e uma lista de cdigo de erros pode ser encontrada no site de IBM.

    b) Possui GNU General Public License Software livre:

    O Apatar e o Talend so classificados como software livre e possui GNU General Public License, o que garante a liberdade de distribuio e modificaes em todas as verses de um programa, garantindo que o software ainda seja distribudo livremente para todos os usurios interessados, conforme descrito anteriormente, na sesso de Categorias de software livre.

    c) Operador Join suporta mais que duas tabelas:

  • O resultado do Apatar e do Talend para esta mtrica foi insatisfatrio, pois estes dois softwares no possibilitam fazer joins de mais que duas tabelas em um mesmo operador join, o que torna o desenvolvimento de um job com vrios joinsmuito mais trabalhos, pois precisamos fazer os joins em utilizando vrios operadores joins, o resultado de um join com 2 tabelas a entrada para um segundo join, e assim por diante.

    O Datastage permite fazer joins com diversas tabelas utilizando apenas um nico operador join, o que torna a criao de um job muito maisrpida.

    d) Possui diversos tipos de operadores como join, filter:

    O Datastage a ferramenta que possui o maior nmero de operadores entre as ferramentas avaliadas, esta caracterstica facilita o desenvolvimento de um job alm de poder diminuir o seu tempo de execuo.

    e) Conexo ODBC genrica:

    As trs ferramentas avaliadas possuem esta funcionalidade. Esta funcionalidade auxilia na conexo com outros bancos de dados que possam no possuir um conector especfico na ferramenta. Como foi o caso do Datastage, este no possui um conector especfico para PostgreSQL, porm a conexo tornou-se possvel utilizando um conector ODBC.

    f) Faz conexo com a maioria dos bancos de dados:

    Todas as trs ferramentas avaliadas tiveram um resultado satisfatrio, porm o Talend a ferramenta que possui a maior quantidade de conectores com diferentes tipos de bancos de dados.

    g) Faz diversos tipos de agregaes:

    O resultado desta avaliao para o Apatar foi parcialmente satisfatrio pois possui algumas limitaes como:

    No faz multiplicao ou diviso de valores, por exemplo, caso seja necessrio multiplicar a coluna A pela coluna B de uma tabela para gerar um novo campo, isto tem que ser feito atravs de SQL, o resultado deve ser inserido em uma tabela staging e ento extrado novamente se for necessrio fazer alguma outra agregao ou transformao.

    h) Diferentes plataformas:

    O resultado desta avaliao foi totalmente satisfatrio para as trs ferramentas, pois todas eles podem ser instaladas independentemente do sistema operacional utilizado.

  • i) Sem necessidade de codificao:

    O Talend necessita de alguma codificao para certos estgios ou operadores, a linguagem utilizada dever ser o Java.

    j) Fcil utilizao:

    Todas as ferramentas avaliadas so de fcil utilizao, no necessrio um treinamento prvio para a criao de processos simples.

    4.4.3 Produtividade

    Grfico 2 Produtividade

    a) Agendamento de processos: possvel agendar processos nas trs ferramentas utilizadas. O agendamento de processos no Apatar feito de maneira simples, utilizando

    a mesma ferramenta onde o processo criado.

    No Datastage o agendamento feito via Datastage Director.

    b) Tempo para fazer mapeamento em tabelas com mais de 20 colunas:

    O resultado foi insatisfatrio para o Apatar, pois o mapeamento feito de maneira manual, coluna a coluna, o que demanda muito tempo para tabelas com diversas colunas.

    J o mapeamento de colunas no Datastage e Talend pode ser feito de maneira automtica.

    c) Tempo para criar um processo com transformao de complexidade alta:

  • Definimos que um processo de complexidade alta teria quinze operadores ou mais. Sendo assim o Datastage teve uma melhor performance, pois possui o maior nmero de operadores e as colunas podem ser propagadas de estgio a estgio, sem a necessidade de muito trabalho manual.

    O Apatar no faz propagao de colunas de maneira automtica.

    d) Tempo para criar um processo com transformao de complexidade mdia:

    Definimos que um processo de complexidade mdia teria de dez a quinze operadores. Nesta avaliao o Datastage ainda teve a melhor performance devido a quantidade de operadores e menor trabalho manual.

    e) Tempo para criar um processo simples: Definimos que um processo de complexidade simples teria menos que dez

    operadores, neste caso o Talend teve a melhor performance na avaliao, devido a facilidade e rapidez com que um processo deste nvel pode ser criado, sua quantidade de operadores ou funcionalidades foi bastante adequada.

    4.4.4 Segurana

    Grfico 3 Segurana

    a) Senhas dos conectores de banco de dados so criptografadas: As trs ferramentas avaliadas possuem esta finalidade. Como estas

    ferramentas fazem conexo direta com bancos de dados, dependendo do negcio ou dados acessados, estes podem ser confidencias, portanto esta uma funcionalidade importante.

    b) Software exige usurio e senha: Apenas o Datastage exige usurio e senha, estas sendo os mesmos que os

    do sistema operacional onde a ferramenta esta instalada.

  • 4.4.5 Satisfao

    Grfico 4 Satisfao

    a) Satisfao geral: O nvel de satisfao do Talend levando em considerao os processos

    criados neste experimento pode ser comparado ao nvel de satisfao Datastage. Lembrando que o Talend uma ferramenta de software livre, e este atendeu nossas necessidades e no tem custo, o que torna o Talend uma ferramenta adequada para negcios onde um grande investimento em uma ferramenta de ETL no vivel.

    O nvel de satisfao do Apatar foi satisfatrio, as caractersticas que mais deixaram a desejar foram como mencionado anteriormente a necessidade de trabalho manual e a ausncia de alguns operadores que necessitvamos.

    O Datastage uma ferramenta muito utilizada no mercado e j bastante consagrada, sendo muito estvel, porem com custo elevado para certos negcios.

    b) Treinamento presencial disponvel Todas as ferramentas avaliadas possuem treinamento presencial disponvel e

    mais detalhes podem ser facilmente encontrados em seus web sites.

    c) Documentao cobre todas as funcionalidades: A documentao do Datastage e do Apatar foram as melhores nesta

    avaliao. Com relao ao Apatar, todas as dificuldades encontradas puderam ser encontradas na documentao disponvel em seu web site.

    d) Documentao disponvel: O Datastage e o Apatar mais uma vez foram as melhores nesta avaliao.

    e) Interface do usurio intuitiva:

  • Todas as ferramentas avaliadas so totalmente intuitivas.

  • 5. CONSIDERAES FINAIS

    O exerccio de qualquer profisso determinante no espao social e no mercado de trabalho. Os profissionais de tecnologia necessitam se atualizar constantemente. A cada ano o numero de ferramentas livres e de cdigo aberto aumenta, o que traz muitos benefcios a toda a sociedade, principalmente para a rea acadmica que ganha com a experincia.

    Com proposta de avaliar ferramentas de ETL, comparamos trs ferramentas, das quais duas no tem custo de licena. A ferramenta deve ser escolhida de acordo com o tamanho da aplicao e caracterstica do negcio.

    Ficamos satisfeitos em encontrar disponibilidade de ferramentas de software livre e de boa qualidade para processos de ETL. O Talend em especial surpreendeu nesse aspecto, uma vez que desenvolvido em Java, facilita o entendimento de erros para aqueles que j possuem um bom conhecimento nessa linguagem.

    A partir deste relato de caso estabeleceu-se uma metodologia para avaliao de ferramentas de ETL. O usurio que necessita fazer uma escolha de ferramenta, poder checar o quadro de resultados que disponibilizamos e fazer uma melhor escolha.

    importante tambm ressaltar o conhecimento adquirido na aprendizagem de diferentes ferramentas. O fato de no conhecermos a fundo duas das trs ferramentas utilizadas, nos trouxe a oportunidade de leitura e absoro de conhecimentos relacionados a todo o processo desenvolvido.

  • 6. REFERNCIA

    DATE, C.J.Introduo a Sistemas de Bancos de Dados,8. Ed. Rio de Janeiro. Elsevier. 2003

    InMon, Willian H. Introduction to the Government Information Factory (GIF). Inmon Associates Inc.. 2003

    CARVALHO. Tereza Cristina Melo de Brito.(org). Gerenciamento de Redes - uma abordagem de sistemas abertos. So Paulo - Braslia. BRISA - TELEBRS. Makron Books. 1993

    CHESWICK, W.; BELLOVIN, S. M. ; RUBIN. A. D.; Firewalls e Segurana na Internet. 2.ed. Porto Alegre. Bokman. 2005

    COMER, D. E., Redes de Computadores, Porto Alegre, 2001: Bookman.

    FERRARI, Antnio Martins. Telecomunicaes: Evoluo e Revoluo. So Paulo: rica, 1991.

    APATAR. Why Apatar. Apatar, 2011. Disponvel em: http://apatar.com/why_apatar.html. Acessado em 16/11/2011.

    JUNIOR, EDSON ALMEIDA. Histria e Evoluo da Oracle no Mundo. So Paulo, 2008. Disponvel em: http://www.consulting.com.br/edsonalmeidajunior/admin/downloads/

    TALEND. Talend Open Studio. Disponvel em: http://www.talend.com/products-data-integration/talend-open-studio.php. Acessado em 20/11/2011

  • TALEND. Installation Guide. Disponvel em: http://www.talend.com/resources/documentation.php. Acessado em 10/11/2011

    DATASTAGE. Infosphere Datastage. Disponvel em: http://www-142.ibm.com/software/products/br/pt/ibminfdata/. Acessado em 20/11/2011.

    ORACLE. A histria do Oracle: Inovao, Liderana e Resultados. Disponvel em: http://www.oracle.com/br/corporate/press/story-346137-ptb.html

    ELMASRI, R.; Navathe, S. Sistema de Banco de Dados, 4 ed. So Paulo, Pearson Addison Wesley,2005.

    TELLES, Fabio, IKE, Fernando. Migrao Oracle para PostgreSQL. So Paulo, 2008. Disponvel em: http://www.slideshare.net/telles/migrao-de-oracle-para-postgresql-fisl-presentation. Acessado em 25/10/2011.

    SOUZA, Evandro Pontes. Migrao de Banco de Dados Oracle para PostgreSQL. So Paulo, 2007. Disponvel em: http://www.cnptia.embrapa.br/content/07107-migra-o-de-banco-de-dados-oracle-para-postgresql.html. Acessado em 27/10/2011.

    ITL Education Solutions Limited. Introduction to Database Systems, 1 ed. New Dheli, Pearson Education India, 2008.

    SOFTWARE LIVRE. Categorias de Software Livres e no Livres. Disponvel em http://www.gnu.org/philosophy/categories.pt-br.html. Acessado em 15/11/2011

    ISO/IEC 9126-1: 2000. Software engineering Software product quality- Part 1:

    Quality Model.

    ISO/IEC 9126-2: 2000. Software engineering Software product quality- Part 2:

    External Metrics.

  • ISO/IEC 9126-3: 2000. Software engineering Software product quality- Part 3:

    Internal Metrics.

    ISO/IEC 9126-4: 2000. Software engineering Software product quality- Part 4:

    Quality in Use Metrics.

  • 7. ANEXOS

    ANEXO A DDL Tabelas usadas no experimento

    -- Sequence: seq_territorial

    -- DROP SEQUENCE seq_territorial;

    CREATE SEQUENCE seq_territorial INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1069344 CACHE 20; ALTER TABLE seq_territorial OWNER TO postgres;

    -- Table: territorial

    -- DROP TABLE territorial;

    CREATE TABLE territorial ( cdquadrante integer NOT NULL, cdquadricula integer NOT NULL, cdsetor integer NOT NULL, cdquadra integer NOT NULL, cdlote integer NOT NULL, id_taxa smallint NOT NULL, id_calcada smallint NOT NULL, id_superficieprincipal smallint NOT NULL, id_forma smallint NOT NULL, id_podologia smallint NOT NULL,

  • id_topografia smallint NOT NULL, id_irreglote smallint NOT NULL, id_irregocupacao smallint NOT NULL, id_ocupacao smallint NOT NULL, id_ocupacaolote smallint NOT NULL, id_situacao smallint NOT NULL, id_patrimonio smallint NOT NULL, id_limitefrontal smallint NOT NULL, cdloteamento character varying(127), cdreduzido numeric, dtcancelamento integer, nrmatricula bigint, nroficio bigint, nrincra numeric, nrzonaaliquota integer, nrzonasolo integer, nrzonasetor smallint, dsobservacoes character varying(300), nrendereco numeric, dscomplementoend character varying(30), nrareaterreno numeric(11,2), nrareatributavel numeric(11,2), cdpermuso character varying(1), nroficiolivro integer, nroficiofolha integer, nrtestadas smallint, dsprocdesmembunific character varying(15), processamento_id numeric, nrtestadapavimentacao numeric, nrtestadailuminacao numeric, flmeiofio boolean, id_tpcoletalixo smallint, id_bairro integer, territorial_id integer DEFAULT nextval('seq_territorial'::regclass),

  • lote_loteamento character varying(20), dtbaldio integer, vuface numeric, quadra_loteamento character varying(20), dsprocdesmembramento character varying(15), nrtestadaprincipal numeric, carga_realizada numeric, cdestado integer DEFAULT 0, autonoma_baldio integer, dtexercicio integer, dtimplantacao integer, updated_at timestamp(6) without time zone ) WITH (OIDS=FALSE); ALTER TABLE territorial OWNER TO postgres;

    -- Index: territorial_idx1

    -- DROP INDEX territorial_idx1;

    CREATE INDEX territorial_idx1 ON territorial USING btree (cdquadrante, cdquadricula, cdsetor, cdquadra, cdlote);

    -- Index: territorial_idx2

    -- DROP INDEX territorial_idx2;

    CREATE INDEX territorial_idx2 ON territorial USING btree (cdquadrante, cdquadricula, cdsetor, cdquadra, cdlote, processamento_id);

  • -- Table: edificacao

    -- DROP TABLE edificacao;

    CREATE TABLE edificacao ( cdquadrante integer NOT NULL, cdquadricula integer NOT NULL, cdsetor integer NOT NULL, cdquadra integer NOT NULL, cdlote integer NOT NULL, cdunidadeautonoma integer NOT NULL, id_testada bigint NOT NULL, nrmatricula bigint, nroficio smallint, dscomplemento character varying(25), livro integer, folha integer, id_taxa numeric, dtimplantacao integer, dtexercicio integer, dtcancelamento integer, nrareaprivcondhor numeric, nrareacomumcondhor numeric, nrfracaoidealcond numeric(12,4), area_lote numeric(12,4), nrimovel numeric, nrmetrica numeric, requerimento_itbi character varying(30), updated_at timestamp(6) without time zone )

  • WITH (OIDS=FALSE); ALTER TABLE edificacao OWNER TO postgres;

    -- Table: unidadeavaliacao

    -- DROP TABLE unidadeavaliacao;

    CREATE TABLE unidadeavaliacao ( cdundavaliacao integer NOT NULL, cdunidadeautonoma integer NOT NULL, cdlote integer NOT NULL, cdquadra integer NOT NULL, cdsetor integer NOT NULL, cdquadricula integer NOT NULL, cdquadrante integer NOT NULL, id_forro smallint NOT NULL, id_instsanitaria smallint NOT NULL, id_sotao smallint NOT NULL, id_insteletrica smallint NOT NULL, id_padrao smallint NOT NULL, id_elevador smallint NOT NULL, id_acabamentointerno smallint NOT NULL, id_revestimentointerno smallint NOT NULL, id_disposicao smallint NOT NULL, id_condicaoedificacao smallint NOT NULL, id_revestimentoexterno smallint NOT NULL, id_piso smallint NOT NULL, id_acabamentoexterno smallint NOT NULL, id_tipocobertura smallint NOT NULL, id_cobertura smallint NOT NULL,

  • id_matpredominante smallint NOT NULL, id_estrutura smallint NOT NULL, id_regutilizacao smallint NOT NULL, id_respuso smallint NOT NULL, id_conservacao smallint NOT NULL, id_locpredio smallint NOT NULL, id_afastamentos numeric, id_esquadrias smallint NOT NULL, id_loclote smallint NOT NULL, id_uso smallint NOT NULL, id_tipologia smallint NOT NULL, id_condominio numeric, id_bloco numeric, dscomplemento character varying(25), nrtotalpavimentos smallint, nrpavunidade smallint, nrpavlocalizacao smallint, nranoconstrucao integer, nranoultreforma integer, nranoimplantacao integer, brareaundaval numeric(11,2), nrfracaoideal numeric(12,4), nrareageo numeric(11,2), nrtestada numeric(11,2), dtexercicio numeric, dtimplantacao integer, dtcancelamento integer, dtlicenca timestamp without time zone, nrlicenca integer, dtvistoria timestamp without time zone, nrvistoria integer, dtdemolicao timestamp without time zone, nrdemolicao integer, nrcodmuncontrib integer,

  • dsrazaosocial character varying(255), nrandar smallint, dsapto character varying(10), dssala character varying(10), dsbox character varying(10), tr_fi_terreno_cond numeric, id_cobranca numeric, cdreduzido numeric, processo_cancelamento character varying(40), nrprojeto integer, anoprojeto integer, unificacao character varying(1), updated_at timestamp(6) without time zone ) WITH (OIDS=FALSE); ALTER TABLE unidadeavaliacao OWNER TO postgres;

    -- Index: undaval_idx_aut

    -- DROP INDEX undaval_idx_aut;

    CREATE INDEX undaval_idx_aut ON unidadeavaliacao USING btree (cdquadrante, cdquadricula, cdsetor, cdquadra, cdlote, cdunidadeautonoma);

    -- Table: pessoa

    -- DROP TABLE pessoa;

    CREATE TABLE pessoa (

  • id_pessoa serial NOT NULL, nmrazaosocial character varying(255), nmfantasia character varying(255), tppessoa bigint, nrrg character varying(20), dtnascimento timestamp without time zone, nrtelefone bigint, nrfax bigint, dsemail character varying(100), nmcontato character varying(35), nrcpfcnpj character varying(30), nrinscricaomunicipal character varying(30), habilitado character varying(1), CONSTRAINT pessoa_pkey PRIMARY KEY (id_pessoa) ) WITH (OIDS=FALSE); ALTER TABLE pessoa OWNER TO postgres;

    -- Table: pessoa_edificacao

    -- DROP TABLE pessoa_edificacao;

    CREATE TABLE pessoa_edificacao ( cdunidadeautonoma integer NOT NULL, cdlote integer NOT NULL, cdquadra integer NOT NULL, cdsetor integer NOT NULL, cdquadricula integer NOT NULL, cdquadrante integer NOT NULL, tpresponsabilidade smallint NOT NULL, id_pessoa integer NOT NULL )

  • WITH (OIDS=FALSE); ALTER TABLE pessoa_edificacao OWNER TO postgres;

    -- Table: pessoa_territorial

    -- DROP TABLE pessoa_territorial;

    CREATE TABLE pessoa_territorial ( cdlote integer NOT NULL, cdquadra integer NOT NULL, cdsetor integer NOT NULL, cdquadricula integer NOT NULL, cdquadrante integer NOT NULL, tpresponsabilidade smallint NOT NULL, id_pessoa integer NOT NULL ) WITH (OIDS=FALSE); ALTER TABLE pessoa_territorial OWNER TO postgres;

    CREATE TABLE imovel_avaliado_staging ( razaosocial character varying(255), bairro character varying(255), valor numeric, nraerageo numeric ) WITH (OIDS=FALSE); ALTER TABLE imovel_avaliado_staging OWNER TO postgres;

    CREATE TABLE imovel_avaliado (

  • razaosocial character varying(255), bairro character varying(255), valoravaliacao numeric ) WITH (OIDS=FALSE); ALTER TABLE imovel_avaliado OWNER TO postgres;

    CREATE TABLE bairro ( id_bairro serial NOT NULL, nmbairro character varying(60), CONSTRAINT bairro_pkey PRIMARY KEY (id_bairro) ) WITH (OIDS=FALSE); ALTER TABLE bairro OWNER TO postgres;

    CREATE TABLE valores_imoveis ( inscricao character varying(510), quadrante numeric, quadricula numeric, setor numeric, quadra numeric, lote numeric, valor numeric ) WITH (OIDS=FALSE); ALTER TABLE valores_imoveis OWNER TO postgres;

  • ANEXO B Ferramenta Ora2pg

    Durante nosso estudo, tivemos oportunidade de conhecer o ora2pg, que uma ferramenta especifica para migrao entre os bancos Oracle e PostgreSQL. No fizemos a utilizao de tal ferramenta, pois o propsito principal do trabalho avaliar as ferramentas de ETL. O ora2pg no faz agregao ou transformao de dados, por isso no pode ser comparado com as demais ferramentas de ETL. O ora2pg foi criado no ano 2000, uma ferramenta livre para exportar um schema de base de dados Oracle para um schema PostgreSQL compatvel.

    Ele conecta com a base de dados Oracle, extrai sua estrutura, gera um script SQL para ser carregado em uma base de dados PostgreSQL.

    Ora2Pg consiste em um script Perl (ora2pg) e um modulo Perl (Ora2Pg.pm).

    a) Tipos de exportaes possveis Table com constraints Tablespace Sequence Index Trigger Grant Function

    Procedure Package Partition Dados

    b) Caractersticas Inclusas

    Exportar schema (tabelas, views, sequences, index), com chave primaria, estrangeira, unique e check constraints

    Exportar grants/privilegios para usuarios ou grupos

    Exportar uma seleo de tabelas (especificando o nome das tabelas)

  • Exportar um schema Oracle prara um schema PostgreSQL 7.3+

    Exportar funes pr definidas, triggers, procedures e packages

    Exportar partio Oracle

    Export dados completos ou utilizando clausula WHERE

    Suporte para objeto Oracle BLOB como PG BYTEA

    Exportar views do Oracle como PG tables

    Exportar tipos definidos por usuario do Oracle

    Ajuda para converter cdigo PLSQL para PLPGSQL (um pouco de trabalho manual inda necessrio)

    Funciona em qualquer plataforma.

    c) Histrico

    2000: criado

    Lanamento oficial: Maio/2001

    2002: Ora2Pg foi adicionado ao repositrio contrib do PostgreSQL v7.2

    2006: removido do repositrio do PostgreSQL v8.2

    2008: Ora2Pg movido para PgFoundry

    2010: Website do Ora2Pg passa a ser http://ora2pg.darold.net/

    2011: Lanamento disponvel em SourceForge.net

    Verso atual: Ora2Pg 8.8

    d) Cdigo

    Ora2Pg.pm - Modulo Perl usado para fazer interface com o Oracle que permite toda a migrao

  • Ora2Pg/PSQL.pm - Modulo usado para converter cdigo Oracle PL/SQL em cdigo PLPGSQL

    Ora2pg Perl script used as frontend to the

    Ora2pg.conf - Arquivo de configurao usado para definir o comportamento do script Perl ora2pg e as aes a serem executadas

    e) Pr requisitos

    Oracle verso igual ou superior a 8i client ou server

    PostgreSQL verso igual ou superior a 8.4 client or server

    Perl 5.8+ e modulo Perl DBI/DBD Oracle

    Windows: Strawberry Perl 5.10+