Funcionamiento de Azure Cosmos DB for NoSQL

Completado

Ahora que conoce los conceptos básicos de Azure Cosmos DB, se verá qué recursos e información son necesarios para empezar a trabajar con una cuenta. Esta información debería ayudarle a decidir si Azure Cosmos DB for NoSQL funciona para su conjunto de datos. Además, debería ayudarle a decidir cuánta configuración adicional es necesaria, si es que es necesaria alguna.

¿Cuáles son los componentes de Azure Cosmos DB for NoSQL?

Para empezar a usar Azure Cosmos DB, cree primero varios recursos en Azure, como cuentas, bases de datos, contenedores y elementos.

Diagrama en el que se muestra cómo una cuenta de Azure Cosmos DB for NoSQL es el recurso primario de una base de datos que, a su vez, es un recurso primario de un contenedor.

Cuentas

Las cuentas son las unidades fundamentales de distribución y alta disponibilidad. En el nivel de cuenta, puede configurar las regiones para los datos en Azure Cosmos DB for NoSQL. Las cuentas también contienen el nombre DNS único global que se usa para las solicitudes de API. También puede establecer el nivel de coherencia predeterminado para las solicitudes a nivel de cuenta. Puede administrar o crear cuentas mediante Azure Portal, plantillas de Azure Resource Manager, la CLI de Azure o Azure PowerShell.

Bases de datos

Cada cuenta puede contener una o varias bases de datos. Una base de datos es una unidad lógica de administración de contenedores en Azure Cosmos DB for NoSQL.

Contenedores

Los contenedores son la unidad fundamental de escalabilidad en Azure Cosmos DB for NoSQL. Con Azure Cosmos DB, el rendimiento se aprovisiona en el nivel del contenedor. Opcionalmente, también puede configurar una directiva de indexación o un valor de período de duración predeterminado en el nivel de contenedor. Azure Cosmos DB for NoSQL dividirá de manera automática y transparente los datos de un contenedor.

Elementos

La API NoSQL de Azure Cosmos DB almacena documentos individuales en formato JSON como elementos dentro del contenedor. Azure Cosmos DB for NoSQL admite archivos JSON de manera nativa y puede proporcionar un rendimiento rápido y predecible, ya que las operaciones de escritura en documentos JSON son atómicas.

Diagrama que muestra varios elementos almacenados en un contenedor.

Creación de particiones y claves de partición

Todos los contenedores de Azure Cosmos DB for NoSQL deben especificar una ruta de acceso a la clave de partición. En segundo plano, Azure Cosmos DB for NoSQL usa esta ruta de acceso para crear particiones lógicas de los datos mediante valores de clave de partición. Por ejemplo, considere el siguiente documento JSON:

{
  "id": "35b5bf7d-5f0e-4209-b7cb-8c5c70c3bb59",
  "deviceDisplayName": "shared-printer",
  "acquiredYear": 2019,
  "department": {
    "name": "information-technology",
    "metadata": {
      "location": "floor-5-unit-27"
    }
  },
  "queuedDocuments": [
    {
      "sender": "user-293749329",
      "sentTime": "2019-07-26T05:12:37",
      "pages": 5,
      "spoolRef": "3f4b759c-3230-4269-a88e-de7620ad91c0"
    },
    {
      "device": {
        "type": "mobile"
      },
      "sentTime": "2019-11-12T13:08:42",
      "spoolRefs": [
        "6a86682c-be5a-4a4a-bacd-96c4d1c7ece6",
        "79e78fe2-93aa-4688-89db-a7278b034aa6"
      ]
    }
  ]
}

Si el contenedor especifica una ruta de acceso de clave de partición de /department/name, el valor de la clave de partición de este documento sería information-technology. En segundo plano, Azure Cosmos DB for NoSQL administra automáticamente los recursos físicos necesarios para admitir la carga de trabajo de datos.

La selección de una ruta de acceso de clave de partición para un contenedor puede ser una de las decisiones de diseño más importantes para una nueva carga de trabajo. Revise la documentación sobre la elección de una clave de partición para obtener una explicación técnica más detallada y los procedimientos recomendados.