Escolhendo uma tecnologia de armazenamento de Big Data no AzureChoosing a big data storage technology in Azure

Este tópico compara opções de — armazenamento de dados para soluções de big data especificamente, armazenamento de dados para ingestão de dados em massa e processamento em lote, em oposição a armazenamentos de dados analíticos ou ingestão de streaming em tempo real.This topic compares options for data storage for big data solutions — specifically, data storage for bulk data ingestion and batch processing, as opposed to analytical data stores or real-time streaming ingestion.

Quais são as opções disponíveis ao escolher um armazenamento de dados no Azure?What are your options when choosing data storage in Azure?

Há várias opções para a ingestão de dados no Azure, dependendo de suas necessidades.There are several options for ingesting data into Azure, depending on your needs.

Armazenamento de arquivos:File storage:

Bancos de dados NoSQL:NoSQL databases:

Blobs do Armazenamento do AzureAzure Storage blobs

O Armazenamento do Azure é um serviço de armazenamento gerenciado altamente disponível, seguro, durável, escalonável e redundante.Azure Storage is a managed storage service that is highly available, secure, durable, scalable, and redundant. A Microsoft cuida da manutenção e lida com problemas importantes para você.Microsoft takes care of maintenance and handles critical problems for you. O Armazenamento do Azure é a solução de armazenamento com maior presença oferecida pelo Azure, devido à quantidade de serviços e ferramentas que podem ser usados com ele.Azure Storage is the most ubiquitous storage solution Azure provides, due to the number of services and tools that can be used with it.

Há vários serviços do Armazenamento do Azure que podem ser usados para armazenar dados.There are various Azure Storage services you can use to store data. A opção mais flexível para armazenar blobs de uma variedade de fontes de dados é o armazenamento de Blobs.The most flexible option for storing blobs from a number of data sources is Blob storage. Blobs são basicamente arquivos.Blobs are basically files. Eles armazenam imagens, documentos, arquivos HTML, VHDs (discos rígidos virtuais), Big Data como logs, backups de banco de dados — praticamente qualquer coisa.They store pictures, documents, HTML files, virtual hard disks (VHDs), big data such as logs, database backups — pretty much anything. Blobs são armazenados em contêineres, que são semelhantes às pastas.Blobs are stored in containers, which are similar to folders. Um contêiner fornece um agrupamento de conjunto de blobs.A container provides a grouping of a set of blobs. Uma conta de armazenamento pode conter um número ilimitado de contêineres e um contêiner pode armazenar um número ilimitado de blobs.A storage account can contain an unlimited number of containers, and a container can store an unlimited number of blobs.

O Armazenamento do Azure é uma boa escolha para soluções de Big Data e análise, devido à sua flexibilidade, alta disponibilidade e baixo custo.Azure Storage is a good choice for big data and analytics solutions, because of its flexibility, high availability, and low cost. Ele fornece camadas de armazenamento frio, quente e de arquivos para diferentes casos de uso.It provides hot, cool, and archive storage tiers for different use cases. Para obter mais informações, consulte Azure Blob Storage: Níveis de armazenamento quentes, legais e de arquivamento.For more information, see Azure Blob Storage: Hot, cool, and archive storage tiers.

O armazenamento de Blobs do Azure pode ser acessado por meio do Hadoop (disponível no HDInsight).Azure Blob storage can be accessed from Hadoop (available through HDInsight). O HDInsight pode usar um contêiner de blobs no Armazenamento do Azure como o sistema de arquivos padrão para o cluster.HDInsight can use a blob container in Azure Storage as the default file system for the cluster. Por meio de uma interface HDFS (Sistema de Arquivos Distribuído Hadoop) fornecida por um driver WASB, o conjunto completo de componentes no HDInsight pode operar diretamente sobre os dados estruturados ou não estruturados armazenados como blobs.Through a Hadoop distributed file system (HDFS) interface provided by a WASB driver, the full set of components in HDInsight can operate directly on structured or unstructured data stored as blobs. O armazenamento Do Azure Blob também pode ser acessado através do Azure Synapse Analytics usando seu recurso PolyBase.Azure Blob storage can also be accessed via Azure Synapse Analytics using its PolyBase feature.

Outros recursos que tornam o Armazenamento do Azure uma boa opção são os seguintes:Other features that make Azure Storage a good choice are:

Repositório Azure Data LakeAzure Data Lake Store

O Azure Data Lake Store é um repositório de hiperescala em toda a empresa para cargas de trabalho analíticas de big data.Azure Data Lake Store is an enterprise-wide hyperscale repository for big data analytic workloads. O Data Lake permite que você capture dados de qualquer tamanho, tipo e velocidade de ingestão em um único lugar seguro para análises operacionais e exploratórias.Data Lake enables you to capture data of any size, type, and ingestion speed in one single secure location for operational and exploratory analytics.

O Data Lake Store não impõe nenhum limite de tamanho de conta, tamanho de arquivo ou a quantidade de dados que podem ser armazenados em um data lake.Data Lake Store does not impose any limits on account sizes, file sizes, or the amount of data that can be stored in a data lake. Os dados são armazenados permanentemente por meio de várias cópias e não há limite de tempo de armazenamento dos dados no Data Lake.Data is stored durably by making multiple copies and there is no limit on the duration of time that the data can be stored in the Data Lake. Além de fazer várias cópias de arquivos para proteger contra falhas inesperadas, o Data Lake distribui partes de um arquivo em vários servidores de armazenamento individuais.In addition to making multiple copies of files to guard against any unexpected failures, Data lake spreads parts of a file over a number of individual storage servers. Isso melhora a produtividade da leitura do arquivo em paralelo para a realização de análises de dados.This improves the read throughput when reading the file in parallel for performing data analytics.

O Data Lake Store pode ser acessado por meio do Hadoop (disponível no HDInsight) usando as APIs REST compatíveis com WebHDFS.Data Lake Store can be accessed from Hadoop (available through HDInsight) using the WebHDFS-compatible REST APIs. Considere a possibilidade de usar isso como uma alternativa ao Armazenamento do Azure, quando os tamanhos de arquivo individuais ou combinados excederem o limite com suporte no Armazenamento do Azure.You may consider using this as an alternative to Azure Storage when your individual or combined file sizes exceed that which is supported by Azure Storage. No entanto, há diretrizes de ajuste de desempenho que devem ser seguidas ao usar o Data Lake Store como o armazenamento primário para um cluster HDInsight, com diretrizes específicas para o Spark, Hive, MapReduce e Storm.However, there are performance tuning guidelines you should follow when using Data Lake Store as your primary storage for an HDInsight cluster, with specific guidelines for Spark, Hive, MapReduce, and Storm. Além disso, verifique a disponibilidade regional do Data Lake Store, porque ele não está disponível no mesmo número de regiões que o Armazenamento do Azure e precisa estar localizado na mesma região do cluster HDInsight.Also, be sure to check Data Lake Store's regional availability, because it is not available in as many regions as Azure Storage, and it needs to be located in the same region as your HDInsight cluster.

Acoplado com o Azure Data Lake Analytics, o Data Lake Store foi especificamente projetado para permitir a análise de dados armazenados e é ajustado quanto ao desempenho para cenários de análise de dados.Coupled with Azure Data Lake Analytics, Data Lake Store is specifically designed to enable analytics on the stored data and is tuned for performance for data analytics scenarios. Data Lake Store também pode ser acessado via Azure Synapse usando seu recurso PolyBase.Data Lake Store can also be accessed via Azure Synapse using its PolyBase feature.

Azure Cosmos DBAzure Cosmos DB

O Azure Cosmos DB é o banco de dados multimodelo distribuído globalmente pela Microsoft.Azure Cosmos DB is Microsoft's globally distributed multi-model database. O Cosmos DB garante latências de milissegundo de um dígito no 99º percentil em qualquer parte do mundo, oferece vários modelos de consistência bem definidos para ajustar o desempenho e garante alta disponibilidade com funcionalidades de hospedagem múltipla.Cosmos DB guarantees single-digit-millisecond latencies at the 99th percentile anywhere in the world, offers multiple well-defined consistency models to fine-tune performance, and guarantees high availability with multi-homing capabilities.

O Azure Cosmos DB é independente de esquema.Azure Cosmos DB is schema-agnostic. Ele indexa todos os dados automaticamente, sem a necessidade de lidar com o gerenciamento de esquema e de índice.It automatically indexes all the data without requiring you to deal with schema and index management. Também é modelo multi-modelo, de suporte nativo, valor-chave, gráfico e modelos de dados da família de colunas.It's also multi-model, natively supporting document, key-value, graph, and column-family data models.

Recursos do Azure Cosmos DB:Azure Cosmos DB features:

HBase no HDInsightHBase on HDInsight

O Apache HBase é um banco de dados NoSQL de software livre, que se baseia no Hadoop e é modelado com base no Google BigTable.Apache HBase is an open-source, NoSQL database that is built on Hadoop and modeled after Google BigTable. O HBase fornece acesso aleatório e coerência forte para grandes quantidades de dados não estruturados e semiestruturados em um banco de dados sem esquema, organizado por famílias de colunas.HBase provides random access and strong consistency for large amounts of unstructured and semi-structured data in a schemaless database organized by column families.

Os dados são armazenados nas linhas de uma tabela e os dados contidos nas linhas são agrupados por famílias de colunas.Data is stored in the rows of a table, and data within a row is grouped by column family. O HBase é sem esquema, pois as colunas nem o tipo de dados armazenados nelas precisam ser definidos antes de serem utilizados.HBase is schemaless in the sense that neither the columns nor the type of data stored in them need to be defined before using them. O código-fonte aberto é dimensionado linearmente para lidar com petabytes de dados em milhares de nós.The open-source code scales linearly to handle petabytes of data on thousands of nodes. Ele pode fazer uso da redundância de dados, do processamento em lote e de outros recursos que são fornecidos por aplicativos distribuídos no ecossistema do Hadoop.It can rely on data redundancy, batch processing, and other features that are provided by distributed applications in the Hadoop ecosystem.

A implementação do HDInsight aproveita a arquitetura de saída de escala do HBase para fornecer fragmentação automática de tabelas, forte consistência para leituras e gravações e failover automático.The HDInsight implementation leverages the scale-out architecture of HBase to provide automatic sharding of tables, strong consistency for reads and writes, and automatic failover. O desempenho é aprimorado pelo cache na memória para leituras e streaming de alta produtividade para gravações.Performance is enhanced by in-memory caching for reads and high-throughput streaming for writes. Na maioria dos casos, é recomendável criar o cluster HBase dentro de uma rede virtual, de forma que outros clusters HDInsight e aplicativos possam acessar diretamente as tabelas.In most cases, you'll want to create the HBase cluster inside a virtual network so other HDInsight clusters and applications can directly access the tables.

Principais critérios de seleçãoKey selection criteria

Para restringir as opções, comece respondendo a estas perguntas:To narrow the choices, start by answering these questions:

  • Você precisa de armazenamento gerenciado, de alta velocidade e baseado em nuvem para qualquer tipo de texto ou dados binários?Do you need managed, high-speed, cloud-based storage for any type of text or binary data? Em caso afirmativo, selecione uma das opções de armazenamento de arquivos.If yes, then select one of the file storage options.

  • Você precisa de um armazenamento de arquivos otimizado para cargas de trabalho de análise paralela e alto IOPS/taxa de transferência?Do you need file storage that is optimized for parallel analytics workloads and high throughput/IOPS? Em caso afirmativo, escolha uma opção ajustada para o desempenho da carga de trabalho de análise.If yes, then choose an option that is tuned to analytics workload performance.

  • Você precisa armazenar dados não estruturados ou semiestruturados em um banco de dados sem esquema?Do you need to store unstructured or semi-structured data in a schemaless database? Nesse caso, selecione uma das opções não relacionais.If so, select one of the non-relational options. Compare opções de modelos de banco de dados e indexação.Compare options for indexing and database models. Dependendo do tipo de dados que você precisa armazenar, os modelos de banco de dados primário podem ser o fator proeminente.Depending on the type of data you need to store, the primary database models may be the largest factor.

  • Você pode usar o serviço em sua região?Can you use the service in your region? Verifique a disponibilidade regional para cada serviço do Azure.Check the regional availability for each Azure service. Consulte Produtos disponíveis por região.See Products available by region.

Matriz de funcionalidadesCapability matrix

As tabelas a seguir resumem as principais diferenças em funcionalidades.The following tables summarize the key differences in capabilities.

Funcionalidades de armazenamento de arquivosFile storage capabilities

RecursoCapability Repositório Azure Data LakeAzure Data Lake Store Contêineres do Armazenamento de Blobs do AzureAzure Blob Storage containers
FinalidadePurpose Armazenamento otimizado para cargas de trabalho de análise de big dataOptimized storage for big data analytics workloads Repositório de objetos de finalidade geral para uma ampla variedade de cenários de armazenamentoGeneral purpose object store for a wide variety of storage scenarios
Casos de usoUse cases Lote, análise de streaming e dados de aprendizado de máquina, como arquivos de log, dados de IoT, fluxos de cliques, conjuntos de dados grandesBatch, streaming analytics, and machine learning data such as log files, IoT data, click streams, large datasets Qualquer tipo de dados de texto ou binários, como back-end de aplicativo, dados de backup, armazenamento de mídia para streaming e dados de uso geralAny type of text or binary data, such as application back end, backup data, media storage for streaming, and general purpose data
EstruturaStructure Sistema de arquivos hierárquicoHierarchical file system Repositório de objetos com namespace simplesObject store with flat namespace
AutenticaçãoAuthentication Com base em Identidades do Azure Active DirectoryBased on Azure Active Directory Identities Com base em segredos compartilhados, chaves de acesso de conta e chaves de assinatura de acesso compartilhadase rbac (Role-based Access Control, controle de acesso baseado em função)Based on shared secrets Account Access Keys and Shared Access Signature Keys, and role-based access control (RBAC)
Protocolo de autenticaçãoAuthentication protocol OAuth 2.0.OAuth 2.0. As chamadas precisam conter um JWT (Token Web JSON) válido emitido pelo Azure Active DirectoryCalls must contain a valid JWT (JSON web token) issued by Azure Active Directory HMAC (código de autenticação de mensagem baseado em hash).Hash-based message authentication code (HMAC). As chamadas devem conter um hash SHA-256 codificado na Base64 em uma parte da solicitação HTTP.Calls must contain a Base64-encoded SHA-256 hash over a part of the HTTP request.
AutorizaçãoAuthorization ACLs (listas de controle de acesso) do POSIX.POSIX access control lists (ACLs). ACLs baseadas em identidades do Azure Active Directory podem ser definidas com nível de arquivo e pasta.ACLs based on Azure Active Directory identities can be set file and folder level. Para autorização no nível de conta, use Chaves de Acesso da Conta.For account-level authorization use Account Access Keys. Para autorização de conta, contêiner ou blob, use Chaves de Assinatura de Acesso Compartilhado.For account, container, or blob authorization use Shared Access Signature Keys.
AuditoriaAuditing Disponível.Available. DisponívelAvailable
Criptografia em repousoEncryption at rest Transparente, do lado do servidorTransparent, server side Transparente, do lado do servidor; criptografia do lado do clienteTransparent, server side; Client-side encryption
SDKs de desenvolvedorDeveloper SDKs .NET, Java, Python, Node.js.NET, Java, Python, Node.js .Net, Java, Python, Node.js, C++, Ruby.Net, Java, Python, Node.js, C++, Ruby
Desempenho da carga de trabalho de análiseAnalytics workload performance Desempenho otimizado para cargas de trabalho de análise paralela, Alta Taxa de Transferência e IOPSOptimized performance for parallel analytics workloads, High Throughput and IOPS Não otimizado para cargas de trabalho de análiseNot optimized for analytics workloads
Limites de tamanhoSize limits Sem limites para tamanhos de conta, tamanhos de arquivo ou número de arquivosNo limits on account sizes, file sizes or number of files Limites específicos documentados aquiSpecific limits documented here
Redundância geográficaGeo-redundancy Localmente redundante (LRS), globalmente redundante (GRS), acesso de leitura globalmente redundante (RA-GRS), zone-redundante (ZRS).Locally-redundant (LRS), globally redundant (GRS), read-access globally redundant (RA-GRS), zone-redundant (ZRS). Localmente redundante (LRS), globalmente redundante (GRS), acesso de leitura globalmente redundante (RA-GRS), zone-redundante (ZRS).Locally redundant (LRS), globally redundant (GRS), read-access globally redundant (RA-GRS), zone-redundant (ZRS). Veja aqui para mais informaçõesSee here for more information

Funcionalidades de banco de dados NoSQLNoSQL database capabilities

RecursoCapability Azure Cosmos DBAzure Cosmos DB HBase no HDInsightHBase on HDInsight
Modelo de banco de dados primárioPrimary database model Repositório de documentos, gráfico, repositório de chave-valor, repositório de coluna grandeDocument store, graph, key-value store, wide column store Repositório de coluna grandeWide column store
Índices secundáriosSecondary indexes SimYes NãoNo
Suporte à linguagem SQLSQL language support SimYes Sim (usando o driver JDBC Phoenix)Yes (using the Phoenix JDBC driver)
ConsistênciaConsistency Forte, desatualização limitada, sessão, prefixo consistente, eventualStrong, bounded-staleness, session, consistent prefix, eventual StrongStrong
Integração nativa com o Azure FunctionsNative Azure Functions integration SimYes NãoNo
Distribuição global automáticaAutomatic global distribution SimYes Não A replicação de cluster HBase pode ser configurada em regiões com consistência eventualNo HBase cluster replication can be configured across regions with eventual consistency
Modelo de preçosPricing model RUs (unidades de solicitação) elasticamente escalonáveis cobradas por segundo, conforme necessário, armazenamento elasticamente escalonávelElastically scalable request units (RUs) charged per-second as needed, elastically scalable storage Preços por minuto do cluster HDInsight (dimensionamento horizontal de nós), armazenamentoPer-minute pricing for HDInsight cluster (horizontal scaling of nodes), storage