Compartir a través de


Creación de una base de datos en Azure Cosmos DB for NoSQL mediante Python

SE APLICA A: NoSQL

Las bases de datos de Azure Cosmos DB son unidades de administración para uno o varios contenedores. Para poder crear o administrar contenedores, primero debe crear una base de datos.

Asignación de nombre a una base de datos

En Azure Cosmos DB, una base de datos es análoga a un espacio de nombres. Al crear una base de datos, el nombre de la base de datos forma un segmento del URI utilizado para acceder al recurso de base de datos y a los recursos secundarios.

Estas son algunas reglas rápidas de la asignación de un nombre a una base de datos:

  • Los nombres de base de datos deben tener una longitud de entre 3 y 63 caracteres.
  • Los nombres de base de datos solo pueden contener letras en minúsculas, números y el carácter de guion (-).
  • Los nombres de base de datos deben empezar por una letra en minúsculas o un número.

Una vez creado, el URI de una base de datos tiene este formato:

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

Crear una base de datos

Para crear una base de datos, llame a uno de los métodos siguientes:

Crear una base de datos

En el siguiente ejemplo se crea una base de datos con el método CosmosClient.create_database. Si ya existe una base de datos con el mismo nombre, este método genera una excepción.

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

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

Creación de una base de datos si aún no existe

En el siguiente ejemplo se crea una base de datos con el método CosmosClient.create_database_if_not_exists. Si la base de datos ya existe, este método devuelve la configuración de la base de datos. En comparación con el método de creación anterior, este método no produce una excepción si la base de datos ya existe. Este método es útil para evitar errores si ejecuta el mismo código varias veces.

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.")

Creación de una base de datos de forma asincrónica

También puede crear una base de datos de forma asincrónica usando métodos y objetos similares en el espacio de nombres azure.cosmos.aio. Por ejemplo, use el método CosmosClient.create_database o el método "CosmoClient.create_database_if_not_exists.

Trabajar de forma asincrónica es útil cuando se quieren realizar varias operaciones en paralelo. Para obtener más información, consulte Uso del cliente asincrónico.

Análisis de la respuesta

En los ejemplos anteriores, la respuesta de las solicitudes es un objeto DatabaseProxy, que es una interfaz para interactuar con una base de datos concreta. Desde el proxy, se puede acceder a métodos para realizar operaciones en la base de datos.

En el ejemplo siguiente se muestra el método create_database_if_not_exists, que devuelve un objeto de base de datos.

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

Pasos siguientes

Ahora que ha creado una base de datos, use la siguiente guía para crear contenedores.