DocumentDB: NoSQL JSON Database

DocumentDB: NoSQL JSON Database

O que é DocumentDB?

DocumentDB é um serviço de banco de dados NoSQL totalmente gerenciado, construído para desempenho rápido e previsível, alta disponibilidade, escala elástica, distribuição global e facilidade de desenvolvimento. Como um banco de dados NoSQL livre de esquema, o DocumentDB fornece recursos de consulta SQL ricos e familiares com baixas latências consistentes em dados JSON – garantindo que 99% de suas leituras sejam atendidas em 10 milissegundos e 99% de suas escritas sejam atendidas em 15 milissegundos. Esses benefícios exclusivos fazem do DocumentDB um ótimo ajuste para web, mobile, gaming e IoT, e muitos outros aplicativos que precisam de escala contínua e replicação global.

Como posso saber mais sobre o DocumentDB?

Veja o vídeo O que é DocumentDB

 
Quais recursos e principais recursos o DocumentDB oferece?

O Azure DocumentDB oferece os seguintes recursos e benefícios principais:


• Processamento e armazenamento escaláveis de forma escalável: amplie ou reduza facilmente o banco de dados JDON do DocumentDB para atender às necessidades do seu aplicativo. Seus dados são armazenados em discos de estado sólido (SSD) para latências previsíveis baixas. O DocumentDB suporta contêineres para armazenar dados JSON chamados de coleções que podem escalar para tamanhos de armazenamento praticamente ilimitados e throughput provisionado. Você pode escalar o DocumentDB de forma elástica com desempenho previsível de forma transparente à medida que seu aplicativo cresce.

• Replicação multi-região: o DocumentDB replica de forma transparente os seus dados em todas as regiões associadas à sua conta DocumentDB, permitindo-lhe desenvolver aplicações que exijam acesso global a dados, proporcionando compensações entre consistência, disponibilidade e desempenho, todas com garantias correspondentes. O DocumentDB fornece failover regional transparente com APIs multi-homing e a capacidade de escalonar elasticamente o throughput eo armazenamento em todo o mundo. Saiba mais em Distribuir dados globalmente com DocumentDB.

• Consultas ad hoc com sintaxe SQL familiar: Armazene documentos JSON heterogêneos dentro do DocumentDB e consulte esses documentos por meio de uma sintaxe SQL familiar. O DocumentDB utiliza uma tecnologia de indexação altamente sincronizada, livre de bloqueio, log para indexar automaticamente todo o conteúdo do documento. Isso permite consultas em tempo real avançadas sem a necessidade de especificar dicas de esquema, índices secundários ou modos de exibição. Saiba mais em Query DocumentDB.

• Execução de JavaScript no banco de dados: Expresse a lógica do aplicativo como procedimentos armazenados, gatilhos e funções definidas pelo usuário (UDFs) usando JavaScript padrão. Isso permite que sua lógica de aplicativo para operar sobre dados sem se preocupar sobre a incompatibilidade entre o aplicativo e o esquema de banco de dados. O DocumentDB fornece execução transacional completa da lógica do aplicativo JavaScript diretamente dentro do mecanismo de banco de dados. A integração profunda do JavaScript permite a execução de operações INSERT, REPLACE, DELETE e SELECT dentro de um programa JavaScript como uma transação isolada. Saiba mais na programação do lado do servidor do DocumentDB.
• Níveis de consistência ajustáveis: Selecione entre quatro níveis de consistência bem definidos para obter uma compensação ideal entre consistência e desempenho. Para consultas e operações de leitura, o DocumentDB oferece quatro níveis de consistência distintos: forte, limitado-staleness, sessão e eventual. Esses níveis de consistência bem definidos e granulares permitem que você faça trade-offs sólidos entre consistência, disponibilidade e latência. Saiba mais em Uso de níveis de consistência para maximizar a disponibilidade e o desempenho no DocumentDB.

• Totalmente gerenciado: Elimine a necessidade de gerenciar recursos de banco de dados e máquinas. Como um serviço totalmente gerenciado do Microsoft Azure, você não precisa gerenciar máquinas virtuais, implantar e configurar software, gerenciar escalas ou lidar com upgrades de camada de dados complexos. Cada banco de dados é automaticamente feito backup e protegido contra falhas regionais. Você pode facilmente adicionar uma conta DocumentDB e fornecer capacidade conforme você precisar, permitindo que você se concentre em seu aplicativo em vez de operar e gerenciar seu banco de dados.

• Abrir por design: Comece rapidamente usando as habilidades e ferramentas existentes. A programação contra o DocumentDB é simples, acessível e não exige que você adote novas ferramentas ou adira a extensões personalizadas para JSON ou JavaScript. Você pode acessar toda a funcionalidade do banco de dados, incluindo CRUD, consulta e processamento de JavaScript através de uma simples interface HTTP RESTful. DocumentDB abraça formatos existentes, idiomas e padrões, oferecendo capacidades de banco de dados de alto valor em cima deles.

• Indexação automática: Por padrão, o DocumentDB indexa automaticamente todos os documentos no banco de dados e não espera ou requer nenhum esquema ou criação de índices secundários. Não quer indexar tudo? Não se preocupe, você pode optar por sair dos caminhos em seus arquivos JSON também.

Como o DocumentDB gerencia os dados?


O Azure DocumentDB gerencia dados JSON através de recursos de banco de dados bem definidos. Esses recursos são replicados para alta disponibilidade e são exclusivamente endereçáveis por seu URI lógico. O DocumentDB oferece um modelo de programação RESTful baseado em HTTP simples para todos os recursos.

A conta de banco de dados DocumentDB é um namespace exclusivo que dá acesso ao Azure DocumentDB. Antes de criar uma conta de banco de dados, você deve ter uma assinatura do Azure, que lhe dá acesso a uma variedade de serviços Azure.

Todos os recursos no DocumentDB são modelados e armazenados como documentos JSON. Os recursos são gerenciados como itens, que são documentos JSON contendo metadados e como feeds que são conjuntos de itens. Conjuntos de itens estão contidos em seus respectivos feeds.

A imagem abaixo mostra as relações entre os recursos DocumentDB:

json-database-resources1

Uma conta de banco de dados consiste em um conjunto de bancos de dados, cada um contendo múltiplas coleções, cada um dos quais pode conter procedimentos armazenados, triggers, UDFs, documentos e anexos relacionados. Um banco de dados também tem usuários associados, cada um com um conjunto de permissões para acessar várias outras coleções, procedimentos armazenados, triggers, UDFs, documentos ou anexos. Enquanto bancos de dados, usuários, permissões e coleções são recursos definidos pelo sistema com esquemas bem conhecidos – documentos, procedimentos armazenados, triggers, UDFs e anexos contêm conteúdo JSON arbitrário definido pelo usuário.

Como posso desenvolver aplicativos com DocumentDB?

O Azure DocumentDB expõe recursos através de uma API REST que pode ser chamada por qualquer linguagem capaz de fazer solicitações HTTP / HTTPS. Além disso, o DocumentDB oferece bibliotecas de programação para vários idiomas populares. Essas bibliotecas simplificam muitos aspectos do trabalho com o Azure DocumentDB, manipulando detalhes como cache de endereços, gerenciamento de exceções, tentativas automáticas e assim por diante. As bibliotecas estão atualmente disponíveis para os seguintes idiomas e plataformas:

 

Download Documentation
.NET SDK .NET library
Node.js SDK Node.js library
Java SDK Java library
JavaScript SDK JavaScript library
n/a Server-side JavaScript SDK
Python SDK Python library

Usando o Azure DocumentDB Emulator, você pode desenvolver e testar seu aplicativo localmente, sem criar uma assinatura Azure ou incorrer em custos. Quando estiver satisfeito com a forma como a sua aplicação está a trabalhar no Emulador DocumentDB, pode mudar para utilizar uma conta Azure DocumentDB na nuvem.

Além das operações básicas de criação, leitura, atualização e exclusão, o DocumentDB fornece uma interface de consulta SQL rica para recuperar documentos JSON e suporte ao lado do servidor para a execução transacional de lógica de aplicativo JavaScript. As interfaces de consulta e execução de scripts estão disponíveis em todas as bibliotecas de plataformas, bem como nas APIs REST.

Consulta SQL

O Azure DocumentDB suporta a consulta de documentos usando uma linguagem SQL, que está enraizada no sistema de tipos JavaScript e expressões com suporte para consultas relacionais, hierárquicas e espaciais. A linguagem de consulta DocumentDB é uma interface simples mas poderosa para consultar documentos JSON. A linguagem suporta um subconjunto de gramática SQL ANSI e adiciona profunda integração de objetos JavaScript, arrays, construção de objeto e invocação de função. DocumentDB fornece seu modelo de consulta sem qualquer esquema explícito ou dicas de indexação do desenvolvedor.

As Funções Definidas pelo Usuário (UDFs) podem ser registradas com o DocumentDB e referenciadas como parte de uma consulta SQL, estendendo assim a gramática para suportar a lógica do aplicativo personalizado. Estes UDFs são escritos como programas JavaScript e executados dentro do banco de dados.

Para desenvolvedores .NET, DocumentDB também oferece um provedor de consulta LINQ como parte do .NET SDK.

Transações e execução de JavaScript

DocumentDB permite que você escreva a lógica da aplicação como programas nomeados escritos inteiramente em JavaScript. Esses programas são registrados para uma coleção e podem emitir operações de banco de dados nos documentos dentro de uma coleção determinada. O JavaScript pode ser registrado para execução como um gatilho, procedimento armazenado ou função definida pelo usuário. Triggers e procedimentos armazenados podem criar, ler, atualizar e excluir documentos enquanto funções definidas pelo usuário executar como parte da lógica de execução de consulta sem acesso de gravação para a coleção.

A execução de JavaScript no DocumentDB é modelada após os conceitos suportados pelos sistemas de banco de dados relacional, com o JavaScript como uma substituição moderna para o Transact-SQL. Toda a lógica JavaScript é executada dentro de uma transação ACID ambiente com isolamento de instantâneo. Durante o curso de sua execução, se o JavaScript lança uma exceção, então toda a transação é abortada.

You must be logged in to post a comment.