Inserte documentos en OpenSearch mediante la API o el SDK. Las inserciones se procesan de forma asíncrona; una respuesta OK indica que el sistema recibió los datos, no que el procesamiento fue exitoso. Supervise la consola de OpenSearch para detectar errores de procesamiento después de cada inserción.
Verifique siempre los valores devueltos después de una inserción. Si se devuelve el código de error 3007, reintente la solicitud. No reintentar ante códigos de error puede provocar pérdida de datos.
Comandos de inserción
Existen tres comandos que controlan cómo se escriben los documentos en el índice. La diferencia principal entre add y update radica en la cobertura de campos: add sobrescribe todos los campos, mientras que update solo modifica los campos que usted especifique.
|
Comando |
Función |
Campos no incluidos en la solicitud |
¿El documento ya existe? |
|
|
Agrega o reemplaza por completo un documento |
Se establecen en blanco de forma predeterminada |
Se elimina primero y luego se vuelve a agregar |
|
|
Actualiza campos específicos de un documento |
Conservan sus valores originales |
Se elimina primero y luego se vuelve a agregar |
|
|
Elimina un documento por su ID de clave primaria |
No aplica |
La operación es exitosa incluso si el documento no existe |
Cuándo usar cada comando
Utilice
addpara reemplazar un documento por completo o agregar uno nuevo.Utilice
updatepara modificar un subconjunto de campos sin sobrescribir el resto.Utilice
deletepara eliminar un documento mediante su ID de clave primaria.
Funcionamiento de la inserción de datos
OpenSearch procesa las solicitudes de inserción de forma asíncrona:
Envíe una solicitud de inserción a través de la API o el SDK mediante HTTP POST.
El sistema devuelve
OKpara confirmar la recepción.El sistema procesa los datos en segundo plano.
Si el procesamiento falla, el error aparece en la consola de OpenSearch.
Revise la consola con regularidad para detectar errores de procesamiento a tiempo.
Límites y mejores prácticas
Límite de tamaño de HTTP POST
Cada solicitud HTTP POST tiene un tamaño máximo de carga útil de 2 MB. Si la carga útil supera los 2 MB, el servidor rechaza la solicitud y devuelve un error.
Consulte Limits para ver la lista completa de cuotas.
Agrupe sus inserciones
Insertar documentos uno por uno genera una gran cantidad de llamadas de red individuales y aumenta la probabilidad de alcanzar los límites de velocidad. Empaquete varios documentos en una sola solicitud para mejorar el rendimiento y evitar errores por limitación de tasa.
Mantenga cada lote por debajo de 2 MB para respetar el límite de tamaño por solicitud.
Además, aplique codificación URL tanto a la URL como al cuerpo de cada solicitud HTTP POST. Sin esta codificación, pueden producirse errores de resolución y de firma.
Datos incrementales y claves duplicadas
Al insertar datos incrementales desde un origen de datos o a través de la API, los documentos con valores de clave primaria duplicados se sobrescriben.
Manejo de errores
|
Mensaje de error |
Causa |
Acción |
|
|
Interrupción de red |
Reintente hasta que sea exitoso |
|
|
Error del lado del sistema |
Reintente hasta que sea exitoso |
|
|
Frecuencia alta de inserción o carga útil > 2 MB por segundo |
Reintente hasta que sea exitoso; reduzca el tamaño de la carga útil si el error persiste |
|
|
El recuento total de inserciones superó el límite |
Agrupe los documentos e insértelos en menos solicitudes de mayor tamaño |
Sincronización con ApsaraDB RDS for MySQL
La velocidad y el volumen de datos sincronizados desde ApsaraDB RDS for MySQL tienen límites. Consulte Limits.
Se genera un registro binario cada vez que se actualizan todas las tablas de la base de datos. Si el volumen de registros binarios supera el límite, los datos se acumulan en cola y se producen retrasos en la sincronización. Para evitar esto:
Traslade las tablas que se actualizan con frecuencia a bases de datos separadas.
Habilite la sincronización automática de datos para la tabla principal y utilice operaciones de la API para sincronizar las tablas secundarias.