Exécution de requêtes à partir duPresto (C++) Espace de travail CLI ou requête

IBM® watsonx.data permet d'exécuter des requêtes SQL à partir dePresto (C++) CLI ou via le Espace de travail de requête avec ou sans utilisation Optimiseur de requête.

A propos de cette tâche

Vous pouvez sélectionner l'option d'exécutionPresto (C++) Requêtes CLI avec ou sans utilisation Optimiseur de requête opérateur danswatsonx.data en suivant les étapes suivantes.

En cours d'exécutionPresto Requêtes (C++):

  1. Option 1 : courirPresto (C++) requêtes en utilisant Optimiseur de requête.

    a. Exécutez la commande suivante pour entrer dans le répertoire " ibm-lh-client/bin:

    cd ibm-lh-client/bin
    

    b. Créez un fichier SQL et exportez le chemin d'accès au fichier vers " LH_SANDBOX_DIR". Par exemple, avec le nom de fichier " sql-files.

    export LH_SANDBOX_DIR=<path to sql-files>
    

    c. Obtenez la liste des noms de moteurs et choisissez celui à utiliser. Par exemple, le nom du moteur " engine1.

    ./manage-engines --op=list
     export engine_name=engine1
    

    d. Exécutez la commande suivante pour exécuterPresto (C++) requêtes utilisant Optimiseur de requête.

    ./presto-run --engine=$engine_name --session is_query_rewriter_plugin_enabled=true -f $LH_SANDBOX_DIR/sql-files.sql
    

    Vous devez utiliser un nom pleinement qualifié (nom en trois parties tel que " <catalog.schema.table>) ou un nom en deux parties avec l'instruction USE pour qualifier le catalogue et le schéma.

    Exemples : 3 nom de la partie : " select * from "catalog".schema.table;

    2 nom de la partie : " use "catalog".schema; followed by select * from schema.table;

  2. Option 2 : courirPresto (C++) Requêtes CLI sans utiliser Optimiseur de requête.

    a. Exécutez la commande suivante pour entrer dans le répertoire ibm-lh-client/bin:

    cd ibm-lh-client/bin
    

    b. Créez un fichier SQL et exportez le chemin d'accès au fichier vers " LH_SANDBOX_DIR". Par exemple, avec le nom de fichier " sql-files.

    export LH_SANDBOX_DIR=<path to sql-files>
    

    c. Obtenez la liste des noms de moteurs et choisissez celui à utiliser. Par exemple, avec le nom du moteur " engine1.

    ./manage-engines --op=list
    export engine_name=engine1
    

    d. La commande suivante permet d'exécuter les requêtes Presto (C++) sans utiliser Query Optimizer.

    ./presto-run --engine=$engine_name --session is_query_rewriter_plugin_enabled=false -f $LH_SANDBOX_DIR/sql-files.sql
    

    Si le paramètre de session is_query_rewriter_plugin_enabled est défini sur false, vous ne pourrez pas exécuter les commandes ExecuteWxdQueryOptimizer.

  3. Suivez les étapes pour obtenir les détails des requêtes et vérifier si les requêtes exécutées sont optimisées :

    1. Connectez-vous à la console watsonx.data.

    2. Dans le menu de navigation, ouvrir la page Gestionnaire d'infrastructure.

    3. Cliquez sur le moteur Presto (C++) pour ouvrir la page de détails du composant.

    4. Copiez et ouvrez l'hôte URL du moteur Presto (C++) à partir de la page de détails pour ouvrir la page web externe Cluster Overview.

    5. Saisissez le nom d'utilisateur et le mot de passe pour vous connecter à la page de présentation du cluster.

      Nom d'utilisateur : Le nom d'utilisateur est 'ibmlhapikey ou 'ibmlhapikey_<watsonx.datauser_id>. Mot de passe : La clé API de l'utilisateur watsonx.data Pour plus d'informations sur la récupération de la clé API, voir Générer la clé API.

      À partir de watsonx.data la version 2.2.0, l'authentification à l'aide de ibmlhapikey et ibmlhtoken comme noms d'utilisateur est obsolète. Ces formats sont progressivement supprimés dans 2.3.0 la version. Pour assurer la compatibilité avec les prochaines versions, utilisez le nouveau format :ibmlhapikey_<username> et ibmlhtoken_<username>.

    6. Cliquez sur l'ID de la requête que vous souhaitez vérifier. La page Détails de la requête s'ouvre.

    7. Ouvrez le fichier JSON à partir de la page Détails de la requête pour vérifier que la valeur du paramètre " is_query_rewriter_plugin_succeeded est bien " true ou " false. La valeur du paramètre de la requête optimisée est " true.