クエリプロファイル、履歴、インサイト

Snowflakeにおけるデータパイプラインの自動化

Emily Melhuish

Technical Curriculum Developer, Snowflake

クエリプロファイルの必要性

operations_dashboard

  • Snowflakeが不要なデータをスキャンしている可能性があります
Snowflakeにおけるデータパイプラインの自動化

Snowsightでクエリプロファイルを開く

クエリプロファイルへのアクセス方法

アクセス方法:監視 > クエリ履歴 > [クエリを選択] > クエリプロファイルタブ

Snowflakeにおけるデータパイプラインの自動化

オペレーターツリーの読み方

オペレーターグラフと最もコストの高いノードパネルを表示するSnowsightクエリプロファイル

Snowflakeにおけるデータパイプラインの自動化

クエリプロファイルが示す4つの一般的な問題

爆発的結合

  • 消費できる行数を超える行を生成する

ALLなしのUNION

  • 重複除去のためUNION上にAggregateが追加される
  • コスト=処理時間の増加

ディスクスピル

  • メモリ集約型オペレーターがメモリ不足になる
  • 集計、ソート、大規模結合などが対象

非効率なプルーニング

  • スキャンパーティション数が合計に近い場合に顕在化
  • フィルターが効果的に機能していない
Snowflakeにおけるデータパイプラインの自動化

ディスクスピル:ローカルとリモート

  • ローカルスピル → ウェアハウスSSD - メモリより低速だが許容範囲内
  • リモートスピル → クラウドストレージ - 大幅に低速;対処が必要

診断クエリ

SELECT 
query_id,
bytes_spilled_to_local_storage,
bytes_spilled_to_remote_storage
FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
WHERE bytes_spilled_to_remote_storage > 0
ORDER BY bytes_spilled_to_remote_storage DESC
LIMIT 10;
Snowflakeにおけるデータパイプラインの自動化

QUERY_HISTORY:アカウント全体の可視性

  • ACCOUNT_USAGE.QUERY_HISTORY - 365日間保持のビュー
  • INFORMATION_SCHEMA.QUERY_HISTORY() - 7日間保持のテーブル関数

クエリ履歴を実行しているスクリーンショット

Snowflakeにおけるデータパイプラインの自動化

クエリインサイト:自動推奨

クエリインサイトの推奨事項

Snowflakeにおけるデータパイプラインの自動化

練習しましょう!

Snowflakeにおけるデータパイプラインの自動化

Preparing Video For Download...