NoSQL Orientado a Colunas
Augusto Juvenal F. G. Costa (ajfgc)
Roteiro● Introdução
○ Motivação○ Objetivo
● O que é NoSQL?● NoSQL Orientado a Colunas● Estado da Arte
○ BigTable
● Outras Ferramentas○ Cassandra○ HBase
● Perspectivas Futuras● Referências
IntroduçãoMotivação
● Suprir necessidades em escala Big Data
● SGBDs existentes nasceram em necessidades Diferentes○ BD Relacional (1985)○ Incompatibilidade
● Interesse em explorar dados
IntroduçãoObjetivo
● Mineração/Produção de Big Data sem gargalos● Propor soluções Big Data
○ “One size fits all” não se aplica
● Foco na performance, velocidade, flexibilidade e escalabilidade○ Distribuído
● Não necessariamente preocupado com semânticas relacionais
O que é NoSQL?● Abreviação Polêmica
● Bases de dados não relacionais ○ utilizadas na manipulação de grande volume de
dados
● “NoSQL” vem de uma hashtag utilizada para promover uma conferência (2009)
O que é NoSQL? (Propriedades)Teorema CAP
● ACID vs BASE● Teorema:
○ um sistema distribuído não pode,
simultaneamente, fornecer
Consistência, Disponibilidade e tolerância a partição
ACID BASE
Atômico Basically Avaliable
ConsistenteSoft-State
Isolado
Durável Eventualmente Consistente
O que é NoSQLTeorema CAP (cont.)
“Não é possível que um sistema de dados distribuído possua os 3 requisitos”
● Consistência (Consistency)○ Todas as aplicações clientes tem a mesma visão dos dados;
● Disponibilidade (Avaliability)● Tolerância à Partição (Partition Tolerance)
○ Propriedades mantidas○ Mesmo quando alguns clusters são impedidos de se comunicar
NoSQL Orientado a Colunas● Colunas Independentes organizadas em:
○ Colunas padrão○ SuperColunas (colunas encadeadas)
● Chaves apontam para várias colunas○ montando a linha
NoSQL Orientado a ColunasModelo de dados:
● Tupla○ {nome, value, Timestamp}
● Tabela○ Familia de Colunas
○ Retorno idêntico a umaquery em SGBD relacional
NoSQL Orientado a Colunas
Bom para
● Otimizar leitura/escrita
Ruim para
● Sistemas que necessitem de leitura/escrita de acordo com o modelo ACID
Estado da ArteBigTable
● Google (2003)○ Demandas Futuras○ MapReduce○ Dimensões (Células)
■ Linha (Conjunto: Tablets)■ Coluna (Conjunto: Famílias)■ Hora (Versionamento de Células)
Estado da ArteBigTable (Arquitetura)
● Componentes Principais○ Client Library
■ cache de localização○ Master Server (Administrador)
■ Atribui tablets aos Tablet Servers■ Coleta de Lixo
○ Tablets Servers■ Gerencia tamanho dos tablets
■ Lida com Leitura/escrita e solicitação
Estado da ArteBigTable (Onde é utilizado?)
Outras ferramentasCassandra
● Orientado a Colunas? Chave-Valor?● Dynamo (Amazon) + BigTable (Google)● Facebook abre código Fonte (2008)
○ Inbox Search
● Descontinuado pelo Facebook (2010)
Outras ferramentasCassandra Arquitetura
● Sistema Distribuídos○ Clusters (nós do Cassandra)
● Hashing consistente○ Mantém as chaves dos nós
peristentes
Outras ferramentasCassandra Arquitetura (cont.)
1. Distribuição transparente2. Cassandra gerencia réplicas
a. usuário pode definir a quantidade
3. Consistência Ajustável4. Gravações Rápidas
a. até 360 MB/s em cada nó
5. Armazenamento nos nós (maior parte)a. Log utilizado para recuperação (grava transações)
6. A gravação de dados visa desempenhoa. a não ser que seja solicitado consistência total
Outras ferramentas
Outras ferramentasCassandra Query Language
● DDL○ CREATE○ DROP○ ALTER
● DML○ Queries com SELECT
Usuários (fonte: http://www.planetcassandra.org/companies)
Outras ferramentasHBase
● Hadoop Database○ BigTable como armazenamento○ Subprojeto para pesquisas com MapReduce
● Fornece○ Baixa latência○ Consistência significante○ Distribuído
Outras ferramentasHBase Arquitetura
● HBaseMaster○ Atribui Regiões ao RegionServer
● HRegion Server○ lida com requisições de
leitura/escrita
● HBase Client○ Se comunica com o HRegion
Server
Empresas que utilizam
Perspectivas Futuras
Perspectivas Futuras● Popularidade Aumentando
○ Fonte:db-engines
● Modelo Recente○ Surgimento em 2005○ BigTable
● Promissor○ Não se “amarra” a schemas○ Facilmente escalável
Referências● MONIRUZZAMAN, A B M; HOSSAIN, Syed Akhter. NoSQL Database: New Era of Databases for
Big data Analytics - Classification, Characteristics and Comparison. International Journal Of Database Theory And Application. 2013.
● JABLONSKI, Stefan. NoSQL Evaluation: A Use Case Oriented Survey. University Of Bayreuth, Germany, 2011.
● NAYAK, Ameya; PORIYA, Anil; POOJARY, Dikshay. Type of NOSQL Databases and its Comparison with Relational Databases. International Journal Of Applied Information Systems. New York, p. 16-19. Mar. 2013.
● SOUZA, Vanessa Cristina Oliveira de; SANTOS, Marcus Vinícius Carli dos. Amadurecimento,
Consolidação e Performance de SGBDs NoSQL: Estudo Comparativo. XI Brazilian Symposium
On Information System. Itajubá, p. 235-242. May 2015.
● ToughtWorks Disponível em: www.thoughtworks.com/pt/insights/blog/nosql-databases-overview
Obrigado pela atenção!