Partage via


Créer une base de données dans Azure Cosmos DB for NoSQL à l’aide de Python

S’APPLIQUE À : NoSQL

Les bases de données dans Azure Cosmos DB sont des unités de gestion pour un ou plusieurs conteneurs. Avant de pouvoir créer ou gérer des conteneurs, vous devez d’abord créer une base de données.

Nommer une base de données

Dans Azure Cosmos DB, une base de données est analogue à un espace de noms. Lorsque vous créez une base de données, le nom de la base de données forme un segment de l’URI utilisé pour accéder à la ressource de base de données et à toutes les ressources enfants.

Voici quelques règles rapides lors de l’affectation d’un nom à une base de données :

  • Le nom de la base de données doit avoir entre 3 et 63 caractères
  • Les noms de base de données ne peuvent contenir que des lettres minuscules, des chiffres ou le caractère de tiret (-).
  • Le nom de la base de données doit commencer par une lettre minuscule ou un chiffre.

Une fois créé, l’URI d’une base de données est au format suivant :

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

Création d'une base de données

Pour créer une base de données, utilisez l’une des méthodes suivantes :

Création d'une base de données

L’exemple suivant crée une base de données avec la méthode CosmosClient.create_database. Cette méthode lève une exception si une base de données portant le même nom existe.

try:
    database = client.create_database(id=DATABASE_ID)
    print(f"Database created: {database.id}")

except CosmosResourceExistsError:
    print("Database already exists.")

Créer une base de données si elle n’existe pas déjà

L’exemple suivant crée une base de données avec la méthode CosmosClient.create_database_if_not_exists. Si la base de données existe, cette méthode retourne les paramètres de la base de données. Par rapport à la méthode create précédente, cette méthode ne lève pas d’exception si la base de données existe déjà. Cette méthode est utile pour éviter les erreurs si vous exécutez le même code plusieurs fois.

try:
    database = client.create_database_if_not_exists(id=DATABASE_ID)
    print(f"Database created or returned: {database.id}")

except CosmosHttpResponseError:
    print("Request to the Azure Cosmos database service failed.")

Créer une base de données de manière asynchrone

Vous pouvez également créer une base de données de manière asynchrone à l’aide de méthodes et d’objets similaires dans l’espace de noms azure.cosmos.aio . Par exemple, utilisez la méthode CosmosClient.create_databaseou la méthode 'CosmoClient.create_database_if_not_exists .

Le travail asynchrone est utile lorsque vous souhaitez effectuer plusieurs opérations en parallèle. Pour plus d’informations, consultez Utilisation du client asynchrone.

Analyse de la réponse

Dans les exemples ci-dessus, la réponse des requêtes est un DatabaseProxy, qui est une interface permettant d’interagir avec une base de données spécifique. À partir du proxy, vous pouvez accéder aux méthodes permettant d’effectuer des opérations sur la base de données.

L’exemple suivant montre la méthode create_database_if_not_exists retournant un objet de base de données .

database = client.create_database_if_not_exists(id=DATABASE_ID)
for container in database.list_containers():
    print(f'Container name: {container["id"]}')

Étapes suivantes

Maintenant que vous avez créé une base de données, utilisez le guide suivant pour créer des conteneurs.