다음을 통해 공유


Python을 사용하여 Azure Cosmos DB for NoSQL에서 데이터베이스 만들기

적용 대상: NoSQL

Azure Cosmos DB의 데이터베이스는 하나 이상의 컨테이너에 대한 관리 단위입니다. 컨테이너를 만들거나 관리하려면 먼저 데이터베이스를 만들어야 합니다.

데이터베이스 이름 지정

Azure Cosmos DB에서 데이터베이스는 네임스페이스와 유사합니다. 데이터베이스를 만들 때 데이터베이스 이름은 데이터베이스 리소스 및 모든 자식 리소스에 액세스하는 데 사용되는 URI 세그먼트를 형성합니다.

만들어지면 데이터베이스에 대한 URI는 다음과 같은 형식입니다.

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

데이터베이스 만들기

데이터베이스를 만들려면 다음 메서드 중 하나를 호출합니다.

데이터베이스 만들기

다음 예제에서는 CosmosClient.create_database 메서드를 사용하여 데이터베이스를 만듭니다. 이 메서드는 동일한 이름의 데이터베이스가 있는 경우 예외를 throw합니다.

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 메서드와 비교하여 데이터베이스가 이미 있는 경우 이 메서드는 예외를 throw하지 않습니다. 이 메서드는 동일한 코드를 여러 번 실행하는 경우 오류를 방지하는 데 유용합니다.

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"]}')

다음 단계

이제 데이터베이스를 만들었으므로 다음 가이드를 사용하여 컨테이너를 만듭니다.