Você está na página 1de 14

Apresentao Cassandra Fatec Zona Sul NDICE:

1. 1.1 2. CASSANDRA ................................................................................................................................................... 1 POR QUE O NOME CASSANDRA?................................................................................................................ 1 ESTRUTURA DE DIRETRIOS DO CASSANDRA................................................................................................. 1 BIN...................................................................................................................................................................... 1 CONF .................................................................................................................................................................. 1 INTERFACE .......................................................................................................................................................... 2 JAVADOC ............................................................................................................................................................ 2 LIB ...................................................................................................................................................................... 2 3. 4. 5. QUAL A DIFERENA ENTRE OS BANCOS RELACIONAIS E O CASSANDRA?........................................................ 2 TUTORIAL DE INSTALAO CASSANDRA ........................................................................................................ 2 OBJETOS DO CASSANDRA............................................................................................................................... 8 5.1 KEYSPACES ................................................................................................................................................ 8 5.2 COLUMN FAMILIES ...................................................................................................................................... 9 5.2.1 Opes para Column Families ........................................................................................................... 10 5.3 SUPERCOLUMN ......................................................................................................................................... 10 5.4 COLUMNS ............................................................................................................................................... 10 5.4.1 Ordenao de colunas ...................................................................................................................... 10 6. 7. 8. 9. SEGURANA ................................................................................................................................................. 11 CLIENTS ........................................................................................................................................................ 11 PARTICULARIDADES ..................................................................................................................................... 11 BIBLIOGRAFIA............................................................................................................................................... 12

Apresentao Cassandra Fatec Zona Sul

Apresentao Cassandra Fatec Zona Sul

1. Cassandra
Primeiramente, antes de explicarmos o que o Cassandra, devemos explicar o que NoSQL,que nada mais que a abreviao de NotOnly SQL, movimento iniciado em 1998 . NoSQL so diferentes sistemas de armazenamento que vieram para suprir necessidades em demandas onde os bancos de dados tradicionais (relacionais) so ineficazes.Como exemplo deste movimentoo 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 difcil para escalar com mtodos tradicionais. Atualmente utilizado em larga escala por alguns dos maiores proprietrios na Web, incluindo Facebook, Twitter, Cisco, Rackspace, Digg, Cloudkick, Reddit. O Facebook, criador desse banco de dados, doou o cdigo do Cassandra para o Apache Foundation em 2009 que hoje a responsvel pelo banco. Considerado como um banco de dados orientado coluna.Sua caracterstica 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 no precisa possuir as mesmas colunas de outra linha.Por este fato no 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.1Por que o nome Cassandra?


Cassandra era filha do Rei Priam e da Rainha Hecuba de Troia. Cassandra era to 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 ningum iria acreditar nela.

2. Estrutura de diretrios do Cassandra


A aplicao Cassandra est localizada e difundida em alguns diretrios muito importantes para o seu funcionamento, a seguir esta a explicao de cada diretrio no qual o Cassandra esta inserido.

BIN - Este diretrio contm os executveis para rodar o Cassandra e a linha de comando
dele. Contm tambm scripts para rodar o NODETOOL, uma ferramenta para configurar um cluster.

CONF -Este diretrio contm os arquivos de configurao da Instncia do Cassandr a. Possui


trs bsicas funes: y STORAGE-CONF.XML Arquivo que permite criar sua base de dados como suas Keyspaces e column families; y Contm arquivos para configurar autenticaes;
Cassandra FATEC ZONA SUL - 2011

Apresentao Cassandra Fatec Zona Sul

Contm um arquivo chamado LOG4J que permite a voc mudar os nveis de login da aplicao para ajustar s suas necessidades. INTERFACE - Para verses 0.6 ou anteriores, este diretrio contm um nico arquivo, chamado CASSANDRA.THRIFT. Este arquivo representa o RPC(Remote Procedure Call) Cliente API qu e o Cassandra disponibiliza. JAVADOC - Este diretrio contm uma documentao gerada para Website usando a ferramenta JavaDocdo Java. y

LIB- Este diretrio contm todas as bibliotecas externas que o Cassandra necessita para
rodar.

3. Qual a diferena entre os bancos relacionais e o Cassandra?


No banco de dados relacional, ns temos o banco de dadosque o mais alto container que corresponde a uma nica aplicao. O Banco de dados possui tabelas. Tabelas possuem nomes e contm uma ou mais colunas, no qual possu i nomes tambm. At ento nada de diferente, a principal diferena esta quando ns adicionamos dados em uma tabela, no mundo relacional temos que atribuir valores nulos s colunas que no possuem valores e no mundo no relacional podemos atribuir valores apenas para as colunas que desejamos, no sendo obrigados a atribuir valores nulos s colunas que no sero preenchidas.

4. Tutorial de Instalao Cassandra


Primeiramente antes de iniciarmos a instalao do Cassandra devemos preparar as variveis de ambiente do Windows. Primeiro Passo:Clicar em Start > Clique com o boto 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

Apresentao Cassandra Fatec Zona Sul Segundo Passo: Clique no botoNew para adicionar as variveis.

Figura 02 Variveis de Ambiente

Figura 03 Varivel JAVA_HOME

Figura 04 Varivel CASSANDRA_HOME

Cassandra FATEC ZONA SUL - 2011

Apresentao Cassandra Fatec Zona Sul

Terceiro Passo: Copie os arquivos do Cassandra para o diretrio C:/

Figura 05 Copiando os arquivos para C:

Diretrio BIN

Figura 06 Explicando o Diretrio BIN

Cassandra FATEC ZONA SUL - 2011

Apresentao Cassandra Fatec Zona Sul

Diretrio CONF

Figura 07 Explicando o Diretrio CONF Diretrio INTERFACE

Figura 08 Explicando o Diretrio INTERFACE

Cassandra FATEC ZONA SUL - 2011

Apresentao Cassandra Fatec Zona Sul

Diretrio JAVADOC

Figura 09 Explicandoo Diretrio JAVADOC

Diretrio LIB

Figura 10 Explicando o Diretrio LIB

Agora que j estamos familiarizados com os diretrios do Cassandra, vamos ao quarto Passo!
Cassandra FATEC ZONA SUL - 2011

Apresentao 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 diretrio 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 necessrio 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 padro No esquea de conectar ao localhost e a porta de entrada do Cassandra que 9160.

Figura 14 Executando o Cassandra Client Testando a conexo....

Cassandra FATEC ZONA SUL - 2011

Apresentao Cassandra Fatec Zona Sul

Figura 15 Testando a conexo do Banco de Dados

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

5. Objetos do Cassandra
5.1 Keyspaces

Um 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. Observao: O Cassandra permite a criao de vrias Keyspaces por aplicao, mas lembrando que esta pratica no muito recomendada.

Cassandra FATEC ZONA SUL - 2011

Apresentao Cassandra Fatec Zona Sul

No Cassandra, voc pode atribuir atributos bsicos por keyspace: y Replication factor OReplicationfactorrefere-se ao numero de ns que iro agir como cpias de cada registro inserido. Isso permite a voc decidir quanto voc quer pagar em performance para ganhar mais consistncia. Replica placement strategy O Replica placement se refere a como as replicas vo ser copiadas no anel (Conjunto de Clusters). Existem diferentes estratgias para determinar quais os ns vo receber as cpias de cada Key, elas podem ser: o SimpleStrategy Usada por padro. Esta estratgia copia Replicas em um nico data Center, de uma forma que ele no tem no o da sua colocao no rack de dados. o OldNetworkTopologyStrategy Utilizado para distribuir dados em diferentes racks no mesmo data Center. Utilize esta estratgia 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 anloga a uma tabela no modelo relacional e um container para uma coleo de tuplas, ela representa a estrutura dos seus dados.

As configuraes de ReplicationFactor e Replica PlacementStrategy so configuradas por Keyspace, entretanto, eles no influenciam em nada no seu modelo de dados, apenas so modos de segurana e confiabilidade de dados utilizados por ele.

5.2

Column Families

Na mesma maneira que um banco de dados um container para tabelas, uma keyspace um container para lista de uma ou mais column families.So containers para uma coleo de linhas, no qual esto em uma coluna ordenada. Column Families possuem duas caractersticas, name e comparator. o Name Nome da ColumnFamily o Comparator Indica como as colunas vo ser organizadas quando retornadas em uma query se de acordo com long, byte, UTF8 ou outro tipo de organizao.

Cassandra FATEC ZONA SUL - 2011

Apresentao Cassandra Fatec Zona Sul

5.2.1 Opes para Column Families Existem vrias opes de parmetros que voc pode atribuir uma Column family, entre os quais esto: keys_Cached Numero de locaes para manter em cach por SSTable. Esta opo no se refere as colunas name/values, mas sim ao numero de Keys, como locaes por column family. rows_cached Numero de linhas cujo o contedo ser armazenado na memria.

comment Esta opo apenas um comentrio padro que auxilia relembrar as definies das sua column family. read_repair_chance Valor entre 0 e 1 que representa a probabilidade da operao de leitura ir desempenhar quando uma query executada sem a specificaoquorum, 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

Supercolumn

O beneficio de usar uma Supercolumn per mitir o agrupamento das columns. Por padro columnFamilies so configuradas com o tipo Standard, para uma Super Column Family voc configura seu padro para o tipo Super.O Cassandra quando armazena suas informaes armazena em arquivos fragmentados, para otimizar a performance de queries importante manter estas informaes juntas, para isso se faz necessrio o uso de Supercolumns.

5.4

Columns

Situadas dentro de column families ou super column families. 5.4.1 Ordenao de colunas No Cassandra voc especifica como os nomes das colunas vo ser comparadas quando organizadas no momento da consulta pelo usurio. Columns so organizadas pelo Compare With tipo definido quando criada a column family e voc pode escolher uma das seguintes opes:
y y y y y y y y

AsciiType BytesType LexicalUUIDType IntegerType LongType TimeUUIDType UTF8Type Custom

Cassandra FATEC ZONA SUL - 2011

Apresentao Cassandra Fatec Zona Sul

Observao: Pelo fato de no possuir a clausula Order By os dados que so inseridos no Cassandra devem ser gravados de forma j ordenada.

6. Segurana
Por default, o Cassandra permite qualquer cliente na sua rede a conectar-se com sua instancia. Se voc quiser fornecer credenciais para conexo no seu banco de dados, voc deve mudar o mtodo de autenticao do Cassandra de AllowAllAuthenticatorpara SimpleAuthenticator. y AllowAuthenticator - Standard y SimpleAuthenticator Opo para configurar os usurios e autenticaes para sua instncia

Arquivos- Access.properties e passwd.properties Alterando as permisses do usurio Editar o arquivo cassandra.xml Trocar org.apache.cassandra.auth.AllowAllAuthenticatorpara org.apache.cassandra.auth.SimpleAuthenticator

7. Clients
Assim como vrios banco de dados, o Cassandra tem opes para vrios clientes. - Thrift - Avro - Cassandra Web Console - Hector (Java) - Chiton (Pyton) - Pelops

8. Particularidades
Como funciona a proteo de dados com o uso de Views no Cassandra? Como tudo no Cassandra completamente diferente do estamos acostumados, o uso de Views no podia ser diferente. Para o uso de proteo de dados temos que trabalhar com a criao de outras column families (tabelas). Como exemplo vamos supor que temos uma tabela chamado Usurio e voc gostaria de saber encontrar um usurio em uma cidade especifica, voc deve criar uma segunda column family chamada UsuarioCidade que armazene os dados do usurio com a cidade como key, assim quando a query for realizada voc deve especificar a tabela recm criada UsuarioCidade.
Cassandra FATEC ZONA SUL - 2011

Apresentao Cassandra Fatec Zona Sul

9. Bibliografia
Eben Hewitt. Cassandra: The Definitive Guide . 1 Edio.United States of America. Editoria: OReilly, 2010.330p.
http://abel-perez.com/cassandra-insert-column-example http://www.dicasl.com.br/arquivo/apache_cassandra_nosql_uma_tecnologia_emergente.php http://www.softwareprojects.com/resources/programming/t-how-to-install-cassandra-+thrift-and-why-you-shou-1956.html http://dustyreagan.com/installing-cassandra-on-ubuntu-linux/ http://www.sodeso.nl/?p=108 http://abel-perez.com/cassandra-insert-column-example http://abel-perez.com/apache-cassandra-simplified-client-api http://wiki.apache.org/cassandra/ThriftExamples#Java http://code.google.com/p/cassandra-java-client/ http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=cassandra http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=cassandra http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA

Cassandra FATEC ZONA SUL - 2011