Cette rubrique décrit la procédure d'ajout d'une table lorsque vous utilisez MaxCompute comme source de données.
Prérequis
Pour en savoir plus sur MaxCompute, reportez-vous à Qu'est-ce que MaxCompute ;
Assurez-vous de disposer des autorisations nécessaires sur les tables avant de configurer les tables de données MaxCompute. Connectez-vous au compte Open Search avec les autorisations appropriées (describe, select, download, permissions sur les libellés de champs). L'instruction d'autorisation est la suivante :
-- Add account
add user ****@aliyun.com;
-- Grant the corresponding table permissions to the account
GRANT describe, select, download ON TABLE table_xxx TO USER ****@aliyun.com
-- Since ODPS has enabled field permission verification, it is impossible to access high-permission fields when pulling data, causing the table index to fail to build. In this case, you need to grant field-level access permissions to the account.
-- Grant permissions to the entire project
SET LABEL 3 to USER bs*******@aliyun.com
-- Grant permissions to a single table
GRANT LABEL 3 ON TABLE table_xxx(col1, col2) TO ****@aliyun.com
Les types de champs de table MaxCompute pris en charge par la version du moteur de recherche incluent : STRING, BOOLEAN, DOUBLE, BIGINT, DATETIME ;
Configurer la source de données MaxCompute
1. Accédez à la console OpenSearch, basculez vers OpenSearch Retrieval Engine Version dans le coin supérieur gauche, localisez l'instance correspondante dans la liste de la page de gestion des instances et cliquez sur Manage dans la colonne Actions.
Cliquez sur le bouton « Go to configure » pour lancer la configuration de l'instance.
2. Dans l'interface Table Management, commencez par configurer les informations de base de la table, notamment le nom de la table, le nombre de shards et le nombre de ressources de mise à jour des données.
Description de la configuration :
Table Name : Personnalisable, mais ne prend pas en charge le format project.tablename.
Data Shards : Le nombre de shards doit être cohérent pour chaque table d'index, ou au moins une table d'index doit comporter un seul shard, les autres devant rester cohérents. Le nombre total de shards ne doit pas dépasser 256 (il est recommandé de ne pas dépasser trois fois le nombre de nœuds de données de l'instance).
Number of Resources for Data Update : Nombre de ressources allouées aux mises à jour des données. Par défaut, chaque index fournit gratuitement 2 ressources de mise à jour de 4 cœurs et 8 Go. Les ressources supplémentaires au-delà du quota gratuit sont facturables.
3. Data Synchronization : Configurez la source de données et, après vérification, cliquez sur Next.
Description des paramètres de configuration :
Full Data Source : Sélectionnez MaxCompute + API
Project Name : Nom du projet MaxCompute cible à accéder
AccessKey : ID AccessKey du compte Alibaba Cloud ou de l'utilisateur RAM
AccessKey Secret : Secret AccessKey correspondant à l'ID AccessKey
Table name : Nom de la table MaxCompute cible à accéder
Partition : La clé de partition doit être définie pour la source de données MaxCompute ; Exemple : ds=20170626
Automatic Reindexing : Indique s'il faut activer les tâches de réindexation automatique. Si cette option est activée, la table d'index qui fait référence à la source de données actuelle sera automatiquement reconstruite lorsque des modifications sont détectées dans la source de données.
Si la réindexation automatique est activée, une table done doit être créée. Pour la méthode de création, consultez Réindexation automatique ci-dessous ;
4. Field Configuration : Une fois terminé, cliquez sur Next.
Exemple de configuration des champs :
id : type de champ INT64, défini comme clé primaire, champ d'attribut (sans compression), plage de données égale
flo_string : type de champ STRING, multivaleur (un séparateur doit être défini), plage de données uniq
name : type de champ TEXT, avec la méthode d'analyse définie sur Chinese general analyzer
code : type de champ STRING, champ d'attribut (sans compression), plage de données uniq, valeur par défaut personnalisée
<EMPTY_STRING>
5. Index Configuration : Une fois terminé, cliquez sur Next.
Exemple de configuration d'index :
Nom de l'index
id, type d'index PRIMARYKEY64, champ inclusid, compression des données désactivéeNom de l'index
fb_string, type d'index STRING, champ inclusfb_string, compression des données désactivéeNom de l'index
name, type d'index STRING, champ inclusname, compression des données désactivée
6. Confirm Creation : Après avoir cliqué sur Confirm Creation, le système créera automatiquement la table configurée.
7. Surveillez la progression de la création de la table dans l'historique des modifications.
Remarque :
Full Data Source : Source de données de l'utilisateur, nommée selon le format nom_instance_nom_défini_par_l_utilisateur ;
Project Name, AccessKey, AccessKey Secret, Table name, Partition : Paramètres requis pour que l'utilisateur accède à la source de données MaxCompute ;
Automatic Reindexing : Indique s'il faut activer les tâches de réindexation automatique. Si cette option est activée, la table d'index qui fait référence à la source de données actuelle sera automatiquement reconstruite lorsque des modifications sont détectées dans la source de données ;
Si Automatic Reindexing est activé, une table done doit être créée. Pour la méthode de création, consultez Réindexation automatique ci-dessous ;
Réindexation automatique
L'activation de la réindexation automatique lors de la configuration de la source de données signifie que l'instance de la version du moteur de recherche reconstruira automatiquement l'index en fonction des modifications apportées à la table done de l'utilisateur.
Exemple : Si la table de données MaxCompute de l'utilisateur est mytable, avec une partition ds=20220113, l'instance de la version du moteur de recherche devra analyser les nouvelles partitions produites quotidiennement (contenant les données de la table complète) et reconstruire automatiquement l'index pour intégrer les données de la nouvelle partition. Ce processus nécessite la fonctionnalité réindexation automatique + table done. Les étapes de fonctionnement sont les suivantes :
Activez la réindexation automatique lors de l'ajout d'une source de données.
Créez la table done dans MaxCompute. En supposant que le nom de la table source est mytable et que le nom de la clé de partition est ds, le nom de la table done sera mytable_done, avec le nom de la clé de partition également ds. Les deux tables apparaissent dans MaxCompute comme suit :
odps:sql:xxx> show tables;
InstanceId: xxx
SQL: .
ALIYUN$xxx@aliyun.com:mytable # Full data source table
ALIYUN$xxx@aliyun.com:mytable_done # Done table controlling automatic full data
Instruction pour créer la table done :
create table mytable_done (attribute string) partitioned by (ds string);
Une fois la partition mytable ds=20220114 terminée, définissez la table done pour déclencher la réindexation de l'instance de la version du moteur de recherche ;
-- Add partition
alter table mytable_done add if not exists partition (ds="20220114");
-- Insert automatic full signal data
insert into table mytable_done partition (ds="20220114") select '{"swift_start_timestamp":1642003200}';
Le contenu final de la table done est le suivant :
odps:sql:xxx> select * from mytable_done where ds=20220114 limit 1;
InstanceId: xxx
SQL: .
+-----------+----+
| attribute | ds |
+-----------+----+
| {"swift_start_timestamp":1642003200} | 20220114 |
+-----------+----+
Une fois que la table done a reçu les données de signal automatique complet, l'instance de la version du moteur de recherche analysera le signal done et déclenchera ensuite le processus de réindexation.
Remarque :
La table done doit comporter au moins une clé de partition, et le nom de la clé de partition doit correspondre au nom de la clé de partition de la table source ;
Les partitions ajoutées à la table done doivent correspondre aux partitions existantes dans la table source. Par exemple, si la table source comporte des partitions telles que ds="20220114", ds="20220115", ds="20220116", alors les nouvelles partitions ajoutées à la table done doivent se situer dans la plage des partitions de la table source ;
Précautions
Le nom de la table MaxCompute ne doit pas inclure le nom du projet ; sinon, une erreur se produira en raison d'un nom de table non reconnu pendant le processus de construction.
Le nom de la table ne peut pas être modifié une fois la table éditée ;
La table désignée pour la source de données MaxCompute doit être une table partitionnée ;
La table créée par l'utilisateur sur MaxCompute sert d'entrée complète, tandis que la source de données API est utilisée pour pousser des données en temps réel ;