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 -versionpara 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.
Para consultar el procedimiento, consulte Script mode configuration.
Para revisar todos los parámetros del modo script y un script de ejemplo, consulte Appendix: Sample scripts and parameter descriptions.
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 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 | 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:
| Sí | Ninguna |
ignoreWriteError | Ignora los errores de escritura. Configuración de ejemplo: | No | false |
version | Versión de OpenSearch, por ejemplo | 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 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 |
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 |