32
Por Fernando Cunha Uma Breve Introdução

NOSQL uma breve introdução

Embed Size (px)

Citation preview

Page 1: NOSQL uma breve introdução

Por Fernando Cunha

Uma Breve Introdução

Page 2: NOSQL 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:

Page 3: NOSQL uma breve introdução
Page 4: NOSQL uma breve introdução

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

Page 5: NOSQL uma breve introdução

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

Page 6: NOSQL uma breve introdução

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

Page 7: NOSQL uma breve introdução

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

Page 8: NOSQL uma breve introdução

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

Page 9: NOSQL uma breve introdução

Classificação de SGBD NOSQL

Key Value

123435

Joao da Silva

334545

Name=Fernando, age=29

Key - Value Column

Graph Document

Page 10: NOSQL uma breve introdução

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

Page 11: NOSQL uma breve introdução

Classificação de SGBD NOSQL e quem está utilizando

KEY VALUE COLUMN GRAPH DOCUMENT

Page 12: NOSQL uma breve introdução

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

Page 13: NOSQL uma breve introdução

Classificação de SGBD NOSQL e quem está utilizando

Cassandra (column)Desenvolvido em: Java

Quem Usa?

– Twitter

– NetFlix

– Facebook

BigTable(column) GoogleDesenvolvido em: C++

Quem Usa:

GmailGoogle Maps,YouTube

KEY VALUE COLUMN GRAPH DOCUMENT

Page 14: NOSQL uma breve introdução

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

Page 15: NOSQL uma breve introdução

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

Page 16: NOSQL uma breve introdução

Dá pra fazer query?

I SQL

Page 17: NOSQL uma breve introdução

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

Page 18: NOSQL uma breve introdução

Dá pra fazer query?

MongoDB - Document

SQL Query

Operation Find

Page 19: NOSQL uma breve introdução

Dá pra fazer query?

Neo4j- Graph

SQL Query

Cyber query

Page 20: NOSQL uma breve introdução

Dá pra fazer query?

Cassandra - Column

SQL Query

CQL – Cassandra Query LanguageComandos CRUD

(Create, Read, Update, Delete)

são iguais

Page 21: NOSQL uma breve introdução

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

Page 22: NOSQL uma breve introdução

Os banco de dados relacionais irão morrer?

Page 23: NOSQL uma breve introdução

Posição NOSQL

Fonte: Gartner

Page 24: NOSQL uma breve introdução

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

Page 25: NOSQL uma breve introdução

Cases

SGBD:sistema de processamento de faturas mensais

NOSQL:Sistema focado em recomendações de melhores filmes.

Page 26: NOSQL uma breve introdução

Cases

SGBD:Sistemas de processamento de ordem de venda

NOSQL:Sistema de pesquisa, recomendações e adaptações de preços em tempo real

Page 27: NOSQL uma breve introdução

Cases

SGBD:Dados de clientes, produtos e RH

NOSQL:Explorar, analisar e virtualização de dados

Page 28: NOSQL uma breve introdução

Existem oportunidades no mercado?

Page 29: NOSQL uma breve introdução

Tem profissional no mercado?

Page 30: NOSQL uma breve introdução

Perguntas

Page 31: NOSQL uma breve introdução

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

Page 32: NOSQL uma breve introdução

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