Tous les produits
Search
Centre de documentation

Data Management:Interroger une table logique

Dernière mise à jour :Aug 09, 2026

Cette rubrique explique comment interroger une table logique.

Contexte

  • Après avoir mis en œuvre le partitionnement de bases de données et de tables, vous devez pouvoir interroger simplement les données réparties sur plusieurs tables physiques. Une table logique offre une vue unifiée qui permet d’interroger les données partitionnées comme s’il s’agissait d’une seule table. Cela masque la complexité liée à la localisation manuelle de la base de données et de la table appropriées pour chaque requête.

  • Data Management (DMS) rend ces requêtes transparentes en agrégeant les données provenant des logical databases et des logical tables.

Procédure

  1. Sélectionnez la logical database à interroger et à partir de laquelle exporter les données. Avant de configurer un algorithme de routage, vous ne pouvez exécuter que des instructions SELECT, UPDATE et DELETE. L’instruction INSERT n’est pas prise en charge.

    Si vous exécutez une instruction INSERT à ce stade, le système renvoie l’erreur suivante : [Error] dsql.DSQLException: No shard route found, execution failed. Make sure a routing algorithm is configured for the logical table.

  2. Configurez un algorithme de routage. Cet exemple utilise le modulo simple. Pour plus d’informations sur la configuration d’algorithmes complexes, consultez la rubrique Configurer un algorithme de routage.

    Dans la boîte de dialogue New algorithm, définissez Algorithm type sur Single-column modulo, Modulo type sur Simple modulo et Routing field sur user_id (bigint). Définissez Modulo sur 128 puis cliquez sur Save.

  3. Exécutez une instruction INSERT.

    Par exemple, exécutez INSERT INTO scend_test(gmt_create,gmt_modified,user_id) VALUES (now(),now(),2); pour insérer un enregistrement dans la table scend_test. Une coche verte apparaît dans la zone des résultats en cas d’exécution réussie.

  4. Effectuez une requête rapide.

    • Une fois l’algorithme de routage configuré, interrogez une table de partition physique spécifique en utilisant le champ de routage dans votre condition de requête. Vous n’avez plus besoin de calculer manuellement ni de basculer entre les bases de données et les tables physiques. Dans la console SQL de DMS, exécutez l’instruction SQL SELECT * FROM scend_test WHERE user_id = 4, qui utilise le champ de routage user_id comme condition de requête. Le journal d’exécution indique que DMS achemine la table logique scend_test vers la table de partition physique poc_dev.scend_test_000.

    • Le résultat de la requête inclut une colonne supplémentaire indiquant la base de données et la table source. Cliquez sur la valeur de cette colonne pour accéder à la table de partition physique correspondante, avec l’instruction SQL et les conditions de requête préremplies. Par exemple, lorsque vous exécutez SELECT * FROM scend_test WHERE user_id = 1, la colonne d’emplacement des données dans le résultat affiche poc_dev.scend_test_000. Cela signifie que DMS a acheminé les données vers la table de partition physique correspondante et a renvoyé un enregistrement correspondant.

    • Vous pouvez également exécuter des requêtes sans inclure le champ de routage comme condition. Cela effectue une analyse complète de la table sur toutes les tables de partition physiques, ce qui est utile pour des opérations telles que les statistiques récapitulatives.

      Remarque

      La syntaxe telle que GROUP BY est également prise en charge. La plupart de la syntaxe SQL est cohérente avec celle de la base de données source, mais les sous-requêtes ne sont actuellement pas prises en charge.

      Par exemple, si vous exécutez SELECT COUNT(*) FROM scend_test; dans la console SQL, le résultat est 1, ce qui indique que la table contient un enregistrement.