2017-09-15 3 views
0

J'exécute des requêtes sur un cluster Redshift en utilisant DataGrip qui prennent jusqu'à 10 heures à s'exécuter et, malheureusement, celles-ci échouent souvent. Hélas, DataGrip ne maintient pas une connexion à la base de données assez longtemps pour que je puisse voir le message d'erreur avec lequel les requêtes échouent.Récupérer les messages d'erreur Redshift

Existe-t-il un moyen de récupérer ces messages d'erreur plus tard, par ex. en utilisant des tables Redshift internes? Sinon, existe-t-il un moyen de faire en sorte que DataGrip maintienne la connexion suffisamment longtemps?

Répondre

2

Oui, vous pouvez!
Query Table stl_connection_log pour savoir pid en regardant la colonne recordtime lorsque votre connexion a été lancé et aussi dbname, username et duration colonne aide à limiter.

select * de l'ordre stl_connection_log par recordtime limite desc 100


Si vous pouvez trouver le pid, vous pouvez interroger stl_query table pour savoir si sont à la recherche à droite requête.

select * from stl_query où pid = 'XXXX' limite 100


Ensuite, vérifiez la table stl_error pour votre pid. Cela vous indiquera l'erreur que vous recherchez.

select * from stl_error où pid = limite 'XXXX' 100


Si je l'ai fait une hypothèse mauvaise s'il vous plaît commentaire et je vais recentrer ma réponse.