Dados não relacionais e NoSQLNon-relational data and NoSQL

R base de dados não relacionais é uma base de dados que não utiliza o esquema de tabela de linhas e colunas que se encontram nos sistemas de base de dados mais tradicionais.A non-relational database is a database that does not use the tabular schema of rows and columns found in most traditional database systems. Em vez disso, as bases de dados não relacionais utilizam um modelo de armazenamento otimizado para os requisitos específicos do tipo de dados a serem armazenados.Instead, non-relational databases use a storage model that is optimized for the specific requirements of the type of data being stored. Por exemplo, os dados podem ser armazenados como pares chave/valor simples, como documentos JSON ou como um gráfico que consiste de arestas e vértices.For example, data may be stored as simple key/value pairs, as JSON documents, or as a graph consisting of edges and vertices.

Que todos esses dados lojas que têm em comum são que não utilizam um modelo relacional.What all of these data stores have in common is that they don't use a relational model. Além disso, eles tendem a ser mais específico no tipo de dados que suportam e como os dados podem ser consultados.Also, they tend to be more specific in the type of data they support and how data can be queried. Por exemplo, tempo de dados de série de arquivos estão otimizados para consultas em seqüências baseados no tempo dos dados, enquanto os arquivos de dados do gráfico são otimizados para explorar ponderadas de relações entre entidades.For example, time series data stores are optimized for queries over time-based sequences of data, while graph data stores are optimized for exploring weighted relationships between entities. Nenhuma das formato seria generalizar bem para a tarefa de gestão de dados transacionais.Neither format would generalize well to the task of managing transactional data.

O termo NoSQL refere-se a arquivos de dados que não utilizam SQL para consultas em vez disso, outras linguagens de programação e construções para consultar os dados.The term NoSQL refers to data stores that do not use SQL for queries, and instead use other programming languages and constructs to query the data. Na prática, o "NoSQL" significa "base de dados não relacionais", apesar de muitas destas bases de dados suportam consultas compatíveis com o SQL.In practice, "NoSQL" means "non-relational database," even though many of these databases do support SQL-compatible queries. No entanto, a estratégia de execução de consulta subjacente é normalmente muito diferente da forma que um RDBMS tradicional teria de executar a mesma consulta SQL.However, the underlying query execution strategy is usually very different from the way a traditional RDBMS would execute the same SQL query.

As secções seguintes descrevem as principais categorias de não-relacionais ou base de dados NoSQL.The following sections describe the major categories of non-relational or NoSQL database.

Arquivos de dados do documentoDocument data stores

Um arquivo de dados de documento gerencia um conjunto de campos de seqüência nomeada de caracteres e os valores de dados de objeto numa entidade referido como um documento.A document data store manages a set of named string fields and object data values in an entity referred to as a document. Esses arquivos de dados geralmente armazenam dados na forma de documentos JSON.These data stores typically store data in the form of JSON documents. Cada valor de campo pode ser um item escalar, como um número ou um elemento composto, como uma lista ou uma coleção de principal-subordinado.Each field value could be a scalar item, such as a number, or a compound element, such as a list or a parent-child collection. Os dados nos campos de um documento podem ser codificados de diversas formas, incluindo XML, YAML, JSON, BSON ou mesmo armazenados como texto simples.The data in the fields of a document can be encoded in a variety of ways, including XML, YAML, JSON, BSON, or even stored as plain text. Os campos nos documentos são expostos ao sistema de gestão de armazenamento, permitindo que as aplicações consultem e filtrem dados ao utilizar os valores nestes campos.The fields within documents are exposed to the storage management system, enabling an application to query and filter data by using the values in these fields.

Tipicamente, os documentos contêm todos os dados de uma entidade.Typically, a document contains the entire data for an entity. Os itens que fazem parte de uma entidade são específicos de cada aplicação.What items constitute an entity are application specific. Por exemplo, uma entidade pode conter os detalhes de um cliente, de uma encomenda ou uma combinação de ambos.For example, an entity could contain the details of a customer, an order, or a combination of both. Um único documento pode conter informações que seriam distribuídas por várias tabelas relacionais num sistema de gerenciamento de banco de dados relacional (RDBMS).A single document might contain information that would be spread across several relational tables in a relational database management system (RDBMS). Os arquivos de documentos não requerem que todos os documentos tenham a mesma estrutura.A document store does not require that all documents have the same structure. Esta abordagem isenta de forma proporciona um elevado grau de flexibilidade.This free-form approach provides a great deal of flexibility. Por exemplo, os aplicativos podem armazenar diferentes dados em documentos em resposta a uma alteração nos requisitos de negócios.For example, applications can store different data in documents in response to a change in business requirements.

Arquivo de dados de documento de exemplo

A aplicação pode utilizar a chave de documento para obter os documentos.The application can retrieve documents by using the document key. A chave é um identificador exclusivo para os documentos, muitas vezes, protegido por hash, para ajudar a distribuir os dados uniformemente.This is a unique identifier for the document, which is often hashed, to help distribute data evenly. Algumas bases de dados de documentos criam a chave do documento automaticamente.Some document databases create the document key automatically. Outras permitem-lhe especificar um atributo do documento e utilizá-lo como a chave.Others enable you to specify an attribute of the document to use as the key. A aplicação pode também consultar documentos com base no valor de um ou mais campos.The application can also query documents based on the value of one or more fields. Algumas bases de dados de documentos suportam a indexação para facilitar a pesquisa rápida de documentos com base num ou mais campos indexados.Some document databases support indexing to facilitate fast lookup of documents based on one or more indexed fields.

Muitas bases de dados de documentos suportam atualizações no local, permitindo às aplicações modificar os valores de campos específicos num documento sem que seja necessário reescrever todo o documento.Many document databases support in-place updates, enabling an application to modify the values of specific fields in a document without rewriting the entire document. Geralmente, as operações de leitura e escrita em vários campos de um único documento são atómicas.Read and write operations over multiple fields in a single document are usually atomic.

Serviço do Azure relevante:Relevant Azure service:

Arquivos de dados em colunasColumnar data stores

Um arquivo de dados em colunas ou família de colunas organiza dados em colunas e linhas.A columnar or column-family data store organizes data into columns and rows. Em sua forma mais simples, um arquivo de dados de família de colunas pode parecer muito semelhante a uma base de dados relacional, pelo menos conceitualmente.In its simplest form, a column-family data store can appear very similar to a relational database, at least conceptually. O verdadeiro poder de uma base de dados de família de colunas está na abordagem desnormalizada à estruturação de dados dispersos, o que é derivado da abordagem orientada a coluna para armazenar dados.The real power of a column-family database lies in its denormalized approach to structuring sparse data, which stems from the column-oriented approach to storing data.

Pode pensar num arquivo de dados de família de colunas como contendo dados em tabela com linhas e colunas, mas as colunas são divididas em grupos chamados famílias de colunas.You can think of a column-family data store as holding tabular data with rows and columns, but the columns are divided into groups known as column families. Cada família de colunas contém um conjunto de colunas que estão logicamente relacionados e de que é normalmente obtido ou manipulado como uma unidade.Each column family holds a set of columns that are logically related and are typically retrieved or manipulated as a unit. Outros dados que são acedidos 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, podem ser adicionadas colunas novas dinamicamente e as linhas podem ser dispersas (ou seja, uma linha não tem de 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 seguinte 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 têm a mesma chave de linha em cada família de colunas.The data for a single entity has the same row key in each column family. Esta estrutura, em que as linhas de um determinado objeto numa família de colunas podem variar dinamicamente, é uma vantagem importante da abordagem de família de colunas, essa forma de arquivo de dados seja altamente adequada para armazenar dados com esquemas diferentes.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 data with varying schemas.

Exemplo de dados de família de colunas

Ao contrário de um arquivo chave/valor ou uma base de dados do documento, a maioria das bases de dados de família de colunas fisicamente armazenam dados por ordem de chave, em vez de cálculo de um hash.Unlike a key/value store or a document database, most column-family databases physically store data in key order, rather than by computing a hash. A chave de linha é considerada o índice principal e permite o acesso com base na chave através de uma chave específica ou um intervalo de chaves.The row key is considered the primary index and enables key-based access via a specific key or a range of keys. Algumas implementações permitem-lhe criar índices secundários em colunas específicas numa família de colunas.Some implementations allow you to create secondary indexes over specific columns in a column family. Índices secundários permitem-lhe obter os dados pelo valor das colunas, em vez de chave de linha.Secondary indexes let you retrieve data by columns value, rather than row key.

Em disco, todas as colunas dentro de uma família de colunas são armazenadas em conjunto no mesmo ficheiro, com um determinado número de linhas em cada arquivo.On disk, all of the columns within a column family are stored together in the same file, with a certain number of rows in each file. Com grandes conjuntos de dados, essa abordagem cria uma vantagem de desempenho ao reduzir a quantidade de dados que precisam ser lidos do disco, quando apenas algumas colunas são consultadas em conjunto, ao mesmo tempo.With large data sets, this approach creates a performance benefit by reducing the amount of data that needs to be read from disk when only a few columns are queried together at a time.

Operações de leitura e escrita para uma linha são normalmente atômicas dentro de uma família de coluna única, embora algumas implementações fornecem atomicidade entre a linha inteira, que abrange várias famílias de colunas.Read and write operations for a row are usually atomic within a single column family, although some implementations provide atomicity across the entire row, spanning multiple column families.

Serviço do Azure relevante:Relevant Azure service:

Arquivos de dados de chave/valorKey/value data stores

Os arquivos de chaves/valores são essencialmente uma grande tabela hash.A key/value store is essentially a large hash table. Cada valor de dados é associado a uma chave única e o arquivo de chaves/valores utiliza essa chave para armazenar os dados, mediante a utilização de um algoritmo hash adequado.You associate each data value with a unique key, and the key/value store uses this key to store the data by using an appropriate hashing function. O algoritmo hash é selecionado para fornecer uma distribuição uniforme das chaves com hash no armazenamento de dados.The hashing function is selected to provide an even distribution of hashed keys across the data storage.

A maioria dos arquivos de chaves/valores suportam apenas operações de consulta simples, inserção e eliminação.Most key/value stores only support simple query, insert, and delete operations. Para modificar um valor (parcial ou totalmente), as aplicações têm de substituir os dados atuais pelo valor inteiro.To modify a value (either partially or completely), an application must overwrite the existing data for the entire value. Na maioria das implementações, ler ou escrever um valor único é uma operação atómica.In most implementations, reading or writing a single value is an atomic operation. Se o valor for grande, a escrita pode demorar algum tempo.If the value is large, writing may take some time.

As aplicações podem armazenar dados arbitrários como conjuntos de valores, embora alguns arquivos de chaves/valores imponham limites ao tamanho máximo dos valores.An application can store arbitrary data as a set of values, although some key/value stores impose limits on the maximum size of values. Os valores armazenados são opacos para o software de sistema de armazenamento.The stored values are opaque to the storage system software. As aplicações têm de fornecer e interpretar todas as informações do esquema.Any schema information must be provided and interpreted by the application. Essencialmente, os valores são blobs e o arquivo de chaves/valores simplesmente obtém ou armazena o valor de acordo com a chave.Essentially, values are blobs and the key/value store simply retrieves or stores the value by key.

Exemplo de dados num armazenamento de chave/valor

Arquivos de chaves/valores são altamente otimizados para aplicações que fazem pesquisas simples usando o valor da chave ou por um intervalo de chaves, mas são menos adequados para sistemas que precisam para consultar dados em tabelas diferentes de chaves/valores, como o ingresso em dados em múltiplas tabelas.Key/value stores are highly optimized for applications performing simple lookups using the value of the key, or by a range of keys, but are less suitable for systems that need to query data across different tables of keys/values, such as joining data across multiple tables.

Arquivos de chaves/valores também não estão otimizados para cenários em que consultar ou filtrar por valores de chave não é importante, em vez de fazer pesquisas com base apenas em chaves.Key/value stores are also not optimized for scenarios where querying or filtering by non-key values is important, rather than performing lookups based only on keys. Por exemplo, com uma base de dados relacional, pode encontrar um registo com uma cláusula WHERE para filtrar as colunas sem chave, mas arquivos de chaves/valores normalmente não têm este tipo de capacidade de pesquisa para os valores de ou, se o fizerem requer uma análise lenta de todos os valores.For example, with a relational database, you can find a record by using a WHERE clause to filter the non-key columns, but key/values stores usually do not have this type of lookup capability for values, or if they do it requires a slow scan of all values.

Um arquivo de chaves/valores individual pode ser extremamente dimensionável, pois o arquivo de dados pode distribuir os dados facilmente para vários nós em máquinas 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 Azure relevantes:Relevant Azure services:

Arquivos de dados do gráficoGraph data stores

Um arquivo de dados do gráfico faz a gestão de dois tipos de informações, nós e limites.A graph data store manages two types of information, nodes and edges. Nós representam entidades e limites especificam as relações entre essas entidades.Nodes represent entities, and edges specify the relationships between these entities. Os nós e os limites podem ter propriedades que disponibilizam informações sobre os mesmos, de forma semelhante às colunas em tabelas.Both nodes and edges can have properties that provide information about that node or edge, similar to columns in a table. Os limites também podem ter uma direção, a qual indica a natureza da relação.Edges can also have a direction indicating the nature of the relationship.

A finalidade de um arquivo de dados do gráfico é permitir que um aplicativo para fazer consultas eficientes que atravessem a rede de nós e limites e analisar as relações entre entidades.The purpose of a graph data store is to allow an application to efficiently perform queries that traverse the network of nodes and edges, and to analyze the relationships between entities. O diagrama seguinte mostra os dados de pessoal de uma organização estruturados como gráfico.The following diagram shows an organization's personnel data structured as a graph. As entidades são os funcionários e os departamentos e os limites indicam as relações hierárquicas e o departamento em que os funcionários trabalham.The entities are employees and departments, and the edges indicate reporting relationships and the department in which employees work. Neste gráfico, as setas nos limites mostram a direção das relações.In this graph, the arrows on the edges show the direction of the relationships.

Exemplo de dados num armazenamento de dados do gráfico

Com esta estrutura, é muito fácil fazer consultas como “Encontrar todos os funcionários que respondem direta ou indiretamente à Sarah?” ou “Quem trabalha no mesmo departamento do 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?" Em gráficos grandes que tenham muitas entidades e relações, pode fazer análises muito complexas rapidamente.For large graphs with lots of entities and relationships, you can perform very complex analyses very quickly. Muitas bases de dados de gráficos disponibilizam uma linguagem de consultas que pode utilizar para atravessar uma rede de relações de forma eficiente.Many graph databases provide a query language that you can use to traverse a network of relationships efficiently.

Serviço do Azure relevante:Relevant Azure service:

Armazena os dados de séries de tempoTime series data stores

Dados de séries de tempo são um conjunto de valores organizados por hora e uma hora de arquivo de dados de série é otimizado para este tipo de dados.Time series data is a set of values organized by time, and a time series data store is optimized for this type of data. Arquivos de dados de série de tempo tem de suportar um número muito elevado de escritas, pois normalmente recolhem grandes quantidades de dados em tempo real de um grande número de origens.Time series data stores must support a very high number of writes, as they typically collect large amounts of data in real time from a large number of sources. Arquivos de dados de série de tempo são otimizados para armazenar dados de telemetria.Time series data stores are optimized for storing telemetry data. Os cenários incluem sensores de IoT ou contadores de aplicações/sistemas.Scenarios include IoT sensors or application/system counters. As atualizações são raras e eliminações são, muitas vezes, feitas em operações em massa.Updates are rare, and deletes are often done as bulk operations.

Exemplo de dados de séries de tempo

Embora os registos escritos numa base de dados de séries de tempo são geralmente pequenos, frequentemente, há um grande número de registos e tamanho total dos dados pode aumentar 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. Dados de séries de tempo também armazena identificador fora de ordem que chegam atrasadas dados e, de pontos de dados e otimizações para consultas descritas em termos de janelas de tempo de indexação automática.Time series data stores also handle out-of-order and late-arriving data, automatic indexing of data points, and optimizations for queries described in terms of windows of time. Esse último recurso permite que as consultas para encontrar rapidamente milhões de pontos de dados e de vários fluxos de dados, para oferecer suporte à visualizações de série de tempo, o que é uma maneira comum esse tempo, dados de séries são consumidos.This last feature enables queries to run across millions of data points and multiple data streams quickly, in order to support time series visualizations, which is a common way that time series data is consumed.

Para obter mais informações, consulte soluções de série de tempoFor more information, see Time series solutions

Serviços do Azure relevantes:Relevant Azure services:

Arquivos de dados de objetosObject data stores

Arquivos de dados de objeto são otimizados para armazenar e obter objetos binários grandes ou os blobs, como imagens, ficheiros de texto, fluxos de áudio e vídeos, objetos de dados de aplicações grandes e documentos e imagens de disco da máquina virtual.Object data stores are optimized for storing and retrieving large binary objects or blobs such as images, text files, video and audio streams, large application data objects and documents, and virtual machine disk images. Consiste num objeto de dados armazenados, alguns metadados e um ID exclusivo para acessar o objeto.An object consists of the stored data, some metadata, and a unique ID for accessing the object. Os arquivos de objetos foram concebidos para suportar ficheiros individualmente muito grandes, e fornecer grandes quantidades de armazenamento total para gerir todos os ficheiros.Object stores are designed to support files that are individually very large, as well provide large amounts of total storage to manage all files.

Exemplo de dados de objetos

Alguns arquivos de dados do objeto replicar um determinado blob em vários nós de servidor, que permite que as leituras rápidas paralelas.Some object data stores replicate a given blob across multiple server nodes, which enables fast parallel reads. Isso por sua vez, permite a consulta de escalamento horizontal dos dados contidos em ficheiros grandes, uma vez que vários processos, normalmente em execução em diferentes servidores, podem cada consultar o ficheiro de dados grandes em simultâneo.This in turn enables the scale-out querying of data contained in large files, because multiple processes, typically running on different servers, can each query the large data file simultaneously.

Um caso especial dos arquivos de dados de objeto é a partilha de ficheiros de rede.One special case of object data stores is the network file share. Utilizar partilhas de ficheiros permite que os ficheiros para ser acedido através de uma rede através de protocolos de rede padrão, como o bloco de mensagem de servidor (SMB).Using file shares enables files to be accessed across a network using standard networking protocols like server message block (SMB). Devido a segurança adequada e mecanismos de controle de acesso simultâneo, partilha de dados desta forma pode permitir aos serviços distribuídos fornecer acesso a dados altamente dimensionável para operações de nível básicos, baixas, como de leitura simple e pedidos de escrita.Given appropriate security and concurrent access control mechanisms, sharing data in this way can enable distributed services to provide highly scalable data access for basic, low level operations such as simple read and write requests.

Serviços do Azure relevantes:Relevant Azure services:

Arquivos de dados do índice externoExternal index data stores

Arquivos de dados do índice externo fornecem a capacidade de pesquisar informações presentes em outros armazenamentos de dados e serviços.External index data stores provide the ability to search for information held in other data stores and services. Um índice externo age como um índice secundário para qualquer arquivo de dados e pode ser usado para indexar gigantescos volumes de dados e fornecer quase em tempo real acesso a esses índices.An external index acts as a secondary index for any data store, and can be used to index massive volumes of data and provide near real-time access to these indexes.

Por exemplo, pode ter ficheiros de texto armazenados num sistema de ficheiros.For example, you might have text files stored in a file system. Localizar um ficheiro ao seu arquivo de caminho é rápido, mas pesquisar com base no conteúdo do ficheiro exigiria uma análise de todos os ficheiros, que é lenta.Finding a file by its file path is quick, but searching based on the contents of the file would require a scan of all of the files, which is slow. Um índice externo permite-lhe criar índices de pesquisa secundário e, em seguida, localizar rapidamente o caminho para os ficheiros que correspondem aos seus critérios.An external index lets you create secondary search indexes and then quickly find the path to the files that match your criteria. Outro exemplo de aplicação de um índice externo é com a chave/valor armazena esse único índice pela chave.Another example application of an external index is with key/value stores that only index by the key. Pode criar um índice secundário com base nos valores de dados e procurar rapidamente a chave que identifica de forma exclusiva cada item correspondente.You can build a secondary index based on the values in the data, and quickly look up the key that uniquely identifies each matched item.

Exemplo de dados de pesquisa

Os índices são criados ao executar um processo de indexação.The indexes are created by running an indexing process. Isso pode ser efetuado utilizando um modelo de extração, acionado pelo arquivo de dados ou com um modelo push, iniciado pelo código da aplicação.This can be performed using a pull model, triggered by the data store, or using a push model, initiated by application code. Índices podem ser multidimensionais e suportam pesquisas de texto livre em grandes volumes de dados de texto.Indexes can be multidimensional and may support free-text searches across large volumes of text data.

Arquivos de dados do índice externo, muitas vezes, são utilizados para oferecer suporte a texto completo e pesquisa na web com base.External index data stores are often used to support full text and web based search. Nestes casos, pesquisa pode ser exata ou difusa.In these cases, searching can be exact or fuzzy. As pesquisas difusas localizam documentos que correspondem a um conjunto de termos e calculam o nível de correspondência entre os mesmos.A fuzzy search finds documents that match a set of terms and calculates how closely they match. Alguns índices externos também suportam análise linguística que pode devolver correspondências com base em sinónimos, expansões de género (por exemplo, correspondentes "cachorros" para "animais de estimação") e de Lematização (por exemplo, pesquisa de "executar" também correspondências "foi executado" e "em execução").Some external indexes also support linguistic analysis that can return matches based on synonyms, genre expansions (for example, matching "dogs" to "pets"), and stemming (for example, searching for "run" also matches "ran" and "running").

Serviço do Azure relevante:Relevant Azure service:

Requisitos típicosTypical requirements

Arquivos de dados não relacionais, muitas vezes, utilizam uma arquitetura de armazenamento diferente daquele utilizado pelas bases de dados relacionais.Non-relational data stores often use a different storage architecture from that used by relational databases. Especificamente, eles tendem para não ter nenhum esquema fixa.Specifically, they tend towards having no fixed schema. Além disso, eles tendem a não suporta transações, caso contrário, restringir o âmbito de transações, e eles geralmente não incluem índices secundários por motivos de escalabilidade.Also, they tend not to support transactions, or else restrict the scope of transactions, and they generally don't include secondary indexes for scalability reasons.

A seguir compara os requisitos para cada um dos arquivos de dados não relacionais:The following compares the requirements for each of the non-relational data stores:

RequisitoRequirement Dados de documentosDocument data Dados de família de colunasColumn-family data Dados de chave/valorKey/value data Dados de gráficosGraph data
NormalizaçãoNormalization DesnormalizadoDenormalized DesnormalizadoDenormalized DesnormalizadoDenormalized NormalizadosNormalized
EsquemaSchema Esquema na leituraSchema on read Famílias de colunas definidas na escrita, esquema de coluna na leituraColumn families defined on write, column schema on read Esquema na leituraSchema on read Esquema na leituraSchema on read
Consistência (entre transações simultâneas)Consistency (across concurrent transactions) Consistência adaptável, garantias de nível de documentoTunable consistency, document-level guarantees Família de colunas–garantias de nívelColumn-family–level guarantees Garantias de nível de chaveKey-level guarantees Garantias de nível de gráficoGraph-level guarantees
Atomicidade (escopo de transação)Atomicity (transaction scope) ColeçãoCollection TabelaTable TabelaTable GraphGraph
Estratégia de bloqueioLocking Strategy Otimista (sem bloqueio)Optimistic (lock free) Pessimista (bloqueios de linha)Pessimistic (row locks) Otimista (ETag)Optimistic (ETag)
Padrão de acessoAccess pattern Acesso aleatórioRandom access Agregados no tall/toda a dadosAggregates on tall/wide data Acesso aleatórioRandom access Acesso aleatórioRandom access
IndexaçãoIndexing Índices primários e secundáriosPrimary and secondary indexes Índices primários e secundáriosPrimary and secondary indexes Apenas índice primárioPrimary index only Índices primários e secundáriosPrimary and secondary indexes
Forma de dadosData shape DocumentoDocument Tabela com as famílias de coluna que contém colunasTabular with column families containing columns Chave e valorKey and value Gráfico que contém arestas e vérticesGraph containing edges and vertices
DispersosSparse SimYes SimYes SimYes NãoNo
Toda a (muitas colunas/atributos)Wide (lots of columns/attributes) SimYes SimYes NãoNo NãoNo
Tamanho de DatumDatum size Pequeno (KBs) para médio (baixa MB)Small (KBs) to medium (low MBs) Média (MB) para o grande (GBs baixas)Medium (MBs) to Large (low GBs) Pequeno (KBs)Small (KBs) Pequeno (KBs)Small (KBs)
Em geral dimensionamento máximoOverall Maximum Scale Muito grande (PBs)Very Large (PBs) Muito grande (PBs)Very Large (PBs) Muito grande (PBs)Very Large (PBs) Grande (TB)Large (TBs)
RequisitoRequirement Dados de séries de tempoTime series data Dados de objetosObject data Dados de índice externoExternal index data
NormalizaçãoNormalization NormalizadosNormalized DesnormalizadoDenormalized DesnormalizadoDenormalized
EsquemaSchema Esquema na leituraSchema on read Esquema na leituraSchema on read Esquema na escritaSchema on write
Consistência (entre transações simultâneas)Consistency (across concurrent transactions) N/AN/A N/DN/A N/AN/A
Atomicidade (escopo de transação)Atomicity (transaction scope) N/AN/A ObjectObject N/AN/A
Estratégia de bloqueioLocking Strategy N/AN/A Pessimista (blob bloqueios)Pessimistic (blob locks) N/AN/A
Padrão de acessoAccess pattern Acesso aleatório e a agregaçãoRandom access and aggregation Acesso seqüencialSequential access Acesso aleatórioRandom access
IndexaçãoIndexing Índices primários e secundáriosPrimary and secondary indexes Apenas índice primárioPrimary index only N/AN/A
Forma de dadosData shape TabularTabular BLOBs e metadadosBlob and metadata DocumentoDocument
DispersosSparse NãoNo N/AN/A NãoNo
Toda a (muitas colunas/atributos)Wide (lots of columns/attributes) NãoNo SimYes SimYes
Tamanho de DatumDatum size Pequeno (KBs)Small (KBs) Grandes (GBs) para muito grandes (TB)Large (GBs) to Very Large (TBs) Pequeno (KBs)Small (KBs)
Em geral dimensionamento máximoOverall Maximum Scale Grande (baixa TB)Large (low TBs) Muito grande (PBs)Very Large (PBs) Grande (baixa TB)Large (low TBs)