Cette rubrique explique comment ajouter une table utilisant Object Storage Service (OSS) + API comme source de données.
Pour ajouter une source de données OSS + API, procédez comme suit :
Activez Object Storage Service (OSS).
Ajoutez la source de données OSS + API.
Étape 1 : Activer OSS
1. Activer OSS
Le service Object Storage Service (OSS) que vous activez doit être associé au même compte et se trouver dans la même région que votre instance OpenSearch.
Sur la page d'achat du plan de ressources OSS, définissez le paramètre Product Type sur OSS Resource Plan. Sélectionnez un Resource Plan Type, tel que Standard - Locally Redundant Storage, en fonction de vos besoins métier, puis choisissez la region correspondante, par exemple Chinese mainland.
Vos instances Object Storage Service (OSS) et OpenSearch doivent être associées au même compte et se trouver dans la même région. À défaut, l'authentification échouera.
Lorsque vous ajoutez une source de données OSS, OpenSearch crée automatiquement un rôle lié au service nommé AliyunServiceRoleForSearchEngine s'il n'existe pas déjà. OpenSearch endosse ce rôle pour accéder à vos ressources dans d'autres services cloud.
2. Créer un bucket
Créez un bucket pour vos fichiers de données avant de les importer vers OSS. Pour plus d'informations, consultez la rubrique Créer des buckets.
Chemin d'accès : console Object Storage Service (OSS) → Buckets → Create Bucket
La version Retrieval Engine Edition ne prend pas en charge les buckets OSS sans attribut de région.
Accédez au bucket créé et ajoutez un tag OpenSearch.
Chemin d'accès : Bucket Configuration → Bucket Tagging → Add Tag
Définissez la clé et la valeur du tag sur opensearch.
3. Format de fichier OSS
a. Format de fichier OSS
Pour servir de source de données à un index, vos fichiers doivent respecter les exigences suivantes :
Les fichiers doivent être encodés en UTF-8.
Les données doivent être formatées en HA3 ou en JSON.
i. Format JSON
Le code suivant présente un exemple contenant plusieurs enregistrements :
{"field_double": ["100.0", "221.123", "500.3333333"], "field_int32": ["100", "200", "300"], "title": "Huawei Mate 9 Kirin 960 Chip Leica Dual Lens", "color": "Red", "empty_int32": "", "price": "3599", "CMD": "add", "nid": "1", "gather_cn_str": "", "desc": ["str1", "str2", "str3"], "brand": "Huawei", "size": "5.9","__subdocs__":[{"sub_pk":"100","sub_field1":"200","sub_field2":["100","200","300"]},{"sub_pk":"200","sub_field1":"200","sub_field2":["100","200","300"]}]}
{"field_double": ["100.0", "221.123", "500.3333333", "100.0", "221.123", "500.3333333"], "field_int32": ["100", "200", "300", "100", "200", "300"], "title": "Huawei P10 Plus Unlocked Phone", "color": "Blue", "empty_int32": "", "price": "4388", "CMD": "add", "nid": "2", "gather_cn_str": "colorBlue", "desc": ["str1", "str2", "str3", "str1", "str2", "str3"], "brand": "Huawei", "size": "5.5","__subdocs__":[{"sub_pk":"100","sub_field1":"200","sub_field2":["100","200","300"]},{"sub_pk":"200","sub_field1":"200","sub_field2":["100","200","300"]}]}
Remarques :
Toutes les valeurs de champ dans les données JSON doivent être des chaînes de caractères. Le moteur de recherche convertit ces chaînes dans les types de données spécifiés dans le schéma d'index lors de l'indexation.
Chaque objet JSON représente un seul enregistrement et ne doit pas contenir de sauts de ligne. Les enregistrements doivent être séparés par un caractère de nouvelle ligne (
\n).
ii. Format HA3
Le code suivant affiche le contenu d'un exemple de fichier de données,
standard_sample.data.
CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=Alibaba Cloud Computing Co., Ltd.^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
CMD=delete^_
PK=12345321^_CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=Alibaba Cloud Computing Co., Ltd.^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
CMD=delete^_
PK=12345321^_
Délimiteurs : Le fichier de données contient les commandes
addetdelete. Chaque commande se compose de paires clé-valeur sur des lignes distinctes. Les commandes sont séparées par^^\n, les paires clé-valeur par^_\n, et les multiples valeurs au sein d'un champ par^]. Le tableau suivant décrit les délimiteurs.
|
Encodage C++ |
ASCII Hexadécimal |
Description |
Affichage dans emacs/vi |
Méthode de saisie dans emacs |
Méthode de saisie dans vi |
|
"\x1F\n" |
1F0A |
Délimiteur de paire clé-valeur |
^_ (suivi d'un saut de ligne) |
C-q C-7 |
C-v C-7 |
|
"\x1E\n" |
1E0A |
Délimiteur de commande |
^^ (suivi d'un saut de ligne) |
C-q C-6 |
C-v C-6 |
|
"\x1D" |
1D |
Délimiteur de valeurs multiples |
^] |
C-q C-5 |
C-v C-5 |
|
"\x1C" |
1C |
Identificateur de poids de section |
^\ |
C-q C-4 |
C-v C-4 |
|
"\x1D" |
1D |
Délimiteur de section |
^] |
C-q C-5 |
C-v C-5 |
|
"\x03" |
03 |
Délimiteur de champ de sous-document |
^C |
C-q C-c |
C-v C-c |
Format de la commande
add: Ajoute un nouveau document à l'index. La commande doit commencer parCMD=addsur la première ligne, suivie des champs du document. L'ordre des champs peut différer du schéma, mais tous les champs doivent être définis dans celui-ci.
CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=Alibaba Cloud Computing Co., Ltd.^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=Alibaba Cloud Computing Co., Ltd.^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
Format de la commande
delete: Supprime un document de l'index. La commande doit commencer parCMD=deletesur la première ligne, suivie de la clé primaire définie dans le schéma d'index et du champ utilisé pour le hachage de partition. Si la clé primaire et le champ de hachage sont identiques, un seul est requis.
CMD=delete^_
PK=12345321^_
^^CMD=delete^_
PK=12345321^_
^^
b. Importer des fichiers dans le bucket
Revenez à la page de la console de votre bucket. Dans le volet de navigation de gauche, sélectionnez File Management → File List → Upload File.
Dans le panneau Upload, sélectionnez vos fichiers, puis cliquez sur Upload File.
Dans le panneau Tasks qui apparaît à droite, vérifiez que le statut du fichier indique Succeeded.
Étape 2 : Ajouter la source de données OSS + API
Vous devez disposer d'une instance en cours d'exécution. Pour obtenir des instructions, consultez la rubrique Acheter une instance OpenSearch Retrieval Engine Edition.
1. Informations de base sur la table
Depuis la page Instance List, localisez votre instance Retrieval Engine Edition et cliquez sur Manage dans la colonne Actions.
Dans le volet de navigation de gauche, sélectionnez Table Management, puis cliquez sur Add Table.
Saisissez les informations de base de votre table, puis cliquez sur Next.
Table Name : Saisissez un nom composé uniquement de lettres, de chiffres ou de traits de soulignement, d'une longueur maximale de 25 caractères.
Number of Data Shards : Saisissez un entier positif jusqu'à 256. L'utilisation d'un plus grand nombre de shards de données peut améliorer la vitesse d'indexation complète et les performances des requêtes. Pour certaines instances existantes, les tables doivent respecter l'une des deux règles de sharding suivantes : soit toutes les tables ont le même nombre de shards de données, soit une table possède un seul shard tandis que toutes les autres partagent un nombre de shards différent mais identique entre elles.
Number of Data Update Resources : Nombre de ressources allouées aux mises à jour des données. Par défaut, deux ressources de mise à jour gratuites (4 vCPU, 8 GiB de mémoire) sont fournies pour chaque index. Vous êtes facturé pour toute ressource dépassant ce quota gratuit. Pour plus d'informations, consultez la rubrique Facturation d'OpenSearch Retrieval Engine Edition.
2. Synchronisation des données
Pour le paramètre Full Data Source, sélectionnez « Object Storage Service (OSS) + API ». Configurez les autres paramètres et, une fois la Data Source Verification réussie, cliquez sur Next.
Paramètres :
OSS Path : Chemin d'accès aux fichiers OSS. Il doit commencer par une barre oblique (
/) et ne peut pas contenir?,=ni&. Les fichiers ne peuvent pas se trouver dans le répertoire racine ; ils doivent être placés dans un sous-dossier.OSS bucket : Nom du bucket OSS.
Dans la console Object Storage Service (OSS), sur la page Buckets, cliquez sur le nom de votre bucket cible (par exemple, zhyq-sz) pour accéder à sa page de gestion.
Data Format : Les fichiers de données doivent être au format HA3 ou JSON pour être ingérés.
Data Source Verification : Une fois la vérification réussie, passez à l'étape suivante.
3. Schéma d'index
Configurez les fields et les indexes de votre table, puis cliquez sur Next.
Exemple de configuration de champ : id (INT64, clé primaire, champ d'attribut, compression de données equal), fb_string (STRING, multivaleur avec délimiteur virgule, compression de données uniq), name (TEXT, analyseur Chinese - General) et code (STRING, champ d'attribut, compression de données uniq, valeur par défaut personnalisée <EMPTY_STRING>).
Exemple de configuration d'index : Ajoutez un index nommé index_name (type TEXT, incluant le champ name) et un index nommé index_string (type STRING, incluant le champ fb_string).
-
Détails de la configuration :
-
Paramètres des champs :
Champ d'attribut : Vous pouvez choisir de compresser ou non les champs d'attribut. La compression est désactivée par défaut. Sélectionnez
file_compressorpour activer la compression.Compression des données : Réduit le stockage en dédupliquant le contenu des champs. Vous pouvez choisir d'activer ou non la compression. Celle-ci est désactivée par défaut. Le type de compression recommandé est
uniqpour les types STRING et multivaleurs, etequalpour les types numériques monovalues.-
Remarques d'utilisation :
Si vous activez la compression des attributs, nous vous recommandons de modifier la méthode de chargement de l'index dans Cluster Management > Node Status > Table Loading Policy afin d'atténuer tout impact sur les performances.
Seuls les champs de type TEXT peuvent être configurés avec un analyseur.
Vous pouvez copier des champs. Un champ copié (champ DUP) a le même contenu que son champ source. Si vous poussez un contenu différent vers le champ DUP, le contenu du champ source l'écrasera. Pour conserver un contenu différent, supprimez manuellement la configuration
copy_fromdans les paramètres avancés du champ DUP.Si un champ est manquant ou vide dans vos données source, le système insère automatiquement une valeur par défaut. La valeur par défaut est
0pour les types numériques et une chaîne vide pour les types STRING. Vous pouvez également spécifier une valeur par défaut personnalisée.
Paramètres d'index : Créez des index pour les champs recherchables.
-
4. Créer la table
Cliquez sur Confirm Creation. Cette action crée la table selon votre configuration.