Skip to content

Latest commit

 

History

History
148 lines (101 loc) · 6.81 KB

nosql.org

File metadata and controls

148 lines (101 loc) · 6.81 KB

Explorando o poder do NoSQL com Cassandra e Hbase

Por quê NoSQL em Big Data?

Resposta: Performance.

MapReduce processa dados em batch e os dados são acessados de forma sequencial. Ou seja, é preciso percorrer todo o dataset (scan search), mesmo para jobs mais simples.

NoSQL possibilita acesso aleatório aos dados em termos de posição do registro e tempo.

Cenários de uso

  • Arquitetura baseada em eventos
    • Kafka Cluster -> Spark Streaming -> HBase/Cassandra -> Enriquecimento -> Destino

CAP

Teorema CAP: Consistência, Disponibilidade, Partição Tolerante a Falhas.

The CAP theorem states that any networked shared-data system can have at most two of three desirable properties:

  • consistency (C) equivalent to having a single up-to-date copy of the data;
  • high availability (A) of that data (for updates); and
  • tolerance to network partitions (P).

This expression of CAP served its purpose, which was to open the minds of designers to a wider range of systems and tradeoffs; indeed, in the past decade, a vast range of new systems has emerged, as well as much debate on the relative merits of consistency and availability. The “2 of 3” formulation was always misleading because it tended to oversimplify the tensions among properties. Now such nuances matter.

Créditos: CAP Twelve Years Later: How the “Rules” Have Changed

Teorema CAP na prática. Créditos: IBM

Teorema CAP e a classificação de diferentes bancos. Créditos: Samaraweera@researchgate

HBase

Use Apache HBase™ when you need random, realtime read/write access to your Big Data. This project’s goal is the hosting of very large tables – billions of rows X millions of columns – atop clusters of commodity hardware.

Créditos: Apache HBase

Banco de dados distribuído e orientado a coluna (Column Family ou Wide Column).

É um Map:

  • Esparso
  • Distribuído
  • Persistente
  • Multidimensional
  • Ordenado

Arquitetura

Depende do Zookeeper para que consiga funcionar. O Zookeeper dá ao HBase visibilidade a todos os nós do cluster.

Arquitetura do HBase. Créditos: dataflair

Desvantagem

  • Infelizmente não possui uma linguagem de busca (query)
  • Não suporta índices em colunas fora da rowkey
  • Não suporta tabelas secundárias de índices

Vantagem

  • Fácil integração ao ecossistema Hadoop

Estrutura dos dados

  • Map indexado por uma linha chave (row key), coluna chave (column key) e uma coluna timestamp.
  • Cada valor no Map é interpretado como um vetor de bytes (array of bytes)
  • Não distingue tipos (int, str, etc): pode armazenar qualquer tipo de dado, inclusive documentos (JSON, CSV, …)

Exemplo de dados na estrutura do HBase. Créditos: ScienceSoft

Cassandra

The Apache Cassandra database is the right choice when you need scalability and high availability without compromising performance. Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure make it the perfect platform for mission-critical data.

Créditos: Apache Cassandra

Banco de dados distribuído e orientado a coluna (Column Family ou Wide Column).

O Cassandra possui a linguagem CQL, bastante similar ao SQL porém com algumas operações não suportadas/recomendadas (e.g. joins, alguns tipos de agrupamento e filto).

Os dados aqui são tipados.

Suporta tabela secundárias de índices e filtros em colunas fora da primary key.

Arquitetura

Não possui ponto de falha central.

Fluxo de escrita de dados no Cassandra. Créditos: knoldus

Conexão entre nós é realizada de ponta a ponta, utilizando o protocolo Gossip para distribuição dos dados.

Arquitetura do Cassandra. Créditos: Scylla

Estrutura dos dados

Exemplo de dados na estrutura do Cassandra. Créditos: ScienceSoft

Recursos

Slides da aula

Repositório da aula

CAP Twelve Years Later: How the “Rules” Have Changed

Apache HBase

Apache HBase - Getting Started

HBase Architecture – Regions, Hmaster, Zookeeper

HBase Shell Commands

Apache Cassandra

Apache Cassandra Architecture

Apache Cassandra - Getting Started

Cassandra vs. HBase: twins or just strangers with similar looks?

Commit Log: A commitment that Cassandra provides

What is Apache Cassandra?

datastax - Cassandra service

Voltar

Sumário