Este documento discute a integração de bases de dados com software livre. Ele explica os desafios da heterogeneidade de sistemas, abordagens para integração de dados como integração estática, dinâmica, bancos de dados federados e mediadores. Também descreve o processo ETL, incluindo extração, transformação, carga e ferramentas open-source populares como Pentaho Data Integration.
1. Integrando Bases de Dados com
Software Livre
Mauricio Cesar Santos da Purificação
2. Mauricio C. S. da Purificação
• Bacharelando em Ciência da Computação na Universidade
Federal da Bahia (UFBA).
• Atuo como Analista de BI (Business Intelligence) do CPD-UFBA
e faço pesquisa na área de Business Intelligence, Business
Analytics e aplicação de métodos ágeis em projetos de Data
Warehousing participando do Grupo de Pesquisa CEManTIKA
da UFBA.
• Minhas principais áreas de interesse estão relacionadas à:
Banco de Dados, Engenharia de Software, Métodos Ágeis,
Gestão e Governança de TI, Gestão de Projetos, Informática
Aplicada a Administração, Sistemas de Informações Gerenciais,
Business Intelligence, Business Analytics e Data Warehousing.
http://lattes.cnpq.br/3312807554334758
3. Agenda
• Contexto
• Heterogeneidade de Sistemas
• Abordagens Para Integração de
Dados
• Classificação dos Sistemas de
Integração
– Integração Estática
– Integração Dinâmiza
• Modelos Para Integração de
Dados
– Banco de Dados Federados
– Mediadores
– ETL e Data Warehousing
• Ferramentas de ETL
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 3
@DCC-UFBA | @CEManTIKA
4. Contexto
• O objetivo de um sistema de integração de
dados é oferecer aos usuários uma interface
uniforme de acesso à diferentes fontes de
dados, de forma que os usuários definam
consultas especificando “o que” se deseja
saber e o sistema determine “onde” a
informação pode ser encontrada e, em
seguida, apresente as respostas para as
consultas do usuário.
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 4
@DCC-UFBA | @CEManTIKA
5. Heterogeneidade de Sistemas –
Conflitos de Esquemas
• Conflitos de Generalização
– São aqueles onde um atributo ou classe assume o
valor de muitos atributos ou representa várias classes
em outro banco de dados.
• Conflitos de Tipos de Dados
– São aqueles onde um tipo de dados de um atributo
difere do tipo de dados do atributo com o mesmo
significado em outro banco de dados.
• Conflitos Estruturais
– São aqueles onde uma entidade em um sistema é
modelada como atributo em outro.
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 5
@DCC-UFBA | @CEManTIKA
6. Heterogeneidade de Sistemas –
Conflitos de Esquemas
• Perda de Atributos
– É o caso onde não existe o atributo em outro
esquema.
• Conflitos de Nomes
– É o caso onde as entidades de diferentes sistemas têm
o mesmo significado, porém são referenciadas com
nomes diferentes.
• Conflitos de Escala
– Dizem respeito à unidade apropriada para o valor do
atributo.
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 6
@DCC-UFBA | @CEManTIKA
7. Caracteristicas dos Sistemas de
Integração e Interoperação
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 7
@DCC-UFBA | @CEManTIKA
8. Heterogeneidade de Sistemas –
Hardware e Sistemas Operacionais
• Relaciona-se com a criação de novos dispositivos
e Sistemas Operacionais.
• Embora a maioria das grandes corporações adote
o uso de padrões na criação de novos
dispositivos, existem esforços no sentido de
permitir que sistemas operacionais e dispositivos
de massa tenham uma interface de comunicação
padronizada.
• O uso de APIs (Application Program Interface) e
asorganizações regulamentadoras têm mostrado
bons resultados neste nível de heterogeneidade.
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 8
@DCC-UFBA | @CEManTIKA
9. Heterogeneidade de Sistemas –
Modelos Organizacionais
• Refere-se aos diversos modelos de sistemas de
bancos de dados existentes.
• Os progressos neste nível enfocam
mapeamentos dos modelos relacionais,
orientado a objetos, hierárquicos, rede e
outros modelos derivados.
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 9
@DCC-UFBA | @CEManTIKA
10. Heterogeneidade de Sistemas –
Representação
• Refere-se a um dos problemas de natureza
semântica existentes.
• Geralmente ocorre quando tamanhos de
campos são diferentes ou possuem tipos
semelhantes, mas com representações
internas diferentes.
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 10
@DCC-UFBA | @CEManTIKA
11. Heterogeneidade de Sistemas –
Escopo
• Baseia-se nos diferentes domínios dos objetos de
um sistema. Geralmente pode-se ter entidades
que representem uma porção do mundo real.
• Cada sistema, de acordo com as regras do
negócio implementado, possui representações de
um subconjunto de uma entidade do mundo real.
Portanto, a integração de tais sistemas deve gerar
uma visão resultante que corresponde a uma
entidade mais abrangente.
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 11
@DCC-UFBA | @CEManTIKA
12. Heterogeneidade de Sistemas –
Abstração
• Consiste no nível de detalhamento dos
atributos que cada entidade possui no sistema
de integração.
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 12
@DCC-UFBA | @CEManTIKA
13. Heterogeneidade de Sistemas –
Significado
• É bem mais complexa e denota a dificuldade
em determinar o significado dos atributos
com equivalência de nomes.
• Por exemplo, o atributo nome em uma relação
pessoa denota seu verdadeiro nome na vida
real, em contrapartida, em uma entidade
departamento o mesmo atributo tem
significado diferenciado.
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 13
@DCC-UFBA | @CEManTIKA
14. Heterogeneidade de Sistemas – Tempo
• Por causa da autonomia e independência dos sistemas,
quando ocorre atualizações assíncronas, podem
ocorrer resgates de informações desatualizadas.
• Seja um sistema que possua atualização feita uma vez
por semana e os demais que fazem parte do sistema
integrado, com atualizações online.
• Pode ser gerada uma visão integrada de relações onde
atributos semelhantes aos sistemas possam estar
atualizados associados com atributos que ainda não
sofreram atualizações.
• Desse modo, a visão apresentaria informações com
temporalidades diferentes.
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 14
@DCC-UFBA | @CEManTIKA
15. Abordagens Para Integração de Dados
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 15
@DCC-UFBA | @CEManTIKA
16. Integração Estática
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 16
@DCC-UFBA | @CEManTIKA
17. Integração Dinâmica
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 17
@DCC-UFBA | @CEManTIKA
18. Banco de Dados Federados
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 18
@DCC-UFBA | @CEManTIKA
19. Mediadores
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 19
@DCC-UFBA | @CEManTIKA
20. ETL
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 20
@DCC-UFBA | @CEManTIKA
21. Extração
• Extração de dados dos sistemas de origem.
– Sistemas diferentes.
– Cada sistema pode utilizar um formato ou
organização de dados diferente.
• Busca das informações mais importantes em
sistemas fontes ou externos e que estejam
em conformidade com a modelagem do DW.
– Demanda de utilização de formas de extração
diferentes para cada local.
22. Extração
• Projetar e criar o processo de extração é uma
das tarefas mais demoradas no processo de
ETL.
• Fonte de sistema muito complexa
– Dificuldade para determinar quais dados devem
ser extraídos.
23. Extração
• No momento de criação do DW é comum uma carga
de dados inicial que faça com que a extração busque
todos os dados dos sistemas fontes.
– Extração Completa.
• Depois, a extração deve estar preparada apenas para
fazer cargas incrementais.
– A carga incremental que carrega apenas os registros que
foram alterados ou inseridos desde a carga inicial é muito
mais eficiente.
– Extração Incremental.
24. Transformação
• Aplicação de um série de regras ou funções
aos dados extraídos para derivar os dados a
serem carregados.
• Além da transformação, há a limpeza dos
dados.
• A intensidade da manipulação dos dados
depende de cada fonte de dados.
25. Qualidade dos Dados
• Características mais relevantes para garantir a qualidade:
– Unicidade
• Evitando assim duplicações de informação;
– Precisão
• Os dados não podem perder suas características originais quando
carregados para o DW;
– Completude
• Não gerando dados parciais de todo o conjunto relevante às análises;
– Consistência
• Os fatos devem apresentar consistência com as dimensões que o
compõem.
26. Transformação
• Os ajustes não modificarão as fontes de
dados, e sim, os dados extraídos para o DW.
• Esses ajustes são modelados de acordo com o
operador do DW, atendendo assim as
restrições que for determinadas pelo usuário.
27. Limpeza dos Dados
• Correção de erros de digitação.
• Descoberta de violações de integridade.
• Substituição de caracteres desconhecidos.
• Padronização de abreviações.
28. Conflitos
• Encontrados no processo de homogeneização.
• Semânticos
– Aqueles que envolvem o nome ou a palavra
associada às estruturas de modelagem.
• Mesmo nome para diferentes entidades.
• Diferentes nomes para a mesma entidade.
• Estruturais
– Relativos às estruturas de modelagem escolhidas.
• Ex.: diferentes tipos de dados para os mesmos campos.
29. Tipos de Transformação
• Exemplos:
– Seleção de apenas determinadas colunas para carregar
– Codificação de valores de forma livre
• mapeando “Masculino”,“1” e “Sr.” para M,
– Derivação de um novo valor calculado
• montante_vendas = qtde * preço_unitário
– Junção de dados provenientes de diversas fontes
– Resumo de várias linhas de dados
• total de vendas para cada loja e para cada região
– Geração de valores de chaves substitutas (surrogate keys)
– Transposição ou rotação
• transformando múltiplas colunas em múltiplas linhas ou vice-
versa
– Quebra de uma coluna em diversas colunas
30. Carga
• Etapa final da ETL.
• Os dados teoricamente já se encontram limpos e
transformados.
• Realiza-se a carga dos dados da Staging Area para
o Data Warehouse em si.
• Depende das necessidades da organização
– Podem substituir as informações existentes
semanalmente, com dados cumulativos e atualizados.
– Podem adicionar dados a cada hora.
31. Verificações
• Antes da realização da carga, deve se realizar
mais uma verificação.
• Verifica-se integridade dos dados.
– Validação das chaves estrangeiras com suas
respectivas chaves primarias, confirmando que a
informação realmente consiste.
32. Carga
• Existem dois tipos de tabelas:
– Tabelas de fatos
• Quantidade de produtos que foi vendido, contém o
valor da venda e o valor unitário do produto vendido
• Contém chaves para as tabelas de dimensões.
– Tabelas de dimensões
• Tempo, Loja e Produto
33. Carga
• Incremental
– Os dados serão apenas adicionados ao Data
Warehouse.
• Total
– Os dados existentes serão excluídos e os dados são
re-inseridos.
34. Carga
• Geralmente orienta-se que a carga
incremental seja realizada em tabelas fatos e a
carga total em dimensões.
– Os dados das dimensões não sofrem tantas
alterações.
– Tabelas fatos sofrem bastante alteração
• São entidades que tendem a ter um crescimento
continuo, devido a armazenarem informações
consolidadas do assunto, obtidas e guardadas do dia-
dia da organização.
35. Ferramentas de ETL
Figura: Ferramentas open-source de
ETL mais utilizadas
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 35
@DCC-UFBA | @CEManTIKA
36. Pentaho Data Integration
• Projeto Open Source encampado pelo
Pentaho em 2006
– Desenvolvido por Matt Casters
– Anteriormente conhecido como Kettle
– KDE Extraction,
– Transportation, Transformation and
LoadingEnvironment
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 36
@DCC-UFBA | @CEManTIKA
37. Pentaho Data Integration
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 37
@DCC-UFBA | @CEManTIKA
38. Pentaho Data Integration
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 38
@DCC-UFBA | @CEManTIKA
39. Pentaho Data Integration
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 39
@DCC-UFBA | @CEManTIKA
40. Pentaho Data Integration
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 40
@DCC-UFBA | @CEManTIKA
41. Pentaho Data Integration
• O PDI trabalha com dois tipos básicos de
componentes:
– Transformações
– Jobs
• Características de transformações e jobs
– Definem o fluxo do processo de ETL
– Contém os metadadosdo processo de ETL
• Descrição dos dados;
• Fontes de entrada e saída;
• Scheduling;
• Scripting.
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 41
@DCC-UFBA | @CEManTIKA
42. Pentaho Data Integration
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 42
@DCC-UFBA | @CEManTIKA
43. Pentaho Data Integration
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 43
@DCC-UFBA | @CEManTIKA
44. Pentaho Data Integration
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 44
@DCC-UFBA | @CEManTIKA
45. Pentaho Data Integration
• Outros componentes do PDI:
– Repositórios
• Os metadados das transformações e jobs podem ser
persistidos em um banco de dados (repositório)
• Ferramentas:
– Spoon: IDE para desenvolvimento visual.
– Pan: execução de transformações em linha de
comando.
– Kitchen: execução de jobs em linha de comando.
– Carte: servidor de para execução remota de
transformações e jobs.
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 45
@DCC-UFBA | @CEManTIKA
46. Pentaho Data Integration
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 46
@DCC-UFBA | @CEManTIKA
47. Análise Comparativa
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 47
@DCC-UFBA | @CEManTIKA
48. Análise Comparativa
Mauricio Cesar Santos da Purificação |
02/07/2011 @CPM Braxis Capgemini | @CPD-UFBA | 48
@DCC-UFBA | @CEManTIKA