Sunteți pe pagina 1din 81

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 ................................................... 15


Figura 2 Representao do processo de ETL ............................................................................ 22
Figura 3 Representao do processo de Extrao ................................................................... 23
Figura 4 Representao do processo de transformao.......................................................... 24
Figura 5 Representao do processo de carga ......................................................................... 26
Figura 6 - Modelo Relacional Reduzido .......................................................................................... 31
Figura 7 - Datastage extrao tabela pessoa ................................................................................ 39
Figura 8 - Datastage configurao Oracle...................................................................................... 40
Figura 9 - Datastage extrao tabela edificacao ........................................................................... 41
Figura 10 - Datastage Job de Transformao 1 ............................................................................ 41
Figura 11 - Datastage meta dados .................................................................................................. 42
Figura 12 - Datastage Job de Transformao 2 ............................................................................ 43
Figura 13 Datastage Job de Agregao ...................................................................................... 43
Figura 14 - Talend conexo com banco Oracle............................................................................. 44
Figura 15 - Talend estgio de Input Oracle .................................................................................... 44
Figura 16 - Talend conexo com banco PostgreSQL................................................................... 45
Figura 17 - Talend Job Extrao Pessoa ....................................................................................... 46
Figura 18 - Talend Extrao tabela edificacao .............................................................................. 46
Figura 19 - Talend estgio de Join - chaves .................................................................................. 47
Figura 20 - Talend Job de Transformao 1 .................................................................................. 48
Figura 21 - Talend estgio de agregao ....................................................................................... 48
Figura 22 - Talend Job de agregao ............................................................................................. 49
Figura 23 - Apatar conexo com banco Oracle ............................................................................. 50
Figura 24 Apatar mapeamento de colunas ................................................................................. 50

Figura 25 - Apatar Extrao tabela pessoa .................................................................................... 51


Figura 26 - Talend Extrao tabela edificacao .............................................................................. 52
Figura 27 - Apatar Job de Transformao 1 .................................................................................. 53
Figura 28 - Apatar job de agregao............................................................................................... 54
Figura 29 Qualidade de Uso ............................................................................................................... 55
Grfico 1 Efetividade ...................................................................................................................... 57
Grfico 2 Produtividade .................................................................................................................. 59
Grfico 3 Segurana ....................................................................................................................... 60
Grfico 4 Satisfao ....................................................................................................................... 61

LISTA DE TABELAS

Tabela 1 Quantidade de Registros por tabela ............................................................................ 28


Tabela 2 Tabela Imovel_Avaliado ................................................................................................ 29
Tabela 3 Comparao Tipos de Dados entre Oracle e PostgreSQL ...................................... 29
Tabela 4 Comparao entre Oracle e PostgreSQL ................................................................... 30
Tabela 5 Seleo entre Mtricas .................................................................................................. 53

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
4.

Software livre de Banco de Dados ........................................................ 29

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

11

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.

12

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

ferramentas de ETL;

especificidades

para

avaliao

de

13

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).

14

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

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.

15

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

passaram

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.

16

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).

17

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.

18

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 objetorelacional (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

19

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;

20

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.

21

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

carga

so

obrigatrias

para

processo,

sendo

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

22

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

23

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: YYYYMM-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

24

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)

25

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

26

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

27

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,

28

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

29

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.

30

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.

31

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;

32

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
Integer

Oracle
NUMBER

PostgreSQL
SMALLINT (16-bit), INTEGER (32bit), BIGINT (64-bit)

Floating point

Decimal

BINARY_FLOAT,

REAL (32-bit), DOUBLE PRECISION

BINARY_DOUBLE

(64-bit)

NUMBER

DECIMAL, NUMERIC

33

String

CHAR, VARCHAR2, CLOB,

CHAR, VARCHAR, TEXT

NCLOB, NVARCHAR2,
NCHAR
Binary

BLOB, RAW, LONGRAW,

BYTEA

BFILE
Date/Time

DATE, TIMESTAMP

DATE, TIME (with/without

(with/without TIMEZONE),

TIMEZONE), TIMESTAMP

INTERVAL

(with/without TIMEZONE), INTERVAL

Boolean

N/A

BOOLEAN

Outros

SPATIAL, IMAGE, AUDIO,

ENUM, POINT, LINE, LSEG, BOX,

VIDEO, DICOM, XMLType

PATH, POLYGON, CIRCLE, CIDR,


INET, MACADDR, BIT, UUID, XML,
arrays

Tabela 3 Comparao Tipos de Dados entre Oracle e PostgreSQL

ORACLE
Sistema Operacional

JOIN

FUNES

PostgreSQL

Windows, Linux, UNIX, Windows, Linux, UNIX, MAC OS X, BDS


MAC OS X

(PostgreSQL 8.0)

FROM t1, t2

FROM t1

WHERE t1.id = t2.id(+)

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

DECODE

(sexo,

'M', CASE WHEN sexo = 'M'

'Masculino',

THEN 'Masculino'

'F', 'Feminino')

WHEN sexo = 'F'


THEN 'Feminino'
END)

NVL

COALESCE

sysdate, systimestamp

current_date, current_timestamp

34

UNION

MINUS

EXCEPT

Clausula LIMT e

ROWNUM, ROWID

LIMIT, OFFSET, OID

Catalogo de sistema

SYS, SYSTEM

pg_catalog, information_schema

Vises materializadas

Possui vises

No possui vises materializadas, porm

materializadas

possvel contornar com gatilhos e funes

OFFSET

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

35

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

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,

36

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;

37

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.

38

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,

39

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.

40

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.

41

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

42

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.

43

Figura 12 - Datastage Job de Transformao 2

Figura 13 Datastage Job de Agregao

4.3.2 Talend

44

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

45

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.

46

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

47

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

48

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.

49

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:

50

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:

51

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:

52

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.

53

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:

54

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

55

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.

Figura 29 Qualidade de Uso

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

56

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

57

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:

58

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 joins
muito 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 mais rpida.
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.

59

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
complexidade alta:

processo

com

transformao

de

60

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
complexidade mdia:

com

transformao

de

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.

61

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:

62

Todas as ferramentas avaliadas so totalmente intuitivas.

63

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.

64

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/productsdata-integration/talend-open-studio.php. Acessado em 20/11/2011

65

TALEND. Installation Guide. Disponvel em:


http://www.talend.com/resources/documentation.php. Acessado em 10/11/2011

DATASTAGE. Infosphere Datastage. Disponvel em: http://www142.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-parapostgresql-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-migrao-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.

66

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.

67

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,

68

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),

69

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);

70

-- 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
)

71

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,

72

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,

73

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


(

74

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
)

75

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


(

76

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;

77

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)

78

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

79

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+

S-ar putea să vă placă și