OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

クエリの処理中にVerticaが検出したエラーとワーニングの一覧を表示する方法

公開日:
更新日:
基本操作
#エラー
#ワーニング

はじめに

クエリの処理中にVerticaが検出したエラーとワーニングをシステムテーブルを
検索して確認する方法をご紹介します。

システムテーブル

ERROR_MESSAGES

カラム名

データ型

説明

NODE_NAME

TIMESTAMPTZ

ノードの名前

USER_ID

VARCHAR

ユーザーの識別子

USER_NAME

INTEGER

ユーザーの名前

SESSION_ID

VARCHAR

セッションの識別子

REQUEST_ID

VARCHAR

クエリリクエストの一意の識別子

TRANSACTION_ID

INTEGER

トランザクションの識別子

STATEMENT_ID

INTEGER

ステートメントの一意の識別子

ERROR_LEVEL

VARCHAR

エラーの重大度。
・LOG
・INFO
・NOTICE
・WARNING
・ERROR
・ROLLBACK
・INTERNAL
・FATAL
・PANIC

ERROR_CODE

INTEGER

エラーコード

MESSAGE

VARCHAR

エラーメッセージ

DETAIL

VARCHAR

エラーメッセージに関する詳細情報

HINT

VARCHAR

エラーに関する実用的なヒント。
例えば:
HINT: Set the locale in this session to en_US@collation=binary using the command "\locale en_US@collation=binary"

実行例

システムテーブル(ERROR_MESSAGES)を検索

dbadmin=> SELECT event_timestamp, user_name, message,transaction_id,statement_id FROM error_messages ORDER BY event_timestamp DESC;
        event_timestamp        | user_name |            message                                                                                           |  transaction_id   | statement_id
-------------------------------+-----------+--------------------------------------------------------------------------------------------------------------+-------------------+--------------
 2020-07-09 03:15:18.246526+09 | test      | Insufficient resources to execute plan on pool general [Request exceeds session memory cap: 5696KB > 0KB]    | 45035996273893802 |            1  ★ ①
 2020-07-09 02:05:35.107844+09 | dbadmin   | Relation "test" does not exist                                                                               | 45035996273891681 |            1  ★ ②
 2020-07-09 02:04:04.675791+09 |           | Invalid username or password                                                                                 | 45035996273891669 |           -1  ★ ③
(3 rows)

【上記エラーの内容】
①:メモリが不足していたためエラーとなっています。
②:"test"テーブルが存在しないためエラーになっています。
③:ログイン時のパスワードが違うためエラーになっています。

エラーになったクエリを確認することが可能

①の”transaction_id”と”statement_id”を条件にシステムテーブル(query_requests)を検索します。

dbadmin=> select request from query_requests where transaction_id = 45035996273893802 and statement_id = 1;
request
-------------------------
select * from test_tbl; ★①で実行されたクエリ
(1 row)

注意事項

ERROR_MESSAGESに保存期間はありませんが、格納されるサイズが10MBに制限されています。

10MBを超えた場合は、古い情報から削除されていきます。

長期間保存されたい場合は、ERROR_MESSAGESの検索結果を定期的にファイルに出力するか、下記の参考情報にあるサイズの拡張を行ってください。

 

【参考情報】

「システムテーブルの保存条件について」

https://www.ashisuto.co.jp/cm/analytics-database/datacollector.html

検証バージョンについて

この記事の内容はVertica 10.0で確認しています。

更新履歴

2020/07/10 本記事を公開