cassandra material v4

17
Apresentação Cassandra Fatec Zona Sul ÍNDICE: 1. CASSANDRA................................................................1 1.1 POR QUE O NOME CASSANDRA?..............................................1 2. ESTRUTURA DE DIRETÓRIOS DO CASSANDRA.....................................1 BIN........................................................................1 CONF.......................................................................1 INTERFACE..................................................................2 JAVADOC....................................................................2 LIB........................................................................2 3. QUAL A DIFERENÇA ENTRE OS BANCOS RELACIONAIS E O CASSANDRA?..............2 4. TUTORIAL DE INSTALAÇÃO CASSANDRA.........................................2 5. OBJETOS DO CASSANDRA.....................................................8 5.1 KEYSPACES..............................................................8 5.2 COLUMN FAMILIES.........................................................9 5.2.1 Opções para Column Families........................................................................................................ 10 5.3 SUPERCOLUMN...........................................................10 5.4 COLUMNS...............................................................10 5.4.1 Ordenação de colunas.................................................................................................................... 10 6. SEGURANÇA...............................................................11 7. CLIENTS.................................................................11 8. PARTICULARIDADES........................................................11 9. BIBLIOGRAFIA............................................................12

Upload: aline-rocha

Post on 05-Jul-2015

363 views

Category:

Documents


16 download

TRANSCRIPT

Page 1: Cassandra Material v4

Apresentação Cassandra

Fatec Zona Sul

ÍNDICE:

1. CASSANDRA................................................................................................................................................ 1

1.1 POR QUE O NOME CASSANDRA?............................................................................................................. 1

2. ESTRUTURA DE DIRETÓRIOS DO CASSANDRA...............................................................................................1

BIN............................................................................................................................................................................1CONF........................................................................................................................................................................ 1INTERFACE................................................................................................................................................................2JAVADOC..................................................................................................................................................................2LIB.............................................................................................................................................................................2

3. QUAL A DIFERENÇA ENTRE OS BANCOS RELACIONAIS E O CASSANDRA?.......................................................2

4. TUTORIAL DE INSTALAÇÃO CASSANDRA......................................................................................................2

5. OBJETOS DO CASSANDRA............................................................................................................................ 8

5.1 KEYSPACES......................................................................................................................................................85.2 COLUMN FAMILIES...........................................................................................................................................9

5.2.1 Opções para Column Families...............................................................................................................105.3 SUPERCOLUMN..............................................................................................................................................105.4 COLUMNS.....................................................................................................................................................10

5.4.1 Ordenação de colunas...........................................................................................................................10

6. SEGURANÇA.............................................................................................................................................. 11

7. CLIENTS..................................................................................................................................................... 11

8. PARTICULARIDADES................................................................................................................................... 11

9. BIBLIOGRAFIA............................................................................................................................................ 12

Page 2: Cassandra Material v4

Apresentação Cassandra

Fatec Zona Sul

Page 3: Cassandra Material v4

Apresentação Cassandra

Fatec Zona Sul

1. CassandraPrimeiramente, antes de explicarmos o que é o Cassandra, devemos explicar o que é NoSQL, que nada mais é que a abreviação de Not Only SQL, movimento iniciado em 1998. NoSQL são diferentes sistemas de armazenamento que vieram para suprir necessidades em demandas onde os bancos de dados tradicionais (relacionais) são ineficazes. Como exemplo deste movimento o Cassandra é um dos casos de sucesso deste novo conceito de banco de dados, implantado no Facebook em 2007 para solucionar o problema de pesquisa, no qual eles tiveram que lidar com uma grande quantidade de volume de dados de uma maneira que era difícil para escalar com métodos tradicionais. Atualmente utilizado em larga escala por alguns dos maiores proprietários na Web, incluindo Facebook, Twitter, Cisco, Rackspace, Digg, Cloudkick, Reddit.O Facebook, criador desse banco de dados, doou o código do Cassandra para o Apache Foundation em 2009 que hoje é a responsável pelo banco.Considerado como um banco de dados orientado à coluna. Sua característica principal é que ele é um banco de dados não relacional. O conceito “Sparse”, que significa que para qualquer linha pode possuir uma ou mais colunas, mas cada linha não precisa possuir as mesmas colunas de outra linha. Por este fato não é errado falar que o Cassandra é orientado à coluna, isso pode ser mais útil pensar como se fosse um índex, base de linha orientada, como examinaremos mais no decorrer deste trabalho.

1.1 Por que o nome Cassandra?Cassandra era filha do Rei Priam e da Rainha Hecuba de Troia. Cassandra era tão bonita que o deus Apollo deu a ela a habilidade de ver o futuro, mas quando ela recusou o amor dele, ele rogou uma praga que possibilitaria a ela enxergar o futuro, mas que ninguém iria acreditar nela.

2. Estrutura de diretórios do CassandraA aplicação Cassandra está localizada e difundida em alguns diretórios muito importantes para o seu funcionamento, a seguir esta a explicação de cada diretório no qual o Cassandra esta inserido.BIN - Este diretório contém os executáveis para rodar o Cassandra e a linha de comando dele. Contém também scripts para rodar o NODETOOL, uma ferramenta para configurar um cluster. CONF -Este diretório contém os arquivos de configuração da Instância do Cassandra. Possui três básicas funções:

STORAGE-CONF.XML – Arquivo que permite criar sua base de dados como suas Keyspaces e column families;

Contém arquivos para configurar autenticações;

Cassandra – FATEC ZONA SUL - 2011

Page 4: Cassandra Material v4

Apresentação Cassandra

Fatec Zona Sul

Contém um arquivo chamado LOG4J que permite a você mudar os níveis de login da aplicação para ajustar às suas necessidades.

INTERFACE - Para versões 0.6 ou anteriores, este diretório contém um único arquivo, chamado CASSANDRA.THRIFT. Este arquivo representa o RPC(Remote Procedure Call) Cliente API que o Cassandra disponibiliza.JAVADOC - Este diretório contém uma documentação gerada para Website usando a ferramenta JavaDocdo Java. LIB - Este diretório contém todas as bibliotecas externas que o Cassandra necessita para rodar.

3. Qual a diferença entre os bancos relacionais e o Cassandra?No banco de dados relacional, nós temos o banco de dados que é o mais alto container que corresponde a uma única aplicação. O Banco de dados possui tabelas. Tabelas possuem nomes e contém uma ou mais colunas, no qual possui nomes também.Até então nada de diferente, a principal diferença esta quando nós adicionamos dados em uma tabela, no mundo relacional temos que atribuir valores nulos às colunas que não possuem valores e no mundo não relacional podemos atribuir valores apenas para as colunas que desejamos, não sendo obrigados a atribuir valores nulos às colunas que não serão preenchidas.

4. Tutorial de Instalação Cassandra

Primeiramente antes de iniciarmos a instalação do Cassandra devemos preparar as variáveis de ambiente do Windows.

Primeiro Passo: Clicar em Start > Clique com o botão direito em cima do ícone Meu

Computador e em propriedades > em seguida clique na TAB Advanced > EnvironmentVariables. O resultado é a tela mostrada ao lado.

Figura 01 – Propriedades do Sistema

Cassandra – FATEC ZONA SUL - 2011

Page 5: Cassandra Material v4

Apresentação Cassandra

Fatec Zona Sul

Segundo Passo: Clique no botão New para adicionar as variáveis.

Figura 02 – Variáveis de Ambiente

Figura 03 – Variável JAVA_HOME

Figura 04 – Variável CASSANDRA_HOME

Cassandra – FATEC ZONA SUL - 2011

Page 6: Cassandra Material v4

Apresentação Cassandra

Fatec Zona Sul

Terceiro Passo: Copie os arquivos do Cassandra para o diretório C:/

Figura 05 – Copiando os arquivos para C:

Diretório BIN

Figura 06 – Explicando o Diretório BIN

Cassandra – FATEC ZONA SUL - 2011

Page 7: Cassandra Material v4

Apresentação Cassandra

Fatec Zona Sul

Diretório CONF

Figura 07 – Explicando o Diretório CONF

Diretório INTERFACE

Figura 08 – Explicando o Diretório INTERFACE

Cassandra – FATEC ZONA SUL - 2011

Page 8: Cassandra Material v4

Apresentação Cassandra

Fatec Zona Sul

Diretório JAVADOC

Figura 09 – Explicandoo Diretório JAVADOC

Diretório LIB

Figura 10 – Explicando o Diretório LIB

Agora que já estamos familiarizados com os diretórios do Cassandra, vamos ao quarto Passo!

Cassandra – FATEC ZONA SUL - 2011

Page 9: Cassandra Material v4

Apresentação Cassandra

Fatec Zona Sul

Quarto Passo: Rodar o Cassandra, para isso clique em start e em executar e digite cmd e em seguida pressione enter. Localize o diretório onde esta os arquivos Bin do Cassandra e execute o arquivo Cassandra.bat – Este arquivo é o nosso servidor, toda vez que for executar o Cassandra é necessário executá-lo antes de conectar-se à algum client do Cassandra.

Figura 13 – Executando o Servidor do Cassandra

Sexto Passo: Rodando o Cassandra...... para isso, devemos localizar os arquivos da pasta bin e executar o Cassandra-cli.bat – O Client do Cassandra padrão – Não esqueça de conectar ao localhost e a porta de entrada do Cassandra que é 9160.

Figura 14 – Executando o Cassandra Client

Testando a conexão....

Cassandra – FATEC ZONA SUL - 2011

Page 10: Cassandra Material v4

Apresentação Cassandra

Fatec Zona Sul

Figura 15 – Testando a conexão do Banco de Dados

Agora com o Cassandra configurado vamos conhecer como funciona um banco de dados não relacional e sua estrutura de dados.Embora usarmos algumas analogias ao banco de dados relacional, não se engane, usaremos como base para inserção no mundo de dados não relacional para facilitar esta aprendizagem.

5. Objetos do Cassandra

5.1 KeyspacesUm cluster é um container para Keyspaces. Uma keyspace é o container mais alto para dados no Cassandra. A keyspace corresponde a um banco de dados no mundo relacional, e assim como no mundo relacional as Keyspaces possuem nomes e atributos que define seu comportamento.

Observação: O Cassandra permite a criação de várias Keyspaces por aplicação, mas lembrando que esta pratica não é muito recomendada.

No Cassandra, você pode atribuir atributos básicos por keyspace:

Cassandra – FATEC ZONA SUL - 2011

Page 11: Cassandra Material v4

Apresentação Cassandra

Fatec Zona Sul

Replication factorO Replicationfactor refere-se ao numero de nós que irão agir como cópias de cada registro inserido. Isso permite a você decidir quanto você quer pagar em performance para ganhar mais consistência.

Replica placement strategyO Replica placement se refere a como as replicas vão ser copiadas no anel (Conjunto de Clusters). Existem diferentes estratégias para determinar quais os nós vão receber as cópias de cada Key, elas podem ser:

o SimpleStrategy–Usada por padrão. Esta estratégia copia Replicas em um único data Center, de uma forma que ele não tem noção da sua colocação no rack de dados.

o OldNetworkTopologyStrategy – Utilizado para distribuir dados em diferentes racks no mesmo data Center. Utilize esta estratégia quando usar o ReplicationFactor3 e quando quiser assegurar alta disponibilidade no acesso dos seus dados.

o NetworkTopologyStrategy – Possibilita especificar eventualmente como as replicas devem ser colocadas nos Data Centers.

Columns families – Uma column family é análoga a uma tabela no modelo relacional e é um container para uma coleção de tuplas, ela representa a estrutura dos seus dados.

As configurações de ReplicationFactor e Replica PlacementStrategy são configuradas por Keyspace, entretanto, eles não influenciam em nada no seu modelo de dados, apenas são modos de segurança e confiabilidade de dados utilizados por ele.

5.2 Column FamiliesNa mesma maneira que um banco de dados é um container para tabelas, uma keyspace é um container para lista de uma ou mais column families. São containers para uma coleção de linhas, no qual estão em uma coluna ordenada. Column Families possuem duas características, name e comparator.

o Name – Nome da ColumnFamily o Comparator – Indica como as colunas vão ser organizadas quando retornadas

em uma query – se de acordo com long, byte, UTF8 ou outro tipo de organização.

Cassandra – FATEC ZONA SUL - 2011

Page 12: Cassandra Material v4

Apresentação Cassandra

Fatec Zona Sul

5.2.1 Opções para Column FamiliesExistem várias opções de parâmetros que você pode atribuir à uma Column family, entre os quais estão:

keys_Cached – Numero de locações para manter em cachê por SSTable. Esta opção não se refere as colunas name/values, mas sim ao numero de Keys, como locações por column family.

rows_cached – Numero de linhas cujo o conteúdo será armazenado na memória.

comment – Esta opção é apenas um comentário padrão que auxilia relembrar as definições das sua column family.

read_repair_chance – Valor entre 0 e 1 que representa a probabilidade da operação de leitura irá desempenhar quando uma query é executada sem a specificaçãoquorum, e retorna a mesma linha das duas ou mais replicas e pelo menos uma das replicas aparece desatualizado.

Preload_row_cache – Especifica como você quer popular as linhas em cachê ou na hora em que startar o Server.

5.3 SupercolumnO beneficio de usar uma Supercolumn é permitir o agrupamento das columns.Por padrão columnFamilies são configuradas com o tipo Standard, para uma Super Column Family você configura seu padrão para o tipo Super. O Cassandra quando armazena suas informações armazena em arquivos fragmentados, para otimizar a performance de queries é importante manter estas informações juntas, para isso se faz necessário o uso de Supercolumns.

5.4 ColumnsSituadas dentro de column families ou super column families.

5.4.1 Ordenação de colunasNo Cassandra você especifica como os nomes das colunas vão ser comparadas quando organizadas no momento da consulta pelo usuário. Columns são organizadas pelo “Compare With” tipo definido quando criada a column family e você pode escolher uma das seguintes opções:

AsciiType BytesType LexicalUUIDType IntegerType LongType TimeUUIDType UTF8Type Custom

Cassandra – FATEC ZONA SUL - 2011

Page 13: Cassandra Material v4

Apresentação Cassandra

Fatec Zona Sul

Observação: Pelo fato de não possuir a clausula Order By os dados que são inseridos no Cassandra devem ser gravados de forma já ordenada.

6. Segurança Por default, o Cassandra permite qualquer cliente na sua rede a conectar-se com sua instancia.Se você quiser fornecer credenciais para conexão no seu banco de dados, você deve mudar o método de autenticação do Cassandra de AllowAllAuthenticator para SimpleAuthenticator.

AllowAuthenticator - Standard SimpleAuthenticator – Opção para configurar os usuários e autenticações para sua

instância

Arquivos - Access.properties e passwd.properties

Alterando as permissões do usuárioEditar o arquivo cassandra.xml – Trocar org.apache.cassandra.auth.AllowAllAuthenticator para org.apache.cassandra.auth.SimpleAuthenticator

7. ClientsAssim como vários banco de dados, o Cassandra tem opções para vários clientes.- Thrift- Avro- Cassandra Web Console- Hector (Java)- Chiton (Pyton)- Pelops

8. ParticularidadesComo funciona a proteção de dados com o uso de Views no Cassandra?

Como tudo no Cassandra é completamente diferente do estamos acostumados, o uso de Views não podia ser diferente. Para o uso de proteção de dados temos que trabalhar com a criação de outras column families (tabelas). Como exemplo vamos supor que temos uma tabela chamado Usuário e você gostaria de saber encontrar um usuário em uma cidade especifica, você deve criar uma segunda column family chamada UsuarioCidade que armazene os dados do usuário com a cidade como key, assim quando a query for realizada você deve especificar a tabela recém criada UsuarioCidade.

Cassandra – FATEC ZONA SUL - 2011

Page 14: Cassandra Material v4

Apresentação Cassandra

Fatec Zona Sul

9. BibliografiaEben Hewitt. Cassandra: The Definitive Guide. 1ª Edição. United States of America. Editoria: O’Reilly, 2010.330p.

http://abel-perez.com/cassandra-insert-column-examplehttp://www.dicas-l.com.br/arquivo/apache_cassandra_nosql_uma_tecnologia_emergente.phphttp://www.softwareprojects.com/resources/programming/t-how-to-install-cassandra-+-thrift-and-why-you-shou-1956.htmlhttp://dustyreagan.com/installing-cassandra-on-ubuntu-linux/http://www.sodeso.nl/?p=108http://abel-perez.com/cassandra-insert-column-examplehttp://abel-perez.com/apache-cassandra-simplified-client-apihttp://wiki.apache.org/cassandra/ThriftExamples#Javahttp://code.google.com/p/cassandra-java-client/http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuAhttp://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=cassandra http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=cassandrahttp://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA

Cassandra – FATEC ZONA SUL - 2011