Top 5 NoSQL DBs
TOP 5 NoSQL Databases
Quando se fala em Ciência de Dados, é inevitável não falar de Bancos de Dados NoSQL, termo utilizado para descrever esquemas de armazenamento de dados não-relacionais e sem esquemas.
NoSQL é um "repositório" de tecnologias diferentes e não necessariamente semelhantes, mas todas elas têm algo em comum, não são relacionais.
A linguagem SQL (Structured Query Language) é sem sombra de duvidas uma linguagem padrão para manipulação de dados relacionais, com seu uso facilitado por diversos sistemas de gerenciamento de bancos de dados (SGBD). Pelo fato de o SQL ser uma linguagem relacional, o termo NoSQL faz referencia a tudo que não seja relacional, no que concerne a bancos de dados.
Sendo preciso ou não o termo NoSQL, as várias tecnologias NoSQL são bem-vindas e necessárias na paisagem de dados de hoje, especialmente por conta do Big Data. Key-value stores, document stores, graph databases e outros paradigmas de armazenamento de dados não-relacionais permitem velocidade, flexibilidade e escalabilidade ao armazenar e acessar dados não estruturados. Mas há uma grande quantidade de mecanismos de banco de dados NoSQL disponíveis hoje.
Podemos encontrar no site DB-Engines.com ferramentas de comparação entre os vários engines de bancos de dados, sejam eles relacionais ou não. No DB-Engines Ranking conseguimos acompanhar a evolução e crescimento ao longo dos últimos 5 anos, porém nós na InCube coletamos as informações referentes a Outubro de 2019.
Como pode ser verificado, o estudo efetuado aponta os 5 principais mecanismos de bancos de dados NoSQL como : MongoDB, Redis, Cassandra, HBase e Neo4j.
Para que possam entender melhor os critérios de avaliação do DB-Engine Ranking, fizemos uma análise macro de cada um desses engines NoSQL.
1. MongoDB
MongoDB é um "document store" e i atual líder de bancos de dados NoSQL, obviamente é um banco não-relacional. O MongoDB "substitui" o relacionamento convencional por "documentos" semelhantes ao formato JSON (Java Script Object Notation) para armazenar dados.
Um documento no MongoDB é semelhante a um registro contendo campos e valores.
Tem a capacidade de suportar esquemas dinâmicos e um dos maiores atrativos...é gratuito de código aberto.
Além de que MongoDB possui recurso necessários para operar em ambientes de produção, com sistema próprio de balanceamento de carga, replicação, indexação. consulta e pode operar como um sistema de aquivos (com balanceamento de carga e tolerância a falhas).
2. Cassandra
Cassandra começou a ser desenvolvido no Facebook, tendo como sua principal característica a descentralização, totalmente distribuído e orientado a coluna.
É muito otimizado para cluesters, e graças á sua atualização assíncrona e design sem Master, possui uma baixa latência a clientes. Da mesma forma que o MongoDB, também é gratuito e de código aberto.
Orientado por coluna, o que significa que suas linhas realmente contêm o que geralmente pensamos como dados verticais, ou o que é tradicionalmente realizado em colunas relacionais.
A vantagem desse tipo de design de banco de dados, é a rapidez de consulta de alguns tipos de pesquisa de dados, pois os dados desejados podem ser armazenados em uma única linha.
3. Redis
O Redis é a implementação key-value store mais popular e amplamente utilizada em nossa lista. O que é um key-value store? É um paradigma simples: atribua valores às chaves para facilitar o acesso e o armazenamento desses valores, que sempre são encontrados através das suas chaves. Pense em mapas de hash e você tem a ideia (dicionários em Python).
Como o Redis mantém seus pares de valores-chave na memoria, consegue uma acesso rápido e eficaz.
Em situações onde a durabilidade dos dados pode ser sacrificada, ter a capacidade de renunciar a escritas de dados, significa que esses dados somente em memoria possuem um desempenho extremamente rápido
4. HBase
Outro banco de dados orientado a coluna, o HBase é uma implementação gratuita e aberta do BigTable do Google.
A sua estreita associação com o Hadoop auxiliou na sua popularidade pois ambos fazem parte do projeto Apache.
O que permite ao HBase uma busca eficiente de dados dispersos e distribuídos, se tornando um dos seus pontos mais fortes.
O HBase é utilizado por muitos dos tubarões da internet, como o LinkedIn, Facebook e Spotify, incluindo o fato de que muitos projetos relacionados do Apache também fornecem suporte ao HBase, fornecendo uma camada SQL para a cesso a dados (Phoenix), o que se torna ótimo para administradores de bancos de dados relacionais que buscam implementar soluções NoSQL.
Devido ao elevado numero de instalações Hadoop, o HBase certamente que será uma solução NoSQL padrão para os próximos anos.
5. Neo4j
Neo4j é o sistema de gerenciamento de banco de dados baseado em grafos (ou Graph Database), sendo o mais popular e utilziado nesta categoria.
Um Graph Database é baseado em arestas que atuam como relacionamentos entre os vértices (ou nodes), relacionando diretamente instâncias de dados umas com as outras. Como outros na lista, o Neo4j também possui uma implementação de código aberto.
Para acessar aos dados no Neo4j, é utilizada a Cypher Query Language, linguagem muito semelhante á linguagem SQL.
Bancos em grafos, são muito utilizados e possui muitas vantagens em cenários de mineração de dados e reconhecimento de padrões, uma vez que associações entre instâncias são declaradas de forma explicita.
Resumo:
Em Big Data cerca de 80% dos dados são não estruturados. Como tal o processo de armazenagem desses dados em bancos relacionais, não é uma opção viável, tendo em conta que bancos relacionais, não foram criados para tal. E é face a esse cenário que os bancos NoSQL estão sendo muito utilizados de forma a atender ás demandas e necessidades do tão famoso fenômeno, Big Data.
Espero que nosso artigo seja util para todos, e não esqueçam de dar a sua opinião sobre o tema.
Abraços e bons estudos!
Nelson Alexandre
Referências:
NoSQL é um "repositório" de tecnologias diferentes e não necessariamente semelhantes, mas todas elas têm algo em comum, não são relacionais.
A linguagem SQL (Structured Query Language) é sem sombra de duvidas uma linguagem padrão para manipulação de dados relacionais, com seu uso facilitado por diversos sistemas de gerenciamento de bancos de dados (SGBD). Pelo fato de o SQL ser uma linguagem relacional, o termo NoSQL faz referencia a tudo que não seja relacional, no que concerne a bancos de dados.
Sendo preciso ou não o termo NoSQL, as várias tecnologias NoSQL são bem-vindas e necessárias na paisagem de dados de hoje, especialmente por conta do Big Data. Key-value stores, document stores, graph databases e outros paradigmas de armazenamento de dados não-relacionais permitem velocidade, flexibilidade e escalabilidade ao armazenar e acessar dados não estruturados. Mas há uma grande quantidade de mecanismos de banco de dados NoSQL disponíveis hoje.
Podemos encontrar no site DB-Engines.com ferramentas de comparação entre os vários engines de bancos de dados, sejam eles relacionais ou não. No DB-Engines Ranking conseguimos acompanhar a evolução e crescimento ao longo dos últimos 5 anos, porém nós na InCube coletamos as informações referentes a Outubro de 2019.
Como pode ser verificado, o estudo efetuado aponta os 5 principais mecanismos de bancos de dados NoSQL como : MongoDB, Redis, Cassandra, HBase e Neo4j.
Para que possam entender melhor os critérios de avaliação do DB-Engine Ranking, fizemos uma análise macro de cada um desses engines NoSQL.
1. MongoDB
Um documento no MongoDB é semelhante a um registro contendo campos e valores.
Tem a capacidade de suportar esquemas dinâmicos e um dos maiores atrativos...é gratuito de código aberto.
Além de que MongoDB possui recurso necessários para operar em ambientes de produção, com sistema próprio de balanceamento de carga, replicação, indexação. consulta e pode operar como um sistema de aquivos (com balanceamento de carga e tolerância a falhas).
2. Cassandra
Cassandra começou a ser desenvolvido no Facebook, tendo como sua principal característica a descentralização, totalmente distribuído e orientado a coluna.
É muito otimizado para cluesters, e graças á sua atualização assíncrona e design sem Master, possui uma baixa latência a clientes. Da mesma forma que o MongoDB, também é gratuito e de código aberto.
Orientado por coluna, o que significa que suas linhas realmente contêm o que geralmente pensamos como dados verticais, ou o que é tradicionalmente realizado em colunas relacionais.
A vantagem desse tipo de design de banco de dados, é a rapidez de consulta de alguns tipos de pesquisa de dados, pois os dados desejados podem ser armazenados em uma única linha.
3. Redis
O Redis é a implementação key-value store mais popular e amplamente utilizada em nossa lista. O que é um key-value store? É um paradigma simples: atribua valores às chaves para facilitar o acesso e o armazenamento desses valores, que sempre são encontrados através das suas chaves. Pense em mapas de hash e você tem a ideia (dicionários em Python).
Como o Redis mantém seus pares de valores-chave na memoria, consegue uma acesso rápido e eficaz.
Em situações onde a durabilidade dos dados pode ser sacrificada, ter a capacidade de renunciar a escritas de dados, significa que esses dados somente em memoria possuem um desempenho extremamente rápido
4. HBase
Outro banco de dados orientado a coluna, o HBase é uma implementação gratuita e aberta do BigTable do Google.
A sua estreita associação com o Hadoop auxiliou na sua popularidade pois ambos fazem parte do projeto Apache.
O que permite ao HBase uma busca eficiente de dados dispersos e distribuídos, se tornando um dos seus pontos mais fortes.
O HBase é utilizado por muitos dos tubarões da internet, como o LinkedIn, Facebook e Spotify, incluindo o fato de que muitos projetos relacionados do Apache também fornecem suporte ao HBase, fornecendo uma camada SQL para a cesso a dados (Phoenix), o que se torna ótimo para administradores de bancos de dados relacionais que buscam implementar soluções NoSQL.
Devido ao elevado numero de instalações Hadoop, o HBase certamente que será uma solução NoSQL padrão para os próximos anos.
5. Neo4j
Neo4j é o sistema de gerenciamento de banco de dados baseado em grafos (ou Graph Database), sendo o mais popular e utilziado nesta categoria.
Um Graph Database é baseado em arestas que atuam como relacionamentos entre os vértices (ou nodes), relacionando diretamente instâncias de dados umas com as outras. Como outros na lista, o Neo4j também possui uma implementação de código aberto.
Para acessar aos dados no Neo4j, é utilizada a Cypher Query Language, linguagem muito semelhante á linguagem SQL.
Bancos em grafos, são muito utilizados e possui muitas vantagens em cenários de mineração de dados e reconhecimento de padrões, uma vez que associações entre instâncias são declaradas de forma explicita.
Resumo:
Em Big Data cerca de 80% dos dados são não estruturados. Como tal o processo de armazenagem desses dados em bancos relacionais, não é uma opção viável, tendo em conta que bancos relacionais, não foram criados para tal. E é face a esse cenário que os bancos NoSQL estão sendo muito utilizados de forma a atender ás demandas e necessidades do tão famoso fenômeno, Big Data.
Espero que nosso artigo seja util para todos, e não esqueçam de dar a sua opinião sobre o tema.
Abraços e bons estudos!
Nelson Alexandre
Referências:
Comentários
Postar um comentário