NoSQL Familia de Colunas Apresentação

Preview:

Citation preview

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!