Python を使用して Azure Cosmos DB for NoSQL にデータベースを作成する
適用対象: NoSQL
Azure Cosmos DB のデータベースは、1 つ以上のコンテナーの管理単位です。 コンテナーを作成または管理するには、まずデータベースを作成する必要があります。
データベースに名前を付ける
Azure Cosmos DB では、データベースは名前空間に似ています。 データベースを作成すると、データベース名は、データベース リソースと子リソースへのアクセスに使用される URI のセグメントを形成します。
作成されると、データベースの URI の形式は次のとおりです。
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>
データベースを作成する
データベースを作成するには、次のいずれかのメソッドを呼び出します。
データベースを作成する
次の例では、CosmosClient.create_database
メソッドを使用してデータベースが作成されます。 このメソッドは、同じ名前のデータベースが既に存在する場合、例外をスローします。
try:
database = client.create_database(id=DATABASE_ID)
print(f"Database created: {database.id}")
except CosmosResourceExistsError:
print("Database already exists.")
データベースがまだ存在しない場合は作成する
次の例では、CosmosClient.create_database_if_not_exists
メソッドを使用してデータベースが作成されます。 データベースが存在する場合、このメソッドはデータベース設定を返します。 前の create メソッドと比較すると、データベースが既に存在しても、このメソッドは例外をスローしません。 このメソッドは、同じコードを複数回実行する場合にエラーを回避するのに役立ちます。
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.")
データベースを非同期的に作成する
azure.cosmos.aio 名前空間で同様のオブジェクトとメソッドを使用して、非同期的にデータベースを作成することもできます。 たとえば、CosmosClient.create_database
メソッドや 'CosmoClient.create_database_if_not_exists メソッドを使用します。
非同期的に動作させると、複数の操作を並列で実行するときに便利です。 詳細については、「非同期クライアントの使用」を参照してください。
応答の解析
上記の例では、要求の応答は DatabaseProxy
です。これは、特定のデータベースと対話するためのインターフェイスです。 プロキシからメソッドにアクセスして、データベースに対する操作を実行できます。
次の例は、database オブジェクトを返す create_database_if_not_exists メソッドを示しています。
database = client.create_database_if_not_exists(id=DATABASE_ID)
for container in database.list_containers():
print(f'Container name: {container["id"]}')
次のステップ
データベースを作成したので、次のガイドを使用してコンテナーを作成します。