Exportation et importation de l'historique des requêtes
Le Presto coordinateur stocke l'historique des requêtes dans system.runtime.queries le tableau. Mais system.runtime.queries la table se tronque lorsque vous redémarrez Presto, ce qui entraîne la perte de l'historique
des requêtes. Pour atténuer ce problème, vous pouvez exporter l'historique des requêtes sous forme de fichier CSV et également importer l'historique des requêtes depuis la system.runtime.queries table vers une table non système.
Il est recommandé d'exporter périodiquement l'historique des requêtes pour éviter de le perdre.
Pour importer et exporter l'historique des requêtes, vous devez installer le CLI Presto. Pour plus d'informations, voir Connexion au serveur Presto.
À 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>.
Exportation de l'historique des requêtes
Pour exporter l'historique des requêtes, exécutez la commande suivante.
export PRESTO_PASSWORD=<your api_key>
./presto --server https://<port:host> --catalog system \
--schemaruntime --execute "select * from queries" \
--user ibmlhapikey --output-format CSV_HEADER > history.csv --password
Cette commande génère un fichier CSV qui contient l'historique des requêtes exportées.
- Exemple
./presto --server https://8dac613f-ba5b-4c3c-8c96-
ce8de101f7cf.cdc406pd09pasng7elgg.databases.appdomain.cloud:30929 \
--execute "select * from system.runtime.queries" --output-format CSV_HEADER \
--user ibmlhapikey output-format CSV > history.csv --password
Importation de l'historique des requêtes
-
Pour importer l'historique des requêtes, créez un schéma dans un catalogue dans lequel vous disposez de l'accès en écriture.
create schema <non-system-catalog.schema-name> with (location=' s3a://<bucket-name>/<schema-name>')- Exemple
./presto --server https://8dac613f-ba5b-4c3c-8c96-\ ce8de101f7cf.cdc406pd09pasng7elgg.databases.appdomain.cloud:30929 \ --execute "create schema hive_data.query_history with \ (location='s3a://8dac613f-ba5b-4c3c-8c96-ce8de101f7cf-customer/query_history')" \ --user ibmlhapikey --password -
Créez une table dans le même catalogue.
Cette table doit avoir les mêmes métadonnées que la table
system.runtime.queries. Utilisez l'instructionCREATE TABLE AS SELECTpour créer cette table.create table <non-system-table-name> as select * from system.runtime.queries where 1=0;where 1=0permettent de s'assurer qu'aucune ligne n'est sélectionnée dans un tableau, ce qui donne un ensemble de résultats vide.- Exemple
./presto --server https://8dac613f-ba5b-4c3c-8c96-ce8de101f7cf.cdc406pd09pasng7elgg.databases.appdomain.cloud:30929 --execute "create table hive_data.query_history.queries as select * from system.runtime.queries where 1=0" --user ibmlhapikey --password -
Pour importer l'historique des requêtes dans la table que vous venez de créer, exécutez la requête suivante régulièrement.
INSERT INTO <non-system-table-name> SELECT * FROM system.runtime.queries WHERE query_id NOT IN (SELECT query_id FROM <non-system-table-name>);- Exemple
./presto --server \ https://8dac613f-ba5b-4c3c-8c96-ce8de101f7cf.cdc406pd09pasng7elgg.databases.appdomain.cloud:3092 \ –-execute "insert into hive_data.query_history.queries select * from system. runtime.queries \ where query_id not in (select query_id from hive_data.query_history.queries)" --user ibmlhapikey --password -
Pour extraire l'historique des requêtes des deux tables, utilisez l'instruction suivante.
select * from <non-system-table-name> union select * from `system.runtime.queries` order by created;- Exemple
./presto --server \ https://23b06b14-342b-4ed2-841d-7f02ca9ae788.cdc406pd09pasng7elgg.databases.appdomain.cloud:31530 \ --execute " select * from hive_data.query_history.queries union \ select * from system.runtime.queries order by created " \ --output-format=CSV_HEADER --user ibmlhapikey --password