Créer un conteneur dans Azure Cosmos DB for NoSQL à l’aide de Python
S’APPLIQUE À : NoSQL
Les conteneurs dans Azure Cosmos DB stockent des ensembles d’éléments. Avant de pouvoir créer, interroger ou gérer des éléments, vous devez d’abord créer un conteneur.
Nommer un conteneur
Dans Azure Cosmos DB, un conteneur est analogue à une table d’une base de données relationnelle. Lorsque vous créez un conteneur, le nom du conteneur forme un segment de l’URI utilisé pour accéder à la ressource de conteneur et à tous les éléments enfants.
Voici quelques règles rapides lors de l’affectation d’un nom à un conteneur :
- Les noms de conteneur doivent comprendre entre 3 et 63 caractères
- Les noms de conteneur ne peuvent contenir que des lettres minuscules, des chiffres ou le caractère de tiret (-).
- Les noms de conteneurs doivent commencer par une lettre minuscule ou un chiffre.
Après création, l’URI d’un conteneur est au format suivant :
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/colls/<container-name>
Créez un conteneur.
Pour créer un conteneur, utilisez l’une des méthodes suivantes :
Créez un conteneur.
L’exemple suivant crée un conteneur avec la méthode DatabaseProxy.create_container
. Cette méthode lève une exception si le conteneur portant le même nom existe déjà.
try:
partition_key_path = PartitionKey(path="/categoryId")
container = database.create_container(
id=CONTAINER_ID,
partition_key=partition_key_path,
offer_throughput=400,
)
print(f"Container created: {container.id}")
except CosmosResourceExistsError:
print("Container already exists.")
Créer un conteneur s’il n’existe pas déjà
L’exemple suivant crée un conteneur avec la méthode DatabaseProxy.create_container_if_not_exists
. 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:
partition_key_path = PartitionKey(path="/categoryId")
container = database.create_container_if_not_exists(
id=CONTAINER_ID,
partition_key=partition_key_path,
offer_throughput=400,
)
print(f"Container created or returned: {container.id}")
except CosmosHttpResponseError:
print("Request to the Azure Cosmos database service failed.")
Créer un conteneur 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 DatabaseProxy.create_database ou 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 ContainerProxy
, qui est une interface permettant d’interagir avec un conteneur de base de données. À partir du proxy, vous pouvez accéder aux méthodes pour effectuer des opérations sur le conteneur.
L’exemple suivant montre la méthode create_container_if_not_exists qui retourne un objet conteneur .
partition_key_path = PartitionKey(path="/categoryId")
container = database.create_container_if_not_exists(
id=CONTAINER_ID,
partition_key=partition_key_path,
offer_throughput=400,
)
for doc in container.read_all_items(max_item_count=10):
print(f'Doc id: {doc["id"]}')
Étapes suivantes
Maintenant que vous avez créé un conteneur, utilisez le guide suivant pour créer des éléments.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : pendant toute l’année 2024, nous allons éliminer progressivement Problèmes GitHub comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, voir :Soumettre et afficher des commentaires pour