6 tecnologias opcionais para armazenamento de dados

Os problemas empresariais são amplos, profundos e complexos demais para serem resolvidos por uma única ferramenta, especialmente no campo de big data e análises. Este artigo descreve 6 tecnologias alternativas para armazenamento de dados.
1. Armazenamento de dados estruturados
O armazenamento de dados estruturados existe há décadas e é a tecnologia de armazenamento de dados mais conhecida. A maioria dos bancos de dados transacionais são bancos de dados baseados em linhas, pois lidam com gravações frequentes de dados provenientes de aplicações de software.
As empresas costumam usar bancos de dados transacionais simultaneamente para geração de relatórios, caso em que os dados precisam ser lidos com frequência, mas são gravados com muito menos frequência. Com a crescente demanda por leitura de dados, mais inovações surgiram no campo de consultas de armazenamento de dados estruturados, como a inovação do formato de arquivo colunar, que ajuda a melhorar o desempenho de leitura de dados e atender às necessidades de análise.
Formatos baseados em linhas armazenam dados em um arquivo como linhas. Gravações baseadas em linhas são a maneira mais rápida de gravar dados no disco, mas não necessariamente a mais rápida para leitura, pois é preciso ignorar muitos dados irrelevantes.
Formatos baseados em colunas armazenam todos os valores de uma coluna juntos no arquivo. Isso resulta em melhor compressão, já que os mesmos tipos de dados agora estão agrupados. Frequentemente, também oferece melhor desempenho de leitura, pois é possível ignorar colunas desnecessárias.
Vamos analisar as opções comuns de armazenamento de dados estruturados. Por exemplo, você precisa consultar o total de vendas de um determinado mês na tabela de pedidos, mas a tabela tem 50 colunas. Na arquitetura baseada em linhas, todas as 50 colunas da tabela inteira são examinadas durante a consulta, mas na arquitetura colunar, apenas a coluna de vendas do pedido é examinada, melhorando assim o desempenho da consulta de dados. Vamos examinar mais detalhadamente os bancos de dados relacionais, com foco em dados transacionais e na necessidade de data warehouses para lidar com a análise de dados.
As empresas costumam usar bancos de dados transacionais simultaneamente para geração de relatórios, caso em que os dados precisam ser lidos com frequência, mas são gravados com muito menos frequência. Com a crescente demanda por leitura de dados, mais inovações surgiram no campo de consultas de armazenamento de dados estruturados, como a inovação do formato de arquivo colunar, que ajuda a melhorar o desempenho de leitura de dados e atender às necessidades de análise.
Formatos baseados em linhas armazenam dados em um arquivo como linhas. Gravações baseadas em linhas são a maneira mais rápida de gravar dados no disco, mas não necessariamente a mais rápida para leitura, pois é preciso ignorar muitos dados irrelevantes.
Formatos baseados em colunas armazenam todos os valores de uma coluna juntos no arquivo. Isso resulta em melhor compressão, já que os mesmos tipos de dados agora estão agrupados. Frequentemente, também oferece melhor desempenho de leitura, pois é possível ignorar colunas desnecessárias.
Vamos analisar as opções comuns de armazenamento de dados estruturados. Por exemplo, você precisa consultar o total de vendas de um determinado mês na tabela de pedidos, mas a tabela tem 50 colunas. Na arquitetura baseada em linhas, todas as 50 colunas da tabela inteira são examinadas durante a consulta, mas na arquitetura colunar, apenas a coluna de vendas do pedido é examinada, melhorando assim o desempenho da consulta de dados. Vamos examinar mais detalhadamente os bancos de dados relacionais, com foco em dados transacionais e na necessidade de data warehouses para lidar com a análise de dados.
(1) Banco de dados relacional
O RDBMS é mais adequado para aplicações de processamento transacional online (OLTP). Bancos de dados relacionais populares incluem MSSQL, MariaDB, PostgreSQL, etc. Alguns desses bancos de dados tradicionais existem há décadas.
Muitas aplicações, incluindo comércio eletrônico, serviços bancários e reservas de hotéis, são alimentadas por bancos de dados relacionais. Bancos de dados relacionais são muito eficientes no tratamento de dados transacionais que exigem consultas complexas com junções entre tabelas. Do ponto de vista dos requisitos de dados transacionais, os bancos de dados relacionais devem seguir os princípios de atomicidade, consistência, isolamento e durabilidade, conforme descrito abaixo:
Atomicidade: a transação será totalmente executada do início ao fim e, em caso de erro, toda a transação será revertida.
Consistência: após a conclusão da transação, todos os dados são confirmados no banco de dados.
Isolamento: múltiplas transações devem ser executadas simultaneamente de forma isolada, sem interferir umas nas outras.
Durabilidade: em caso de qualquer interrupção (como falha de rede ou de energia), a transação deve ser capaz de se recuperar até o último estado conhecido.
Normalmente, os dados de bancos de dados relacionais são exportados para um data warehouse para geração de relatórios e agregação.
O RDBMS é mais adequado para aplicações de processamento transacional online (OLTP). Bancos de dados relacionais populares incluem MSSQL, MariaDB, PostgreSQL, etc. Alguns desses bancos de dados tradicionais existem há décadas.
Muitas aplicações, incluindo comércio eletrônico, serviços bancários e reservas de hotéis, são alimentadas por bancos de dados relacionais. Bancos de dados relacionais são muito eficientes no tratamento de dados transacionais que exigem consultas complexas com junções entre tabelas. Do ponto de vista dos requisitos de dados transacionais, os bancos de dados relacionais devem seguir os princípios de atomicidade, consistência, isolamento e durabilidade, conforme descrito abaixo:
Atomicidade: a transação será totalmente executada do início ao fim e, em caso de erro, toda a transação será revertida.
Consistência: após a conclusão da transação, todos os dados são confirmados no banco de dados.
Isolamento: múltiplas transações devem ser executadas simultaneamente de forma isolada, sem interferir umas nas outras.
Durabilidade: em caso de qualquer interrupção (como falha de rede ou de energia), a transação deve ser capaz de se recuperar até o último estado conhecido.
Normalmente, os dados de bancos de dados relacionais são exportados para um data warehouse para geração de relatórios e agregação.
(2) Data warehouse
Os data warehouses são mais adequados para aplicações de processamento analítico online (OLAP). Os data warehouses oferecem capacidades rápidas de agregação para grandes volumes de dados estruturados. Os dados precisam ser carregados em lotes, o que impossibilita que os warehouses forneçam insights em tempo real sobre dados quentes.
Os data warehouses modernos usam armazenamento colunar para melhorar o desempenho das consultas. Graças ao armazenamento colunar, esses data warehouses oferecem velocidade de consulta muito rápida e melhoram a eficiência de E/S.
Um data warehouse é um repositório central que pode armazenar dados acumulados de um ou mais bancos de dados. Eles armazenam dados atuais e históricos para criar relatórios analíticos de dados empresariais.
Embora os data warehouses armazenem centralmente dados de vários sistemas, eles não podem ser considerados data lakes. Um data warehouse só consegue lidar com dados relacionais estruturados, enquanto um data lake pode lidar tanto com dados relacionais estruturados quanto com dados não estruturados, como dados JSON, de log e CSV.
Os data warehouses são mais adequados para aplicações de processamento analítico online (OLAP). Os data warehouses oferecem capacidades rápidas de agregação para grandes volumes de dados estruturados. Os dados precisam ser carregados em lotes, o que impossibilita que os warehouses forneçam insights em tempo real sobre dados quentes.
Os data warehouses modernos usam armazenamento colunar para melhorar o desempenho das consultas. Graças ao armazenamento colunar, esses data warehouses oferecem velocidade de consulta muito rápida e melhoram a eficiência de E/S.
Um data warehouse é um repositório central que pode armazenar dados acumulados de um ou mais bancos de dados. Eles armazenam dados atuais e históricos para criar relatórios analíticos de dados empresariais.
Embora os data warehouses armazenem centralmente dados de vários sistemas, eles não podem ser considerados data lakes. Um data warehouse só consegue lidar com dados relacionais estruturados, enquanto um data lake pode lidar tanto com dados relacionais estruturados quanto com dados não estruturados, como dados JSON, de log e CSV.
2. Banco de dados NoSQL
Bancos de dados NoSQL, como Dynamo DB, Cassandra e Mongo DB, podem resolver os desafios de escalabilidade e desempenho frequentemente encontrados em bancos de dados relacionais. Como o nome sugere, NoSQL significa banco de dados não relacional. Bancos de dados NoSQL armazenam dados sem um mecanismo estrutural bem definido para conectar dados em tabelas diferentes (sem junções, chaves estrangeiras ou paradigmas).
O NoSQL usa uma variedade de modelos de dados, incluindo modelos colunar, chave-valor, de busca, de documentos e de grafos. Bancos de dados NoSQL oferecem desempenho escalável, alta disponibilidade e resiliência.
O NoSQL geralmente não possui um esquema de banco de dados rígido; cada registro pode ter qualquer número de colunas (atributos), o que significa que uma linha pode ter 4 colunas e outra linha na mesma tabela pode ter 10 colunas. Chaves de partição são usadas para recuperar valores ou documentos que contêm propriedades relacionadas. Bancos de dados NoSQL são altamente distribuídos e podem ser replicados. Bancos de dados NoSQL são muito duráveis e altamente disponíveis, sem problemas de desempenho.
O NoSQL usa uma variedade de modelos de dados, incluindo modelos colunar, chave-valor, de busca, de documentos e de grafos. Bancos de dados NoSQL oferecem desempenho escalável, alta disponibilidade e resiliência.
O NoSQL geralmente não possui um esquema de banco de dados rígido; cada registro pode ter qualquer número de colunas (atributos), o que significa que uma linha pode ter 4 colunas e outra linha na mesma tabela pode ter 10 colunas. Chaves de partição são usadas para recuperar valores ou documentos que contêm propriedades relacionadas. Bancos de dados NoSQL são altamente distribuídos e podem ser replicados. Bancos de dados NoSQL são muito duráveis e altamente disponíveis, sem problemas de desempenho.
3. Tipos de banco de dados NoSQL
Os principais tipos de bancos de dados NoSQL são os seguintes:
Bancos de dados colunares: os armazenamentos de dados colunares ajudam a examinar uma coluna ao consultar dados, em vez de examinar toda a linha. Se a tabela de itens tiver 10 colunas e 1 milhão de linhas, e você quiser consultar a quantidade de um item no estoque, o banco de dados colunar aplicará a consulta apenas à coluna de quantidade do item, sem examinar toda a tabela.
Bancos de dados de documentos: os bancos de dados de documentos mais populares são MongoDB, Couchbase, MarkLogic, Dynamo DB e Cassandra. Um banco de dados de documentos pode ser usado para armazenar dados semiestruturados nos formatos JSON e XML.
Graph Database: um banco de dados de grafos armazena vértices e ligações entre vértices (chamadas arestas). Grafos podem ser construídos sobre bancos de dados relacionais e não relacionais.
Armazenamentos chave-valor em memória: eles armazenam dados na memória e são usados em cenários em que os dados são lidos com frequência. A consulta do aplicativo vai primeiro ao banco de dados em memória e, se os dados estiverem disponíveis no cache, não acessa o banco de dados principal. Bancos de dados em memória são excelentes para armazenar informações de sessão do usuário que resultam em consultas complexas e solicitações frequentes de dados, como perfis de usuário.
O NoSQL tem muitos casos de uso, mas, para criar um serviço de busca de dados, todos os dados precisam ser indexados.
Bancos de dados colunares: os armazenamentos de dados colunares ajudam a examinar uma coluna ao consultar dados, em vez de examinar toda a linha. Se a tabela de itens tiver 10 colunas e 1 milhão de linhas, e você quiser consultar a quantidade de um item no estoque, o banco de dados colunar aplicará a consulta apenas à coluna de quantidade do item, sem examinar toda a tabela.
Bancos de dados de documentos: os bancos de dados de documentos mais populares são MongoDB, Couchbase, MarkLogic, Dynamo DB e Cassandra. Um banco de dados de documentos pode ser usado para armazenar dados semiestruturados nos formatos JSON e XML.
Graph Database: um banco de dados de grafos armazena vértices e ligações entre vértices (chamadas arestas). Grafos podem ser construídos sobre bancos de dados relacionais e não relacionais.
Armazenamentos chave-valor em memória: eles armazenam dados na memória e são usados em cenários em que os dados são lidos com frequência. A consulta do aplicativo vai primeiro ao banco de dados em memória e, se os dados estiverem disponíveis no cache, não acessa o banco de dados principal. Bancos de dados em memória são excelentes para armazenar informações de sessão do usuário que resultam em consultas complexas e solicitações frequentes de dados, como perfis de usuário.
O NoSQL tem muitos casos de uso, mas, para criar um serviço de busca de dados, todos os dados precisam ser indexados.
4. Elasticsearch
O Elasticsearch é um dos mecanismos de busca mais populares para cenários de big data, como análise de clickstream e de logs. Consultas ad hoc em dados mornos com qualquer número de atributos, incluindo tokens de string, são bem suportadas por mecanismos de busca. O Elasticsearch é muito popular. Armazenamento genérico de binários ou objetos é adequado para dados não estruturados, não indexáveis e outros dados em formatos que nenhuma ferramenta especializada consegue interpretar.
A busca e análise de logs são cenários comuns de aplicação de big data, e o Elasticsearch pode ajudar a analisar dados de logs de sites, servidores e sensores de IoT. O Elasticsearch é utilizado por um grande número de aplicações do setor, como serviços bancários, jogos, marketing, monitoramento de aplicações, ad tech, detecção de fraudes, recomendação e IoT.
A busca e análise de logs são cenários comuns de aplicação de big data, e o Elasticsearch pode ajudar a analisar dados de logs de sites, servidores e sensores de IoT. O Elasticsearch é utilizado por um grande número de aplicações do setor, como serviços bancários, jogos, marketing, monitoramento de aplicações, ad tech, detecção de fraudes, recomendação e IoT.
5. Armazenamento de dados não estruturados
Quando você tem necessidades de armazenamento de dados não estruturados, o Hadoop parece uma escolha perfeita, pois é escalável, flexível e muito versátil. Ele funciona em dispositivos de consumo, possui um enorme ecossistema de ferramentas e parece ter um bom custo-benefício para operação.
O Hadoop adota o modelo de nó mestre e nós filhos. Os dados são distribuídos em múltiplos nós filhos, e o nó mestre coordena as operações e executa consultas nos dados. O sistema Hadoop depende de processamento massivamente paralelo (MPP), o que possibilita consultas rápidas em vários tipos de dados, sejam estruturados ou não estruturados.
Quando um cluster Hadoop é criado, cada nó filho criado no servidor escravo é acompanhado por um bloco de armazenamento em disco chamado Sistema de Arquivos Distribuído Hadoop (HDFS) local. Você pode consultar os dados armazenados usando frameworks de processamento comuns, como Hive, Ping e Spark. No entanto, os dados no disco local persistem apenas durante o tempo de vida da instância associada.
Se você usar a camada de armazenamento do Hadoop (ou seja, HDFS) para armazenar dados, o armazenamento e a computação ficarão acoplados. Adicionar armazenamento significa ter que adicionar mais máquinas, o que também aumenta o poder de computação. Para máxima flexibilidade e melhor custo-benefício, computação e armazenamento precisam ser separados e escalados independentemente.
Em geral, o armazenamento de objetos é mais adequado para data lakes, permitindo armazenar todos os tipos de dados de forma econômica. Com o suporte do armazenamento de objetos, os data lakes baseados em nuvem podem desacoplar com flexibilidade a computação e o armazenamento.
O Hadoop adota o modelo de nó mestre e nós filhos. Os dados são distribuídos em múltiplos nós filhos, e o nó mestre coordena as operações e executa consultas nos dados. O sistema Hadoop depende de processamento massivamente paralelo (MPP), o que possibilita consultas rápidas em vários tipos de dados, sejam estruturados ou não estruturados.
Quando um cluster Hadoop é criado, cada nó filho criado no servidor escravo é acompanhado por um bloco de armazenamento em disco chamado Sistema de Arquivos Distribuído Hadoop (HDFS) local. Você pode consultar os dados armazenados usando frameworks de processamento comuns, como Hive, Ping e Spark. No entanto, os dados no disco local persistem apenas durante o tempo de vida da instância associada.
Se você usar a camada de armazenamento do Hadoop (ou seja, HDFS) para armazenar dados, o armazenamento e a computação ficarão acoplados. Adicionar armazenamento significa ter que adicionar mais máquinas, o que também aumenta o poder de computação. Para máxima flexibilidade e melhor custo-benefício, computação e armazenamento precisam ser separados e escalados independentemente.
Em geral, o armazenamento de objetos é mais adequado para data lakes, permitindo armazenar todos os tipos de dados de forma econômica. Com o suporte do armazenamento de objetos, os data lakes baseados em nuvem podem desacoplar com flexibilidade a computação e o armazenamento.
6. Data lake
Um data lake é um repositório centralizado de dados estruturados e não estruturados. Os data lakes estão se tornando uma forma popular de armazenar e analisar grandes volumes de dados em um armazenamento centralizado. Ele armazena os dados como estão, usando um formato de arquivo de código aberto para análise direta. Como os dados podem ser armazenados em seu formato atual, não há necessidade de convertê-los para um esquema predefinido, aumentando a velocidade de ingestão de dados.
As vantagens de um data lake são as seguintes:
Ingerir dados de várias fontes: um data lake permite armazenar e analisar dados de diversas fontes (como bancos de dados relacionais, não relacionais e streams) em um local centralizado, produzindo uma única fonte de verdade. Ele responde a perguntas como: por que os dados estão espalhados em vários lugares? Onde está a única fonte de verdade?
Ingerir e armazenar dados com eficiência: os data lakes podem ingerir qualquer tipo de dado, incluindo dados semiestruturados e não estruturados, sem a necessidade de nenhum esquema. Isso responde à questão de como ingerir rapidamente dados de várias fontes, em vários formatos, e armazená-los com eficiência em escala.
À medida que o volume de dados gerados continua a crescer: um data lake permite separar a camada de armazenamento da camada de computação, escalando cada componente separadamente. Isso responde à questão de como escalar conforme o volume de dados produzidos.
Aplicar análises a dados de fontes distintas: com um data lake, você pode identificar padrões de dados durante a leitura e criar um catálogo de dados centralizado com dados coletados de fontes distintas. Isso permite analisar dados de forma rápida e a qualquer momento. Isso responde à questão de se múltiplos frameworks de análise e processamento podem ser aplicados aos mesmos dados.
As vantagens de um data lake são as seguintes:
Ingerir dados de várias fontes: um data lake permite armazenar e analisar dados de diversas fontes (como bancos de dados relacionais, não relacionais e streams) em um local centralizado, produzindo uma única fonte de verdade. Ele responde a perguntas como: por que os dados estão espalhados em vários lugares? Onde está a única fonte de verdade?
Ingerir e armazenar dados com eficiência: os data lakes podem ingerir qualquer tipo de dado, incluindo dados semiestruturados e não estruturados, sem a necessidade de nenhum esquema. Isso responde à questão de como ingerir rapidamente dados de várias fontes, em vários formatos, e armazená-los com eficiência em escala.
À medida que o volume de dados gerados continua a crescer: um data lake permite separar a camada de armazenamento da camada de computação, escalando cada componente separadamente. Isso responde à questão de como escalar conforme o volume de dados produzidos.
Aplicar análises a dados de fontes distintas: com um data lake, você pode identificar padrões de dados durante a leitura e criar um catálogo de dados centralizado com dados coletados de fontes distintas. Isso permite analisar dados de forma rápida e a qualquer momento. Isso responde à questão de se múltiplos frameworks de análise e processamento podem ser aplicados aos mesmos dados.
Artigos relacionados
-
O que é blockchain?
Equipe da Base de Conhecimento.
-
O que é CDN?
Equipe da Base de Conhecimento.
Explorar mais ofertas especiais
-
Short Message Service (SMS) e Mail Service
Pacote de 50.000 e-mails a partir de US$ 1,99, 120 mensagens curtas a partir de apenas US$ 1,00.
