【Snowflake】Snowflake ~ QUERY_HISTORY ビュー ~

■ はじめに

https://dk521123.hatenablog.com/entry/2023/08/03/000817

で、Snowflakeのトラブルシューティングのための統計情報を取得する方法を
扱っていたが、
今日、QUERY_HISTORY ビューを使って、トラブルシュートしたので
改めて、別冊で扱ってみた。

目次

【1】QUERY_HISTORY ビュー
【2】得られる情報
【3】使用上の注意
【4】サンプル
 1)トラブルシュートのためのクエリ実行一覧表示
 2)クエリ実行一覧から何件更新されたかを表示

【1】QUERY_HISTORY ビュー

https://docs.snowflake.com/ja/sql-reference/account-usage/query_history

* 過去365日間(1年間)以内のSnowflakeクエリ履歴を取得する

【2】得られる情報

* 以下を参照。

https://docs.snowflake.com/ja/sql-reference/account-usage/query_history#columns

主なパラメータ

Column Names Explanations Memo
DATABASE_NAME/SCHEMA_NAME DB名/スキーマ
WAREHOUSE_NAME ウェアハウス名
QUERY_TEXT 実行したSQL LIKEで絞るといい感じ
START_TIME 開始日時
END_TIME 終了日時
TOTAL_ELAPSED_TIME 経過時間(ミリ秒単位) 長時間かかっているSQL文を選査できる
EXECUTION_TIME 実行時間(ミリ秒単位)
ROWS_INSERTED/UPDATED/DELETED etc クエリによって挿入/更新/削除された行の数

【3】使用上の注意

https://docs.snowflake.com/ja/sql-reference/account-usage/query_history#usage-notes

* ビューの遅延は最大45分

【4】サンプル

1)トラブルシュートのためのクエリ実行一覧表示

SELECT
  CONVERT_TIMEZONE('America/Los_Angeles', 'Asia/Tokyo', START_TIME) AS ST,
  CONVERT_TIMEZONE('America/Los_Angeles', 'Asia/Tokyo', END_TIME) AS ET,
  *
FROM
  SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
WHERE
  USER_NAME = 'your_user'
  AND ROLE_NAME = 'your_role'
  AND START_TIME >= '2024-10-08 05:00:00+00:00'
  AND QUERY_TEXT LIKE '%your_table%'
ORDER BY
  START_TIME DESC
LIMIT
  100
;

2)クエリ実行一覧から何件更新されたかを表示

SELECT
  MIN(CONVERT_TIMEZONE('America/Los_Angeles', 'Asia/Tokyo', START_TIME)) AS ST,
  MAX(CONVERT_TIMEZONE('America/Los_Angeles', 'Asia/Tokyo', END_TIME)) AS ET,
  SUM(ROW_INSERTED)
FROM
  SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
WHERE
  USER_NAME = 'your_user'
  AND ROLE_NAME = 'your_role'
  AND START_TIME >= '2024-10-08 05:00:00+00:00'
  AND QUERY_TEXT LIKE '%your_table%'
GROUP BY ALL
ORDER BY
  START_TIME DESC
;

関連記事

Snowflake ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/02/130111
Snowflake ~ 入門編 / Hello world
https://dk521123.hatenablog.com/entry/2021/11/22/212520
Snowflake ~ 統計情報 ~
https://dk521123.hatenablog.com/entry/2023/08/03/000817
Snowflake ~ TAG ~
https://dk521123.hatenablog.com/entry/2023/08/08/172648
Snowflake ~ ストレージ統合 ~
https://dk521123.hatenablog.com/entry/2022/06/29/221037
Snowflake ~ ストレージ統合の作成手順 ~
https://dk521123.hatenablog.com/entry/2023/07/27/000000
Snowflake ~ 日時関連 ~
https://dk521123.hatenablog.com/entry/2022/06/17/113003
Snowflake ~ 日時関連 / 日時取得関数 ~
https://dk521123.hatenablog.com/entry/2022/09/02/092144
Snowflake ~ Timezone ~
https://dk521123.hatenablog.com/entry/2024/10/10/002436