SE APLICA A: NoSQL
En primer lugar, debe registrarse para obtener una suscripción de Azure. Una vez que se haya registrado para obtener una suscripción de Azure, puede agregar a esta un contenedor de API para NoSQL.
Los kits de desarrollo de software (SDK) están disponibles para .NET, Python, Node.js, JavaScript, Go y Java. Los desarrolladores también pueden usar las API REST para interactuar con recursos de Azure Cosmos DB desde más plataformas y lenguajes.
Consulte estos ejemplos de código y plantillas de inicio rápido para la API para NoSQL:
Sí, la API para NoSQL permite que las aplicaciones almacenen documentos JSON arbitrarios como elementos sin definiciones ni sugerencias de esquemas. Los datos están disponibles inmediatamente para la consulta con el lenguaje de consulta de Azure Cosmos DB for NoSQL.
¿Admite Azure Cosmos DB for NoSQL transacciones ACID (atomicidad, coherencia, aislamiento, durabilidad)?
Sí, la API para NoSQL admite transacciones entre documentos expresadas mediante lotes en los SDK o como procedimientos almacenados y desencadenadores de JavaScript. Las transacciones se limitan a una única partición dentro de cada contenedor y se ejecutan con semántica ACID, como "todo o nada", aisladas de otras solicitudes de usuario y código que se ejecutan a la vez. Si se producen excepciones, se revierte toda la transacción.
Puede crear bases de datos mediante una de estas herramientas:
- Azure Portal
- SDK de API para cliente NoSQL (plano de datos)
- SDK de API para administración NoSQL (plano de control)
- Azure Resource Manager
- REST API
¿Puedo autenticarme en Azure Cosmos DB for NoSQL mediante mis cuentas existentes de Microsoft Entra ID?
Sí. Azure Cosmos DB admite la autenticación de Microsoft Entra para administrar el servicio y sus recursos (plano de control) y para ejecutar datos, operaciones y consultas (plano de datos). La autenticación del plano de control se realiza mediante la característica de control de acceso basado en roles de Azure. Puede usar un rol integrado preconfigurado](../../role-based-access-control/built-in-roles.md) o puede crear un rol personalizado. Con el control de acceso basado en roles de Azure, puede administrar cuentas, bases de datos, contenedores y metadatos. El plano de control incluye operaciones, entre las que se incluyen, entre otros, estos ejemplos.
- Creación, reemplazo o eliminación de bases de datos; creación, sustitución o eliminación de contenedores; lectura o sustitución del rendimiento de la base de datos; lectura o reemplazo de los datos de rendimiento del contenedor; la autenticación de plano utiliza una API personalizada para la implementación del control de acceso basado en roles nativo de NoSQL. Con esta implementación nativa, también puede usar roles preconfigurados o personalizados. Con el control de acceso basado en roles nativo, puede ejecutar consultas, administrar elementos o realizar otras operaciones comunes. El plano de datos incluye operaciones, entre las que se incluyen, entre otros, estos ejemplos.
- Creación, reemplazo, actualización o eliminación de elementos; aplicación de revisiones a elementos; ejecución de consultas
El lenguaje de consulta estructurado (SQL) es un lenguaje que normalmente se usa para consultar datos relacionales. La API para NoSQL tiene un lenguaje de consulta NoSQL personalizado derivado de SQL. El lenguaje de consulta NoSQL incluye un subconjunto del lenguaje de consulta SQL normalmente asociado a SQL Server junto con varias mejoras específicas de NoSQL. El lenguaje de consulta SQL de NoSQL proporciona operadores relacionales y jerárquicos y una extensibilidad a través de JavaScript según las funciones definidas por el usuario (UDF). La sintaxis JSON permite el modelado de documentos JSON como árboles con nodos etiquetados, algo que usan las técnicas de indexación automática de Azure Cosmos DB y el dialecto de consulta SQL de Azure Cosmos DB. Para obtener información sobre el uso de este lenguaje de consulta, vea Consulta NoSQL.
La API para NoSQL admite la agregación a través de funciones de agregado como: COUNT
, MAX
, AVG
y SUM
a través del lenguaje de consulta NoSQL.
La API para NoSQL admite el control de simultaneidad optimista (OCC) mediante etiquetas de entidad HTTP, o ETag. Cada recurso de API para NoSQL tiene una ETag y esta se establece en el servidor cada vez que se actualiza un documento. El encabezado de la ETag y el valor actual se incluyen en todos los mensajes de respuesta. Las etiquetas ETag pueden utilizarse con el encabezado If-Match
para permitir que el servidor decida si debe actualizarse un recurso. El valor de If-Match es el valor de ETag con el que se va a cotejar. Si el valor de ETag coincide con el valor de ETag del servidor, el recurso se actualiza. Si el valor de ETag ya no es el actual, el servidor rechaza la operación con un código de respuesta "HTTP 412 Precondition failure" (HTTP 412: error de condición previa). Después, el cliente recupera el recurso para obtener el valor de Etag actual del recurso. Además, se pueden usar ETags con el encabezado If-None-Match
para determinar si es necesario capturar un recurso.
La mayoría de los SDK de API para NoSQL incluyen clases para administrar el control de simultaneidad optimista.
Use la característica de importación masiva en el SDK de .NET o el SDK de Java para que la API para NoSQL importe grandes conjuntos de datos. Esta característica optimiza el rendimiento aprovisionado para importar grandes conjuntos de datos.
Como alternativa, use Apache Spark para importar datos a escala mediante Python o Scala.
Sí, dado que Azure Cosmos DB for NoSQL es un servicio RESTful, los vínculos de recursos son inmutables y se pueden almacenar en caché. Los clientes de la API para NoSQL pueden especificar un encabezado "If-None-Match" para lecturas en cualquier documento o contenedor de tipo recurso y actualizar sus copias locales cuando la versión del servidor cambie.
Sí. El emulador de Azure Cosmos DB proporciona una emulación de gran fidelidad del servicio Azure Cosmos DB. Admite la funcionalidad idéntica a Azure Cosmos DB en varias API. Esta funcionalidad incluye compatibilidad para crear elementos, consultar elementos, aprovisionar contenedores y escalar contenedores. Puede desarrollar y probar aplicaciones mediante los puntos de conexión del emulador. Después, puede implementar las aplicaciones en Azure a escala global cambiando la cadena de conexión del emulador al servicio activo.
¿Por qué se redondean los valores de punto flotante largos en un elemento de Azure Cosmos DB for NoSQL al usar el Explorador de datos en el portal?
Esta limitación del explorador de datos es una limitación de JavaScript. JavaScript usa números de formato de punto flotante de precisión doble, como se especifica en Institute of Electrical and Electronics Engineers (IEEE) 754. Este tipo de datos puede contener números entre -(253 - 1) y 253-1 (es decir, solo 9007199254740991).
El control de acceso basado en roles (RBAC) es un método para regular el acceso a los recursos de equipo o de red en función de los roles de usuarios individuales dentro de una empresa. En Azure Cosmos DB, RBAC se usa para conceder acceso al plano de datos a usuarios y aplicaciones. Para obtener más información sobre varios términos en el control de acceso basado en rol, consulte el glosario de seguridad.
¿Cómo se habilita el control de acceso basado en roles del plano de datos para Azure Cosmos DB for NoSQL?
Use la característica de control de acceso basado en roles (RBAC) nativo de Azure Cosmos DB para conceder acceso al plano de datos a usuarios y aplicaciones. Para obtener más información, consulte Concesión de acceso basado en roles del plano de datos.
A partir de ahora, solo se admite la API NoSQL.
Todavía no está disponible la compatibilidad de Azure Portal con la administración de roles.
Actualmente se admiten los SDK de .NET V3, Java V4, JavaScript V3 y Python V4.3 y versiones posteriores.
¿Actualizan automáticamente los SDK de Azure Cosmos DB el token de Microsoft Entra cuando este expira?
Sí.
¿Es posible deshabilitar el uso de las claves principal o secundaria de la cuenta al usar el control de acceso basado en roles?
Sí. Para obtener más información, consulte Deshabilitar la autenticación basada en claves.