Sistemas NoSQL Prof. Carlos Eduardo Santos Pires cesp@dsc.ufcg.edu.br

  • View
    128

  • Download
    16

Embed Size (px)

Text of Sistemas NoSQL Prof. Carlos Eduardo Santos Pires cesp@dsc.ufcg.edu.br

  • Slide 1
  • Sistemas NoSQL Prof. Carlos Eduardo Santos Pires cesp@dsc.ufcg.edu.br
  • Slide 2
  • Agenda Motivao Sistemas NoSQL o Definio o Caractersticas o Modelos de Armazenamento de Dados o Modelos de Dados o Controle de Concorrncia Concluses Sistemas NoSQL2
  • Slide 3
  • Bancos de Dados Relacionais Dados so estruturados de acordo com o modelo relacional Padro para a grande maioria dos SGBDs o SQL Server, Oracle, PostgreSQL, MySQL, DB2, etc. Elementos bsicos o Relaes (ou tabelas) e registros (ou tuplas) Caractersticas fundamentais o Restries de integridade (PK, FK, UK, CK, NN) o Normalizao o Linguagem SQL (Structured Query Language) Sistemas NoSQL3
  • Slide 4
  • Bancos de Dados Relacionais A estrutura pouco flexvel o Tudo bem, usemos SGBDOO e SGBDOR Porm... o O volume de dados manipulados por alguns sistemas computacionais vem crescendo em ritmo acelerado (web 2.0) o Google: petabytes o Milhares de usurios acessando dados simultaneamente Demanda por escalabilidade cada vez maior Sistemas NoSQL4
  • Slide 5
  • Como escalonar BDs Relacionais? Alternativa 1: Escalonamento vertical o Muitos cores e/ou CPUs que compartilham memria RAM e discos Oracle RAC (Real Application Cluster) Sistemas NoSQL5
  • Slide 6
  • Como escalonar BDs Relacionais? Alternativa 1: Escalonamento vertical o Custo 1 milho de dlares o Mesmo assim, insuficiente se o nmero de dados cresce em ritmo muito intenso o O problema passa a se concentrar no acesso base de dados Sistemas NoSQL6
  • Slide 7
  • Como escalonar BDs Relacionais? Alternativa 2: Escalonamento horizontal o Aumentar o nmero de servidores Distribuir o processamento de dados em muitos servidores, sem que haja compartilhamento de memria RAM ou disco entre estes servidores Para escalar um BDR atravs de mltiplas mquinas no podemos simplesmente ligar mais uma mquina rodando o banco e esperar que tudo funcione Precisamos de uma srie de configuraes e alteraes nas nossas aplicaes para fazer tudo funcionar na nova arquitetura distribuda Sistemas NoSQL7
  • Slide 8
  • Modelo de Dados Mas, alm de escalabilidade, existe a questo do modelo de dados O modelo de dados relacional satisfaz de forma eficiente as necessidades de todos os tipos de aplicao? Normalizao o Fragmenta os dados Sistemas NoSQL8 Joins? More joins?
  • Slide 9
  • Sistemas NoSQL Abreviao de Not only SQL (no apenas SQL) Dezenas disponveis na Web Open-source ou no Projetados por diversos tipos de desenvolvedores Implementaes NoSQL o Ainda esto definindo um padro prprio o Cada projeto foi concebido para resolver um problema particular Sistemas NoSQL9
  • Slide 10
  • Projetados para escalonar aplicaes simples utilizando vrios servidores Objetivo no substituir o Modelo Relacional, mas apenas em casos nos quais seja necessria uma maior flexibilidade da estruturao do BD Sistemas NoSQL10
  • Slide 11
  • Sistemas NoSQL NoSQL um termo genrico para uma classe definida de banco de dados no-relacionais que rompe uma longa histria de banco de dados relacionais e suas propriedades ACID Imprio do Modelo Relacional o IV Reich o Reich dos 43 anos o Poucas variaes ao longo do tempo Sistemas NoSQL11 Edgar F. Codd *August 23, 1923 +April 18, 2003 Codd, E.F. (1970). "A Relational Model of Data for Large Shared Data Banks". Communications of the ACM 13 (6): 377387. doi:10.1145/362384.362685.
  • Slide 12
  • Sistemas NoSQL Paradigma recente (de 2008 para c) Motivados pelas aplicaes da Web 2.0 o Twitter, WIKI, Facebook, Blogs, etc. Aplicaes que envolvem milhares ou milhes de usurios conectados simultaneamente realizando operaes simples de leitura e escrita O que uma operao simples? o Busca, leitura e escrita em um nico registro ou em um conjunto pequeno de registros Sistemas NoSQL12
  • Slide 13
  • Caractersticas dos Sistemas NoSQL Habilidade de escalonar horizontalmente operaes simples com vrios servidores Habilidade de replicar e distribuir (particionar) dados em vrios servidores Interface de chamada simples Modelo de controle de concorrncia menos rgido que o ACID Livres de esquema: habilidade de atribuir dinamicamente novos atributos aos registros de dados Sistemas NoSQL13
  • Slide 14
  • Caractersticas dos Sistemas NoSQL Sistemas NoSQL possuem vrias caractersticas em comum o Livres de esquema o Alta disponibilidade o Escalabilidade Mesmo assim, possuem diversas caractersticas nicas quanto ao o Modo de armazenamento dos dados o Modelo de dados Sistemas NoSQL14
  • Slide 15
  • Modo de Armazenamento de Dados Temos os sistemas que... o mantm suas informaes em memria realizando persistncias ocasionais Scalaris, Redis o mantm suas informaes em disco CouchDB, MongoDB, Riak, Voldemort o so configurveis BigTable, Cassandra, Hbase, HyperTable Sistemas NoSQL15
  • Slide 16
  • Modelo de Dados Existem quatro categorias: o Sistemas baseados em armazenamento chave-valor o Sistemas orientados a documentos o Sistemas orientados coluna o Sistemas baseados em grafos Sistemas NoSQL16
  • Slide 17
  • Baseados em Armazenamento Chave-Valor Existe uma coleo de chaves nicas e de valores, os quais so associados s chaves Um ndice nico utilizado para encontrar os valores Sistemas NoSQL17
  • Slide 18
  • Baseados em Armazenamento Chave-Valor Modelo simples, restrito (buscas) e escalonvel Fornecem mecanismos de persistncia, replicao, versionamento, bloqueios, transaes, etc. A interface oferece operaes de insero, remoo e index lookups Exemplos de Sistemas NoSQL o Riak, Redis, Scalaris Sistemas NoSQL18
  • Slide 19
  • Baseados em Armazenamento Chave-Valor Chave esquerda e um valor (objeto) direita Chave pode ser um string, inteiro, etc. Como no existe repetio de chave, possvel consultar apenas pela chave o user1923_color Red o user1923_age 18 o user3371_color Blue o user4344_color Brackish o user1923_height 6' 0 o user3371_age 34 Sistemas NoSQL19
  • Slide 20
  • Orientados a Documentos Documentos so as unidades bsicas de armazenamento e estes no utilizam necessariamente qualquer tipo de estrutura pr- definida (esquema) Os documentos so indexados e um mecanismo simples de consulta oferecido Sistemas NoSQL20
  • Slide 21
  • Orientados a Documentos Documento do CouchDB o Objeto com um identificador nico e certos campos o Possui cinco campos e seus respectivos valores O sistema NoSQL que se vire para indexar Exemplos o MongoDB e CouchDB Sistemas NoSQL21
  • Slide 22
  • Orientados Coluna Muda-se o paradigma de orientao a registros para orientao a colunas BD orientado a registro o 1, Smith, Joe, 40000; o 2, Jones, Mary, 50000; o 3, Johnson, Cathy, 44000; BD orientado a coluna o 1, 2, 3; o Smith, Jones, Johnson; Joe, Mary, Cathy; o 40000, 50000, 44000; Sistemas NoSQL22
  • Slide 23
  • Orientados Coluna Para sistemas que possuem carga de trabalho com um pequeno nmero de consultas complexas sobre todos os dados de colunas o Similar ao processamento OLAP o SUM(valor), AVG(quantidade), MAX(total) Exemplo o Cassandra e BigTable Sistemas NoSQL23
  • Slide 24
  • Baseados em Grafos J tentou modelar/consultar uma hierarquia em bancos de dados relacionais? SGDB Oracle o START WITH o CONNECT BY Sistemas NoSQL24 SELECT lpad(' ', 2*level) || child FROM prune_test START WITH parent IS NULL CONNECT BY PRIOR child=parent;
  • Slide 25
  • Baseados em Grafos Dados so armazenados em ns de um grafo cujas arestas representam o tipo de associao entre esses ns Sistemas NoSQL25
  • Slide 26
  • Baseados em Grafos Ns representam entidades como pessoas, grupos, itens, etc. Os objetos possuem propriedades Arestas o Conectam ns distintos entre si ou ns a propriedades o Representam o relacionamento entre os mesmos Exemplo o Neo4j Sistemas NoSQL26
  • Slide 27
  • Modelos de Dados NoSQL Sistemas NoSQL27 Complexidade dos dados Volume de dados chave-valor colunas documentos grafo
  • Slide 28
  • Controle de Concorrncia Bancos de Dados Relacionais o Uso de bloqueios (locks) para garantir que dois usurios no atualizem o mesmo item de dados no mesmo instante Bancos de Dados NoSQL o Estratgias usadas permitem um maior grau de concorrncia Sistemas NoSQL28
  • Slide 29
  • Controle de Concorrncia BDR o ACID = A tomicity, C onsistency, I solation, and D urability NoSQL o BASE = B asically A vailable, S oft state, E ventually consistent Desempenho e escalabilidade so conseguidos relaxando-se algumas propriedades Sistemas NoSQL29
  • Slide 30
  • Controle de Concorrncia Consistncia Eventual o Eventual em portugus Pode acontecer ou no o Eventual em ingls Vai acontecer em algum momento Pode no ser agora, mas vai acontecer o Exemplo Transferncia bancria no sistema financeiro brasileiro o Portanto, no mundo NoSQL a traduo melhor seria Consistncia em momento indeterminado Sistemas NoSQL30
  • Slide 31
  • Controle de Concorrncia Consistncia Eventual o Se nenhuma nova atualizao for realizada sobre o objeto, eventualmente todos os acessos esse objeto retornaro o ltimo valor atualizado o Quando uma escrita for realizada no banco, no se pode garantir que, a partir daquele momento, todos os outros processos tero acesso apenas ao dado atualizado o No h garantia que os dados lidos esto sempre atualizados o Atualizaes so eventualmente propagadas em todos os ns Sistemas No