Todos los productos
Search
Centro de documentos

DataWorks:Origen de datos de OpenSearch

Última actualización: Oct 09, 2026

Data Integration de DataWorks admite la escritura de datos en OpenSearch mediante OpenSearch Writer. Este tema describe cómo escribir datos sin conexión desde DataWorks hacia OpenSearch.

Versiones compatibles

  • V3 utiliza un paquete de segunda parte con la dependencia de Maven com.aliyun.opensearch:aliyun-sdk-opensearch:2.1.3.

  • Para usar el plugin de OpenSearch Writer, debe utilizar JDK 1.6-32 o una versión posterior. Ejecute java -version para comprobar la versión de Java.

  • Ediciones comerciales compatibles de Alibaba Cloud OpenSearch: Industry Algorithm Edition, LLM Intelligent Q&A Edition, High-performance Search Edition, Vector Search Edition y Retrieval Engine Edition.

Límites

  • OpenSearch Writer es compatible con Serverless resource groups (recommended) y exclusive resource groups for Data Integration, pero no admite custom resource groups.

  • Las columnas de OpenSearch no tienen un orden definido. Por lo tanto, al escribir datos, OpenSearch Writer debe respetar el orden de columnas especificado. Si indica menos columnas de las que existen en OpenSearch, las columnas restantes toman sus valores predeterminados o null.

    Por ejemplo, suponga que los campos por importar son b y c, mientras que la tabla de OpenSearch tiene las columnas a, b y c. Configure las columnas como "column":["c","b"]. De este modo, la primera y la segunda columna del Reader se importan en los campos c y b, y el campo a del nuevo registro insertado toma su valor predeterminado o null.

  • Actualmente, los datos sin conexión solo se pueden escribir en OpenSearch en modo script.

Tipos de campo compatibles

OpenSearch Writer es compatible con la mayoría de los tipos de OpenSearch. Compruebe sus tipos de datos. A continuación se muestra una tabla con las asignaciones de tipos de OpenSearch.

Categoría de tipo

Tipo de dato de OpenSearch

Entero

INT

Punto flotante

DOUBLE y FLOAT

Cadena

TEXT, LITERAL y SHORT_TEXT

Fecha y hora

INT

Booleano

LITERAL

Desarrollar una tarea de sincronización de datos

Para conocer el punto de entrada y el procedimiento de configuración de una tarea de sincronización, consulte las siguientes guías de configuración.

Preguntas frecuentes

Manejo de configuraciones de columnas incorrectas

Para garantizar escrituras confiables y evitar la pérdida de datos por exceso de columnas, OpenSearch Writer reporta un error si intenta escribir demasiadas columnas. Por ejemplo, si una tabla de OpenSearch tiene los campos a, b y c, OpenSearch Writer genera un error cuando recibe más de tres campos.

Consideraciones sobre la configuración de tablas

OpenSearch Writer solo puede escribir en una tabla a la vez.

Reejecución de tareas y failover

Después de una reejecución, los registros con el mismo ID se sobrescriben automáticamente. Por lo tanto, las columnas insertadas en OpenSearch deben incluir un ID que identifique de forma única cada registro. Los registros con el mismo identificador se sobrescriben entre sí.

Apéndice: scripts de ejemplo y descripción de parámetros

Configurar una tarea de sincronización por lotes mediante el editor de código

Si desea configurar una tarea de sincronización por lotes mediante el editor de código, debe establecer los parámetros correspondientes en el script según los requisitos unificados de formato. Para obtener más información, consulte Script mode configuration. A continuación se describen los parámetros que debe configurar para los orígenes de datos cuando utilice el editor de código en una tarea de sincronización por lotes.

Script de ejemplo de Writer (Industry Algorithm Edition, LLM Intelligent Q&A Edition y High-performance Search Edition)

{
    "type": "job",
    "version": "1.0",
    "configuration": {
        "reader": {},
        "writer": {
            "plugin": "opensearch",
            "parameter": {
                "accessId": "*********",
                "accessKey": "********",
                "host": "http://yyyy.aliyuncs.com",
                "endpoint":"http://yyyy.aliyuncs.com",
                "indexName": "datax_xxx",
                "table": "datax_yyy",
                "column": [
                "appkey",
                "id",
                "title",
                "gmt_create",
                "pic_default"
                ],
                "batchSize": 500,
                "writeMode": add,
                "version":"v2",
                "ignoreWriteError": false
            }
        }
    }
}

Parámetros del script de Writer (Industry Algorithm Edition, LLM Intelligent Q&A Edition y High-performance Search Edition)

Parámetro

Descripción

Obligatorio

Valor predeterminado

accessId

AccessKey ID de la key pair de acceso.

Sí

Ninguna

accessKey

AccessKey Secret de la key pair de acceso, equivalente a una contraseña de inicio de sesión.

Sí

Ninguna

host

Endpoint de tráfico de OpenSearch. Lo encontrará en la página de detalles de la instancia dentro de la consola de OpenSearch.

Sí

Ninguna

endpoint

Endpoint de administración de OpenSearch. Consúltelo en la documentación de la edición de OpenSearch correspondiente. Por ejemplo, para Industry Algorithm Edition: Service endpoints.

Sí

Ninguna

indexName

Nombre de la aplicación de OpenSearch.

Sí

Ninguna

table

Nombre de la tabla de destino. No es posible especificar varias tablas porque DataX no admite la importación simultánea en múltiples destinos.

Sí

Ninguna

column

Lista de campos por importar. Para importar todos los campos, configure "column":["*"]. Si necesita importar solo algunas columnas de OpenSearch, especifíquelas; por ejemplo: "column":["id","name"].

OpenSearch permite filtrar y reordenar columnas. Por ejemplo, si una tabla tiene los campos a, b y c, y usted solo requiere c y b, configure ["c","b"]. Durante la importación, el campo a se llena con null.

Sí

Ninguna

batchSize

Número de registros escritos por lote. OpenSearch admite escrituras por lotes y suele destacar más en consultas que en un throughput de escritura elevado. Establezca este valor según los recursos asignados a su cuenta.

Por lo general, un registro individual de OpenSearch ocupa menos de 1 MB y una escritura por lote no supera los 2 MB.

Esta opción es obligatoria para tablas particionadas y debe omitirse en tablas no particionadas.

300

writeMode

OpenSearch Writer utiliza "writeMode":"add/update" para garantizar escrituras idempotentes:

  • "add": si una escritura falla y la tarea se vuelve a ejecutar, OpenSearch Writer elimina el registro existente e importa el nuevo como una operación atómica.

  • "update": inserta el registro actualizándolo como una operación atómica.

    Nota

    Las inserciones por lotes en OpenSearch no son atómicas: algunos registros pueden completarse mientras otros fallan. Seleccione writeMode con cuidado. Actualmente, V3 no admite operaciones de actualización.

Sí

Ninguna

ignoreWriteError

Ignora los errores de escritura.

Configuración de ejemplo:"ignoreWriteError":true. Determina si se ignora una escritura por lotes con errores. Si se habilita, la tarea continúa con las demás escrituras; de lo contrario, se detiene y devuelve un error. Se recomienda mantener el valor predeterminado.

No

false

version

Versión de OpenSearch, por ejemplo "version":"v3". Se recomienda V3 porque V2 impone más restricciones en las operaciones push.

No

v2

Script de ejemplo de Writer (Vector Search Edition y Retrieval Engine Edition)

{
  "stepType": "opensearch",
  "parameter": {
    "indexName": "",
    "column": [
      {
        "name": "col3double",
        "type": "DOUBLE"
      },
      {
        "name": "col2vector",
        "type": "MULTI_FLOAT"
      }
    ],
    "datasource": "zm_test_vector_01",
    "batchSize": "500",
    "table": "demotable"
  },
  "name": "Writer",
  "category": "writer"
}

Parámetros del script de Writer (Vector Search Edition y Retrieval Engine Edition)

Parámetro

Descripción

Obligatorio

Valor predeterminado

table

Nombre de la tabla de destino. No es posible especificar varias tablas porque DataX no admite la importación simultánea en múltiples destinos.

Sí

Ninguna

column

Lista de campos por importar. Para importar todos los campos, configure "column":["*"]. Si necesita importar solo algunas columnas de OpenSearch, especifíquelas; por ejemplo: "column":["id","name"].

OpenSearch permite filtrar y reordenar columnas. Por ejemplo, si una tabla tiene los campos a, b y c, y usted solo requiere c y b, configure ["c","b"]. Durante la importación, el campo a se llena con null.

Sí

Ninguna

batchSize

Número de registros escritos por lote. OpenSearch admite escrituras por lotes y suele destacar más en consultas que en un throughput de escritura elevado. Establezca este valor según los recursos asignados a su cuenta.

Por lo general, un registro individual de OpenSearch ocupa menos de 1 MB y una escritura por lote no supera los 2 MB.

Esta opción es obligatoria para tablas particionadas y debe omitirse en tablas no particionadas.

300