Este documento discute a interoperabilidade entre bancos de dados de diferentes fornecedores. Ele explica que cenários multi-banco são comuns e discute conceitos comuns entre bancos de dados. Também aborda como trocar objetos, dados e instruções entre bancos de dados heterogêneos, incluindo recursos de replicação e ferramentas para conversão de SQL.
Coisas básicas sobre as características dos banco de dados, muito importante antes mesmo de planejar a modelagem.Conhecer o banco em relação o seu projeto é mais importante por causa do que voce irá fazer com seus dados
Uma visão geral sobre o MySQL Cluster, suas capacidades, funcionalidades e casos de uso.
O MySQL Cluster é um produto derivado do popular MySQL Server que é o "M" do LAMP stack. Trata-se de um banco de dados distribuído com arquitetura shared-nothing e que pode oferecer 99,999% de disponibilidade e performance superior a 1 bilhão de escritas por minuto. Nesta apresentação abordaremos as principais características do MySQL Cluster, entre elas:
* sua capacidade de alta-disponibilidade de 99,999%
* alto-desempenho, baixa latência e escalabilidade de escrita
* conformidade com o modelo ACID, Foreign Keys e flexibilidade das interfaces NoSQL
* geo-replicação multi-master
* casos de sucesso como Playful Play e PayPal
* guia de como começar a utilizar o MySQL Cluster via Auto-installer
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLOrlando Vitali
Uma analise teórica e pratica sobre as diferenças entre bancos de dados Relacionais, NoSQL e NewSQL desenvolvida como TCC para o curso de Ciências da Computação da UNESC
Apresentação de Alex Martins e Laercio de Souza. Estudantes de Sistemas para Internet. Agradecimento as pessoas que apoiaram no desenvolvimento da apresentação. Faltou algumas referências. Mas para ficar a disposição para vocês.
Exemplo e caso prático do uso de bases de dados relacionais
SGBDR SQLite e o exemplo de uma biblioteca pessoal
Luis Borges Gouveia
V2.0 - Fevereiro de 2015
Palestra apresentada pela primeira vez no PGBr 2017, um bate papo sobre maneiras de analisar o comportamento do servidor do ponto de vista do sistema operacional.
Ps.: Essa palestra foi tirada de base de experiências pessoais, materiais de linux e windows que vi por aí e uma forte influência do Brendan Gregg (@brendangregg), que faz um trabalho fantástico nessa linha.
Palestra da Semana de Integração do IFAL, onde demonstramos o case do S.I. Check. Uma aplicação construída totalmente em JS, tanto no back-end quanto no Front-end.
Utilizamos o projeto de uma matéria a fim de explorar o conceito MEAN (MongDB, Express, Angular e NodeJS). Partindo desse objetivo, criamos o SI Check um app para alunos da nossa graduação durante a semana de integração dos calouros.
Desenvolvendo uma aplicacao Full JavascriptDenis Vieira
Palestra ministrada na Semana de Formação Geral em Informática do curso de Sistemas de Informação do IFAL (Instituto Federal de Alagoas) abordando o famoso MEAN - MongoDB, Express, AngularJs, Node.js e outras tecnologias úteis que estão nos proporcionando desenvolver sistemas inteiros usando apenas JavaScript. Aprenda o que cada tecnologia faz e como integrá-las a um ambiente automatizado de desenvolvimento .
Palestra feita por mim (Denis Vieira) , Djanilson Alves e João Victor Berta, relatando uma experiência de desenvolvimento que tivemos e passando um pouco do conhecimento de algumas tecnologias que utilizamos .
Coisas básicas sobre as características dos banco de dados, muito importante antes mesmo de planejar a modelagem.Conhecer o banco em relação o seu projeto é mais importante por causa do que voce irá fazer com seus dados
Uma visão geral sobre o MySQL Cluster, suas capacidades, funcionalidades e casos de uso.
O MySQL Cluster é um produto derivado do popular MySQL Server que é o "M" do LAMP stack. Trata-se de um banco de dados distribuído com arquitetura shared-nothing e que pode oferecer 99,999% de disponibilidade e performance superior a 1 bilhão de escritas por minuto. Nesta apresentação abordaremos as principais características do MySQL Cluster, entre elas:
* sua capacidade de alta-disponibilidade de 99,999%
* alto-desempenho, baixa latência e escalabilidade de escrita
* conformidade com o modelo ACID, Foreign Keys e flexibilidade das interfaces NoSQL
* geo-replicação multi-master
* casos de sucesso como Playful Play e PayPal
* guia de como começar a utilizar o MySQL Cluster via Auto-installer
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLOrlando Vitali
Uma analise teórica e pratica sobre as diferenças entre bancos de dados Relacionais, NoSQL e NewSQL desenvolvida como TCC para o curso de Ciências da Computação da UNESC
Apresentação de Alex Martins e Laercio de Souza. Estudantes de Sistemas para Internet. Agradecimento as pessoas que apoiaram no desenvolvimento da apresentação. Faltou algumas referências. Mas para ficar a disposição para vocês.
Exemplo e caso prático do uso de bases de dados relacionais
SGBDR SQLite e o exemplo de uma biblioteca pessoal
Luis Borges Gouveia
V2.0 - Fevereiro de 2015
Palestra apresentada pela primeira vez no PGBr 2017, um bate papo sobre maneiras de analisar o comportamento do servidor do ponto de vista do sistema operacional.
Ps.: Essa palestra foi tirada de base de experiências pessoais, materiais de linux e windows que vi por aí e uma forte influência do Brendan Gregg (@brendangregg), que faz um trabalho fantástico nessa linha.
Palestra da Semana de Integração do IFAL, onde demonstramos o case do S.I. Check. Uma aplicação construída totalmente em JS, tanto no back-end quanto no Front-end.
Utilizamos o projeto de uma matéria a fim de explorar o conceito MEAN (MongDB, Express, Angular e NodeJS). Partindo desse objetivo, criamos o SI Check um app para alunos da nossa graduação durante a semana de integração dos calouros.
Desenvolvendo uma aplicacao Full JavascriptDenis Vieira
Palestra ministrada na Semana de Formação Geral em Informática do curso de Sistemas de Informação do IFAL (Instituto Federal de Alagoas) abordando o famoso MEAN - MongoDB, Express, AngularJs, Node.js e outras tecnologias úteis que estão nos proporcionando desenvolver sistemas inteiros usando apenas JavaScript. Aprenda o que cada tecnologia faz e como integrá-las a um ambiente automatizado de desenvolvimento .
Palestra feita por mim (Denis Vieira) , Djanilson Alves e João Victor Berta, relatando uma experiência de desenvolvimento que tivemos e passando um pouco do conhecimento de algumas tecnologias que utilizamos .
Material para seminário com abordagem sobre NoSQL apresentada para avaliação da matéria de Banco de Dados II da Universidade de Vila Velha.
Apresentação: https://www.slideshare.net/lorran33/seminrio-nosql
Alunos: Iago Binow, Lorran Pegoretti, Luiz Marcon e Pedro Malta
Universidade de VIia Velha.
Apresentação utilizada no InfoTech2012.
Apresenta um pouco sobre a evolução a persistencia de dados, bancos de dados relacionais e NoSQL, apresentando um pouco os melhores cenários para se utilizar cada um dos modelos e como mesclá-los para tirar o melhor proveito dos recursos.
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureFabrício Lopes Sanchez
Nesta palestra apresento o processo de migração do SED (Secretaria Escolar Digital do estado de São Paulo) para o Microsoft Azure. Palestra apresentada no QCon 2016.
Semelhante a Interoperabilidade entre bancos de dados (20)
Esta palestra foi apresentada na trilha de Machine Learning do evento TDC 2016 (The Developers Conference) realizado em São Paulo, Brazil. O conteúdo aborda a história da ferramenta Weka e o seu posicionamento atual no mercado de soluções para machine learning.
Rastreamento 3D de objetos para realidade virtualpichiliani
Esta palestra foi apresentada na trilha de Realidade Virtual do evento TDC 2016 (The Developers Conference) realizado em São Paulo, Brazil. O conteúdo aborda como realizar o rastreamento de objetos 3D para interação em tempo real com realidade virtual
Esta palestra foi apresentada na trilha de banco de dados do evento TDC (The Developers Conference) 2016 realizado em São Paulo, Brasil. O conteúdo aborda o uso da tecnologia SSD em banco de dados junto com testes de desempenho.
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...pichiliani
This is my presentation for the paper with the same name on the HCII 2015 conference. Complete reference:
Pichiliani, Mauro C., Britto, Talita C. P. A User Interface Usability Evaluation of the Electronic Ballot Box used in the 2014 Brazilian Election. Proceedings of the HCI International, Los Angeles, California, EUA, 2015.
Evaluation of the Android Accessibility API Recognition Rate towards a Better...pichiliani
This is my presentation for the paper with the same name on the HCII 2015 conference. Complete reference:
Pichiliani, Mauro C., Hirata, Celso M. Evaluation of the Recognition Rate of the Android Accessibility API towards a better user experience. Proceedings of the HCI International, Los Angeles, California, EUA, 2015.
Como lidar com dados temporais e intervalos com a linguagem SQLpichiliani
A manipulação de dados por meio de intervalos de datas é uma das poucas tarefas na qual a linguagem SQL não é muito útil. O motivo é operações como intersecção , precedência, combinação e operações relacionadas a intervalos de datas requerem a construções de instruções SQL muito complexas e com pouca manutenabilidade. Esta palestra vai apresentar os principais problemas relacionados à pesquisas por intervalos de data e explicar porquê a linguagem SQL não é adequada para lidar com eles. Em seguida a palestra vai se conentrar nas soluções existentes, incluindo as extensões da linguagem SQL para manipulação de data, interfaces para ferramentas OLAP e ferramentas específicas para pesquisas por intervalo.
Projeto HTMA - Trand Tremor Measurement Application
Interoperabilidade entre bancos de dados
1. Interoperabilidade entre
banco de dados
Msc. Mauro C. Pichiliani (mauro@pichiliani.com.br)
@pichiliani
1
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. Roteiro
• Cenário multi-banco
• Conceitos comuns
• Interoperabilidade na administração
• Trocando objetos, dados e instruções
• Conclusão
3
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. 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. 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. 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. 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
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. 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. 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. 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. 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. 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. 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