Información general sobre la biblioteca BulkExecutor de Azure Cosmos DB
SE APLICA A: NoSQL
Azure Cosmos DB es un servicio de base de datos rápido, flexible y distribuido globalmente que escala horizontalmente de forma flexible para admitir:
- Gran capacidad de proceso de lectura y escritura, al orden de millones de operaciones por segundo.
- Almacenar grandes volúmenes de datos transaccionales y operativos, al orden de cientos de terabytes o incluso más, con una latencia de milisegundos predecible.
La biblioteca Bulk Executor le ayudará a usar esta capacidad de proceso y almacenamiento masiva. La biblioteca BulkExecutor permite realizar operaciones masivas en Azure Cosmos DB a través de las API de importación en bloque y actualización masiva. Puede obtener más información sobre las características de la biblioteca BulkExecutor en las siguientes secciones.
Nota:
Actualmente, la biblioteca Bulk Executor admite operaciones de importación y actualización. La API de Azure Cosmos DB solo admite esta biblioteca para cuentas de NoSQL y Gremlin.
Importante
La biblioteca BulkExecutor no es compatible actualmente con las cuentas sin servidor. En .NET, se recomienda usar el soporte de Bulk disponible en la versión V3 del SDK.
Características clave de la biblioteca BulkExecutor
Usar la biblioteca de Bulk Executor reduce significativamente los recursos de proceso del lado cliente necesarios para saturar la capacidad de proceso asignada a un contenedor. Una sola aplicación multiproceso que escribe datos mediante la API de importación masiva logra diez veces más capacidad de proceso de escritura en comparación con una aplicación multiproceso que escribe datos en paralelo mientras satura la CPU del equipo cliente.
La biblioteca de Bulk Executor elimina la laboriosa tarea de escribir lógica de aplicaciones para controlar la limitación de solicitudes, los tiempos de espera de las solicitudes y otras excepciones transitorias. Los controla de forma eficaz dentro de la biblioteca.
Proporciona un mecanismo simplificado para que las aplicaciones realicen operaciones masivas para escalar horizontalmente. Una única instancia de Bulk Executor que se ejecute en una máquina virtual de Azure puede consumir más de 500 000 RU/s. Es posible lograr una mayor velocidad de rendimiento agregando más instancias en máquinas virtuales cliente individuales.
La biblioteca de Bulk Executor puede importar en masa más de un terabyte de datos en una hora con el uso de una arquitectura de escalabilidad horizontal.
Puede actualizar en masa los datos existentes en los contenedores de Azure Cosmos DB como revisiones.
¿Cómo funciona el ejecutor en masa?
Cuando se desencadene una operación en masa para importar o actualizar documentos con un lote de entidades, inicialmente se ordenan aleatoriamente en cubos correspondientes a su rango con clave de particiones de Azure Cosmos DB. Dentro de cada cubo que corresponda a un intervalo de claves de partición, se dividirán en mini lotes.
Cada miniproceso actúa como una carga que se confirma en el lado servidor. La biblioteca Bulk Executor tiene optimizaciones integradas para la ejecución simultánea de estos minilotes dentro y entre los rangos con clave de particiones.
El siguiente diagrama ilustra cómo Bulk Executor procesa los datos por lotes en diferentes claves de particiones:
La biblioteca Bulk Executor se asegura de la máxima utilización de la capacidad de proceso asignada a una colección. Usa un mecanismo de control de la congestión del estilo de AIMD para que cada rango con clave de particiones de Azure Cosmos DB controle con eficacia las limitaciones de velocidad y los tiempos de espera.
Para obtener más información sobre las aplicaciones de ejemplo que consumen la biblioteca Bulk Executor, consulte Uso de la biblioteca .NET Bulk Executor para realizar operaciones masivas en Azure Cosmos DB y Realizar operaciones masivas en datos de Azure Cosmos DB.
Para obtener información de referencia, consulte la biblioteca Bulk Executor de .NET y la biblioteca Bulk Executor de Java.