ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
1. Escalabilidade Linear com o Banco de Dados
NoSQL Apache Cassandra.
Palestrante: Marcio Junior Vieira
marcio@ambientelivre.com.br
2. Marcio Junior Vieira
● 16 anos de experiência em informática, vivência em desenvolvimento e
análise de sistemas de Gestão empresarial.
●
Trabalhando com Software Livre desde 2000 com serviços de consultoria e
treinamento.
● Graduado em Tecnologia em Informática(2004) e pós-graduado em
Software Livre(2005) ambos pela UFPR.
● Palestrante em diversos Congressos relacionados a Software Livre tais
como: CONISLI, SOLISC, FISL, LATINOWARE, SFD, JDBR, Campus Party,
Pentaho Day, TDC.
● Organizador Geral do Pentaho Day 2015 e apoio nas edições 2013 e 2014.
● CEO da Ambiente Livre.
● Data Scientist, Instrutor e Consultor de Big Data com Hadoop, Spark,
Cassandra, MongoDB e Pentaho.
3. Sobre a Ambiente Livre
● Fundada em 2004 com foco de atuar em
consultoria com software livre.
● 2009 ampliou sua soluções para atender ao
mercado de gestão empresarial com software
livre.
● Tem 14 soluções distintas para geração de
negócios com software livre.
20. Fundação Apache
● Big Data = Apache = Open Source
● Apache é líder em Big Data!
● ~31 projetos de Big Data incluindo “Apache
Hadoop” e “Spark” e Cassandra
●
21. Apache Cassandra
● É um tipo de banco nosql que originalmente
foi criado pelo Facebook e que atualmente é
mantido pela Apache e outras empresas.
● Banco de dados distribuído baseado no
modelo BigTable do Google e no sistema de
armazenamento Dynamo da Amazon.com.
22. DataStax
● Principal mantenedora do Cassandra
● Fornece Suporte comercial e uma versão
Enterprise do Cassandra
● http://www.datastax.com/
23. Histórico - Versões
Top-level Apache project em 2010
● 0.6 – Abril 2010
● 1.0 – Outubro 2011
● 2.0 – Setembro 2013
● 3.0 – Novembro 2015
● 3.7 - Julho 2016
24. NoSQL's
● Gráfos: elementos de dados referem-se a
cada n outros em um gráfo/rede
● Chave-Valor: teclas de mapear para valores
arbitrários de qualquer tipo de dados
● Documento: conjuntos de documentos
(JSON) queryable em todo ou em parte
● Coluna Família: chaves mapeados para
conjuntos de n-número de colunas digitadas
26. NoSQL X SQL
● Dificuldade de atingir alta disponibilidade e
escalabilidade
● Geralmente não tem Replicação multi master
● Mudanças no schema em larga escala são
complicadas e complexos
● Não tem suporte a multi datacenter para
distribuição geográfica
● Processo de upgrade em escala não é trivial
27. NoSQL X SQL
● Consistência Estrita = Disponibilidade
prejudicada
● Transações = deadlock / não escala
● Ad Hoc Queries e Indexação = Devem ser
planejadas antes.
29. CAP Theorem
● Consistência: ver os dados mais recentes,
sem um atraso
● Disponibilidade: O sistema deverá dar uma
resposta a todos os pedido
● particionamento: significa a distribuição de
seus dados em local diferente.
● O teorema diz que você não pode alcançar os
3, você deve ficar com dois e sacrificar um!
30. CAP Theorem
● 1- Se você precisa de consistência e disponibilidade.
Você deve esquecer de particionamento porque quando
você particionar há uma pequena janela entre a gravação
e os dados mais recentes.
● 2- Se a disponibilidade e particionamento é o objetivo
que você tem que pagar o custo de consistência,
como explicado no 1.
● 3- finalmente, se você escolher o particionamento e
consistência que você deve sacrificar disponibilidade
para lidar com defasagens de nós deferentes para ter
dados mais recentes.
31. Escalabilidade Linear
● A Capacidade pode ser facilmente aumentada
simplesmente por adicionar novos nós.
● Exemplo: Se 2 nós pode lidar com 100.000
transações por segundo, 4 nós apoiará
200.000 transações/s e 8 nós vai enfrentar
400.000 transações/s
35. Cassandra Cluster
● Distribuir dados entre os nós
● Diminuir requisitos de coerência e esquema
● Otimizar dados para atender às necessidades
reais
36. Outras Características
● Descentralizado
● Esquema de Dados flexível
● Suporte a MapReduce com Hadoop
● Suporte a Spark
● Nível de consistência configurável ( tunning )
38. Modelagem de Dados
Cassandra Query Language (CQL)
●
Fornece uma, linha-coluna, a abordagem SQL-like familiarizado:
CREATE, ALTER, DROP, SELECT, INSERT, UPDATE, DELETE
● Substituiu o complexo
Thrift API orientada
para o armazenamento
utilizado em versões
anteriores
●
Fornece definições de
esquema claros num contexto
flexível esquema (NoSQL)
39. Características
● Nenhum ponto único de falha
● Escreve em Tempo Real ( real-time) com análise de
dados operacional ao vivo
● Modelos de dados, facilmente alterados flexíveis
● Horizontalmente Escala ( Near-linear ) entre os
servidores de commodities
● Replicação de confiança entre data centers distribuídos
● Esquema de tabela claramente definido em um
ambiente NoSQL
40. Quando NÃO é a melhor
solução?
● RDBMS tradicional já se sobressai quando
você precisa.
● Transações ACID-compliant, com reversão
(por exemplo, transferências bancárias)
● Hardware de alta qualidade.
41. Casos de Uso
● Listas e coleções
● Personalização e recomendação motores
● Mensagem/Mensageria
● A detecção de fraudes
● Sensor de Dados
42. Cases
● Big Data na Accenture
● Mensagem
● 5.000-20.000 mensagens por segundo
● Multi Data Centers para coleta de dados
● Hadoop e Cassandra
● http://www.planetcassandra.org/blog/interview/big-data-practice-at-
accenture-helps-customers-deploy-cassandra-for-high-speed-data-
ingestion
43. Cases
● Plataforma de Recomendação, fornecer
recomendações para os serviços de e-commerce.
● Os maiores sites de comércio eletrônico no Brasil
usam para atender recomendações de compra
personalizadas para seus usuários.
● Migração de MySQL para Cassandra
● Cluster de 48 Nós
● http://www.planetcassandra.org/blog/interview/get-personal-with-chaordic-
bringing-personalization-to-e-commerce-with-48-nodes-of-apache-cassandra-
and-hadoop/
47. Cassandra X MongoDB
● MongoDB é orientado a documentos e o Cassandra é column-based.
Vantagens Cassandra:
● Altamente escalável;
● Volumes de dados massivos;
Desvantagens Cassandra
● Maior curva de Aprendizagem
Vantagens MongoDB
● Fácil de operar e gerenciar ( baixa curva de aprendizagem )
Desvantagens MongoDB
● Pode não apresentar a mesma facilidade de distribuição de dados entre data
centers como o Cassandra.
49. Por onde Começar!
● Apache Cassandra Documentation v3.7
http://cassandra.apache.org/doc/latest/
● Academia Cassandra
https://academy.datastax.com/
● * Formação em Curitiba
De 16 a 18 de Novembro
50. Referências
● Datastax Documentation
http://docs.datastax.com
● Livro: “Cassandra: The Definitive Guide”
Eben Hewitt.
● Datastax Academy http://academy.datastax.com
● Academia Chaordic, Florianópolis 2014.
● Apache Cassandra Documentation v3.7
http://cassandra.apache.org/doc/latest/