Escolher um armazenamento de dados analíticos no Azure
Em uma arquitetura de big data , muitas vezes há a necessidade de um armazenamento de dados analíticos que sirva dados processados em um formato estruturado que possa ser consultado usando ferramentas analíticas. Os armazenamentos de dados analíticos que suportam a consulta de dados de caminho quente e de caminho frio são coletivamente chamados de camada de serviço ou armazenamento de serviço de dados.
A camada de serviço lida com dados processados do caminho quente e do caminho frio. Na arquitetura lambda, a camada de serviço é subdividida em uma camada de serviço de velocidade, que armazena dados que foram processados incrementalmente, e uma camada de serviço em lote, que contém a saída processada em lote. A camada de serviço requer forte suporte para leituras aleatórias com baixa latência. O armazenamento de dados para a camada de velocidade também deve suportar gravações aleatórias, porque o carregamento de dados em lote nesse armazenamento introduziria atrasos indesejados. Por outro lado, o armazenamento de dados para a camada em lote não precisa suportar gravações aleatórias, mas gravações em lote.
Não há uma única melhor opção de gerenciamento de dados para todas as tarefas de armazenamento de dados. Diferentes soluções de gerenciamento de dados são otimizadas para diferentes tarefas. 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 suas opções ao escolher um armazenamento de dados analíticos?
Há várias opções para armazenamento de serviço de dados no Azure, dependendo das suas necessidades:
- Azure Synapse Analytics
- Pools do Azure Synapse Spark
- Azure Databricks
- Azure Data Explorer
- Base de Dados SQL do Azure
- SQL Server na VM do Azure
- HBase/Phoenix no HDInsight
- LLAP do Hive no HDInsight
- Azure Analysis Services
- BD do Cosmos para o Azure
Essas opções fornecem vários modelos de banco de dados otimizados para diferentes tipos de tarefas:
- Os bancos de dados de chave/valor contêm um único objeto serializado para cada valor de chave. Eles são bons para armazenar grandes volumes de dados onde você deseja obter um item para um determinado valor de chave e não precisa consultar com base em outras propriedades do item.
- As bases de dados documentais são bases de dados chave/valor em que os valores são documentos. Um "documento" neste contexto é uma coleção de campos nomeados e valores. O banco de dados normalmente armazena os dados em um formato como XML, YAML, JSON ou binário JSON (BSON), mas pode usar 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 campos como ID do produto, ID do cliente ou nome do cliente.
- Os bancos de dados de armazenamento de colunas são armazenamentos de dados de chave/valor que armazenam cada coluna separadamente no disco. Um banco de dados de armazenamento de coluna ampla é um tipo de banco de dados de armazenamento de coluna que armazena famílias de colunas, não apenas colunas únicas. Por exemplo, um banco de dados de censo 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 cada família 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 gráficos armazenam informações como uma coleção de objetos e relações. Um banco de dados gráfico 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 você pode querer facilitar consultas como "encontrar todos os funcionários que trabalham direta ou indiretamente para Scott".
- Telemetria e bancos de dados de séries temporais são uma coleção de objetos somente acréscimo. Os bancos de dados de telemetria indexam dados de forma eficiente em uma variedade de armazenamentos de colunas e estruturas na memória, tornando-os a escolha ideal para armazenar e analisar grandes quantidades de dados de telemetria e séries temporais.
Principais critérios de seleção
Para restringir as escolhas, comece por responder a estas perguntas:
Você precisa de armazenamento de serviço que possa servir como um caminho ativo para seus dados? Se sim, restrinja suas opções para aquelas que são otimizadas para uma camada de serviço de velocidade.
Você precisa de suporte a processamento paralelo maciço (MPP), onde as consultas são distribuídas automaticamente em vários processos ou nós? Em caso afirmativo, selecione uma opção que ofereça suporte à expansão da consulta.
Você prefere usar um armazenamento de dados relacional? Em caso afirmativo, restrinja suas opções para aqueles com um modelo de banco de dados relacional. No entanto, observe que alguns armazenamentos não relacionais oferecem suporte à sintaxe SQL para consulta, e ferramentas como o PolyBase podem ser usadas para consultar armazenamentos de dados não relacionais.
Recolhem dados de séries cronológicas? Você usa dados somente de acréscimo?
Matriz de capacidades
As tabelas a seguir resumem as principais diferenças nos recursos.
Capacidades gerais
Funcionalidade | Base de Dados SQL | Azure Synapse SQL pool | Azure Synapse Spark pool | Azure Data Explorer | HBase/Phoenix no HDInsight | LLAP do Hive no HDInsight | Azure Analysis Services | Azure Cosmos DB |
---|---|---|---|---|---|---|---|---|
É serviço gerenciado | Sim | Sim | Sim | Sim | Sim 1 | Sim 1 | Sim | Sim |
Modelo de banco de dados primário | Relacional (formato de armazenamento de colunas ao usar índices columnstore) | Tabelas relacionais com armazenamento de colunas | Armazenamento de coluna ampla | Relational (armazenamento de coluna), telemetria e armazenamento de séries temporais | Armazenamento de coluna ampla | Colmeia/Na memória | Modelos semânticos tabulares | Armazenamento de documentos, gráfico, armazenamento de chave-valor, armazenamento de colunas amplas |
Suporte à linguagem SQL | Sim | Sim | Sim | Sim | Sim (usando o driver JDBC Phoenix ) | Sim | No | Sim |
Otimizado para a camada de serviço de velocidade | Sim 2 | Sim 3 | Sim | Sim | Sim | Sim | No | Sim |
[1] Com configuração manual e dimensionamento.
[2] Com tabelas com otimização de memória e índices não em cluster ou hash.
[3] Com suporte como uma saída do Azure Stream Analytics.
Recursos de escalabilidade
Funcionalidade | Base de Dados SQL | Azure Synapse SQL pool | Azure Synapse Spark pool | Azure Data Explorer | HBase/Phoenix no HDInsight | LLAP do Hive no HDInsight | Azure Analysis Services | Azure Cosmos DB |
---|---|---|---|---|---|---|---|---|
Servidores regionais redundantes para alta disponibilidade | Sim | No | No | Sim | Sim | No | Sim | Sim |
Suporta expansão de consulta | No | Sim | Sim | Sim | Sim | Sim | Sim | Sim |
Escalabilidade dinâmica (scale-up) | Sim | Sim | Sim | Sim | No | No | Sim | Sim |
Suporta cache de dados na memória | Sim | Sim | Sim | Sim | No | Sim | Sim | No |
Funcionalidades de segurança
Funcionalidade | Base de Dados SQL | Azure Synapse | Azure Data Explorer | HBase/Phoenix no HDInsight | LLAP do Hive no HDInsight | Azure Analysis Services | Azure Cosmos DB |
---|---|---|---|---|---|---|---|
Autenticação | SQL / Microsoft Entra ID | SQL / Microsoft Entra ID | Microsoft Entra ID | local / Microsoft Entra ID 1 | local / Microsoft Entra ID 1 | Microsoft Entra ID | usuários de banco de dados / Microsoft Entra ID via controle de acesso (gerenciamento de identidade e acesso (IAM)) |
Encriptação de dados inativa | Sim 2 | Sim 2 | Sim | Sim 1 | Sim 1 | Sim | Sim |
Segurança ao nível da linha | Sim | Sim 3 | Sim | Sim 1 | Sim 1 | Sim | No |
Suporta firewalls | Sim | Sim | Sim | Sim 4 | Sim 4 | Sim | Sim |
Máscara de dados dinâmica | Sim | Sim | Sim | Sim 1 | Sim | No | No |
[1] Requer a utilização de um cluster HDInsight associado a um domínio.
[2] Requer o uso de criptografia de dados transparente para criptografar e descriptografar seus dados em repouso.
[3] Apenas predicados de filtro. Consulte Segurança em nível de linha
[4] Quando utilizado numa rede virtual do Azure. Para obter mais informações, consulte Estender o Azure HDInsight usando uma Rede Virtual do Azure.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor principal:
- Zoiner Tejada - Brasil | CEO e Arquiteto
Próximos passos
- Analisar dados em um data warehouse relacional
- Criar um único banco de dados - Banco de Dados SQL do Azure
- Criar uma área de trabalho do Azure Databricks
- Criar cluster Apache Spark no Azure HDInsight usando o portal do Azure
- Criando um espaço de trabalho Synapse
- Explore os serviços de dados do Azure para análises modernas
- Explore o banco de dados e os serviços de análise do Azure
- Consultar o Azure Cosmos DB usando a API para NoSQL