Entender os modelos de armazenamento de dadosUnderstand data store models

Os sistemas de negócios modernos gerenciam volumes cada vez maiores de dados heterogêneos.Modern business systems manage increasingly large volumes of heterogeneous data. Essa heterogeneidade significa que um armazenamento de dados único geralmente não é a melhor abordagem.This heterogeneity means that a single data store is usually not the best approach. Em vez disso, geralmente é melhor armazenar tipos diferentes de dados em armazenamentos de dados diferentes, cada um concentrado em direção a uma carga de trabalho ou padrão de uso específico.Instead, it's often better to store different types of data in different data stores, each focused toward a specific workload or usage pattern. O termo persistência poliglota é utilizado para descrever soluções que usam uma combinação de tecnologias de armazenamento de dados.The term polyglot persistence is used to describe solutions that use a mix of data store technologies. Portanto, é importante entender os principais modelos de armazenamento e suas compensações.Therefore, it's important to understand the main storage models and their tradeoffs.

Selecionar o armazenamento de dados certo para seus requisitos é uma decisão de design chave.Selecting the right data store for your requirements is a key design decision. Literalmente, há centenas de implementações para escolher entre Banco de dados NoSQL e SQL.There are literally hundreds of implementations to choose from among SQL and NoSQL databases. Os armazenamentos de dados geralmente são categorizados por como eles estruturam dados e os tipos de operações às quais fornecem suporte.Data stores are often categorized by how they structure data and the types of operations they support. Este artigo descreve vários dos modelos de armazenamentos mais comuns.This article describes several of the most common storage models. Note que uma tecnologia de armazenamento de dados particular pode fornecer suporte a vários modelos de armazenamento.Note that a particular data store technology may support multiple storage models. Por exemplo, um RDBMS (sistemas de gerenciamento de banco de dados relacional) também pode fornecer suporte de armazenamento de gráfico ou valor/chave.For example, a relational database management systems (RDBMS) may also support key/value or graph storage. Na verdade, há uma tendência geral para o que chamamos de suporte a vários modelos , em que um único sistema de banco de dados dá suporte a vários modelos.In fact, there is a general trend for so-called multi-model support, where a single database system supports several models. Mas, ainda é útil entender os diferentes modelos em um nível alto.But it's still useful to understand the different models at a high level.

Nem todos os armazenamentos de dados em uma determinada categoria fornecem o mesmo conjunto de recursos.Not all data stores in a given category provide the same feature-set. A maioria dos armazenamentos de dados fornece funcionalidade do lado do servidor para consultar e processar dados.Most data stores provide server-side functionality to query and process data. Às vezes, essa funcionalidade está integrada no mecanismo de armazenamento de dados.Sometimes this functionality is built into the data storage engine. Em outros casos, os recursos de processamento e armazenamento de dados são separados e pode haver diversas opções de análise e processamento.In other cases, the data storage and processing capabilities are separated, and there may be several options for processing and analysis. Os armazenamentos de dados também fornecem suporte para diferentes interfaces de gerenciamento e programáticas.Data stores also support different programmatic and management interfaces.

Geralmente, você deve iniciar considerando qual modelo de armazenamento é o mais adequado às suas necessidades.Generally, you should start by considering which storage model is best suited for your requirements. Em seguida, considere um armazenamento de dados específico dentro dessa categoria, com base em fatores como o conjunto de recursos, custos e a facilidade de gerenciamento.Then consider a particular data store within that category, based on factors such as feature set, cost, and ease of management.

Sistemas de gerenciamento de banco de dados relacionalRelational database management systems

Os bancos de dados relacionais organizam dados como uma série de tabelas bidimensionais com linhas e colunas.Relational databases organize data as a series of two-dimensional tables with rows and columns. A maioria dos fornecedores fornece um dialeto do linguagem SQL (SQL) para recuperar e gerenciar dados.Most vendors provide a dialect of the Structured Query Language (SQL) for retrieving and managing data. Um RDBMS tipicamente implementa um mecanismo consistente de forma transacional que está em conformidade com o modelo ACID (Atômico, Consistente, Isolado, Durável) para atualizar informações.An RDBMS typically implements a transactionally consistent mechanism that conforms to the ACID (Atomic, Consistent, Isolated, Durable) model for updating information.

Um RDBMS geralmente fornece suporte para um modelo de esquema em gravação, onde a estrutura de dados é definida antecipadamente e todas as operações de leitura ou gravação devem utilizar o esquema.An RDBMS typically supports a schema-on-write model, where the data structure is defined ahead of time, and all read or write operations must use the schema.

Esse modelo é muito útil quando garantias de consistência fortes são importantes — onde todas as alterações são atômicas, e as transações sempre deixam os dados em um estado consistente.This model is very useful when strong consistency guarantees are important — where all changes are atomic, and transactions always leave the data in a consistent state. No entanto, um RDBMS geralmente não pode ser dimensionado horizontalmente sem fragmentar os dados de alguma maneira.However, an RDBMS generally can't scale out horizontally without sharding the data in some way. Além disso, os dados em um RDBMS devem ser normalizados, o que não é apropriado para todos os conjuntos de dados.Also, the data in an RDBMS must normalized, which isn't appropriate for every data set.

Serviços do AzureAzure services

Carga de trabalhoWorkload

  • Os registros são criados e atualizados com frequência.Records are frequently created and updated.
  • Várias operações precisam ser concluídas em uma única transação.Multiple operations have to be completed in a single transaction.
  • As relações são impostas usando restrições de banco de dados.Relationships are enforced using database constraints.
  • Os índices são usados para otimizar o desempenho da consulta.Indexes are used to optimize query performance.

Tipo de dadosData type

  • Os dados são altamente normalizados.Data is highly normalized.
  • Esquemas de banco de dados são necessários e impostos.Database schemas are required and enforced.
  • Relações muitos para muitos entre as entidades de dados no banco de dados.Many-to-many relationships between data entities in the database.
  • As restrições são definidas no esquema e impostas nos dados no banco de dados.Constraints are defined in the schema and imposed on any data in the database.
  • Os dados exigem alta integridade.Data requires high integrity. Os índices e as relações precisam ser mantidos com precisão.Indexes and relationships need to be maintained accurately.
  • Os dados requerem consistência forte.Data requires strong consistency. As transações operam de forma a garantir que todos os dados sejam 100% consistentes para todos os usuários e processos.Transactions operate in a way that ensures all data are 100% consistent for all users and processes.
  • O tamanho das entradas de dados individuais é de pequeno a médio porte.Size of individual data entries is small to medium-sized.

ExemplosExamples

  • Gerenciamento de estoqueInventory management
  • Gerenciamento de pedidosOrder management
  • Banco de dados de relatóriosReporting database
  • ContabilidadeAccounting

Armazenamentos de valor/chaveKey/value stores

Um repositório de chave/valor associa cada valor de dados a uma chave exclusiva.A key/value store associates each data value with a unique key. A maioria dos armazenamentos de valor/chave fornecem suporte apenas às operações de exclusão, inserção e consulta simples.Most key/value stores only support simple query, insert, and delete operations. Para modificar um valor (parcial ou completamente), um aplicativo deverá substituir os dados existentes para todo o valor.To modify a value (either partially or completely), an application must overwrite the existing data for the entire value. Na maioria das implementações, a leitura ou gravação de um único valor é uma operação atômica.In most implementations, reading or writing a single value is an atomic operation.

Um aplicativo pode armazenar dados arbitrários como um conjunto de valores.An application can store arbitrary data as a set of values. Todas as informações de esquema devem ser fornecidas pelo aplicativo.Any schema information must be provided by the application. O repositório de chave/valor simplesmente recupera ou armazena o valor por chave.The key/value store simply retrieves or stores the value by key.

Diagrama de um repositório de chave-valor

Os repositórios de chave/valor são altamente otimizados para aplicativos que executam pesquisas simples, mas são menos adequados se você precisar consultar dados entre diferentes repositórios de chave/valor.Key/value stores are highly optimized for applications performing simple lookups, but are less suitable if you need to query data across different key/value stores. Os repositórios de chave/valor também não são otimizados para consulta por valor.Key/value stores are also not optimized for querying by value.

Um armazenamento de valor/chave pode ser extremamente escalável, pois o armazenamento de dados pode facilmente distribuir dados em vários nós em computadores separadas.A single key/value store can be extremely scalable, as the data store can easily distribute data across multiple nodes on separate machines.

Serviços do AzureAzure services

Carga de trabalhoWorkload

  • Os dados são acessados usando uma única chave, como um dicionário.Data is accessed using a single key, like a dictionary.
  • Associações, bloqueios ou uniões não são necessários.No joins, lock, or unions are required.
  • Mecanismos de agregação não são usados.No aggregation mechanisms are used.
  • Os índices secundários geralmente não são usados.Secondary indexes are generally not used.

Tipo de dadosData type

  • Cada chave é associada a um único valor.Each key is associated with a single value.
  • Não há imposição do esquema.There is no schema enforcement.
  • Não há relações entre entidades.No relationships between entities.

ExemplosExamples

  • Armazenamento de dados em cacheData caching
  • Gerenciamento da sessãoSession management
  • Preferência do usuário e gerenciamento de perfilUser preference and profile management
  • Recomendação de produtos e veiculação de anúnciosProduct recommendation and ad serving

Bancos de dados de documentosDocument databases

Um banco de dados de documentos armazena uma coleção de documentos, onde cada documento consiste em campos e dados nomeados.A document database stores a collection of documents, where each document consists of named fields and data. Os dados podem ser valores simples ou elementos complexos, como listas e coleções filho.The data can be simple values or complex elements such as lists and child collections. Os documentos são recuperados por chaves exclusivas.Documents are retrieved by unique keys.

Normalmente, um documento contém os dados para uma única entidade, como um cliente ou um pedido.Typically, a document contains the data for single entity, such as a customer or an order. Um documento pode conter informações que seriam distribuídas por várias tabelas relacionais em um RDBMS.A document may contain information that would be spread across several relational tables in an RDBMS. Os documentos não precisam ter a mesma estrutura.Documents don't need to have the same structure. Os aplicativos podem armazenar dados diferentes em documentos conforme os requisitos empresariais mudam.Applications can store different data in documents as business requirements change.

Diagrama de um repositório de documentos

Serviço do AzureAzure service

Carga de trabalhoWorkload

  • As operações de inserção e atualização são comuns.Insert and update operations are common.
  • Não há incompatibilidade de impedância relacional de objeto.No object-relational impedance mismatch. Os documentos correspondem melhor às estruturas de objeto usadas no código do aplicativo.Documents can better match the object structures used in application code.
  • Os documentos individuais são recuperados e gravados como um único bloco.Individual documents are retrieved and written as a single block.
  • Os dados requerem um índice de vários campos.Data requires index on multiple fields.

Tipo de dadosData type

  • Os dados podem ser gerenciados de forma desordenada.Data can be managed in de-normalized way.
  • O tamanho dos dados do documento individual é relativamente pequeno.Size of individual document data is relatively small.
  • Cada tipo de documento pode usar seu próprio esquema.Each document type can use its own schema.
  • Os documentos podem incluir campos opcionais.Documents can include optional fields.
  • Os dados de documento são semi-estruturados, o que significa que os tipos de dados de cada campo não são estritamente definidos.Document data is semi-structured, meaning that data types of each field are not strictly defined.

ExemplosExamples

  • Catálogo de produtosProduct catalog
  • Gerenciamento de conteúdoContent management
  • Gerenciamento de estoqueInventory management

Bancos de dados de grafoGraph databases

Um banco de dados de gráfico armazena dois tipos de informações, nós e bordas.A graph database stores two types of information, nodes and edges. As bordas especificam as relações entre os nós.Edges specify relationships between nodes. Os nós e as bordas podem ter propriedades que fornecem informações sobre esse nó ou borda, semelhante às colunas em uma tabela.Nodes and edges can have properties that provide information about that node or edge, similar to columns in a table. As bordas também podem ter uma direção indicando a natureza do relacionamento.Edges can also have a direction indicating the nature of the relationship.

Os bancos de dados de grafo podem executar consultas com eficiência na rede de nós e bordas e analisar as relações entre entidades.Graph databases can efficiently perform queries across the network of nodes and edges and analyze the relationships between entities. O diagrama a seguir mostra o banco de dados de pessoal de uma organização estruturado como um grafo.The following diagram shows an organization's personnel database structured as a graph. As entidades são funcionários e departamentos, e as bordas indicam as relações de relatório e os departamentos em que os funcionários trabalham.The entities are employees and departments, and the edges indicate reporting relationships and the departments in which employees work.

Diagrama de um banco de dados de documentos

Essa estrutura facilita a realização de consultas como "Localizar todos os funcionários que se reportam direta ou indiretamente à Sarah" ou "Quem trabalha no mesmo departamento que John?"This structure makes it straightforward to perform queries such as "Find all employees who report directly or indirectly to Sarah" or "Who works in the same department as John?" Para gráficos grandes com muitas entidades e relacionamentos, você pode realizar análises muito complexas muito rapidamente.For large graphs with lots of entities and relationships, you can perform very complex analyses very quickly. Muitos bancos de dados de gráficos fornecem uma linguagem de consulta que você pode utilizar para percorrer uma rede de relacionamentos de forma eficiente.Many graph databases provide a query language that you can use to traverse a network of relationships efficiently.

Serviços do AzureAzure services

Carga de trabalhoWorkload

  • Relações complexas entre itens de dados envolvendo vários saltos entre itens de dados relacionados.Complex relationships between data items involving many hops between related data items.
  • A relação entre os itens de dados são dinâmicas e mudam com o passar do tempo.The relationship between data items are dynamic and change over time.
  • As relações entre objetos são de primeira classe, sem precisar de chaves estrangeiras e ingressos para serem percorridas.Relationships between objects are first-class citizens, without requiring foreign-keys and joins to traverse.

Tipo de dadosData type

  • Nós e relações.Nodes and relationships.
  • Nós são semelhantes às linhas da tabela ou documentos JSON.Nodes are similar to table rows or JSON documents.
  • As relações são tão importantes quanto os nós e são expostas diretamente na linguagem de consulta.Relationships are just as important as nodes, and are exposed directly in the query language.
  • Objetos de composição, como uma pessoa com vários números de telefone, tendem a ser divididos em nós menores combinado com relações navegáveisComposite objects, such as a person with multiple phone numbers, tend to be broken into separate, smaller nodes, combined with traversable relationships

ExemplosExamples

  • Quadros da organizaçãoOrganization charts
  • Gráficos sociaisSocial graphs
  • Detecção de fraudeFraud detection
  • Mecanismos de recomendaçãoRecommendation engines

Análise de dadosData analytics

Os armazenamentos de análise de dados fornecem soluções massivamente paralelas para ingerir, armazenar e analisar dados.Data analytics stores provide massively parallel solutions for ingesting, storing, and analyzing data. Os dados são distribuídos em vários servidores para maximizar a escalabilidade.The data is distributed across multiple servers to maximize scalability. Formatos de arquivo de dados grandes, como arquivos delimitadores (CSV), parquete Orc , são amplamente usados na análise de dados.Large data file formats such as delimiter files (CSV), parquet, and ORC are widely used in data analytics. Os dados históricos são normalmente armazenados em armazenamentos de dados, como o armazenamento de BLOBs ou Azure data Lake Storage Gen2, que são acessados pelo Azure Synapse, databricks ou pelo HDInsight como tabelas externas.Historical data is typically stored in data stores such as blob storage or Azure Data Lake Storage Gen2, which are then accessed by Azure Synapse, Databricks, or HDInsight as external tables. Um cenário típico usando dados armazenados como arquivos parquet para desempenho, é descrito no artigo usar tabelas externas com Synapse SQL.A typical scenario using data stored as parquet files for performance, is described in the article Use external tables with Synapse SQL.

Serviços do AzureAzure services

Carga de trabalhoWorkload

  • Análise de dadosData analytics
  • Enterprise BIEnterprise BI

Tipo de dadosData type

  • Dados históricos de várias fontes.Historical data from multiple sources.
  • Geralmente desnormalizado em um esquema de "estrela" ou "floco de neve", consistindo em tabelas de dimensões e fatos.Usually denormalized in a "star" or "snowflake" schema, consisting of fact and dimension tables.
  • Geralmente é carregado com novos dados de forma programada.Usually loaded with new data on a scheduled basis.
  • As tabelas de dimensões geralmente incluem várias versões históricas de uma entidade, conhecida como uma dimensão de alteração lenta.Dimension tables often include multiple historic versions of an entity, referred to as a slowly changing dimension.

ExemplosExamples

  • data warehouse empresarialEnterprise data warehouse

Bancos de dados de família de colunaColumn-family databases

Um banco de dados de família de coluna organiza dados em linhas e colunas.A column-family database organizes data into rows and columns. Na sua forma mais simples, um banco de dados de família de coluna pode parecer muito semelhante a um banco de dados relacional, pelo menos conceitualmente.In its simplest form, a column-family database can appear very similar to a relational database, at least conceptually. O poder real de uma base de dados de família de coluna reside na sua abordagem desnormalizada para estruturar dados esparsos.The real power of a column-family database lies in its denormalized approach to structuring sparse data.

É possível pensar em um banco de dados de família de coluna como dados de tabela com linhas e colunas, mas as colunas são divididas em grupos conhecidos como famílias de coluna.You can think of a column-family database as holding tabular data with rows and columns, but the columns are divided into groups known as column families. Cada família de coluna contém um conjunto de colunas que estão logicamente relacionadas e geralmente são recuperadas ou manipuladas como uma unidade.Each column family holds a set of columns that are logically related together and are typically retrieved or manipulated as a unit. Outros dados acessados separadamente podem ser armazenados em famílias de colunas separadas.Other data that is accessed separately can be stored in separate column families. Dentro de uma família de colunas, novas colunas podem ser adicionadas dinamicamente e as linhas podem ser esparsas (ou seja, uma linha não precisa ter um valor para cada coluna).Within a column family, new columns can be added dynamically, and rows can be sparse (that is, a row doesn't need to have a value for every column).

O diagrama a seguir mostra um exemplo com duas famílias de colunas, Identity e Contact Info.The following diagram shows an example with two column families, Identity and Contact Info. Os dados de uma única entidade possuem a mesma chave de linha em cada família de coluna.The data for a single entity has the same row key in each column-family. Essa estrutura, em que as linhas de um determinado objeto em uma família de coluna pode variar dinamicamente, é um benefício importante da abordagem de família de coluna, que torna essa forma de armazenamento de dados altamente adequada para armazenar dados voláteis e estruturados.This structure, where the rows for any given object in a column family can vary dynamically, is an important benefit of the column-family approach, making this form of data store highly suited for storing structured, volatile data.

Diagrama de um banco de dados de família de coluna

Ao contrário de um armazenamento de valor/chave ou um banco de dados de documentos, a maioria dos bancos de dados de família de coluna armazenam dados em ordem de chave, em vez de computar um hash.Unlike a key/value store or a document database, most column-family databases store data in key order, rather than by computing a hash. Muitas implementações permitem que você crie índices sobre colunas específicas em uma família de coluna.Many implementations allow you to create indexes over specific columns in a column-family. Os índices permitem recuperar dados por valor de colunas, em vez de chave de linha.Indexes let you retrieve data by columns value, rather than row key.

As operações de leitura e gravação para uma linha geralmente são atômicas com uma família de coluna única, embora algumas implementações ofereçam atomicidade em toda a linha, abrangendo múltiplas famílias de colunas.Read and write operations for a row are usually atomic with a single column-family, although some implementations provide atomicity across the entire row, spanning multiple column-families.

Serviços do AzureAzure services

Carga de trabalhoWorkload

  • A maioria dos bancos de dados de famílias de colunas executam operações de gravação muito rapidamente.Most column-family databases perform write operations extremely quickly.
  • As operações de atualização e exclusão são raras.Update and delete operations are rare.
  • Projetado para fornecer acesso com alta taxa de transferência e baixa latência.Designed to provide high throughput and low-latency access.
  • Dá suporte ao acesso de consulta fácil para determinado conjunto de campos dentro de um registro muito maior.Supports easy query access to a particular set of fields within a much larger record.
  • Amplamente escalonável.Massively scalable.

Tipo de dadosData type

  • Os dados são armazenados em tabelas compostas por uma coluna de chave e uma ou mais famílias de colunas.Data is stored in tables consisting of a key column and one or more column families.
  • As colunas específicas podem variar conforme as linhas individuais.Specific columns can vary by individual rows.
  • As células individuais são acessadas por meio de comandos get e putIndividual cells are accessed via get and put commands
  • Várias linhas são retornadas usando um comando de verificação.Multiple rows are returned using a scan command.

ExemplosExamples

  • RecomendaçõesRecommendations
  • PersonalizaçãoPersonalization
  • Dados de sensorSensor data
  • TelemetriaTelemetry
  • MensagensMessaging
  • Análise de mídia socialSocial media analytics
  • Análise da WebWeb analytics
  • Monitorando de atividadesActivity monitoring
  • Previsão do tempo e outros dados de série temporalWeather and other time-series data

Banco de dados de mecanismo de pesquisaSearch Engine Databases

Um banco de dados do mecanismo de pesquisa permite que os aplicativos pesquisem informações mantidas em armazenamentos de dados externos.A search engine database allows applications to search for information held in external data stores. Um banco de dados do mecanismo de pesquisa pode indexar volumes maciços e fornecer acesso quase em tempo real a esses índices.A search engine database can index massive volumes of data and provide near real-time access to these indexes.

Os índices podem ser multidimensionais e fornecer suporte para buscas de texto livre em grandes volumes de dados de texto.Indexes can be multi-dimensional and may support free-text searches across large volumes of text data. A indexação pode ser realizada usando um modelo de pull, disparado pelo banco de dados de mecanismo de pesquisa ou utilizando um modelo push, iniciado pelo código de aplicativo externo.Indexing can be performed using a pull model, triggered by the search engine database, or using a push model, initiated by external application code.

A pesquisa pode ser exata ou difusa.Searching can be exact or fuzzy. Uma pesquisa difusa localiza documentos que correspondem um conjunto de termos e calcula a forma como eles correspondem.A fuzzy search finds documents that match a set of terms and calculates how closely they match. Alguns mecanismos de pesquisa também fornecem suporte a análises linguísticas que podem retornar correspondências com base em sinônimos, expansões de gênero (por exemplo, correspondência dogs a pets), e lematização (palavras correspondentes com a mesma raiz).Some search engines also support linguistic analysis that can return matches based on synonyms, genre expansions (for example, matching dogs to pets), and stemming (matching words with the same root).

Serviço do AzureAzure service

Carga de trabalhoWorkload

  • Índices de dados de várias fontes e serviços.Data indexes from multiple sources and services.
  • Consultas são ad hoc e podem ser complexas.Queries are ad-hoc and can be complex.
  • Requer pesquisa de texto completo.Full text search is required.
  • Requer consulta ad hoc de autoatendimento.Ad hoc self-service query is required.

Tipo de dadosData type

  • Texto semiestruturado ou não estruturadoSemi-structured or unstructured text
  • Texto com referência a dados estruturadosText with reference to structured data

ExemplosExamples

  • Catálogos de produtosProduct catalogs
  • Pesquisa de siteSite search
  • Registrando em logLogging

Bancos de dados de séries temporaisTime series databases

Os dados de série temporal são um conjunto de valores organizados por tempo.Time series data is a set of values organized by time. Os bancos de dados de série temporal normalmente coletam grandes quantidades de data em tempo real de um grande número de fontes.Time series databases typically collect large amounts of data in real time from a large number of sources. As atualizações são raras e as exclusões geralmente são feitas como operações em massa.Updates are rare, and deletes are often done as bulk operations. Embora os registros gravados em um banco de dados de série temporal sejam geralmente pequenos, muitas vezes há um grande número de registros e o tamanho total dos dados pode crescer rapidamente.Although the records written to a time-series database are generally small, there are often a large number of records, and total data size can grow rapidly.

Serviço do AzureAzure service

Carga de trabalhoWorkload

  • Os registros são geralmente anexados sequencialmente em ordem cronológica.Records are generally appended sequentially in time order.
  • Um proporção predominante das operações (95% a 99%) é composta por gravações.An overwhelming proportion of operations (95-99%) are writes.
  • As atualizações são raras.Updates are rare.
  • As exclusões ocorrem em massa e são realizadas em blocos ou registros contíguos.Deletes occur in bulk, and are made to contiguous blocks or records.
  • Os dados são lidos sequencialmente na ordem de tempo crescente ou decrescente, geralmente em paralelo.Data is read sequentially in either ascending or descending time order, often in parallel.

Tipo de dadosData type

  • Um carimbo de data/hora é usado como a chave primária e o mecanismo de classificação.A timestamp is used as the primary key and sorting mechanism.
  • As marcas podem definir informações adicionais sobre o tipo, a origem e outras informações sobre a entrada.Tags may define additional information about the type, origin, and other information about the entry.

ExemplosExamples

  • Monitoramento e telemetria de evento.Monitoring and event telemetry.
  • Sensor ou outros dados de IoT.Sensor or other IoT data.

Armazenamento de objetosObject storage

O repositório de objetos é otimizado para armazenar e recuperar grandes objetos binários (imagens, arquivos, fluxos de áudio e vídeo, grandes documentos e objetos de dados de aplicativos, imagens de disco de máquina virtual).Object storage is optimized for storing and retrieving large binary objects (images, files, video and audio streams, large application data objects and documents, virtual machine disk images). Arquivos de dados grandes também são usados de forma popular neste modelo, por exemplo, arquivo delimitador (CSV), parquete Orc.Large data files are also popularly used in this model, for example, delimiter file (CSV), parquet, and ORC. Os repositórios de objetos podem gerenciar quantidades muito grandes de dados não estruturados.Object stores can manage extremely large amounts of unstructured data.

Serviço do AzureAzure service

Carga de trabalhoWorkload

  • Identificado pela chave.Identified by key.
  • O conteúdo normalmente é um ativo, como um delimitador, uma imagem ou um arquivo de vídeo.Content is typically an asset such as a delimiter, image, or video file.
  • O conteúdo deve ser durável e externo a qualquer camada de aplicativo.Content must be durable and external to any application tier.

Tipo de dadosData type

  • O tamanho dos dados é grande.Data size is large.
  • O valor é opaco.Value is opaque.

ExemplosExamples

  • Imagens, vídeos, documentos do office e PDFsImages, videos, office documents, PDFs
  • HTML estático, JSON, CSSStatic HTML, JSON, CSS
  • Arquivos de log e auditoriaLog and audit files
  • Backups de banco de dadosDatabase backups

Arquivos compartilhadosShared files

Algumas vezes, o uso de arquivos simples pode ser o meio mais eficaz para armazenar e recuperar informações.Sometimes, using simple flat files can be the most effective means of storing and retrieving information. O uso de compartilhamentos de arquivos permite acessar arquivos em uma rede.Using file shares enables files to be accessed across a network. Dado á segurança apropriada e mecanismos de controle de acesso simultâneo, o compartilhamento de dados dessa forma pode permitir serviços distribuídos para fornecer acesso de dados altamente escalonável para executar operações básicas de baixo nível, como solicitações de leitura e gravação simples.Given appropriate security and concurrent access control mechanisms, sharing data in this way can enable distributed services to provide highly scalable data access for performing basic, low-level operations such as simple read and write requests.

Serviço do AzureAzure service

Carga de trabalhoWorkload

  • Migração de aplicativos existentes que interagem com o sistema de arquivos.Migration from existing apps that interact with the file system.
  • Requer a interface SMB.Requires SMB interface.

Tipo de dadosData type

  • Arquivos em um conjunto hierárquico de pastas.Files in a hierarchical set of folders.
  • Acessível com bibliotecas de E/S padrão.Accessible with standard I/O libraries.

ExemplosExamples

  • Arquivos herdadosLegacy files
  • O conteúdo compartilhado pode ser acessado por certo número de VMs ou instâncias de aplicativoShared content accessible among a number of VMs or app instances

Auxiliada com essa compreensão de diferentes modelos de armazenamento de dados, a próxima etapa é avaliar sua carga de trabalho e seu aplicativo e decidir qual armazenamento de dados atenderá às suas necessidades específicas.Aided with this understanding of different data storage models, the next step is to evaluate your workload and application, and decide which data store will meet your specific needs. Use a árvore de decisão de armazenamento de dados para ajudar com esse processo.Use the data storage decision tree to help with this process.