O slideshow foi denunciado.

NOSQL uma breve introdução

626 visualizações

Publicada em

Uma introdução ao conceito NOSQL, suas implementações e casos de uso

Publicada em: Tecnologia
  • Seja o primeiro a comentar

NOSQL uma breve introdução

  1. 1. Por Fernando Cunha Uma Breve Introdução
  2. 2. Fernando Cunha – fecunhainfo@gmail.com • 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:
  3. 3.  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
  4. 4. 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
  5. 5. 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 value Pessoas ; 4564 ; nome : Ana ; idade : 30; KEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENT
  6. 6. 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
  7. 7. Classificação de SGBD NOSQL  Os documentos são as unidades básicas de 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
  8. 8. Classificação de SGBD NOSQL Key Value 12343 5 Joao da Silva 33454 5 Name=Fernando, age=29 Key - Value Column Graph Document
  9. 9. 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
  10. 10. Classificação de SGBD NOSQL e quem está utilizando KEY VALUE COLUMN GRAPH DOCUMENT
  11. 11. 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
  12. 12. Classificação de SGBD NOSQL e quem está utilizando Cassandra (column) Desenvolvido em: Java Quem Usa? – Twitter – NetFlix – Facebook BigTable(column) Google Desenvolvido em: C++ Quem Usa: Gmail Google Maps, YouTube KEY VALUE COLUMN GRAPH DOCUMENT
  13. 13. Classificação de SGBD NOSQL e quem está utilizando Neo4j (graph) – Desenvolvido em: Java Quem Usa? – WalMart – National Geographic – Ebay KEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENT
  14. 14. 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
  15. 15. Dá pra fazer query? I SQL
  16. 16. 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
  17. 17. Dá pra fazer query? MongoDB - Document SQL Query Operation Find
  18. 18. Dá pra fazer query? Neo4j- Graph SQL Query Cyber query
  19. 19. Dá pra fazer query? Cassandra - Column SQL Query CQL – Cassandra Query Language Comandos CRUD (Create, Read, Update, Delete) são iguais
  20. 20. 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
  21. 21. Os banco de dados relacionais irão morrer?
  22. 22. Posição NOSQL Fonte: Gartner
  23. 23. 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 Socia Media Graph Catálogo Produtos Document Relatórios Relacional Atividades e logs de usuário Column
  24. 24. Cases SGBD: sistema de processamento de faturas mensais NOSQL: Sistema focado em recomendações de melhores filmes.
  25. 25. Cases SGBD: Sistemas de processamento de ordem de venda NOSQL: Sistema de pesquisa, recomendações e adaptações de preços em tempo real
  26. 26. Cases SGBD: Dados de clientes, produtos e RH NOSQL: Explorar, analisar e virtualização de dados
  27. 27. Existem oportunidades no mercado?
  28. 28. Tem profissional no mercado?
  29. 29. Perguntas
  30. 30. Referencias http://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
  31. 31. Referencias http://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

×