Índice
Cassandra é um banco de dados NoSQL poderoso e escalável. É open source e sua arquitetura é projetada como um sistema distribuído onde todos os nós são iguais, permitindo assim que os dados sejam distribuídos por todos os nós do cluster.Armazenamento em Cassandra é definido como valor chave onde uma chave pode ser mapeada para um ou mais valores. É uma Base de dados orientado a registros de linha, onde cada linha é identificada por sua chave e a peculiaridade deste sistema é que uma linha pode ser armazenada em mais de um nó.
Antes de proceder à instalação do Cassandra em nosso sistema, devemos saber um pouco sobre a arquitetura deste Base de dados, assim saberemos o que temos e o que podemos alcançar.
Quando falamos sobre replicação de informações, uma das primeiras perguntas que nos perguntamos é: de quantas cópias precisamos? Isso no Cassandra não é uma pergunta fácil de responder, mas o que devemos ter em mente é que esse fator indica o número de nós que estão armazenados na mesma linha.
Por exemplo, um fator de replicação de 2 garante que haverá duas cópias das informações dos nós no cluster. Escolher o valor dois para o fator de replicação é bom para cobrir falhas em um nó no ambiente de desenvolvimento e pode ser o mínimo para ambientes de produção, pois se um nó cair o outro tratará de todas as solicitações, então é algo que devemos pensar cuidadosamente antes de implementá-lo.
KeyspaceCassandra nos permite agrupar as informações em algo chamado espaços-chave, onde podemos dizer que estes espaços-chave eles são contêineres para informações do aplicativo. Um cluster tem um keyspace por aplicativo, no entanto Cassandra use estes espaços-chave para lidar com a replicação.
Família da colunaDepois de definir o nosso keyspace, dentro dele temos algo chamado família de coluna, esses são contêineres semelhantes, mas para uma coleção de linhas. Cada linha é uma coleção ordenada de colunas e podemos fazer uma analogia com relação aos bancos de dados relacionais, onde o família de coluna eles são um tanto semelhantes a tabelas.
Estratégia de replicaçãoEm Cassandra Existem duas estratégias para a replicação de informações, uma delas e a que já abordamos é a estratégia simples ou SimpleStrategy que é responsável por copiar as informações para o próximo nó até que o fator de replicação definido seja atendido. A segunda estratégia é chamada NetworkTopologyStrategy, onde é a melhor opção se quisermos distribuir as informações por vários data centers.
O protocolo usado por Cassandra para compartilhar a localização dos nós e a informação destes no cluster é chamada Fofoca. Onde esses nós estão constantemente "murmurando" e trocando informações com até 3 nós no cluster.
Este protocolo, como outros, tem suas regras para enviar requisições para outros nós, onde podemos ver três etapas para ele, e cada nó sempre repete estas etapas:
1- Murmur para um nó ativo aleatório.
2- Inicie um sopro em direção a um nódulo descendente aleatório.
3- Esta etapa é opcional e define que se o nó selecionado na etapa um não for um nó de semente, murmure para outro nó de semente aleatório.
Mas para mover as informações e realizar a comunicação entre os nós Cassandra use um componente chamado Dedo duroVamos ver o que você quer dizer.
Basicamente, este componente é responsável por gerenciar a movimentação de informações entre os nós, levando outros nós para consultas e replicação com base em várias métricas. Esta configuração é a mesma para todos os nós do cluster, porém pode variar em seu tipo, vamos ver quais temos disponíveis:
SimpleSnitchUsado em implantações de data center simples e um dedo duro configurado desta forma não usa nenhuma informação do data center. Seu comportamento é simples e consiste em encontrar o próximo nó.
Denúncia dinâmicaEssa configuração monitora o desempenho das réplicas e seleciona a melhor com base em uma métrica simples que penaliza longos tempos de resposta e evita nós que estão comprimindo suas informações.
RackInferringSnitchO que esta configuração faz é usar o endereço IP para determinar a localização dos nós, onde a última parte do IP identifica o nó, a segunda os racks e a terceira os data centers.
PropertyFileSnitchIsso permite a definição da topologia de cluster em um arquivo de propriedades, geralmente esta configuração é usada se RackInferringSnitch não aplicável.
GossipingPropertyFileSnitchEle usa um arquivo de propriedades para configuração inicial e continua com o murmúrio para enviar informações para outros nós.
A instalação de Cassandra Faremos isso em uma equipe com Windows 8, em que devemos atender a certos requisitos antes, vamos ver o que precisamos:
1- Precisamos ter pelo menos Java 7 instalado em nosso sistema, caso não tenha, podemos baixar a versão mais recente no link a seguir.
2- Além disso, precisamos Pacote redistribuível do Microsoft Visual C ++ 2008 (x86).
3- Finalmente conexão com a Internet para baixar o pacote DataStax.
Com nossos requisitos revisados, iremos para a página do projeto e procuraremos a versão de 32 ou 64 bits que se adapta ao nosso sistema:
PROLONGAR
Se quisermos dar uma olhada na documentação de conectividade para Cassandra Com as diferentes linguagens de programação, podemos descer a página e ver o que precisamos para o mesmo. Após o download, instalamos como qualquer aplicativo do Windows. Onde é importante mencionar que após esta instalação, Cassandra ele criará um cluster de testes por padrão.Com a instalação, várias ferramentas são instaladas em nosso sistema, uma delas é a interface web do Cassandra ligar OpsCenter, ao qual podemos entrar se colocarmos em nosso navegador o seguinte endereço:
http: // localhost: 8888 / opscenter / index.htmlEssa interface nos permite fazer várias coisas interessantes, no entanto, não é a melhor para trabalhar Cassandra, mas para os fins deste tutorial é importante conhecê-lo, ver o que ele nos oferece e assim ter um ponto de partida para começar a conhecer a estrutura do Banco de Dados.
A primeira coisa que encontramos ao entrar nesta interface é a seção de Painel, onde podemos visualizar várias métricas de desempenho, como integridade do nó, capacidade de armazenamento ou solicitações de gravação:
PROLONGAR
Nesta interface podemos criar um novo cluster, para isso vamos para a parte superior direita e pressionamos Novo Cluster, que abrirá a seguinte tela:Nós inserimos os dados solicitados e clicamos em construir cluster, além disso, podemos adicionar nós igualmente na lista suspensa de Ações de cluster, no canto superior direito. Na seção Não dê, podemos ver os nós e data centers disponíveis, bem como alguns parâmetros como saúde, o tamanho dos dados e até mesmo os alertas gerados:
PROLONGAR
Na seção Atividades Podemos ver uma lista das atividades realizadas no cluster, bem como um log de eventos, algo bastante útil quando somos os administradores do Base de dados:PROLONGAR
Então, temos a seção mais importante em nossa interface da web, e esta é Dados, aqui podemos definir nossos contêineres de informação, mais conhecidos como espaços-chave e as "tabelas" ou famílias de colunas.Para criar um keyspace, primeiro devemos ir para a seção Dados e lá selecione a opção Adicionar, inserimos o nome, a estratégia de replicação, que explicamos que pode ser simples ou topologia de rede, e o fator de replicação.
Nós salvamos e já teríamos criado nosso keyspace, como nos lembramos, esses contêineres têm uma função-chave em Cassandra y é definir o fator de replicação. Com nosso contêiner definido, vamos adicionar um família de coluna, para isso entramos no keyspace e selecionamos a opção Adicionar. Aqui, inserimos o nome, o tipo de coluna e o tipo de comparador.
Com isso, já criamos nosso família de colunaComo podemos ver, é extremamente simples, porém essa interface nos limita em muitas coisas e é apenas um bom ponto de partida para usuários novatos que desejam entender como a estrutura do Cassandra e como ele lida com o clusters, nós, espaços-chave e famílias de colunas.
Com isso finalizamos este tutorial, onde pudemos ver como é a arquitetura do Cassandra, seu protocolo, componentes e sua instalação. Aprendemos sobre a estrutura através da interface web, mas com isso apenas tocamos a ponta do iceberg, em tutoriais futuros entraremos totalmente com CQL e como trabalhar profissionalmente com Cassandra.