Ce guide explique comment configurer rapidement une instance OpenSearch High-performance Search Edition qui prend en charge les jointures multitableaux en ligne.
Prérequis
Vous disposez d'un compte Alibaba Cloud et avez effectué la vérification d'identité.
Vous avez créé une AccessKey. La console Alibaba Cloud vous invite à créer une AccessKey lors de votre première connexion.
Procédure
Créez et achetez une instance d'application.
Configurez l'application : définissez les schémas d'application et d'index, et configurez une source de données.
Testez la fonctionnalité de recherche.
Créer une application
Sur la page Instances de la console OpenSearch High-performance Search Edition, cliquez sur Create Instance.
-
Spécifiez les paramètres de l'instance, y compris l'édition, la méthode de facturation, la région et la zone, le nom de l'application, la préférence de cluster, la capacité de stockage et les ressources de calcul. Ensuite, cliquez sur Buy Now.
Les éditions disponibles incluent Industry Algorithm Edition, LLM Intelligent Q&A Edition, High-performance Search Edition, Vector Search Edition et Recall Engine Edition.
Pour Edition, sélectionnez High-performance Search Edition.
Le Application name doit commencer par une lettre, ne peut contenir que des lettres, des chiffres et des underscores (_), et ne doit pas dépasser 30 caractères. Vous ne pouvez pas modifier le nom après la création de l'application. Pour Resource Group, sélectionnez ou créez-en un selon vos besoins.
Billing method : Vous pouvez sélectionner Pay-as-you-go ou Pay-as-you-go.
Region and zone : Sélectionnez une région et une zone en fonction de vos besoins professionnels.
Application name : Saisissez un nom personnalisé.
Cluster preference : Fixé sur Storage-optimized Dedicated Cluster.
Storage capacity et Computing resources : Conservez les valeurs par défaut ou spécifiez des valeurs en fonction de vos besoins professionnels.
Confirmez votre commande, acceptez les conditions de service, puis cliquez sur Open immediately.
-
Après l'activation, l'instance apparaît sur la page Instance Management avec le statut Pending Configuration.
Pour une instance avec la méthode de facturation Pay-as-you-go, cliquez sur Configure dans la colonne Actions pour configurer l'application.
Configurer l'application
-
Sur la page de liste des instances, repérez l'instance nouvellement achetée et cliquez sur Configure dans la colonne Actions.
Le statut de la nouvelle instance est Pending Configuration.
-
Définissez le schéma d'application de l'une des quatre manières suivantes :
From a template : Vous pouvez enregistrer un schéma d'application défini par l'utilisateur comme modèle et le réutiliser pour créer rapidement de nouvelles applications.
By uploading a document : Téléchargez un fichier de données JSON. Le système l'analyse automatiquement pour créer un schéma d'application initial. Vous devez ensuite examiner et ajuster les paramètres tels que les types de champs.
From a data source : Cette méthode est idéale pour synchroniser des données depuis des sources telles que RDS et MaxCompute. Elle génère automatiquement un schéma d'application initial à partir du schéma de table source, réduisant ainsi les efforts manuels et les erreurs potentielles. Pour plus de détails, consultez Configuration de la source de données.
Manually : Cette méthode convient aux tests rapides. Ce guide utilise cette méthode pour créer deux tables.
La première table est nommée main et contient les champs
m_id(INT, clé primaire),m_name(LITERAL),m_age(LITERAL) etm_title(TEXT). La deuxième table est nommée table_1 et contient les champst_id_1(INT, clé primaire),t_name(LITERAL),t_age(LITERAL) ett_title(TEXT).Pour plus d'informations sur les types de champs, consultez Schéma d'application dans OpenSearch High-performance Search EditionSchéma d'application dans OpenSearch High-performance Search Edition.
Remarque :
RemarqueLe système prend en charge un maximum de huit tables.
-
Configurez le schéma d'index pour chaque table séparément.
La page de configuration du schéma d'index contient les sections suivantes : Index Fields (configurer le nom de l'index, les champs inclus et la méthode d'analyse), Attribute Fields, Routing Fields (Optional) et Advanced Settings (Optional). Pour les applications comportant plusieurs tables, telles que les tables main et table_1, vous devez développer et configurer chaque table séparément.
Pour plus d'informations sur la configuration d'un schéma d'index, consultez Schéma d'indexSchéma d'index.
Pour plus d'informations sur le choix d'une méthode d'analyse, consultez Analyseurs de texteAnalyseurs de texte.
Pour utiliser un champ dans une clause
SELECT,WHEREouORDER BY, vous devez le configurer comme champ d'attribut.
RemarqueLes champs de type
FLOAT,FLOAT_ARRAY,DOUBLEetDOUBLE_ARRAYne peuvent pas être configurés comme champs d'index.Les champs de type
TEXTetSHORT_TEXTne peuvent pas être configurés comme champs d'attribut.
-
Dans les paramètres de chaque table, tels que les sections main table settings et table_1 settings, développez la zone Routing Fields (Optional) et ajoutez un champ de routage dans la colonne Included Fields.
Les instances OpenSearch utilisent un backend distribué. Dans un scénario multitableau, toutes les données requises pour une opération de jointure doivent se trouver sur la même machine, comme illustré dans la figure suivante.
Lors de la construction de l'index, le moteur hache la valeur du champ de routage configuré pour garantir que les enregistrements ayant le même résultat de hachage sont stockés dans le même shard. Au moment de la requête, le nœud de requête envoie la demande à chaque shard. Chaque shard effectue l'opération de jointure en interne sans communiquer avec les autres shards. Enfin, chaque shard renvoie ses résultats de jointure au nœud de requête. Le nœud de requête agrège les résultats et renvoie le résultat final à l'utilisateur.
RemarquePar défaut, le système utilise la clé primaire comme champ de routage.
Vous ne pouvez sélectionner qu'un seul champ de routage.
Les enregistrements entre les tables sont co-localisés en fonction de la valeur du champ de routage.
Les types de données pris en charge pour le champ de routage sont
INTetLITERAL.Pour effectuer une jointure sur une clé non primaire, vous devez configurer la clé de jointure comme champ de routage.
-
Configurez une source de données en fonction des types pris en charge par High-performance Search Edition.
La page affiche les sections de source de données pour les tables main et table_1. Vous devez cliquer sur Add Data Source dans chaque section pour les configurer séparément.
-
Une fois la configuration terminée, cliquez sur Completed.
Le système vous redirige alors vers la page des détails de l'instance.
-
Sur la page des détails de l'instance, attendez que le statut de l'application hors ligne devienne Normal avant d'exécuter des requêtes.
Pendant ce temps, le statut de l'application hors ligne est Application Initializing.
Test de recherche
-
Une fois que le statut de l'application hors ligne passe à Normal et que l'application est publiée en ligne, vous pouvez tester l'application sur la page Search Test.
Dans le volet de navigation de gauche, choisissez Feature Extensions > Search Test. Vous pouvez également cliquer sur Search Test dans la colonne Actions de la liste des instances.
-
Actuellement, les jointures multitableaux en ligne prennent uniquement en charge les requêtes SQL.
Dans la zone SQL Query, saisissez une instruction de jointure multitableau, telle que
SELECT ... FROM main INNER JOIN table_1 ON main.m_id = table_1.t_id_1 WHERE contain(main.m_title, ?) ORDER BY ... LIMIT 20 OFFSET 0. Transmettez les paramètres de requête en utilisantdynamic_params=123,456. Cliquez sur Execute pour exécuter la requête et afficher les résultats ci-dessous.Pour des informations détaillées sur la syntaxe SQL prise en charge, consultez Prise en charge SQLPrise en charge du langage SQL.
Limitations
Seuls les clusters Exclusive Storage-optimized prennent en charge les jointures multitableaux en ligne.
Dans les scénarios de jointure multitableau, seules les requêtes SQL sont prises en charge.
Dans les scénarios de jointure multitableau, les analyseurs personnalisés ne sont pas pris en charge.
Dans les scénarios de jointure multitableau, les configurations de tri ne sont pas prises en charge. Utilisez plutôt une clause ORDER BY dans votre requête SQL.
Dans les scénarios de jointure multitableau, vous ne pouvez pas afficher les résultats de recherche.
Les instances de cluster Exclusive Storage-optimized ne peuvent pas être converties en d'autres types d'instance.