Le connecteur OpenSearch Writer de Data Integration (DataWorks) permet d'écrire des données hors ligne dans Alibaba Cloud OpenSearch. Cette rubrique présente les éditions prises en charge, les limitations, les correspondances de types de champs et la référence complète des paramètres pour configurer une tâche de synchronisation par lots en mode code editor.
Éditions et versions prises en charge
OpenSearch Writer prend en charge les éditions commerciales suivantes d'Alibaba Cloud OpenSearch :
Industry Algorithm Edition
LLM-based AI Chat Edition
High-performance Search Edition
Vector Search Edition
Retrieval Engine Edition
Remarques sur les versions :
La version 3 utilise un package tiers. Ajoutez la dépendance Maven suivante :
com.aliyun.opensearch:aliyun-sdk-opensearch:2.1.3.OpenSearch Writer nécessite JDK 1.6-32 ou une version ultérieure. Exécutez
java -versionpour vérifier la version installée.
Limitations
OpenSearch Writer est compatible avec les groupes de ressources serverless (recommandés) et les groupes de ressources exclusifs pour Data Integration. Les groupes de ressources personnalisés ne sont pas pris en charge.
Les colonnes dans OpenSearch ne sont pas ordonnées. Spécifiez explicitement l'ordre des colonnes lors de l'écriture des données. Les colonnes non spécifiées reçoivent leurs valeurs par défaut ou la valeur null.
Écrivez les données hors ligne dans OpenSearch uniquement en mode code editor.
OpenSearch Writer valide le nombre de colonnes. Une erreur est renvoyée si vous tentez d'écrire plus de colonnes que celles présentes dans la table de destination.
Chaque tâche permet d'écrire des données dans une seule table. L'écriture dans plusieurs tables au sein d'une même tâche n'est pas prise en charge.
Lors de la réexécution d'une tâche, les enregistrements existants sont écrasés en fonction de l'ID du document. La liste des colonnes doit inclure une colonne ID servant d'identifiant unique.
Types de champs pris en charge
OpenSearch Writer prend en charge les correspondances de types de données OpenSearch suivantes.
|
Catégorie |
Type de données OpenSearch |
|
Entier |
INT |
|
À virgule flottante |
DOUBLE, FLOAT |
|
Chaîne |
TEXT, LITERAL, SHORT_TEXT |
|
Date et heure |
INT |
|
Booléen |
LITERAL |
Modes d'écriture
Utilisez le paramètre writeMode pour contrôler la manière dont les données sont écrites et garantir l'idempotence des écritures.
|
Mode |
Comportement |
Atomique |
Versions prises en charge |
|
|
Lors d'une réexécution, efface les données existantes et importe les nouvelles données |
Oui |
Toutes les versions |
|
|
Insère les données sous forme de mise à jour |
Oui |
Version 2 uniquement (non pris en charge dans la version 3) |
Les insertions par lots dans OpenSearch ne sont pas des opérations atomiques : certains enregistrements peuvent réussir tandis que d'autres échouent. Choisissez le paramètre writeMode en fonction de vos exigences de cohérence.
Considérations relatives aux performances
OpenSearch est optimisé pour les requêtes, pas pour les écritures. Le nombre de transactions par seconde (TPS) pour les opérations d'écriture est limité.
En règle générale, un enregistrement de données unique est inférieur à 1 Mo.
En règle générale, une écriture par lot unique est inférieure à 2 Mo.
Définissez le paramètre
batchSizeen fonction des ressources allouées à votre compte. La valeur par défaut est de300enregistrements par lot.
Configurer une tâche de synchronisation de données
Configurez OpenSearch Writer en mode code editor. Pour la procédure générale, consultez la rubrique Configuration en mode éditeur de code.
Les sections suivantes fournissent des exemples de code et des références de paramètres pour chaque groupe d'éditions pris en charge.
Industry Algorithm Edition, LLM-based AI Chat Edition et High-performance Search Edition
Exemple de code
{
"type": "job",
"version": "1.0",
"configuration": {
"reader": {},
"writer": {
"plugin": "opensearch",
"parameter": {
"accessId": "<your-access-key-id>",
"accessKey": "<your-access-key-secret>",
"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
}
}
}
}
Remplacez les espaces réservés suivants par vos valeurs réelles :
|
Espace réservé |
Description |
Exemple |
|
|
Votre ID AccessKey |
|
|
|
Votre secret AccessKey |
|
Paramètres
|
Paramètre |
Description |
Obligatoire |
Valeur par défaut |
|
|
L'ID AccessKey de votre paire AccessKey. |
Oui |
S/O |
|
|
Le secret AccessKey de votre paire AccessKey. |
Oui |
S/O |
|
|
Le nom de domaine de trafic d'OpenSearch. Obtenez cette valeur depuis la page des détails de l'instance dans la console OpenSearch. |
Oui |
S/O |
|
|
Le point de terminaison de contrôle d'OpenSearch. Obtenez cette valeur depuis la page des points de terminaison de service pour votre édition. Par exemple, consultez la page Service endpoints pour l'édition Industry Algorithm Edition. |
Oui |
S/O |
|
|
Le nom du projet OpenSearch (index). |
Oui |
S/O |
|
|
Le nom de la table de destination. Une seule table est prise en charge par tâche. |
Oui |
S/O |
|
|
Les colonnes dans lesquelles écrire les données. Utilisez |
Oui |
S/O |
|
|
Le nombre d'enregistrements par écriture par lot. Obligatoire pour les tables partitionnées ; à omettre pour les tables non partitionnées. |
Obligatoire pour les tables partitionnées |
|
|
|
Le mode d'écriture : |
Oui |
S/O |
|
|
Indique s'il faut ignorer les échecs d'écriture pour le lot actuel. Définissez ce paramètre sur |
Non |
|
|
|
La version d'OpenSearch, par exemple |
Non |
|
Vector Search Edition et Retrieval Engine Edition
Exemple de code
{
"stepType": "opensearch",
"parameter": {
"indexName": "<your-index-name>",
"datasource": "<your-datasource-name>",
"table": "<your-table-name>",
"column": [
{
"name": "col3double",
"type": "DOUBLE"
},
{
"name": "col2vector",
"type": "MULTI_FLOAT"
}
],
"batchSize": "500"
},
"name": "Writer",
"category": "writer"
}
Paramètres
|
Paramètre |
Description |
Obligatoire |
Valeur par défaut |
|
|
Le nom de la table de destination. Une seule table est prise en charge par tâche. |
Oui |
S/O |
|
|
Les colonnes dans lesquelles écrire les données. Chaque entrée spécifie un |
Oui |
S/O |
|
|
Le nombre d'enregistrements par écriture par lot. Obligatoire pour les tables partitionnées ; à omettre pour les tables non partitionnées. |
Obligatoire pour les tables partitionnées |
|