49
MySQL do ISAM ao noSQL Airton Lastori

MySQL do ISAM ao NoSQL

Embed Size (px)

DESCRIPTION

O MySQL nasceu como uma alternativa de alta-performance para armazenamento no padrão ISAM em hardware commodity, evoluiu para um banco de dados relacional ACID-compliant e hoje também incorpora recursos noSQL. Vamos revisitar esta história e entender quais os recursos noSQL presentes no banco de dados open source mais popular do mundo.

Citation preview

Page 1: MySQL do ISAM ao NoSQL

MySQL do ISAM ao noSQL

Airton Lastori

Page 2: MySQL do ISAM ao NoSQL
Page 3: MySQL do ISAM ao NoSQL
Page 4: MySQL do ISAM ao NoSQL

os precursores...

Allan Larsson, Monty Widenius & David Axmark

Page 5: MySQL do ISAM ao NoSQL

• UNIREG • camada SGBD para DIAB ISAM handler – COBOL em hardware

commodity

• Atendia requisitos DW da época • 100k linhas com facilidade

• Desafio era atingir 2-5M linhas

• 5 anos de desenvolvimento • portado de ABC BASIC para C

• DIAB ISAM handler descontinuado

• MyISAM

198x ... 1993

Page 6: MySQL do ISAM ao NoSQL

• Requisitos do cliente • acesso aos dados MyISAM via Browser

• Solução • interface SQL dos bancos de dados relacionais

• mSQL considerado pouco flexível, SyBase lento

• MySQL: pluggable storage engine architecture

1994

Page 7: MySQL do ISAM ao NoSQL

...inspirou a arquitetura como é hoje

Page 8: MySQL do ISAM ao NoSQL

• David cria MySQL License inspirado por Richard Stallman, pai da licença GPL

• David vê vantagens modelo Open Source • continuidade

• estensível

• MySQL AB é fundada

• TCX

• Detron

• Monty Program

1995 ... 1996

Page 9: MySQL do ISAM ao NoSQL

• Drivers PHP, PERL, ODBC (Excel)

• MyISAM mais performático, escalável e portável

• Adoção da licença GPL

• Crescimento do ecosistema MySQL

• LAMP Stack: Suse e Red Hat

• Mais Storage Engines

• Mais clientes

1997 ... 2000

Page 10: MySQL do ISAM ao NoSQL

• MySQL Logo e website

• InnoDB Storage Engine GA

• Conectores Java

• Marten Mickos como CEO

• Escritório no Vale do Sílício

• Benchmarks da PCMag superam Oracle 9i, DB2 7.2, SQL Server 2010, SyBase ASE 12.5

• MySQL para o mercado Enterprise

2001 ... 2002

versão 3.23

Page 11: MySQL do ISAM ao NoSQL

...InnoDB é hoje...

Page 12: MySQL do ISAM ao NoSQL

• User conferences

• Aumento de times de Engenharia e Suporte

• Parcerias Intel, Zend, JBoss

• MySQL AB compra a Alzato (venture Ericsson fundada em 2000) com seu NDB Cluster, que futuramente se tornaria um importante produto de seu portfolio, o MySQL Cluster.

2003 ... 2004

Cluster

versão 4.0

Page 13: MySQL do ISAM ao NoSQL

...requisitos...

Page 14: MySQL do ISAM ao NoSQL

...como funciona o MySQL Cluster...

Page 15: MySQL do ISAM ao NoSQL

...como funciona o MySQL Cluster...

Page 16: MySQL do ISAM ao NoSQL

• Oracle adquire Innobase OY (InnoDB) e Sleepycat Software (BerkeleyDB)

• Nokia utiliza MySQL Cluster em produtos Telecom

• Storage Engines Comerciais

• InfoBright

• NitroEDB

• MySQL Enterprise Monitor

2005 ... 2007

versão 5.0

Page 17: MySQL do ISAM ao NoSQL

• Sun adquire MySQL AB em jan-2008 por 1B US$

• Melhorias das funcionalidades e ferramentas Enterprise

2008 ... 2009

versão 5.1

Page 18: MySQL do ISAM ao NoSQL

• Oracle adquire Sun Microsystems em jan-2010 por aproximadamente 7,4B US$

• Acordo com Comunidade Européia

• Início de projetos de forks MySQL como MariaDB e Drizzle

• Melhorias significativas no produto MySQL 5.5 e ferramentas Enterprise

2010 ... 2011

versão 5.5

Page 19: MySQL do ISAM ao NoSQL

hoje!

Page 20: MySQL do ISAM ao NoSQL

hoje!

Page 21: MySQL do ISAM ao NoSQL

NoSQL nova escola para

gerenciamento de dados

Page 22: MySQL do ISAM ao NoSQL

Performance for web-based services

for Non-structured data stores and

with horizontal Scalability.

Eric Evans, 2009

Page 23: MySQL do ISAM ao NoSQL

fonte: 451Group

Tecnologias de gerenciamento de dados

Page 24: MySQL do ISAM ao NoSQL
Page 25: MySQL do ISAM ao NoSQL

fonte: 451Group

Tecnologias de gerenciamento de dados

Usos comuns: processamento

de transações, aplicações

interativas transacionais

Pontos Fortes: formas

facilitadas de manipular registros;

consistência; tecnologia

comprovadamente robusta.

Pontos Fracos: problemas de

escalabilidade, especialmente

para Queries contra grande

volume de dados (dezenas de

Terabytes).

Page 26: MySQL do ISAM ao NoSQL

fonte: 451Group

Tecnologias de gerenciamento de dados

Usos comuns: análise de

dados históricos, data

warehousing, business

intelligence.

Pontos Fortes: suporte a

Queries rápidas especialmente

em datasets grandes e

compressão.

Pontos Fracos: não adequado

para transações, importações e

exportações rápidas; utilização

de computação pesada.

Page 27: MySQL do ISAM ao NoSQL

fonte: 451Group

Tecnologias de gerenciamento de dados

Usos comuns: usado como cache

para armazenamento de dados

requisitados frequentemente,

especialmente em aplicações web.

Pontos Fortes: escalabilidade,

armazenamento e busca de dados

muito rápidos; dados não

estruturados e parcialmente

estruturados.

Pontos Fracos: usualmente todos

os dados tem que caber em

memória rápida; falta de recursos

para Queries complexas.

Page 28: MySQL do ISAM ao NoSQL

fonte: 451Group

Tecnologias de gerenciamento de dados

Usos comuns: aplicações web ou

outras que requerem melhor

performance e escalabilidade sem

que seja necessários definir

esquemas relacionais.

Pontos Fortes: armazenamento

persistente com recursos de

escalabilidade tais como sharding

nativo; melhor suporte a Queries

que apenas chave-valor.

Pontos Fracos: falta de recursos

para Queries complexas.

Page 29: MySQL do ISAM ao NoSQL

fonte: 451Group

Tecnologias de gerenciamento de dados

Usos comuns: log em tempo-real

para aplicações web ou financeiras.

Pontos Fortes: throughput muito

alto para Big Data (de Terabytes a

Petabytes); suporte excelente à

particionamento e acesso aleatório

de leitura-escrita.

Pontos Fracos: APIs de baixo-

nível, falta de recursos para realizar

Queries complexas, alta latência na

resposta de Queries.

Page 30: MySQL do ISAM ao NoSQL

fonte: 451Group

Tecnologias de gerenciamento de dados

Usos comuns: aplicações

científicas ou de tradução

direta do paradigma orientado

a objetos.

Pontos Fortes: performance e

mapeamento natural de

objetos.

Pontos Fracos: falta de

recursos para realizar Queries

complexas.

Page 31: MySQL do ISAM ao NoSQL

Escolha com base nos seus requisitos:

chave-valor simples com escalabilidade OU garantias de consistência e robustez?

Page 32: MySQL do ISAM ao NoSQL

E se eu tiver AMBOS requisitos: abordagem mista? Implica em: infra-estrutura extra, overhead de administração, problemas de compatibilidade e sincronismo...

Page 33: MySQL do ISAM ao NoSQL

fonte: 451Group

Tecnologias de gerenciamento de dados

Page 34: MySQL do ISAM ao NoSQL

MyNewSQL Not Only SQL

powered by Memcached API

Page 35: MySQL do ISAM ao NoSQL

Memcached é...

API popular que “fala” NoSQL chave-valor Provê alta performance, especialmente para aplicações web diminuindo a carga do banco de dados relacional

... usado por Twitter, Facebook, Zynga, Youtube também suportado por Aplicações Empacotadas

populares como Joomla, Drupal e Wordpress

Page 36: MySQL do ISAM ao NoSQL

Memcached também é...

uma Hash Table GIGANTE pode ser distribuída entre vários servidores reside somente na RAM disponível Last Recently Used

... realmente muito útil para alta-performance, mas os dados não são duráveis

Page 37: MySQL do ISAM ao NoSQL

Memcached Clients normalmente contém

alguma lógica para persistir os dados fetch from memcached and store in a variable If the variable is empty, select database... também para insert, update, delete ...esforço manual para sincronizar dados

Page 38: MySQL do ISAM ao NoSQL

MySQL + NoSQL como é possível?

Page 39: MySQL do ISAM ao NoSQL

MySQL 5.6

Page 40: MySQL do ISAM ao NoSQL

MySQL Cluster 7.2

Page 41: MySQL do ISAM ao NoSQL

Mesma infra-estrutura, recursos NoSQL prontos para uso! -Baixa latência, alto throughput -Sem necessidade de implementar lógica de persistência -Reduz esforço de desenvolvimento e administração -Reuso de clientes memcached já existentes -Compatível com drivers e bibliotecas para diversas plataformas

Page 42: MySQL do ISAM ao NoSQL

- transações persistentes, crash-safe & ACID - fulltext search nos valores, Queries ricas SQL - ferramentas de monitoramento e administração - re-população do cache após indisponibilidade - camada única de dados, sem duplicação - sincronismo garantido pelo BD - consistência acessando via SQL ou por chave

Memcached melhorado

Page 43: MySQL do ISAM ao NoSQL

extra! extra! Oracle Loader for Hadoop

Oracle NoSQL DB Oracle BigData

como anunciado no OOW SF

Page 44: MySQL do ISAM ao NoSQL

Oracle Loader for Hadoop é...

- Um utilitário para carregar dados do Hadoop no Oracle Database - Útil para análises no Oracle 11G - Utiliza processamento MapReduce para criar os datasets - Gera formatos nativos Oracle para carga mais rápida e consumindo menos recursos

Page 45: MySQL do ISAM ao NoSQL

Oracle NoSQL Database é...

- Um banco de dados comercial NoSQL chave-valor - Baseado do BerkeleyDB - Modelo de dados dinâmico - Altamente escalável e disponível - Load balancing transparente - Queries complexas suportadas via Hadoop ou Oracle Database operando sobre o Oracle NoSQL Database

Page 46: MySQL do ISAM ao NoSQL

Oracle BigData é...

Appliance que inclui uma distribuição open source do Apache Hadoop Inclui também: -Oracle Data Integrator Application Adapter for Hadoop; - Oracle NoSQL Database*; - Oracle Loader for Hadoop*; - Oracle R Enterprise. (*) também disponíveis separadamente

Page 47: MySQL do ISAM ao NoSQL

MySQL & Oracle NoSQL DB MySQL & MySQL Cluster com acesso NoSQL via memcached

Oracle NoSQL Database

• Maioria dos dados estruturados. • Necessidade de fazer consultas via chave valor ou SQL no mesmo dataset. • Reutilização da infraestrutura memcached já existente com adição de persistência, alta-disponibilidade e escalabilidade de escrita. • Flexibilidade no acesso aos dados, incluindo REST, Java, LDAP, C++. • Clientes que já utilizam MySQL com necessidades de operações chave-valor sem duplicar infra-estrutura. • Open Souce.

• Dados não estruturados ou mudanças frequentes de tipos e estrutura. • Necessidade quase exclusiva de queries NoSQL, mas com a possibilidade de executar queries complexas via Hadoop ou Oracle DB. • Necessidade de manipular grandes quantidades de dados com crescimento exponencial na casa de dezenas de Terabytes ou mais. • Necessidade de escalabilidade para manipular dados através de centenas de nós.

Page 48: MySQL do ISAM ao NoSQL

NoSQL é uma realidade inspiradora A Oracle continua investindo cada vez mais para manter o MySQL o Banco de Dados Open Source mais popular do mundo MySQL 5.6* e MySQL Cluster** oferecem capacidades NoSQL interessantíssimas

*disponíves para testes em labs.mysql.com **disponíves para download em dev.mysql.com

Mensagens que ficam...

Page 49: MySQL do ISAM ao NoSQL

Obrigado!

[email protected] meetup.com/mysql-br

@mysqlbr