Interoperabilidade entre    banco de dadosMsc. Mauro C. Pichiliani (mauro@pichiliani.com.br)                   @pichiliani...
Sobre mim• Mestre e doutorando em computação pelo ITA• Escritor da SQL Magazine, Fórum Access, Java  Magazine, SQLServerCe...
Roteiro• Cenário multi-banco• Conceitos comuns• Interoperabilidade na administração• Trocando objetos, dados e instruções•...
Cenário multi-banco (1)• Ambientes, plataformas e bancos de dados diferentes são uma  realidade• O banco de dados nunca tr...
Cenário multi-banco (2) - Planejamento•   A maioria dos sistemas e aplicações trabalha com apenas um BD•   Suporte a difer...
Conceitos comuns (1)• SGBDR (e alguns NoSQL) sofrem pressão do mercado para suportar  recursos similares: SQL, backup, seg...
Conceitos comuns (2)• Alguns fornecedores se preocupam mais com interoperabilidade no BD  do que outros• Procure por recur...
Interoperabilidade na administração (1)• Todos os BDs possuem ferramentas de console (shell) que permitem  trabalhar com s...
Interoperabilidade na administração (2)  MySQL Workbench      PgAdminRockMongo                       Futon                ...
Interoperabilidade na administração (3)        DBArtisan da Embarcadeiro http://migre.me/ahqN9•    Ferramentas com GUI aux...
Trocando objetos, dados e instruções (1)•   Alguns bancos de dados possuem recursos para acessar objetos entre    diferent...
Trocando objetos, dados e instruções (2)•   Todos os BDs possuem recursos para importar e exportar dados. Geralmente    no...
Trocando objetos, dados e instruções (3)•   SQL Server (> 2000) pemite replicação nativa apenas para Oracle•   Há como mon...
Trocando objetos, dados e instruções (4)•   Em muitas situações desejamos converter uma instrução SQL de um banco    para ...
Trocando objetos, dados e instruções (5)•   SQL Translator (http://migre.me/ahxjR) scripts do Linux para conversão de    i...
Conclusão   Ambiente multi-banco e diferentes abordagens (SQL, NoSQL,    newSQL) convivendo junto   Conceitos e tecnolog...
Upcoming SlideShare
Loading in …5
×

Interoperabilidade entre bancos de dados

1,730 views
1,611 views

Published on

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Olá queria saber se você pode me dizer como faço para criar uma conexão entre dois bancos de dados IDENTICOS do SQL Developer (Oracle)?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total views
1,730
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
22
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Interoperabilidade entre bancos de dados

  1. 1. Interoperabilidade entre banco de dadosMsc. Mauro C. Pichiliani (mauro@pichiliani.com.br) @pichiliani 1
  2. 2. Sobre mim• Mestre e doutorando em computação pelo ITA• Escritor da SQL Magazine, Fórum Access, Java Magazine, SQLServerCentral.com e outras• Colaborador do iMasters há 10 anos• Autor do livro “Conversando sobre banco de dados” (http://migre.me/ahlSY)• Co-autor do @databasecast• Blog: http://pichiliani.com.br 2
  3. 3. Roteiro• Cenário multi-banco• Conceitos comuns• Interoperabilidade na administração• Trocando objetos, dados e instruções• Conclusão 3
  4. 4. Cenário multi-banco (1)• Ambientes, plataformas e bancos de dados diferentes são uma realidade• O banco de dados nunca trabalha sozinho: – ERP, PDV, CMS, Controle de acesso, IRPF, Intranet – Sistemas customizados e desenvolvimento interno – Sistemas multi-banco• Principais SGBDR: SQL Server, Oracle, MySQL, PostgreSQL e DB2• Novo talento no pedaço: NoSQL e newSQL• Não esqueça dos BDs na núvem…• Profissionais de desenvolvimento, administração e infra devem dominar individualmente os bancos de dados• E também saber como eles devem unir forças e trabalhar junto• Tarefas comuns: montar um ambiente de testes/homologação, transferir dados, criar uma solução de replicação, analisar, comparar e estudar o desempenho de tarefas semelhantes em diferentes bancos de dados, etc 4
  5. 5. Cenário multi-banco (2) - Planejamento• A maioria dos sistemas e aplicações trabalha com apenas um BD• Suporte a diferentes BDs sub-utiliza recursos do mesmo. Mas fornece algum tipo de escolha para o cliente• Geralmente software livre não se preocupa em ser multi-banco. E aplicações web também não• Aplicação multi-banco requer desenvolvimento adicional e camadas adicionais de software• Há também cenários de dados não estruturados, arquivos texto e bancos de dados embarcados• Em cenário multi-plataforma (desktop, web, app. móveis, etc) tendência é centralizar informações em um único BD• Planejamento da interoperabilidade: – Documentação (diagramas, especificação, fluxo de dados, etc) – Saiba até onde é possível ir – Avalie com cuidado troca de BDs para consolidar dados – Mudar banco de dados de aplicação existente tem impacto profundo 5
  6. 6. Conceitos comuns (1)• SGBDR (e alguns NoSQL) sofrem pressão do mercado para suportar recursos similares: SQL, backup, segurança, tabelas, constraints, programação, etc• A execução e suporte de diversas tarefas comuns se torna um commodity. E o profissional deve saber como fazer a mesma tarefa com tecnologias diferentes• Sempre dar atenção aos conceitos básicos e fundamentos• Há diferenças de conceitos, nomenclaturas, siglas, especificações e peculiaridades para cada BD. Ex: Log, configurações, opções de crescimento, etc• Foco não é comparação entre bancos de dados. Artigo “Comparando a dificuldade nos bancos de dados” na SQL Magazine 75 http://migre.me/ahnEF• EULA impede comparações de desempenho com alguns BDs• Há testes padrões do mercado como o TPC (http://tpc.org)• Não perca muito tempo discutindo funcionalidades ou comparando. Conheça suas opções e parta para o trabalho! 6
  7. 7. Conceitos comuns (2)• Alguns fornecedores se preocupam mais com interoperabilidade no BD do que outros• Procure por recursos que vão além de importação/exportação• Procure evitar formatos intermediários• Há sempre a questão da segurança e confidencialidade• Geralmente é preciso contar com tecnologias externas para conectividade: ODBC, JDBC, OLE Db, drivers específicos e conectores• Dependendo do contexto pode ser interessante recorrer a ferramentas ETL do próprio fabricante ou de terceiros. Sugestões: – Microsoft SQL Server Integration Server (SSIS http://migre.me/ahoeL) – Oracle Database Utilities http://migre.me/ahoiZ – PDI (antigo Kettle) http://kettle.pentaho.com/ – Talend open Studio http://migre.me/ahooW 7
  8. 8. Interoperabilidade na administração (1)• Todos os BDs possuem ferramentas de console (shell) que permitem trabalhar com scripts e arquivos individuais• Fornecem boa produtividade, porém tem péssima usabilidade para tarefas administrativas. Não há recursos de interoperabilidade além do que o SO fornece (pipes)• Tarefas administrativas podem ser realizadas por script, mas há ferramentas com GUI. Exemplos: Management Studio Oracle Enterprise Manager 8
  9. 9. Interoperabilidade na administração (2) MySQL Workbench PgAdminRockMongo Futon 9
  10. 10. Interoperabilidade na administração (3) DBArtisan da Embarcadeiro http://migre.me/ahqN9• Ferramentas com GUI auxiliam muito certas tarefas administrativas• Porém praticamente não há recursos de interoperabilidade entre dados, objetos e tarefas administrativas• Para monitoria: artigo “Monitoramento de Base de Dados” da SQL Mag. 54 http://migre.me/ahqXE.• Soluções agregadoras: Nagios (http://www.nagios.org/), System Center ( 10 http://migre.me/ahr5Y) e FogLight (http://migre.me/ahrgP)
  11. 11. Trocando objetos, dados e instruções (1)• Alguns bancos de dados possuem recursos para acessar objetos entre diferentes BDs junto com as instruções SQL• O SQL Server possui o conceito de servidores linkados: requer ODBC, provider OLE DB ou provider .NET• O Oracle possui o recurso chamado Database Link Heterogeneous Services (DB-LINK). Acesso a fontes de dados ODBC. http://migre.me/ahv1o• Linked servers e DB-Link fornecem algo do tipo: SELECT * FROM {FONTE_REMOTA}…{OBJETO}• PostgreSQL também possui DBLink mas apenas entre servidores PostgreSQL. Projetos alternativos: – DBLink-ODBC: http://sourceforge.net/projects/dblink-odbc/ – DBLink-TDS: http://pgfoundry.org/projects/dblink-tds/• O MySQL não possui recurso semelhante. Mas há o Storage Engine FEDERATED que permite acessar tabelas de outro MySQL remotamente http://migre.me/ahv9e• Bancos NoSQL e newSQL não possuem recursos de interoperabilidade direta em instruções 11
  12. 12. Trocando objetos, dados e instruções (2)• Todos os BDs possuem recursos para importar e exportar dados. Geralmente no formato CSV (Comma-separated values) ou XML• Replicação heterogência envolve BDs de diferentes fornecedores• Há recursos para implementar replicação de dados síncrona, assíncrona ou multi-síncrona entre diferentes BDs• Cuidado: não confudir replicação com tecnologias para escalabilidade (sharding), alta disponibilidade (cluster) ou disaster e recovery• Deve-se planejar muito bem como será a replicação. Aspectos principais: – Papéis (masters ou slaves) e locais de replicação – Latência e disponibilidade – Conversão de tipos de dados – Fluxo de dados (direção) e forma de replicação – Conflitos – Objetos, filtros, índices full-text e outros elementos do banco de dados• Geralmente a replicação é uma maravilha quando tudo funciona bem• Mas quando algum problema aparece a situação vira um inferno• Alguns fornecedores de BD provém replicação heterogênea. Espere apenas recursos básicos neste contexto• Há diversas ferramentas de terceiros para replicações heterogêneas• Importante: replicar dados NÃO faz com que sistemas sejam multi-banco 12
  13. 13. Trocando objetos, dados e instruções (3)• SQL Server (> 2000) pemite replicação nativa apenas para Oracle• Há como montar solução utilizando servidores linkados+view+triggers• Oracle possui dois recursos: view materializada e Oracle Streams para qualquer fonte ODBC• PostgreSQL, MySQL, DB2, NoSQL e newSQL não possuem recursos para replicar dados para BD de outros fabricantes. Alternativas de terceiros:• Código livre: – Tungsten Replicator (http://migre.me/ahvKy): replicação JDBC em linha de comando – SymmetricDS (http://migre.me/ahvRw): sincronia de tabelas – DBReplicator (http://dbreplicator.org/): replicação JDBC com GUI – Daffodil Replicator (http://migre.me/ahwdR): versão enterprise e open source• Proprietárias: – DBMoto (http://migre.me/ahw2g) – SharePlex for Oracle (http://migre.me/ahw84) – ObjectMMRS (http://migre.me/ahwnI) – InfoSphere Data Replication (http://migre.me/ahww6)• Nota: algumas ferramentas ETL também fazem replicação heterogênea 13
  14. 14. Trocando objetos, dados e instruções (4)• Em muitas situações desejamos converter uma instrução SQL de um banco para outro• Formatador on-line de SQL: http://migre.me/ahwIi• Testadores de SQL: SQLFiddle (http://sqlfiddle.com/) e Ideone ( http://t.co/1VqDRoZs) e Try MongoDB (http://try.mongodb.org/)• SwisSQL Console (http://migre.me/ahxef) separação e conversão de instruções 14
  15. 15. Trocando objetos, dados e instruções (5)• SQL Translator (http://migre.me/ahxjR) scripts do Linux para conversão de instruções SQL• SQL Injection Knowledge Base: http://t.co/Hc6PLWdE• Tabelas, guias e posters de conversões de sintaxe SQL e NoSQL. Nota: atualmente há muitas linguagens *QL de acordo com cada produto• Site com lista de Cheat-Sheets: http://www.cheat-sheets.org/• Diversas APIs, bibliotecas, frameworks, camadas, components, design patters e arquiteturas para trabalhar com sistemas multi-banco• Exemplo: SwisSQL API (http://migre.me/ahxIL)• Muitos são ORM e servidores de cache também! Cuidado com soluções que prometem interoperabilidade e na verdade substituiem o seu BD por outro• Há soluções amálgamas e com alguma compatibilidade entre BDs – Fyracle (Oracle-mode Firebird) http://migre.me/ahoy0 – DotNetFirebird (Access, MSDE e Firebird) http://migre.me/ahzHG – SQLite (SQL Server) http://www.sqlite.org/ e SharpHSQL 15 (http://www.codeplex.com/sharphsql)
  16. 16. Conclusão Ambiente multi-banco e diferentes abordagens (SQL, NoSQL, newSQL) convivendo junto Conceitos e tecnologias comuns x Novas idéias Sofware proprietário com mais recursos de interoperabilidade Poucos recursos para interoperabilidade de tarefas administrativas Muitos recursos para troca de dados, instruções e objetos entre BDs diferentes Ainda estamos na era da especialização e divergência Novas e interessantes possibilidades para avanços nas área de interoperabilidade, usabilidade, comunicação e compatibilidade entre BDs diferentes 16

×