Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Snowflake World Tour Tokyo 2025 振り返り ~個人的な注目セッシ...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Ryo Suzuki Ryo Suzuki
September 18, 2025

Snowflake World Tour Tokyo 2025 振り返り ~個人的な注目セッション内容の振り返り~ @SnowVillage Data Management #19

▼概要:
本資料は2025年09月18日に開催された Data Management Reboot #19 ~ Data Mesh をどう実現する!?非中央集権型のData Managementを議論しよう!/ SWT振り返りも添えて!~ における資料です。

▼イベントURL:
https://techplay.jp/event/985803

▼資料概要:
大盛況に終わった Snowflake World Tour Tokyo を振り返りながら、発表者が聴講したセッションの中で2つピックアップし、紹介しています。
一つ目は「クエリパフォーマンスチューニングの傾向と対策」です。
二つ目は「Cortex AIによる非構造化データ活用の実践:文書・画像・音声をSQLで分析」です。
どちらも、Snowflakeでその道の最前線を走るお二方の発表であり、学びの多いセッションでした。そちらの一部をまとめ、ご紹介しています。

Avatar for Ryo Suzuki

Ryo Suzuki

September 18, 2025
Tweet

More Decks by Ryo Suzuki

Other Decks in Technology

Transcript

  1. ©HR Force Inc. All rights reserved. Snowflake World Tour Tokyo

    2025 振り返り  ~ 個⼈的な注⽬セッション内容の振り返り ~ 2025/09/18(⽊) @ SnowVillage Data Management #19 株式会社HR Force DS統括部DXグループDataチーム, Opsチーム マネージャー 鈴⽊ 凌
  2. ©HR Force Inc. All rights reserved. 登壇者について 2 鈴⽊ 凌

    (すずき) / @suzupappa - 株式会社HR Force - Dataチーム, Opsチーム マネージャー データで事業を推進するお仕事 - データエンジニア - BizOps (Salesforce, Tableauアドミン) コミュニティ活動 - SnowVillage: “Snowflake Mayors, Snowflake Squad 2024, 2025” - p_UG: “pUG Leaders” ⾃⼰紹介
  3. ©HR Force Inc. All rights reserved. 会社概要 3 株式会社HR Force

    会社名 事業内容 代表者 設⽴ HRソリューション事業 村⽥泰⼦ 2018年2⽉(創業8年⽬) 所在地 東京都中央区⼋重洲2-2-1  東京ミッドタウン⼋重洲 ⼋重洲セントラルタワー35階 会社概要
  4. ©HR Force Inc. All rights reserved. 8 はじめに SWTTokyo 2025

    ですずきが登録したセッション⼀覧
  5. ©HR Force Inc. All rights reserved. 12 Performance Engineerが語るクエリパフォーマンス クエリパフォーマンスの奥深さ

    「特定の処理に時間がかかる」は常に「その処理に問題がある」ではない 「想定通りに時間がかかっている」場合もある 基準はあくまでも、実際の実⾏時間がパフォーマンス⽬標、想定実⾏時間に対してどうか という点 - 最も遅い処理が最も改善効果が⼤きいことを期待できる - 最も遅い処理が想定通りの場合は、次に遅い処理にアプローチする(その次も想定通りなら...)
  6. ©HR Force Inc. All rights reserved. 13 Performance Engineerが語るクエリパフォーマンス パフォーマンス改善の論点とベストプラクティス

     クエリコンパイル - クエリをできる限りシンプルに保つ(⼀時テーブルでのクエリ分割も検討) - 特に CASE‧IFF集約関数‧ウィンドウ関数がネストするケース - ⾃動クラスタリングで⼤量の⼩さなパーティションを⾃動的にまとめる - ⼤量のカラム(100+)を扱わない - 適切なデータモデリング(例: ディメンショナルモデリング) - ビューのネストを下げる - CTE(WITH 句)を活⽤する - ロールのネストを下げる
  7. ©HR Force Inc. All rights reserved. 14 Performance Engineerが語るクエリパフォーマンス パフォーマンス改善の論点とベストプラクティス

     クエリ実⾏ - テーブルスキャン - ⾃動クラスタリングでフィルタによるプルーニング効率を下げる - できる限りフィルタを追加する - プッシュダウンできるようにフィルタ条件(式)をシンプルに保つ - Query Acceleration Service(クエリ実⾏の⼀部をウェアハウス外にオフロードする) - TableScan‧Filter‧Insert - 巨⼤なテーブル + 選択性の⾼いフィルタ 集約のクエリで有効 - アドホックな分析、 サイズの変動が⼤きいテーブル
  8. ©HR Force Inc. All rights reserved. 15 Performance Engineerが語るクエリパフォーマンス パフォーマンス改善の論点とベストプラクティス

     クエリ実⾏ - メモリ不⾜(OOM‧スピル) - 同⼀クラスター上で多数の(重い)クエリを実⾏しない - ワークロード分割、 並列度の制御 - プルーニング効率を改善してデータ量を減らす - クラスタリング、フィルタの⾒直し - できる限り集約してから結合するようにする  それでも、メモリ不⾜になったときは... - ワークロードを複数ウェアハウスに分散する - 中間⾏を⼀時テーブルに書き出してクエリ分割する - より⼤きい仮想ウェアハウスを使う
  9. ©HR Force Inc. All rights reserved. 16 Performance Engineerが語るクエリパフォーマンス パフォーマンス改善の論点とベストプラクティス

     クエリ実⾏ - 集約 - 集約キーの局所性を上げる - 集約キーでのクラスタリング(WHERE 句狙いのキーとのトレードオフ) - できる限り集約してから結合するようにする - 集約対象になる論理⾏数を削減する、簡単なケースは⾃動でプッシュダウンされる - ⼀時テーブルを使⽤してネストした集約関数を分割する - ⼤きいウェアハウスサイズを使⽤する - マテリアライズドビュー
  10. ©HR Force Inc. All rights reserved. 17 Performance Engineerが語るクエリパフォーマンス パフォーマンス改善の論点とベストプラクティス

     クエリ実⾏ - 結果⽣成‧データ挿⼊ - Snowflake(SQL)側でできる処理はなるべくやる - 特にフィルタや集約 - 本当に必要な結果セットかを検討する - 性能試験などでの特に根拠のない SELECT * - 必要なところでのみ半構造化型を使⽤する - できる限り正規化したほうが基本的に参照性能も⾼くなる - 適切なウェアハウスサイズを使⽤する
  11. ©HR Force Inc. All rights reserved. 18 Performance Engineerが語るクエリパフォーマンス パフォーマンス改善の論点とベストプラクティス

     クエリ実⾏ - 結合順序 - クエリをシンプルかつコンパクトにする - クエリを分割する、 式を列に永続化する、 マテリアライズドビュー - クラスタリングする - パーティションレベルのメタデータで偏りを吸収する、 パーティションサイズを安定させる - プレースホルダではなく NULL を使う - 9999-12-31、-1、"... - 完全に相関する列の条件は1つだけ書く - DIRECTED JOIN - どちらのテーブルを Build/Probe に置くかを指定できる(ただしデータの変化に弱い) - サポートに問い合わせる
  12. ©HR Force Inc. All rights reserved. 19 Performance Engineerが語るクエリパフォーマンス パフォーマンス改善の論点とベストプラクティス

     クエリ実⾏ - 結合爆発 - 結合対象データを削減する - フィルタプッシュダウン、 集約 - できる限り等価結合条件を追加する - できる限り結合条件をシンプルにする - OR句 -> UNION、COALESCE -> EQUAL_NULL、⼀時テーブルでのクエリ分割 - 不要であれば重複⾏を結合前に削除する
  13. ©HR Force Inc. All rights reserved. 20 Performance Engineerが語るクエリパフォーマンス まとめ

     まず重要なのは - パフォーマンスチューニングはメソドロジー - 繰り返し改善に向けて動く前提での⽂化や仕組みづくり  それに加えて - オプティマイザの気持ちになる(想像⼒) - オプティマイザ視点で⾃明な情報や混乱する状況はなにかを考える  それでも難しかったら - 遠慮なくサポートに頼る - ユーザからのフィードバックでオプティマイザは改善していく、とのこと
  14. ©HR Force Inc. All rights reserved. 24 PdMが語る⾮構造化データのAI活⽤に向けて必要な3ステップ AI活⽤までの3ステップ -

    Ingest (取り込み) - ⾮構造化データをSnowflakeに取り込みこと - Transform (変換) - ⾮構造化データをAIが利⽤しやすい形式に変換すること - Activate (有効化) - AIを使うことは⼿段であり、⽬的はビジネス価値を創出すること - (そういった意味でActivate (有効化) という⾔葉を選んだのではないか(と推測))   ※世の中の90%ほどは⾮構造化データのため、今回は⾮構造化データに焦点をあてている発表な点はご認識ください
  15. ©HR Force Inc. All rights reserved. 25 PdMが語る⾮構造化データのAI活⽤に向けて必要な3ステップ Ingest (取り込み)

    構造化データ / ⾮構造化データを統合することが必須 - 必要なこと - データ取り込みの段階で多様なデータを統合し、インサイトの取得を加速させること - 構造化データ / ⾮構造化データのどちらもシームレスに取り込むこと - 実現アプローチ - 外部ステージとファイル参照を使⽤し、クラウドストレージ上のファイルをインプレース (データを移動しない)で処理 - Openflowにより⾮構造化データを含む複数ソースからのデータ取り込みの実現と、フローの 効率化
  16. ©HR Force Inc. All rights reserved. 26 PdMが語る⾮構造化データのAI活⽤に向けて必要な3ステップ Transform (変換)

    Cortex関数を利⽤して容易に変換が可能に - 必要なこと - 構造化データ / ⾮構造化データのどちらも分析可能な状態に変換すること - それらが限りなく容易に実現できること - 実現アプローチ - AI関数機能により、シンプルなSQLで効率的な分析を実現 - 例えば、AI_COMPLETEのようなAI関数を使⽤し、AIを⺠主化し、アナリストがあらゆ るAIエンジニアリングタスクを実⾏できるよう⽀援 - 最⾼レベルの精度を提供するAIタスク特化型関数を使⽤し、定型タスクを迅速に⾃動化
  17. ©HR Force Inc. All rights reserved. 27 PdMが語る⾮構造化データのAI活⽤に向けて必要な3ステップ Activate (有効化)

    Snowflake Intelligenceによって真に活⽤される基盤に - 必要なこと - ビジネスユーザーが安⼼して利⽤できる環境 - ⽔準を満たす⾼性能なAI機能 - 実現アプローチ - Snowflake IntelligenceによりAIを⺠主化し、セキュアな環境でビジネスユーザーがデータと⾃然 な会話を⾏えるように - Cortex Agentsを使⽤し、業界をリードするText-to-SQLと検索機能をカスタムアプリケーション に統合 - Cortex Analystのセマンティックモデルをカスタマイズし、最⾼の精度と正確性を実現 - Cortex Searchのフルマネージド‧ハイブリッド検索エンジンを活⽤し、最⾼⽔準の検索品 質を実現
  18. ©HR Force Inc. All rights reserved. 28 PdMが語る⾮構造化データのAI活⽤に向けて必要な3ステップ まとめ -

    データ戦略なくしてAI戦略なし! - データこそが差別化要因となるため、その全体像を把握し、優れた意思決定を⾏おう - 構造化データにとどまらず、⾮構造化データも適切に活⽤していこう - Snowflakeは、⾮構造化データのためのプラットフォームでもある - SnowflakeのAIを使えば、構造化データと同じくらいシンプルに⾮構造化データを分析することが可能 - Openflowによる取り込み - AI関数による変換 - Snowflake Cortex / Snowflake Intelligenceによる活⽤