Mostrando postagens com marcador NoSQL. Mostrar todas as postagens
Mostrando postagens com marcador NoSQL. Mostrar todas as postagens

sábado, 5 de outubro de 2013

História Apache Cassandra - NoSQL

Banco de dados  Apache Cassandra

Banco de dados  Apache Cassandra

O banco de dados Cassandra “Apache” é a escolha certa quando você precisar de escalabilidade e alta disponibilidade, sem comprometer o desempenho.
Escalabilidade linear e comprovada tolerância a falhas em hardware e infraestrutura em geral. A nuvem tornam a plataforma perfeita para dados de missão crítica como um grande exemplo de um sistema que utiliza o Cassandra é o Facebook e atualmente é mantido pela Apache. O banco de dados Cassandra tem um grande privilégio para replicar em vários servidores, proporcionando tudo isso uma pequena latência para seus usuários, também saiba mais que você pode sobreviver a quedas regionais sem comprometer o ambiente todo. 

O Cassandra é um projeto de sistema de banco de dados distribuído altamente escalável de segunda geração, que reúne a arquitetura do Dynamo, da Amazon e modelo de dados baseado no BigTable, do Google.

O Cassandra inicialmente foi criado pelo Facebook, que abriu seu código-fonte para a comunidade em 2008. Agora é mantido por desenvolvedores da fundação Apache e colaboradores de muitas empresas.

Modelo de dados do Cassandra oferece a conveniência de índices de coluna com o desempenho de atualizações de log-estruturadas, um forte apoio para a desnormalização e visões materializadas e poderoso built-in cache.

Performace: 

Cassandra supera consistentemente alternativas NoSQL populares benchmarks e aplicações reais, principalmente por causa das escolhas arquitetônicas fundamentais.
A ideia desse modelo é estar dando prioridade há uma alta disponibilidade e escalabilidade além de um alto grau de performance.

Também possui um alto nível de armazenamento, com o objetivo da disponibilidade boa parte desse modelo usam memória principal e durante um período de tempo são jogados no disco rígido, alguns modelos trabalham 100% com memória principal.  

Ao descentralizado o Cassandra em instâncias regionais ele não há pontos únicos de falha. Não há pontos de estrangulamento da rede. Cada nó no cluster é idêntica.

Cassandra possui um modelo de persistência com a uma necessidade de se ganhar mais performance principalmente no trabalho com grandes blocos de dados foi criado os bancos que usam este princípio de dados como BASE.

Comprovado a ótima performance do banco de dados NoSQL Cassandra.

Cassandra está em uso em Netflix, eBay, Twitter, Urban Airship, Constant Contact, Reddit, Cisco, OpenX, Digg, Cloudkick, Ooyala, e mais empresas que possuem grandes conjuntos de dados ativos. O maior cluster Cassandra conhecido tem mais de 300 TB de dados em mais de 400 máquinas.

Tolerâncias a falhas:

Os dados são automaticamente replicados para vários nós para tolerância a falhas. Replicação em vários centros de dados é suportado. Nós com falha pode ser substituído sem tempo de inatividade. Mesmo ocorrendo falhas não irá afetar o ambiente de utilização.
Cassandra possui uma grande durabilidade sendo adequado para aplicações que não podem dar ao luxo de perder dados, mesmo quando alguma instância fique fora levando alguns dados para baixo ele não perde o ambiente todo.

Controle:

Cassandra tem vários meios de controle, como.
Replicação síncrona ou assíncrona para cada atualização.
Operações assíncronas altamente disponíveis são otimizados com recursos como Handoff.

Bom é isso ai, eu recomendo para quem tem uma aplicação com alto nível de complexidade na nuvem. Banco de dados ótimo.

domingo, 14 de julho de 2013

Arquiteturas dos Bancos de Dados NoSQL

Bom a Arquiteturas dos Bancos de Dados NoSQL é constituida de várias maneiras.


Para explicar melhor a arquitetura dos bancos nosql será comparado com os bancos relacionais, é importante salientar a diferença entre os bancos e o seu uso, uma má escolha no padrão de persistência pode acarretar em  mais horas do que a planejada, além no não atendimento do seu requisito. As aplicações em quase sua maioria é atendida pelo banco relacional seria semelhante a um carro utilitário, que serve para várias  pistas, quando se tem a necessidade de uma maior velocidade e desempenho uma boa opção seria os bancos nosql que seria comparado a um carro de corrida, no entanto eles atendem a casos específicos será  improdutivo colocar um carro de formula 1  em uma pista de rally. 
SQL

Modelo de persistência: Os atuais bancos de dados  tentam explorar ao máximo o modelo A.C.I.D. cujos os princípios são: 

Atomicidade: Trata o trabalho como parte indivisível, ou seja ou tudo feito ou nada feito
Consistência: o  processo deve deixar o banco integro ou não será executado
Isolamento: tratar cada operação como individual
Durabilidade: os processos em caso de sucesso serão permanente 

Armazenamento:   Em função disso ganham certa limitação  nas transações com gigantescos volumes de dados, cargas de trabalhos normais de operações modernas. Essas informações em sua grande maioria  se concentram no disco rígido, gastando alto poder computacional de I/O. 

Acesso da informação: Os bancos relacionais possuem estruturas bem semelhantes e possuem alguns comandos em comuns que é o SQL ANSI, para se conectar e acessar as informações do banco de dados usa-se um driver, Em java, por exemplo, trocar de banco de dados na maioria dos casos resultam em impactos zero para a aplicação, já que basta apenas modificar o driver de conexão de um banco de dados para outro. Nesse tipo de bancos as informações podem ser recuperada de N maneiras a mineração de dados com esses tipos de bancos é bastante fácil. 

Escalabilidade:  Esse modelo trabalha melhor com a escalabilidade vertical que consiste em adicionar mais poder de processamento, memória ou disco em uma máquina,
NOSQL 

Modelo de persistência:  Com a necessidade de se ganhar mais performance principalmente no trabalho com grandes blocos de dados foi criado os bancos que usam o princípio do BASE. A ideia desse modelo é estar dando prioridade há uma alta disponibilidade e escalabilidade além de um alto grau de performance.

Armazenamento: com o objetivo da disponibilidade boa parte desse modelo usam memória principal e durante um período de tempo são jogados no disco rígido, alguns modelos trabalham 100% com memória principal. 

Acesso da informação: No nosql, não existe semelhança nenhum entre os bancos de dados, atualmente pode-se dividir os grupos de bancos de dados em quatro que são: grande tabela, chave-valor, grafos, documentos ( serão explicados melhor no decorrer do artigo) cada um com características específicas e objetivos específicos. Para se conectar ou acessar um desses bancos de dados é usado uma API, então mudanças de bancos de dados causará bastante impacto para a aplicação, mesmo que os bancos de dados sejam do mesmo tipo, por exemplo,de Big Table da Google para cassandra apesar de ambos possuírem o mesmo modelo de banco de dados que é o de grande tabela a mudança de código mesmo que apenas em uma camada (DAO) será relativamente alta, mas a tendência é que daqui a alguns anos cada um dos tipos de banco de dados existem uma implementação de referência semelhante ao JPA. Outra informação importante é que você boa parte dos bancos você recupera a informação apenas a partir de uma chave. 

Escalabilidade: Existem modelos que trabalham tanto na forma vertical tanto na forma horizontal que  é a capacidade de adicionar novas máquinas para, de forma distribuída, aumentar os recursos de processamento, memória e disco.

História do NoSQL

Bom vamos falar sobre a história do NoSQL.


NoSQL nada mais é do que um termo genérico para uma classe definida de banco de dados não-relacionais que rompe uma longa história de banco de dados relacionais com propriedades ACID. Outros termos equivalentes para esta categoria de bancos é NF², N1NF (non first normal form), nested relational, dimensional, multivalue, free-form, schemaless, document database e MRNN (Modelo Relacional Não Normalizado).

Como todos sabem que os bancos de dados que estão sob estes rótulos não podem exigir esquemas de tabela fixa e, geralmente, não suportam instruções e operações de junção SQL.

Onde existem as tendências em arquiteturas de computadores, como a computação na nuvem e a necessidade crescente de prover serviços escaláveis, estão pressionando bancos de dados numa direção onde eles necessitam oferecer escalabilidade horizontal. Bancos de dados NoSQL armazenam os dados com técnicas que visam atender a esse requisito.

Há alguns exemplos proeminentes de softwares de código fechado que atendem estes requisitos, sendo alguns deles Google's BigTable e Amazon's DynamoDB. E alguns exemplos de sofware open-source como Apache Cassandra (originalmente desenvolvido para o Facebook), Apache HBase, LinkedIn's e vários outros.

A História da criação do termo NoSQL foi primeiramente utilizado em 1998 como o nome de um banco de dados relacional de código aberto SQL. Seu autor, Carlo Strozzi, alega que o movimento NoSQL "é completamente distinto do modelo relacional e portanto deveria ser mais apropriadamente chamado "NoREL" ou algo que produzisse o mesmo efeito"
que não possuía uma interface.

O termo NoSQL foi re-introduzido no início de 2009 por um funcionário do Rackspace, Eric Evans, quando Johan Oskarsson da Last.fm queria organizar um evento para discutir bancos de dados open source distribuídos. O nome — uma tentativa de descrever o surgimento de um número crescente de banco de dados não relacionais, que não tinham a preocupação de fornecer garantias ACID — faz referência ao esquema de atribuição de nomes dos bancos de dados relacionais mais populares do mercado: MySQL, MS SQL, PostgreSQL etc.
 
Os Banco de Dados NOSQL  foram criados, principalmente, para resolver problemas com aplicações web que precisam operar com gigantescas cargas de dados além de poder escalar com grande facilidade.

É importante entender que o intuito não é eliminar bancos de dados relacionais, mas oferecer uma alternativa. Pois, durante muito tempo o modelo relacional foi usado como "bala de prata" para todos os problemas de persistência.
 Copyright © 2008-2010 All Right Reserved - Todos os Direitos Reservados Elder Stroparo