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

SnowflakeNight#1 Cortex Analystに正しい文脈を伝えるためのSem...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for tak tak
January 23, 2026
150

SnowflakeNight#1 Cortex Analystに正しい文脈を伝えるためのSemantic View構築・運用の実例

SnowflakeNight#1で発表した資料

Avatar for tak

tak

January 23, 2026
Tweet

Transcript

  1. © Finatext Holdings Ltd. • 名前:向山拓実 • お仕事:Nowcastという会社でSnowflakeを使っ たデータ基盤構築、LLMを使った機能開発、Web アプリ開発とか色々やっています。

    • 好きなSnowflakeの機能:Cortex Analyst • X: https://x.com/mmjjaadmm • Zenn: https://zenn.dev/shichimi • 少し前にSquadになった🙌 1 はじめに 自己紹介
  2. © Finatext Holdings Ltd. 2 Nowcastについて Data Service 事業 2

    ライセンスデータ データホルダー 解析 POSデータ 日本経済新聞 1,500店舗の スーパーマーケット True Data 4,000店舗の スーパー、 ドラックストア 2,600店舗の 家電小売 クレジットカードデータ JCB JCBカードの 所有者・加盟店 クレディセゾン セゾンカードの 所有者 求人データ 人流データ TV広告データ KDDI 携帯搭載の 地理データ フロッグ 130超の日本の web求人広告 サイト エムデータ 日本の全無料 チャンネンルの TV広告データ 官公庁・シンクタンク・投資家 エンドユーザー 投資家 不動産業界 ビッグデータ解析事業を推進する上でDWHの活用、AI活用の知見を溜めながらプロダクト構築を実施
  3. © Finatext Holdings Ltd. データAIソリューション事業では、データ基盤構築から⽣成AIソリューションの導⼊までサポート。活⽤する データの整備から⾏うことでより適切な形でお客様の売上向上/業務効率化を実現している。 3 Nowcastについて Data AI

    Solution 事業 ⽣成AIソリューション データ基盤構築 データ整備/パイプライン構築 モダンな技術を活⽤した基盤整備、 データ加⼯及びパイプラインの構築を実施 データ 収集 データ 蓄積 データ 加⼯ 可視化 AI コンサルティング/ソリューション提供 お客様の要件に合わせて⽣成AIを導⼊、 ⼀部はプロダクト化した上でご提供
  4. © Finatext Holdings Ltd. 4 アジェンダ • Semantic View(Layer)とは? •

    Cortex AnalystのSQL生成はなぜ外れたのか • 失敗から見えた要件 • AIに優しいデータ設計 • Semantic View運用をどうしよう • 使ってみて面白かった事例
  5. © Finatext Holdings Ltd. 6 Cortex AnalystのSQL生成はなぜ外れたのか 検証過程で起きた失敗例 失敗例① 用語の揺れをカバーしきれな

    い • 商品名 vs ブランド名 • 顧客 vs 取引先 vs 得意先 • sku vs 商品 vs プロダクト 失敗例② JOINするときの悩み • AとA'は意味は一緒だけ ど、データソースによって JOINするときは0埋めしな いといけない.... • POSデータだと質問ごとに JOINさせちゃうとめっちゃ 時間かかる。 失敗例③ 条件指定重ねがけの理解 が難しい • 「YYYYMMでAという商 品を買っていてかつ YYYYMM’でBという商 品を買っている顧客」み たいな条件を正しく認識 できない.....
  6. © Finatext Holdings Ltd. 7 Cortex AnalystのSQL生成はなぜ外れたのか 失敗から見えた要件(結論) • データモデリングをちゃんとやろう(失敗例②、③)

    • 社内の暗黙知をちゃんと書き起こそう(失敗例①) 次のスライドでこっちを少し深ぼる こっちはSemantic Viewを整備することで解決できる
  7. © Finatext Holdings Ltd. 8 データモデリングをちゃんとやろう AIに優しいデータ設計 Snowflake 公式ドキュメントの記載 •

    Semantic Viewは テーブル数:10以下 推奨 • 1 Viewあたり 列数:50以下 が⽬安 データの規模(テーブル数、列数とか)が大きいほどLLMの判断が不安定になる。(当然人間も。) One Big Tableとまでは言わないが、A Few Big Tableぐらいまで設計できると良いと思っている。 Mercariさんの事例:One Big Table • 分析で⾼頻度に⽤いられるテーブルと分析パターンを調査 • その上で、同時に⽤いられるテーブル群については事前にJOINして提供 メルカリの効率的なデータ活用を支えるデータインタフェース Basic Tables Snowsight を使用したセマンティックビューの作成と管理 | Snowflake Documentation
  8. © Finatext Holdings Ltd. 9 Semantic Viewの運用どうしよう 今の所の選択肢は以下3つ。それぞれ良し悪しありそう。 SnowflakeCLI +

    YAML メリット • Semantic Viewの項 目全て管理可能 デメリット • CI/CDやテーブルの 依存関係管理が自前 実装必須 dbt(dbt_semantic_view) メリット • モデル間の依存関係 可視化可能 デメリット • 現状、管理できない項 目多い Terraform メリット • 他のSnowflake Resourceと一括管理 可能 デメリット • 現状、管理できない項 目多い ※個人的にはTerraformでやりたいので対応して欲しい。 一方で、Semantic View内では項目ごとにライフサイクルが結構違いそうなので、Terraformでの管理が難しい 雰囲気がある。(Custom InstructionとVQRは頻繁に更新されるけど、Dimention、Factはそう変わらないと か。) SnowflakeがVQRから、Relation張る機能を出してくれてるので、上手いやり方を考えたい。
  9. © Finatext Holdings Ltd. 10 使ってみて面白かった事例 Snowflakeに集約した社内データをAI Agentが探索し、必要な情報をCortex Analystで検索 Snowflake

    AI Agent リクエスト データ 返却 Streamlit Agent起動 回答返却 ユーザー アプローチ • Snowflake上に関連データ(構造化データ、非構造化データ)を 集約した上で、AI Agentが回答項目ごとに必要な情報を取得で きるようなTool(Cortex Analyst)を構築 • 非構造化データについては、前処理をした上でテーブルとして 利用 • ユーザー向けの簡易的な画面を Streamlitで構築し、ユーザー からのFBを元に継続的な精度改善を実施 構造化データ 非構造化データ Cortex Analyst リクエスト 検索結果 返却 前処理 Table 調査要件を送信
  10. © Finatext Holdings Ltd. 12 Appendix. 今日話したことを書いてるテックブログ • Semantic Viewで整備する内容と運⽤のベストプラ

    クティスを考える • Snowflake Semantic Viewのコード管理 • AI Agent × Cortex Analyst で構造化データ検索精 度を47%→97%に改善
  11. © Finatext Holdings Ltd. • 対象とするデータに関して ◦ 同一データであってもユースケースに応じて参照すべきデータのレイヤーは変えるべき ▪ アドホックな分析:データレイク

    or データウェアハウス ▪ Agent と組み合わせてシステムに組み込む:データウェアハウス or データマート ◦ ある程度集計したtableの方がAIが上手く利用しやすい。一方で集計しすぎていると分析の 幅は狭くはなってしまう。 ◦ 試し方:まずデータマートを用意してそれを利用する。より集計前の細かいtableが必要に なったら適宜上流の集計前のテーブルも利用してみるのが推奨 • Semantic View に関する Tips ◦ synonyms や sample_values は Cortex Analyst の画面上で自動生成可能で、これが便利 ◦ custom instructionとVQRの使い分け ▪ custom instruction →ドメイン知識 ▪ VQR → 質問に対するSQL例 ◦ 情報を入れ過ぎると、Semantic Viewの定義とコンフリクトして汎用性低下する危険性 14 Appendix. Cortex Analyst に関する Tips