Escolher uma tecnologia de armazenamento de grandes volumes de dados no AzureChoosing a big data storage technology in Azure

Este tópico compara as opções para armazenamento de dados para soluções de macrodados — especificamente, o armazenamento de dados para ingestão de dados em massa e processamento em lotes, em vez de serem arquivos de dados analíticos ou em tempo real ingestão de transmissão em fluxo.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 ao escolher o armazenamento de dados no Azure?What are your options when choosing data storage in Azure?

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

Armazenamento de ficheiros:File storage:

Bases de dados NoSQL:NoSQL databases:

Blobs de armazenamento do AzureAzure Storage blobs

O armazenamento do Azure é um serviço de armazenamento gerido que está altamente disponível, seguro, durável, dimensioná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 amplamente presentes, que o Azure fornece, devido ao número de serviços e ferramentas que podem ser utilizadas com o mesmo.Azure Storage is the most ubiquitous storage solution Azure provides, due to the number of services and tools that can be used with it.

Existem vários serviços de armazenamento do Azure, que pode utilizar para armazenar dados.There are various Azure Storage services you can use to store data. A opção mais flexível para o armazenamento de blobs a partir de um número de origens de dados é armazenamento de BLOBs.The most flexible option for storing blobs from a number of data sources is Blob storage. Os BLOBs são, basicamente, ficheiros.Blobs are basically files. Eles armazenar imagens, documentos, ficheiros HTML, discos rígidos virtuais (VHDs), grandes volumes de dados, como registos, cópias de segurança de base de dados — quase tudo.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 contentor 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.

Armazenamento do Azure é uma boa escolha para soluções de análise e de dados grandes, devido à sua flexibilidade, a elevada disponibilidade e a 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 acesso frequente, esporádica e de arquivo de camadas de armazenamento para diferentes casos de utilização.It provides hot, cool, and archive storage tiers for different use cases. Para obter mais informações, consulte armazenamento de Blobs do Azure: Camadas frequente, esporádica e de camadas de armazenamento de arquivo.For more information, see Azure Blob Storage: Hot, cool, and archive storage tiers.

Armazenamento de Blobs do Azure pode ser acedido a partir 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. Através de uma interface de system (HDFS) de ficheiros 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. Armazenamento de Blobs do Azure também pode ser acedido através do Azure SQL Data Warehouse com a sua funcionalidade de PolyBase.Azure Blob storage can also be accessed via Azure SQL Data Warehouse using its PolyBase feature.

Outros recursos que tornam uma boa opção de armazenamento do Azure 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 cargas de trabalho de análise de macrodados.Azure Data Lake Store is an enterprise-wide hyper-scale repository for big data analytic workloads. Data Lake permite-lhe capturar dados de qualquer tamanho, tipo e velocidade de ingestão num único seguro local para análises exploratórias e operacionais.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 quaisquer limites de tamanhos de conta, tamanhos de ficheiro ou a quantidade de dados que podem ser armazenados num 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 de maneira duradoura, fazendo várias cópias e não há limite na duração de tempo 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 tornar várias cópias dos ficheiros para proteger contra falhas inesperadas, o Data lake propaga partes de um ficheiro ao longo de um número de 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 acedido a partir do Hadoop (disponível por meio do HDInsight) com as APIs de REST compatíveis com WebHDFS.Data Lake Store can be accessed from Hadoop (available through HDInsight) using the WebHDFS-compatible REST APIs. Pode considerar utilizar isto como uma alternativa ao armazenamento do Azure quando os tamanhos de ficheiro individual ou combinados, excedem que o que é suportado pelo 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, existem diretrizes de ajuste de desempenho deve seguir ao utilizar o Data Lake Store como o armazenamento primário para um cluster do HDInsight, com diretrizes específicas para 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, certifique-se de que consulta do Data Lake Store disponibilidade regional, porque não está disponível em tantas regiões de como o armazenamento do Azure e tem de estar localizado na mesma região que o seu cluster do 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.

Juntamente com o Azure Data Lake Analytics, o Data Lake Store foi especificamente desenvolvido para ativar a análise nos dados armazenados e está otimizado para desempenho para cenários de análises 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 podem ser acedido através do Azure SQL Data Warehouse com a sua funcionalidade de PolyBase.Data Lake Store can also be accessed via Azure SQL Data Warehouse using its PolyBase feature.

Azure Cosmos DBAzure Cosmos DB

O Azure Cosmos DB é database de com múltiplos modelo distribuída globalmente da Microsoft.Azure Cosmos DB is Microsoft’s globally distributed multi-model database. O cosmos DB garante latências de milissegundos de dígito único no percentil de 99 em qualquer lugar no mundo, oferece vários modelos de consistência bem definidos para otimizar o desempenho e garante uma elevada disponibilidade com capacidades multi-homing.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. Indexa automaticamente todos os dados sem ter de lidar com a gestão de esquemas e índices.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.

Funcionalidades do Azure do Cosmos DB:Azure Cosmos DB features:

HBase no HDInsightHBase on HDInsight

O Apache HBase é uma base de dados de NoSQL de código-fonte aberto, que é incorporada no Hadoop e modelada segundo o Google BigTable.Apache HBase is an open-source, NoSQL database that is built on Hadoop and modeled after Google BigTable. HBase fornece acesso aleatório e consistência segura para grandes quantidades de dados não estruturados e semiestruturados numa base de dados sem esquema, organizada 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. HBase não tem esquema no sentido de que nem as colunas nem o tipo de dados armazenados nas mesmas têm de ser definidos antes de os utilizar.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.

O implementação de HDInsight tira partido da arquitetura de escalamento horizontal do HBase para fornecer fragmentação automática de tabelas, consistência forte para as leituras e escritas e a ativação pós-falha automática.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, vai querer criar o cluster do HBase numa rede virtual para que outros clusters do HDInsight e aplicações podem 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 limitar as opções, comece por resposta a estas perguntas:To narrow the choices, start by answering these questions:

  • Precisa gerida de alta velocidade, armazenamento baseado na 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? Se Sim, em seguida, selecione uma das opções de armazenamento de ficheiros.If yes, then select one of the file storage options.

  • Precisa de armazenamento de ficheiros que está otimizado para cargas de trabalho de análise paralela e IOPS/débito alto?Do you need file storage that is optimized for parallel analytics workloads and high throughput/IOPS? Se Sim, em seguida, escolha uma opção que é otimizada para desempenho da carga de trabalho de análise.If yes, then choose an option that is tuned to analytics workload performance.

  • Precisa armazenar dados não estruturados ou semiestruturados numa base de dados sem esquemas?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 para modelos de indexação e a base de dados.Compare options for indexing and database models. Dependendo do tipo de dados de que precisa para armazenar, os modelos de base de dados primária podem ser o fator de maior.Depending on the type of data you need to store, the primary database models may be the largest factor.

  • Pode usar o serviço na sua região?Can you use the service in your region? Verifica a disponibilidade regional para cada serviço do Azure.Check the regional availability for each Azure service. Ver produtos disponíveis por região.See Products available by region.

Matriz de capacidadeCapability matrix

As tabelas seguintes resumem as principais diferenças nos recursos.The following tables summarize the key differences in capabilities.

Recursos de armazenamento de arquivosFile storage capabilities

Azure Data Lake StoreAzure Data Lake Store Contentores de armazenamento de Blobs do AzureAzure Blob Storage containers
ObjetivoPurpose Armazenamento otimizado para cargas de trabalho de análise de macrodadosOptimized storage for big data analytics workloads Objeto de fins gerais armazenar para uma grande variedade de cenários de armazenamentoGeneral purpose object store for a wide variety of storage scenarios
Casos de utilizaçãoUse cases De lote, transmissão em fluxo, dados e análises machine learning, tais como ficheiros de registo, dados de IoT, clique em fluxos de 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 a aplicação fazer uma cópia de ponto, dados de cópia de segurança e armazenamento de suportes de dados para dados para fins gerais e transmissão em fluxoAny type of text or binary data, such as application back end, backup data, media storage for streaming, and general purpose data
estruturaStructure Sistema de ficheiros hierárquicoHierarchical file system Arquivo de objetos com o espaço de nomes simplesObject store with flat namespace
AutenticaçãoAuthentication Com base em identidades do Active Directory do AzureBased on Azure Active Directory Identities Com base em segredos compartilhados chaves de acesso da conta e chaves de assinatura de acesso partilhado, e controlo de acesso baseado em funções (RBAC)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. Chamadas tem de conter um JWT válido (token de web JSON) emitido pelo Azure Active DirectoryCalls must contain a valid JWT (JSON web token) issued by Azure Active Directory Código de autenticação de mensagens baseada em hash (HMAC).Hash-based message authentication code (HMAC). Chamadas tem de conter um hash SHA-256 codificada em Base64 através de uma parte da solicitação HTTP.Calls must contain a Base64-encoded SHA-256 hash over a part of the HTTP request.
AutorizaçãoAuthorization Apresenta uma lista de controlo de acesso POSIX (ACLs).POSIX access control lists (ACLs). As ACLs com base em identidades do Azure Active Directory podem ser definidas ao nível do arquivo e pasta.ACLs based on Azure Active Directory identities can be set file and folder level. Para a autorização ao nível da conta utilizar chaves de acesso de conta.For account-level authorization use Account Access Keys. Para a conta, contentor ou blob autorização utilize chaves de assinatura de acesso partilhado.For account, container, or blob authorization use Shared Access Signature Keys.
AuditoriaAuditing Está disponível.Available. DisponívelAvailable
Encriptação inativaEncryption at rest Transparente, do lado do servidorTransparent, server side Transparent, do lado do servidor; Encriptação 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, IOPS e débito elevadoOptimized performance for parallel analytics workloads, High Throughput and IOPS Não otimizada 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 Localmente redundante (várias cópias dos dados numa única região do Azure)Locally-redundant (multiple copies of data in one Azure region) Localmente redundante (LRS), globalmente georredundante (GRS), acesso de leitura globalmente redundantes (RA-GRS).Locally redundant (LRS), globally redundant (GRS), read-access globally redundant (RA-GRS). Ver aqui para obter mais informaçõesSee here for more information

Funções de base de dados NoSQLNoSQL database capabilities

Azure Cosmos DBAzure Cosmos DB HBase no HDInsightHBase on HDInsight
Modelo de base de dados primáriaPrimary database model Documente a loja, gráfico, arquivo de chave-valor, arquivo de colunas grandeDocument store, graph, key-value store, wide column store Arquivo de colunas grandeWide column store
Índices secundáriosSecondary indexes SimYes NãoNo
Suporte de linguagem SQLSQL language support SimYes Sim (com o Phoenix JDBC driver)Yes (using the Phoenix JDBC driver)
ConsistênciaConsistency Forte, consistência vinculada, sessão, prefixo consistente, eventualStrong, bounded-staleness, session, consistent prefix, eventual ForteStrong
Integração nativa de funções do AzureNative Azure Functions integration SimYes NãoNo
Distribuição global automáticaAutomatic global distribution SimYes Não replicação de cluster HBase pode ser configurada em várias regiões com consistência eventualNo HBase cluster replication can be configured across regions with eventual consistency
Modelo preçosPricing model Cobrado por segundo, conforme necessário, armazenamento dimensionável unidades de pedido elasticamente escaláveis (RUs)Elastically scalable request units (RUs) charged per-second as needed, elastically scalable storage Preços para o cluster do HDInsight (horizontal dimensionamento de nós), armazenamento por minutoPer-minute pricing for HDInsight cluster (horizontal scaling of nodes), storage