Escolher um armazenamento de dados analíticos no Azure

Em uma arquitetura de Big Data, geralmente, há a necessidade de um armazenamento de dados analíticos que forneça dados processados em um formato estruturado que pode ser consultado com ferramentas analíticas. Os armazenamentos de dados analíticos que dão suporte à consulta de dados de caminho quente e frio são chamados em conjunto de camada de serviço ou armazenamento de serviço de dados.

A camada de serviço lida com os dados processados dos caminhos quente e frio. Na arquitetura lambda, a camada de serviço é subdividida em uma camada de serviço de velocidade, que armazena os dados que foram processados de forma incremental e uma camada de serviço de lote, que contém a saída processada em lotes. A camada de serviço exige suporte forte para leituras aleatórias com baixa latência. O armazenamento de dados para a camada de velocidade também deve dar suporte a gravações aleatórias, porque o carregamento em lotes dos dados nesse repositório introduzirá atrasos indesejados. Por outro lado, o armazenamento de dados da camada de lote não precisa dar suporte a gravações aleatórias, mas gravações em lotes.

Não há uma única opção de gerenciamento de dados que seja a melhor para todas as tarefas de armazenamento de dados. Soluções de gerenciamento de dados diferentes são otimizadas para tarefas diferentes. A maioria dos aplicativos de nuvem do mundo real e processos de Big Data tem uma variedade de requisitos de armazenamento de dados e geralmente usa uma combinação de soluções de armazenamento de dados.

Quais são as opções disponíveis ao escolher um armazenamento de dados analíticos?

Há várias opções de armazenamento de serviço de dados no Azure, dependendo de suas necessidades:

Essas opções fornecem vários modelos de banco de dados que são otimizados para diferentes tipos de tarefas:

  • Bancos de dados de chave/valor armazenam um único objeto serializado para cada valor de chave. Eles são bons para armazenar grandes volumes de dados, quando você deseja obter um item para determinado valor de chave e não precisa consultar com base em outras propriedades do item.
  • Bancos de dados de documentos são bancos de dados de chave/valor nos quais os valores são documentos. Um "documento" neste contexto é uma coleção de campos nomeados e valores. Normalmente, o banco de dados armazena os dados em um formato como XML, YAML, JSON ou BSON, mas é possível usar um texto sem formatação. Os bancos de dados de documentos podem consultar em campos não chave e definir índices secundários para tornar a consulta mais eficiente. Isso torna um banco de dados de documentos mais adequado para aplicativos que precisam recuperar dados com base em critérios mais complexos do que o valor da chave do documento. Por exemplo, você pode consultar em campos como ID do produto (product ID), ID do cliente ou nome do cliente.
  • Os bancos de dados do Repositório de colunas são repositórios de dados chave/valor que armazenam as colunas separadamente no disco. Um banco de dados do repositório de colunas é um tipo de banco de dados do repositório de colunas que armazena famílias de colunas, não apenas colunas simples. Por exemplo, um banco de dados censitário pode ter uma família de colunas para o nome de uma pessoa (primeiro, meio, último), uma família para o endereço da pessoa e uma família para as informações de perfil da pessoa (data de nascimento, sexo). O banco de dados pode armazenar as famílias de colunas em uma partição separada, mantendo todos os dados de uma pessoa relacionados à mesma chave. Um aplicativo pode ler uma única família de colunas sem ler todos os dados de uma entidade.
  • Os bancos de dados de gráficos armazenam informações como uma coleção de objetos e relações. Um banco de dados de gráficos pode executar com eficiência consultas que atravessam a rede de objetos e as relações entre eles. Por exemplo, os objetos podem ser funcionários em um banco de dados de recursos humanos e talvez você deseje facilitar consultas como "encontrar todos os funcionários que trabalham direta ou indiretamente para Scott".
  • Os bancos de dados de séries temporais e telemetria são uma coleção de objetos somente de anexação. Os bancos de dados de telemetria indexam dados com eficiência em uma variedade de armazenamentos de colunas e estruturas na memória, o que os torna ideais para armazenar e analisar grandes quantidades de dados de telemetria e séries temporais.

Principais critérios de seleção

Para restringir as opções, comece respondendo a estas perguntas:

  • Você precisa de um armazenamento de serviço que pode atuar como um caminho quente para os dados? Em caso afirmativo, restrinja as opções àquelas que são otimizadas para uma camada de serviço de velocidade.

  • Você precisa de suporte de MPP (Processamento Paralelo Maciço), em que as consultas são distribuídas automaticamente entre vários processos ou nós? Em caso afirmativo, selecione uma opção que dê suporte à expansão da consulta.

  • Você prefere usar um armazenamento de dados relacionais? Nesse caso, restrinja as opções àquelas com um modelo de banco de dados relacional. No entanto, observe que alguns armazenamentos não relacionais dão suporte à sintaxe SQL para consulta e ferramentas como o PolyBase podem ser usadas para consultar armazenamentos de dados não relacionais.

  • Você coleta dados de série temporal? Você usa dados somente de anexação?

Matriz de funcionalidades

As tabelas a seguir resumem as principais diferenças em funcionalidades.

Funcionalidades gerais

Recurso Banco de Dados SQL Pool de SQL do Azure Synapse Pool do Spark no Azure Synapse Azure Data Explorer HBase/Phoenix no HDInsight Hive LLAP no HDInsight Azure Analysis Services Azure Cosmos DB
É um serviço gerenciado Sim Sim Sim Sim Sim 1 Sim 1 Sim Yes
Modelo de banco de dados primário Relacional (formato de coluna ao usar os índices columnstore) Tabelas relacionais com o armazenamento de colunas Repositório de coluna grande Relacional (armazenamento de colunas), telemetria e armazenamento de série temporal Repositório de coluna grande Hive/em memória Modelos semânticos de tabela Repositório de documentos, gráfico, repositório de chave-valor, repositório de coluna grande
Suporte à linguagem SQL Sim Sim Sim Yes Sim (usando o driver JDBC Phoenix) Sim Não Sim
Otimizado para a camada de serviço de velocidade Sim 2 Sim 3 Sim Sim Sim Sim Não Sim

[1] Com configuração manual e dimensionamento.

[2] Usando tabelas com otimização de memória e hash ou índices não clusterizados.

[3] Com suporte como uma saída do Azure Stream Analytics.

Funcionalidades de escalabilidade

Recurso Banco de Dados SQL Pool de SQL do Azure Synapse Pool do Spark no Azure Synapse Azure Data Explorer HBase/Phoenix no HDInsight Hive LLAP no HDInsight Azure Analysis Services Azure Cosmos DB
Servidores regionais redundantes para alta disponibilidade Sim Não No Sim Sim Não Sim Yes
Dá suporte à expansão da consulta Não Sim Sim Sim Sim Sim Sim Yes
Escalabilidade dinâmica (escalar verticalmente) Sim Sim Sim Sim Não No Sim Yes
Dá suporte ao cache em memória de dados Sim Sim Sim Sim Não Sim Sim Não

Funcionalidades de segurança

Recurso Banco de Dados SQL Azure Synapse Azure Data Explorer HBase/Phoenix no HDInsight Hive LLAP no HDInsight Azure Analysis Services Azure Cosmos DB
Autenticação SQL/ID do Microsoft Entra SQL/ID do Microsoft Entra Microsoft Entra ID local/ID do Microsoft Entra 1 local/ID do Microsoft Entra 1 Microsoft Entra ID usuários do banco de dados/ID do Microsoft Entra pelo controle de acesso (IAM)
Criptografia de dados em repouso Sim 2 Sim 2 Sim Sim 1 Sim 1 Sim Yes
Segurança em nível de linha Sim Sim 3 Sim Sim 1 Sim 1 Sim Não
Dá suporte a firewalls Sim Sim Yes Sim 4 Sim 4 Sim Sim
Mascaramento de dados dinâmicos Sim Sim Sim Sim 1 Sim Não Não

[1] Exige o uso de um cluster HDInsight ingressado no domínio.

[2] Exige o uso de TDE (Transparent Data Encryption) para criptografar e descriptografar os dados em repouso.

[3] Somente predicados de filtro. Confira Segurança em Nível de Linha

[4] Quando usado em uma Rede Virtual do Azure. Consulte Estender o Azure HDInsight usando uma Rede Virtual do Azure.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

Próximas etapas