Criar um banco de dados no Azure Cosmos DB for NoSQL por meio do Python

APLICA-SE A: NoSQL

Os bancos de dados no Azure Cosmos DB são unidades de gerenciamento para um ou mais contêineres. Antes de criar ou gerenciar contêineres, você deve criar um banco de dados.

Nomear um banco de dados

No Azure Cosmos DB, um banco de dados é análogo a um namespace. Quando você cria um banco de dados, o nome do banco de dados forma um segmento do URI usado para acessar o recurso de banco de dados e todos os recursos filho.

Aqui estão algumas regras rápidas ao nomear um banco de dados:

  • Manter os nomes dos bancos de dados entre 3 e 63 caracteres
  • Os nomes dos bancos de dados só podem conter letras minúsculas, números ou o caractere de traço (-).
  • Os nomes dos bancos de dados devem começar com uma letra minúscula ou um número.

Depois de criado, o URI de um banco de dados estará nesse formato:

https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>

Criar um banco de dados

Depois de criar o CosmosClient, use-o para criar um Banco de Dados a partir de duas chamadas diferentes:

  • createIfNotExists – Criará um banco de dados, se não existir. Se existir, retorna o banco de dados.
  • create – cria um banco de dados. Se ele existir, retorne o status do erroCode.
const databaseName = 'myDb';

// Possible results:
// Create then return database
// Return existing database
// Return error statusCode
const {statusCode, database } = await client.databases.createIfNotExists({ id: databaseName });

// Possible results: 
// Create then return database
// Return error statusCode, reason includes database already exists
const {statusCode, database } = await client.databases.create({ id: databaseName });

O statusCode é um código de resposta HTTP. Uma resposta bem-sucedida está no intervalo de 200 a 299.

Acessar um banco de dados

Um banco de dados é acessado a partir do objeto Database diretamente ou por meio de um resultado de consulta do CosmosClient.

const databaseName = 'myDb';

// Direct - assumes database already exists
const { database, statusCode } = await client.database(databaseName);

// Query - assumes database already exists   
const { resources } = await client.databases
.query({
    query: `SELECT * FROM root r where r.id =@dbId`,
    parameters: [
    {
        name: '@dbId',
        value: databaseName
    }
    ]
})
.fetchAll();

Acesso por objeto:

  • Bancos de dados (plural): usados para criar novos bancos de dados ou consultar/ler todos os bancos de dados.
  • Banco de dados (singular): usado para ler, atualizar ou excluir um banco de dados existente por ID ou acessar contêineres que pertencem a esse banco de dados.

Excluir um banco de dados

Depois de obter o objeto Database, você poderá usá-lo para excluir o banco de dados:

const {statusCode } = await database.delete();

O statusCode é um código de resposta HTTP. Uma resposta bem-sucedida está no intervalo de 200 a 299.

Próximas etapas

Agora que você criou um banco de dados, use o próximo guia para criar contêineres.