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 lotes, 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 suas opções ao escolher o armazenamento de dados no Azure?What are your options when choosing data storage in Azure?

Há várias opções para ingerir 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 de armazenamento do AzureAzure Storage blobs

O armazenamento do Azure é um serviço de armazenamento gerenciado que é 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 trata da manutenção e lida com os problemas críticos por si.Microsoft takes care of maintenance and handles critical problems for you. O armazenamento do Azure é a solução de armazenamento mais onipresente que o Azure fornece, devido ao número 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 de armazenamento do Azure que você pode usar 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 várias fontes de dados é o armazenamentode BLOBs.The most flexible option for storing blobs from a number of data sources is Blob storage. Os 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. Os blobs são armazenados em contentores, que são semelhantes a pastas.Blobs are stored in containers, which are similar to folders. Um contêiner fornece um agrupamento de um conjunto de BLOBs.A container provides a grouping of a set of blobs. Uma conta de armazenamento pode conter um número ilimitado de contentores, e um contentor 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 opção 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 quentes, frias e de arquivo para diferentes casos de uso.It provides hot, cool, and archive storage tiers for different use cases. Para obter mais informações, consulte armazenamento de BLOBs do Azure: Camadas de armazenamento quentes, frias e dearquivo morto.For more information, see Azure Blob Storage: Hot, cool, and archive storage tiers.

O armazenamento de BLOBs do Azure pode ser acessado do Hadoop (disponível por meio do HDInsight).Azure Blob storage can be accessed from Hadoop (available through HDInsight). O HDInsight pode utilizar um contentor de blobs no Armazenamento do Azure como o sistema de ficheiros predefinido 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 em 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 de BLOBs do Azure também pode ser acessado por meio do Azure SQL Data Warehouse usando seu recurso polybase.Azure Blob storage can also be accessed via Azure SQL Data Warehouse using its PolyBase feature.

Outros recursos que tornam o armazenamento do Azure uma boa escolha são:Other features that make Azure Storage a good choice are:

Azure Data Lake StoreAzure Data Lake Store

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

Data Lake Store não impõe limites de tamanhos de conta, tamanhos 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 fazendo várias cópias e não há nenhum limite na duração de tempo em que os dados podem ser armazenados 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 espalha 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. Isto melhora o débito de leitura ao ler o ficheiro em paralelo para efetuar análise de dados.This improves the read throughput when reading the file in parallel for performing data analytics.

Data Lake Store pode ser acessado do Hadoop (disponível por meio do 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. Você pode considerar usar isso como uma alternativa ao armazenamento do Azure quando seus tamanhos de arquivo individuais ou combinados excederem que têm suporte do 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 você deve seguir ao usar data Lake Store como seu armazenamento primário para um cluster HDInsight, com diretrizes específicas para Spark, Hive, MapReducee 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, certifique-se de verificar a disponibilidade regionaldo data Lake Store, porque ele não está disponível em tantas regiões quanto o armazenamento do Azure, e precisa estar localizado na mesma região que o 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.

Junto com Azure Data Lake Analytics, o Data Lake Store foi projetado especificamente para habilitar a análise nos dados armazenados e é ajustado para desempenho em 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 por meio do Azure SQL Data Warehouse usando seu recurso polybase.Data Lake Store can also be accessed via Azure SQL Data Warehouse using its PolyBase feature.

Azure Cosmos DBAzure Cosmos DB

Azure Cosmos DB é o banco de dados multimodelo distribuído globalmente da Microsoft.Azure Cosmos DB is Microsoft’s globally distributed multi-model database. Cosmos DB garante latências de milissegundos de um dígito no 99 º percentil em qualquer lugar do mundo, oferece vários modelos de consistência bem definidos para ajustar o desempenho e garante a alta disponibilidade com recursos 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.

Azure Cosmos DB não é independente de esquema.Azure Cosmos DB is schema-agnostic. Ele indexa automaticamente todos os dados sem exigir que você lide com o gerenciamento de esquema e índice.It automatically indexes all the data without requiring you to deal with schema and index management. Tem também múltiplos modelos, documentos com suporte nativo e modelos de dados de chave-valor, gráfico e coluna.It’s also multi-model, natively supporting document, key-value, graph, and column-family data models.

Recursos de Azure Cosmos DB:Azure Cosmos DB features:

HBase no HDInsightHBase on HDInsight

O Apache HBase é um banco de dados NoSQL de software livre criado no Hadoop e modelado após o 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 consistência forte para grandes quantidades de dados não estruturados e semiestruturados em um banco de dado 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 de uma linha são agrupados por família 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 no sentido de que nem as colunas nem os tipos de dados armazenados nelas precisam ser definidos antes de usá-las.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 open source é dimensionado linearmente para processar petabytes de dados em milhares de nós.The open-source code scales linearly to handle petabytes of data on thousands of nodes. Pode depender da redundância de dados, do processamento em lotes e de outras funcionalidades fornecidas por aplicações distribuídas do 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 expansão do HBase para fornecer fragmentação automática de tabelas, consistência forte 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 é melhorado graças à colocação em cache dentro da memória para as operações de leitura e à transmissão em fluxo de alto débito para as operações de escrita.Performance is enhanced by in-memory caching for reads and high-throughput streaming for writes. Na maioria dos casos, você desejará criar o cluster HBase dentro de uma rede virtual para que outros clusters e aplicativos HDInsight 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.

Critérios de seleção de chaveKey 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 dados de texto ou 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 arquivo.If yes, then select one of the file storage options.

  • Você precisa de armazenamento de arquivos otimizado para cargas de trabalho de análise paralela e alta taxa de transferência/IOPS?Do you need file storage that is optimized for parallel analytics workloads and high throughput/IOPS? Em caso afirmativo, escolha uma opção ajustada ao desempenho de 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 as opções de indexação e modelos de banco de dados.Compare options for indexing and database models. Dependendo do tipo de dados que você precisa armazenar, os modelos de banco de dados primários podem ser o maior fator.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 os produtos disponíveis por região.See Products available by region.

Matriz de recursosCapability matrix

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

Recursos de armazenamento de arquivosFile storage capabilities

FuncionalidadeCapability Azure Data Lake StoreAzure Data Lake Store Contêineres de armazenamento de BLOBs do AzureAzure Blob Storage containers
ObjetivoPurpose Armazenamento otimizado para cargas de trabalho de análise de Big DataOptimized storage for big data analytics workloads Armazenamento de objetos de uso geral para uma ampla variedade de cenários de armazenamentoGeneral purpose object store for a wide variety of storage scenarios
Casos de utilizaçãoUse cases Lote, análise de streaming e dados de aprendizado de máquina, como arquivos de log, dados de IoT, fluxos de cliques, grandes conjuntos de dadosBatch, 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
EstruturáStructure Sistema de arquivos hierárquicoHierarchical file system Repositório de objetos com namespace simplesObject store with flat namespace
AuthenticationAuthentication Com base em identidades de Azure Active DirectoryBased on Azure Active Directory Identities Com base em chaves de acesso de conta de segredos compartilhados e chaves de assinatura de acesso compartilhadoe RBAC (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 devem conter um JWT (token Web JSON) válido emitido por 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 com base em Azure Active Directory identidades podem ser definidas em nível de arquivo e pasta.ACLs based on Azure Active Directory identities can be set file and folder level. Para autorização em 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 Há.Available. DisponívelAvailable
Encriptação inativaEncryption at rest Transparente, lado do servidorTransparent, server side Transparente, lado do servidor; Criptografia do lado do clienteTransparent, server side; Client-side encryption
SDKs de programadorDeveloper SDKs .NET, node. js de Java, Python,.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 de tamanhos de conta, tamanhos de ficheiro ou número de ficheirosNo limits on account sizes, file sizes or number of files Limites específicos documentados aquiSpecific limits documented here
Redundância geográficaGeo-redundancy Com redundância local (LRS), globalmente redundante (GRS), acesso de leitura globalmente redundante (RA-GRS), com redundância de zona (ZRS).Locally-redundant (LRS), globally redundant (GRS), read-access globally redundant (RA-GRS), zone-redundant (ZRS). Redundância local (LRS), globalmente redundante (GRS), acesso de leitura globalmente redundante (RA-GRS), com redundância de zona (ZRS).Locally redundant (LRS), globally redundant (GRS), read-access globally redundant (RA-GRS), zone-redundant (ZRS). Consulte aqui para obter mais informaçõesSee here for more information

Recursos de banco de dados NoSQLNoSQL database capabilities

FuncionalidadeCapability Azure Cosmos DBAzure Cosmos DB HBase no HDInsightHBase on HDInsight
Modelo de banco de dados primárioPrimary database model Repositório de documentos, grafo, repositório de chave-valor, repositório de coluna largoDocument store, graph, key-value store, wide column store Repositório de coluna largoWide 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 ForteStrong
Integração do Azure Functions nativoNative Azure Functions integration SimYes NãoNo
Distribuição global automáticaAutomatic global distribution SimYes Nenhuma replicação de cluster HBase pode ser configurada entre regiões com consistência eventualNo HBase cluster replication can be configured across regions with eventual consistency
Modelo preçosPricing model RUs (unidades de solicitação escalonáveis de forma elástica) cobradas por segundo, conforme necessário, armazenamento adaptável e escalonávelElastically scalable request units (RUs) charged per-second as needed, elastically scalable storage Preço por minuto para o cluster HDInsight (dimensionamento horizontal de nós), armazenamentoPer-minute pricing for HDInsight cluster (horizontal scaling of nodes), storage