Trabalhe com bases de dados, contentores e itens em Azure Cosmos DBWork with databases, containers, and items in Azure Cosmos DB

Depois de criar uma conta DB Azure Cosmos sob a sua assinatura Azure, pode gerir dados na sua conta criando bases de dados, contentores e itens.After you create an Azure Cosmos DB account under your Azure subscription, you can manage data in your account by creating databases, containers, and items. Este artigo descreve cada uma dessas entidades.This article describes each of these entities.

A imagem a seguir mostra a hierarquia de diferentes entidades numa conta DB da Azure Cosmos:The following image shows the hierarchy of different entities in an Azure Cosmos DB account:

Entidades de conta Azure Cosmos

Bases de dados do Azure CosmosAzure Cosmos databases

Pode criar uma ou várias bases de dados da Azure Cosmos na sua conta.You can create one or multiple Azure Cosmos databases under your account. Uma base de dados é análoga a um espaço de nome.A database is analogous to a namespace. Uma base de dados é a unidade de gestão de um conjunto de contentores Azure Cosmos.A database is the unit of management for a set of Azure Cosmos containers. A tabela a seguir mostra como uma base de dados Azure Cosmos é mapeada para várias entidades específicas da API:The following table shows how an Azure Cosmos database is mapped to various API-specific entities:

Entidade Azure CosmosAzure Cosmos entity API SQLSQL API API de CassandraCassandra API API do Azure Cosmos DB para MongoDBAzure Cosmos DB API for MongoDB API do GremlinGremlin API API de TabelaTable API
Base de dados Azure CosmosAzure Cosmos database Base de DadosDatabase Espaço-chaveKeyspace Base de DadosDatabase Base de DadosDatabase NDNA

Nota

Com as contas API de tabela, quando cria a sua primeira tabela, uma base de dados predefinida é criada automaticamente na sua conta Azure Cosmos.With Table API accounts, when you create your first table, a default database is automatically created in your Azure Cosmos account.

Operações numa base de dados da Azure CosmosOperations on an Azure Cosmos database

Pode interagir com uma base de dados Azure Cosmos com APIs Azure Cosmos, conforme descrito na tabela seguinte:You can interact with an Azure Cosmos database with Azure Cosmos APIs as described in the following table:

OperaçãoOperation CLI do AzureAzure CLI API SQLSQL API API de CassandraCassandra API API do Azure Cosmos DB para MongoDBAzure Cosmos DB API for MongoDB API do GremlinGremlin API API de TabelaTable API
Enumerar todas as bases de dadosEnumerate all databases SimYes SimYes Sim (base de dados está mapeada para um espaço-chave)Yes (database is mapped to a keyspace) SimYes NDNA NDNA
Ler base de dadosRead database SimYes SimYes Sim (base de dados está mapeada para um espaço-chave)Yes (database is mapped to a keyspace) SimYes NDNA NDNA
Criar nova base de dadosCreate new database SimYes SimYes Sim (base de dados está mapeada para um espaço-chave)Yes (database is mapped to a keyspace) SimYes NDNA NDNA
Base de dados de atualizaçãoUpdate database SimYes SimYes Sim (base de dados está mapeada para um espaço-chave)Yes (database is mapped to a keyspace) SimYes NDNA NDNA

Contentores do Azure CosmosAzure Cosmos containers

Um recipiente Azure Cosmos é a unidade de escalabilidade tanto para produção e armazenamento a provisionados.An Azure Cosmos container is the unit of scalability both for provisioned throughput and storage. Um recipiente é horizontalmente dividido e depois replicado em várias regiões.A container is horizontally partitioned and then replicated across multiple regions. Os itens que adiciona ao recipiente e a produção que fornece nele são automaticamente distribuídos por um conjunto de divisórias lógicas baseadas na tecla de partição.The items that you add to the container and the throughput that you provision on it are automatically distributed across a set of logical partitions based on the partition key. Para saber mais sobre as chaves de partição e partição, consulte os dados da partição.To learn more about partitioning and partition keys, see Partition data.

Quando cria um recipiente Azure Cosmos, configura a produção num dos seguintes modos:When you create an Azure Cosmos container, you configure throughput in one of the following modes:

  • Modo de produção dedicado: A produção a prevista num contentor é exclusivamente reservada a esse contentor e é apoiada pelas AEA.Dedicated provisioned throughput mode: The throughput provisioned on a container is exclusively reserved for that container and it is backed by the SLAs. Para saber mais, consulte Como providenciar a produção num contentor Azure Cosmos.To learn more, see How to provision throughput on an Azure Cosmos container.

  • Modo de produção partilhado: Estes contentores partilham a produção a provisionada com os outros contentores na mesma base de dados (excluindo os contentores que tenham sido configurados com produção dedicada).Shared provisioned throughput mode: These containers share the provisioned throughput with the other containers in the same database (excluding containers that have been configured with dedicated provisioned throughput). Por outras palavras, o rendimento previsto na base de dados é partilhado entre todos os contentores de "produção partilhada".In other words, the provisioned throughput on the database is shared among all the “shared throughput” containers. Para saber mais, consulte como obter a produção numa base de dados da Azure Cosmos.To learn more, see How to provision throughput on an Azure Cosmos database.

Nota

Só pode configurar a produção partilhada e dedicada quando estiver a criar a base de dados e o contentor.You can configure shared and dedicated throughput only when creating the database and container. Para mudar do modo de débito dedicado para o modo de débito partilhado (e vice-versa) após o contentor ser criado, precisará de criar um novo contentor e migrar os dados para esse contentor.To switch from dedicated throughput mode to shared throughput mode (and vice versa) after the container is created, you have to create a new container and migrate the data to the new container. Pode migrar os dados utilizando a função de feed de alteração DB do Azure Cosmos.You can migrate the data by using the Azure Cosmos DB change feed feature.

Um recipiente Azure Cosmos pode escalar elasticamente, quer crie recipientes utilizando modos de produção dedicados ou partilhados.An Azure Cosmos container can scale elastically, whether you create containers by using dedicated or shared provisioned throughput modes.

Um recipiente Azure Cosmos é um recipiente de itens agnósticos.An Azure Cosmos container is a schema-agnostic container of items. Os artigos num recipiente podem ter esquemas arbitrários.Items in a container can have arbitrary schemas. Por exemplo, um item que represente uma pessoa e um item que represente um automóvel pode ser colocado no mesmo recipiente.For example, an item that represents a person and an item that represents an automobile can be placed in the same container. Por predefinição, todos os itens que adiciona a um recipiente são automaticamente indexados sem exigir uma gestão explícita do índice ou do esquema.By default, all items that you add to a container are automatically indexed without requiring explicit index or schema management. Pode personalizar o comportamento de indexação configurando a política de indexação num recipiente.You can customize the indexing behavior by configuring the indexing policy on a container.

Pode definir Time to Live (TTL) em itens selecionados num recipiente Azure Cosmos ou para que todo o recipiente purgue graciosamente esses itens do sistema.You can set Time to Live (TTL) on selected items in an Azure Cosmos container or for the entire container to gracefully purge those items from the system. A Azure Cosmos DB elimina automaticamente os itens quando expiram.Azure Cosmos DB automatically deletes the items when they expire. Também garante que uma consulta realizada no recipiente não devolve os itens expirados dentro de um limite fixo.It also guarantees that a query performed on the container doesn't return the expired items within a fixed bound. Para saber mais, consulte o Configure TTL no seu recipiente.To learn more, see Configure TTL on your container.

Pode utilizar o feed de alteração para subscrever o registo de operações que é gerido para cada divisão lógica do seu recipiente.You can use change feed to subscribe to the operations log that is managed for each logical partition of your container. O feed de alteração fornece o registo de todas as atualizações realizadas no recipiente, juntamente com as imagens antes e depois dos itens.Change feed provides the log of all the updates performed on the container, along with the before and after images of the items. Para obter mais informações, consulte Build reative applications usando change feed.For more information, see Build reactive applications by using change feed. Também pode configurar a duração de retenção para a alteração do alimento através da política de alteração do alimento para animais no recipiente.You can also configure the retention duration for the change feed by using the change feed policy on the container.

Pode registar procedimentos armazenados, gatilhos, funções definidas pelo utilizador (UDFs)e fundir procedimentos para o seu contentor Azure Cosmos.You can register stored procedures, triggers, user-defined functions (UDFs), and merge procedures for your Azure Cosmos container.

Pode especificar uma chave única no seu recipiente Azure Cosmos.You can specify a unique key constraint on your Azure Cosmos container. Ao criar uma política chave única, você garante a singularidade de um ou mais valores por chave de partição lógica.By creating a unique key policy, you ensure the uniqueness of one or more values per logical partition key. Se criar um recipiente utilizando uma política chave única, não podem ser criados itens novos ou atualizados com valores que dupliquem os valores especificados pela restrição única da chave.If you create a container by using a unique key policy, no new or updated items with values that duplicate the values specified by the unique key constraint can be created. Para saber mais, consulte os principais constrangimentos exclusivos.To learn more, see Unique key constraints.

Um contentor Azure Cosmos é especializado em entidades específicas da API, conforme mostrado no quadro seguinte:An Azure Cosmos container is specialized into API-specific entities as shown in the following table:

Entidade Azure CosmosAzure Cosmos entity API SQLSQL API API de CassandraCassandra API API do Azure Cosmos DB para MongoDBAzure Cosmos DB API for MongoDB API do GremlinGremlin API API de TabelaTable API
Recipiente Azure CosmosAzure Cosmos container ContentorContainer TabelaTable ColeçãoCollection GraphGraph TabelaTable

Nota

Ao criar recipientes, certifique-se de que não cria dois recipientes com o mesmo nome, mas invólucros diferentes.When creating containers, make sure you don’t create two containers with the same name but different casing. Isto porque algumas partes da plataforma Azure não são sensíveis a casos, o que pode resultar em confusão/colisão de telemetria e ações em contentores com tais nomes.That’s because some parts of the Azure platform are not case-sensitive, and this can result in confusion/collision of telemetry and actions on containers with such names.

Propriedades de um contentor Azure CosmosProperties of an Azure Cosmos container

Um recipiente Azure Cosmos tem um conjunto de propriedades definidas pelo sistema.An Azure Cosmos container has a set of system-defined properties. Dependendo da API que utiliza, algumas propriedades podem não estar diretamente expostas.Depending on which API you use, some properties might not be directly exposed. A tabela a seguir descreve a lista de propriedades definidas pelo sistema:The following table describes the list of system-defined properties:

Propriedade definida pelo sistemaSystem-defined property Gerado pelo sistema ou configurável pelo utilizadorSystem-generated or user-configurable ObjetivoPurpose API SQLSQL API API de CassandraCassandra API API do Azure Cosmos DB para MongoDBAzure Cosmos DB API for MongoDB API do GremlinGremlin API API de TabelaTable API
_rid_rid Gerado pelo sistemaSystem-generated Identificador único do recipienteUnique identifier of container SimYes NãoNo NãoNo NãoNo NãoNo
_etag_etag Gerado pelo sistemaSystem-generated Etiqueta de entidade utilizada para controlo otimista da conuscçãoEntity tag used for optimistic concurrency control SimYes NãoNo NãoNo NãoNo NãoNo
_ts_ts Gerado pelo sistemaSystem-generated Última hora atualizada do tempo do recipienteLast updated timestamp of the container SimYes NãoNo NãoNo NãoNo NãoNo
_self_self Gerado pelo sistemaSystem-generated URI endereçado do contentorAddressable URI of the container SimYes NãoNo NãoNo NãoNo NãoNo
IDid Configurável pelo utilizadorUser-configurable Nome único definido pelo utilizador do recipienteUser-defined unique name of the container SimYes SimYes SimYes SimYes SimYes
indexaçãoPolíciaindexingPolicy Configurável pelo utilizadorUser-configurable Fornece a capacidade de alterar a trajetória do índice, o tipo de índice e o modo de índiceProvides the ability to change the index path, index type, and index mode SimYes NãoNo NãoNo NãoNo SimYes
TimeToLiveTimeToLive Configurável pelo utilizadorUser-configurable Fornece a capacidade de eliminar automaticamente os itens de um recipiente após um período de tempo definido.Provides the ability to delete items automatically from a container after a set time period. Para mais detalhes, consulte a hora de viver.For details, see Time to Live. SimYes NãoNo NãoNo NãoNo SimYes
mudarFeedPolicychangeFeedPolicy Configurável pelo utilizadorUser-configurable Costumava ler alterações feitas em itens num recipiente.Used to read changes made to items in a container. Para mais detalhes, consulte change feed.For details, see Change feed. SimYes NãoNo NãoNo NãoNo SimYes
exclusivoKeyPolicyuniqueKeyPolicy Configurável pelo utilizadorUser-configurable Usado para garantir a singularidade de um ou mais valores numa partição lógica.Used to ensure the uniqueness of one or more values in a logical partition. Para obter mais informações, consulte as principais restrições exclusivas.For more information, see Unique key constraints. SimYes NãoNo NãoNo NãoNo SimYes

Operações num contentor Azure CosmosOperations on an Azure Cosmos container

Um contentor Azure Cosmos suporta as seguintes operações quando utiliza qualquer uma das APIs do Cosmos Azure:An Azure Cosmos container supports the following operations when you use any of the Azure Cosmos APIs:

OperaçãoOperation CLI do AzureAzure CLI API SQLSQL API API de CassandraCassandra API API do Azure Cosmos DB para MongoDBAzure Cosmos DB API for MongoDB API do GremlinGremlin API API de TabelaTable API
Enumerar contentores numa base de dadosEnumerate containers in a database SimYes SimYes SimYes SimYes NDNA NDNA
Leia um recipienteRead a container SimYes SimYes SimYes SimYes NDNA NDNA
Criar um novo recipienteCreate a new container SimYes SimYes SimYes SimYes NDNA NDNA
Atualizar um recipienteUpdate a container SimYes SimYes SimYes SimYes NDNA NDNA
Eliminar um contentorDelete a container SimYes SimYes SimYes SimYes NDNA NDNA

Itens Azure CosmosAzure Cosmos items

Dependendo da API que utiliza, um item Azure Cosmos pode representar um documento numa coleção, uma linha numa mesa ou um nó ou borda num gráfico.Depending on which API you use, an Azure Cosmos item can represent either a document in a collection, a row in a table, or a node or edge in a graph. A tabela a seguir mostra o mapeamento de entidades específicas da API para um item Azure Cosmos:The following table shows the mapping of API-specific entities to an Azure Cosmos item:

Entidade cosmosCosmos entity API SQLSQL API API de CassandraCassandra API API do Azure Cosmos DB para MongoDBAzure Cosmos DB API for MongoDB API do GremlinGremlin API API de TabelaTable API
Item Azure CosmosAzure Cosmos item ItemItem LinhaRow DocumentoDocument Nó ou bordaNode or edge ItemItem

Propriedades de um itemProperties of an item

Cada item Azure Cosmos tem as seguintes propriedades definidas pelo sistema.Every Azure Cosmos item has the following system-defined properties. Dependendo da API que usa, alguns deles podem não estar diretamente expostos.Depending on which API you use, some of them might not be directly exposed.

Propriedade definida pelo sistemaSystem-defined property Gerado pelo sistema ou configurável pelo utilizadorSystem-generated or user-configurable ObjetivoPurpose API SQLSQL API API de CassandraCassandra API API do Azure Cosmos DB para MongoDBAzure Cosmos DB API for MongoDB API do GremlinGremlin API API de TabelaTable API
_rid_rid Gerado pelo sistemaSystem-generated Identificador único do itemUnique identifier of the item SimYes NãoNo NãoNo NãoNo NãoNo
_etag_etag Gerado pelo sistemaSystem-generated Etiqueta de entidade utilizada para controlo otimista da conuscçãoEntity tag used for optimistic concurrency control SimYes NãoNo NãoNo NãoNo NãoNo
_ts_ts Gerado pelo sistemaSystem-generated Timetamp da última atualização do itemTimestamp of the last update of the item SimYes NãoNo NãoNo NãoNo NãoNo
_self_self Gerado pelo sistemaSystem-generated URI endereçada do itemAddressable URI of the item SimYes NãoNo NãoNo NãoNo NãoNo
IDid Qualquer umEither Nome único definido pelo utilizador numa divisória lógica.User-defined unique name in a logical partition. SimYes SimYes SimYes SimYes SimYes
Propriedades arbitrárias definidas pelo utilizadorArbitrary user-defined properties Definidas pelo utilizadorUser-defined Propriedades definidas pelo utilizador representadas na representação nativa da API (incluindo JSON, BSON e CQL)User-defined properties represented in API-native representation (including JSON, BSON, and CQL) SimYes SimYes SimYes SimYes SimYes

Nota

A singularidade da id propriedade só é aplicada dentro de cada divisória lógica.Uniqueness of the id property is only enforced within each logical partition. Vários documentos podem ter a mesma id propriedade com diferentes valores-chave de partição.Multiple documents can have the same id property with different partition key values.

Operações em itensOperations on items

Os itens da Azure Cosmos suportam as seguintes operações.Azure Cosmos items support the following operations. Pode utilizar qualquer uma das APIs do Azure Cosmos para realizar as operações.You can use any of the Azure Cosmos APIs to perform the operations.

OperaçãoOperation CLI do AzureAzure CLI API SQLSQL API API de CassandraCassandra API API do Azure Cosmos DB para MongoDBAzure Cosmos DB API for MongoDB API do GremlinGremlin API API de TabelaTable API
Inserir, Substituir, Eliminar, Aumentar, LerInsert, Replace, Delete, Upsert, Read NãoNo SimYes SimYes SimYes SimYes SimYes

Próximos passosNext steps

Conheça estas tarefas e conceitos:Learn about these tasks and concepts: