Por Fernando Cunha
Uma Breve Introdução
Fernando Cunha – [email protected]
• Bacharel em Informática• Pós graduado Engenharia de Software UFPR• Pós graduando em Gestão de TI• ITIL V3 Foundation Certificate• Gerente de Projetos
Contatos:
http://br.linkedin.com/pub/fernando-cunha/26/67a/827/
Palestrante:
NOSQL é um termo genérico que define bancos de dados não-relacionais.
Termo introduzido por Carlos Strozzi em um evento de banco de dados open-source em 1998
Em 2009 Eric Evans reintroduziu o termo em outro evento de banco de dados open-source
Pronuncia-se - noseequel
O que significa?
Quem?
Porque? Suprir as necessidades introduzidas pelo o fenômeno
BIG DATA
Classificação de SGBD NOSQL
Coleção de chaves únicas associada a um valor, que pode ser de qualquer tipo (binário, string)
Exemplo:Key: 1234 Value: “Fernando”Key: 2343 Value: “Name=Fernando, age=29”
KEY VALUE COLUMN GRAPH DOCUMENT
Classificação de SGBD NOSQL
Famílias de colunas (um repositório para colunas, análogo a uma tabela do Modelo Relacional) e super-colunas
(compostas por arrays de colunas)
Exemplo:Column family, Key, Column name e valuePessoas ; 4564 ; nome : Ana ; idade : 30;
KEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENT
Classificação de SGBD NOSQL
Banco de dados baseado em grafos, nele temos as entidades chamadas de vértices (ou node) que são ligadas entre elas pelas arestas (ou relationships) cada um podendo guardar dados entre os relacionamentos e cada relacionamento pode ter uma direção.
Exemplo:- Vértice: Chave->Valor representa entidade. Nome:Priscila- Aresta: relacionamentos
Ex: Vertice “Priscila” segue o vertice “Lucas” desde 2012, o relacionamento é igual a “segue”
KEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENT
Classificação de SGBD NOSQL
Os documentos são as unidades básicasde armazenamento e estes não utilizam necessariamente
qualquer tipo de estruturação pré-definida São baseados em JSON. (JavaScript Object Notation)
Exemplo:{"user":{
"id": "123","name": "Emmanuel","addresses":[
{"city":"Paris"},{"city":"Sao Paulo"}]}
KEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENT
Classificação de SGBD NOSQL
Key Value
123435
Joao da Silva
334545
Name=Fernando, age=29
Key - Value Column
Graph Document
Classificação de SGBD NOSQL
150 tipos de banco de dados NOSQL
Fonte: http://nosql-database.org/
Dados compilados manualmente
30%
13% 13%
7%
37%
0%
5%
10%
15%
20%
25%
30%
35%
40%
Key Value Document Store Graph Databases Column Não categorizado
Classificação de SGBD NOSQL e quem está utilizando
KEY VALUE COLUMN GRAPH DOCUMENT
Amazon DynamoDB (Key-value)
Desenvolvido em: Java
Quem Usa?
– Washingtonpost.com
– Elsevier (Editora)
Classificação de SGBD NOSQL e quem está utilizando
KEY VALUE COLUMN GRAPH DOCUMENT
Classificação de SGBD NOSQL e quem está utilizando
Cassandra (column)Desenvolvido em: Java
Quem Usa?
– NetFlix
BigTable(column) GoogleDesenvolvido em: C++
Quem Usa:
GmailGoogle Maps,YouTube
KEY VALUE COLUMN GRAPH DOCUMENT
Classificação de SGBD NOSQL e quem está utilizando
Neo4j (graph)
– Desenvolvido em: JavaQuem Usa?
– WalMart
– National Geographic
– Ebay
KEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENT
Classificação de SGBD NOSQL e quem está utilizando
MongoDB (Document)Desenvolvido em: C
Quem Usa:
– Globo.com
– Apontador
– Forbes
– New York Times
KEY VALUE COLUMN GRAPH DOCUMENT
Dá pra fazer query?
I SQL
Dá pra fazer query?
Amazon DynamoDB– Key-Value
SQL Query
AWS Query
AWS SDK for Java
AWS SDK for .NET
AWS SDK for PHP
JSON Data Format
API Reference
Dá pra fazer query?
MongoDB - Document
SQL Query
Operation Find
Dá pra fazer query?
Neo4j- Graph
SQL Query
Cyber query
Dá pra fazer query?
Cassandra - Column
SQL Query
CQL – Cassandra Query LanguageComandos CRUD
(Create, Read, Update, Delete)
são iguais
Quais linguagens suportam NOSQL?
Amazon Dynamo Neo4j Cassandra MongoDB
C x
C# x
C++ x x
Go x x
Java x x x x
Javascript x x
Node.js x x x x
Perl x x
PHP x x x x
Python x x x
Ruby x x x x
Scala x x x
Os banco de dados relacionais irão morrer?
Posição NOSQL
Fonte: Gartner
Quando e qual utilizar?
Fonte: Martin Fowler
Fonte: http://www.martinfowler.com/bliki/PolyglotPersistence.html
Sessões de usuários
Key - Value
Dados Financeiros
Relacional
Blog ou SociaMedia
Graph
CatálogoProdutos
Document
Relatórios
Relacional
Atividades e logs de usuário
Column
Cases
SGBD:sistema de processamento de faturas mensais
NOSQL:Sistema focado em recomendações de melhores filmes.
Cases
SGBD:Sistemas de processamento de ordem de venda
NOSQL:Sistema de pesquisa, recomendações e adaptações de preços em tempo real
Cases
SGBD:Dados de clientes, produtos e RH
NOSQL:Explorar, analisar e virtualização de dados
Existem oportunidades no mercado?
Tem profissional no mercado?
Perguntas
Referenciashttp://nosql-database.org/
http://neo4j.com/customers/
http://aws.amazon.com/dynamodb/
http://www.nosqlfordummies.com/
http://technorati.com/is-there-a-sequel-to-nosql-bigdata-analytics-scifi-has-already-foreshadowed-it/
NoSQL Now 2013 conference. Tomer Shiran, VP of Product Management at MapR Technologies. Jeff Kelly from Wikibon.
http://www.strozzi.it/cgi-bin/CSA/tw7/I/en_US/NoSQL/Home%20Page
http://blog.parityresearch.com/21-nosql-innovators-to-look-for-in-2020/
http://blogs.the451group.com/information_management/2014/07/01/nosql-linkedin-skills-index-june-2014/
http://www.gartner.com/technology/reprints.do?id=1-1M9YEHW&ct=131028&st=sb
http://www.tomsitpro.com/articles/rdbms-sql-cassandra-dba-developer,2-547-2.html
http://www.slideshare.net/kevinweil/nosql-at-twitter-nosql-eu-2010
http://www.slideshare.net/thobe/nosql-for-dummies
Referenciashttp://www.mongodb.com/events/
http://docs.mongodb.org/manual/core/read-operations-introduction/
http://data.ime.usp.br/sbbd2012/artigos/pdfs/sbbd_min_01.pdf
https://cassandra.apache.org/doc/cql/CQL.html
http://www.indeed.com/jobtrends?q=nosql+developer&l=
http://blog.nahurst.com/visual-guide-to-nosql-systems
http://revistaopara.facape.br/index.php/opara/article/download/121/72
http://stackoverflow.com/questions/12346326/nosql-cap-theorem-availability-and-partition-tolerance
http://www.martinfowler.com/bliki/PolyglotPersistence.html
http://www.infoq.com/br/news/2014/06/oracle-nosql-database-3.0
http://www.infoq.com/br/news/2014/06/splunk-hunk-6.1
http://docs.neo4j.org/chunked/stable/query-predicates.html
http://pt.splunk.com/view/db-connect/SP-CAAAHR6
Recommended