Slide 1

Slide 1 text

2025/12/11 クラスメソッド株式会社 相樂悟 30分であなたをOmniのファンにしてみせます 〜分析画⾯のクリック操作をそのままコード化できるAI-ReadyなBIツール〜

Slide 2

Slide 2 text

⾃⼰紹介 2 ● 2020年9⽉ ⼊社 ○ Modern Data Stackに該当する製品の 技術⽀援‧プリセールスを担当 ○ 新しい技術情報を定期的に収集し、 ブログで情報発信 ● 部署‧役割 ○ Modern Data Stackチーム テックリード ● 名前(ニックネーム) ○ 相樂 悟 (さがら)

Slide 3

Slide 3 text

⽬次 3 ● クラスメソッドとdbtの関係 ● Omniの紹介 ● dbt × Omniの連携機能紹介 ● まとめ

Slide 4

Slide 4 text

⽬次 4 ● クラスメソッドとdbtの関係 ● Omniの紹介 ● dbt × Omniの連携機能紹介 ● まとめ

Slide 5

Slide 5 text

クラスメソッドとdbtの関係 5 データ基盤において重要な「変換」を担うソリューションとして、 dbt Labs社と2022年3⽉に⽇本国内初のパートナーになりました パートナープログラムの最⾼位ランクである「Visionary」の認定を受けています 引⽤元:https://classmethod.jp/partner/category/modern-data-stack/

Slide 6

Slide 6 text

dbt platform(SaaS版)の推しポイント 6 dbt Coreやdbt Projects on Snowflakeなどと⽐較すると、 dbt platformの⽅が開発‧運⽤のコストを下げる機能が多い CI/CDをとても簡単に設定 DWHコスト‧運⽤コストの削減 設定が簡単で、データの差分も確認可能 state-aware orchestration、Agent機能 ※今後FusionやAgent関連の機能が多くリリース予定

Slide 7

Slide 7 text

● データ変換はdbtによって最適化された ● しかし「dbtとBIの連携」「AIを活⽤するためのメタデータ整備」に課題がある… dbtで開発中のデータを BIツールから参照させたいが 既存のBIツールだと難しい ビジネスメタデータの⼊⼒先が dbtのyamlだけなのは 分析ユーザーからすると⾟い BIツールが発⾏するクエリを そのままdbtのModel化したい Semantic Layerを定義をする エンジニアの負荷が⼤きい クラスメソッドのModern Data Stackの課題 7

Slide 8

Slide 8 text

この課題を全て解決してくれる「Omni」 8 これらの課題を解決してくれる「Omni」とパートナーになりました! dbtで開発中のデータを BIツールから参照させたいが 既存のBIツールだと難しい ビジネスメタデータの⼊⼒先が dbtのyamlだけなのは 分析ユーザーからすると⾟い BIツールが発⾏するクエリを そのままdbtのModel化したい Semantic Layerを定義をする エンジニアの負荷が⼤きい

Slide 9

Slide 9 text

⽬次 9 ● クラスメソッドとdbtの関係 ● Omniの紹介 ● dbt × Omniの連携機能紹介 ● まとめ

Slide 10

Slide 10 text

Omniとは 10 ● 沿⾰ ○ 2022年に設⽴ ○ 2025年に創業3年で6900万USDの資⾦調達 ● 本社:カリフォルニア州サンフランシスコ ● 創業者 ○ Colin Zima(CEO):元LookerのChief Analytics Officer ○ Jamie Davidson:元LookerのVP Product ○ Chris Merrick:元StitchのCTO⇛買収後のTalendでVP of Engineering

Slide 11

Slide 11 text

Omniの⼀般的な開発プロセス 11 ダッシュボードはGUI操作で作成 1.Workbookでダッシュボードを作成 2.他のユーザーにも作成したフィールドや JOIN定義を利⽤させたい場合、Sharedに反映 差分確認&PR発⾏ Sharedに反映 引⽤元:Omni Analytics社公式の製品紹介資料より

Slide 12

Slide 12 text

Omniの実際の画⾯:Query(Workbookレイヤー) 12 Omniでは作成したWorkbookの1つ1つのタブを「Query」と呼ぶ Queryで指定したフィールドによって作られたグラフが、ダッシュボードにも追加される *1 Workbook=1 ダッシュボード

Slide 13

Slide 13 text

Omniの実際の画⾯:IDE(Workbookレイヤー) 13 Queryで定義したフィールド‧JOIN定義等が裏側でコード化されている 各Workbookごとにコード化されている

Slide 14

Slide 14 text

Omniの実際の画⾯:IDE(Sharedレイヤー) 14 Sharedは、共通利⽤するフィールド‧リレーション等の定義がされたレイヤー 新しくWorkbookを作成する際は、Sharedで定義されたコードを元に作成 ※dbtから最新のスキーマ情報を取得したり、descriptionやexposureのプッシュも可能

Slide 15

Slide 15 text

私が推したいOmniの良いところ 15 ● GUIで操作したものを、そのままコードにできる ● 結合条件がrelationshipオブジェクトとして独⽴している ● スプレッドシートライクな操作で計算フィールドを追加できる ● 可視化表現も豊富 ● 完全⼀致のクエリ以外でもキャッシュを再利⽤できる ● 接続先のデータべースの動的な切り替えが可能 ● Lookerの良い点はOmniにも搭載 ● AI⽤途のコンテキスト⼊⼒機能が豊富 ● 標準のAI機能も豊富 ● MCP Serverも提供 ※次のスライドから各機能についてご紹介します

Slide 16

Slide 16 text

GUIで操作したものを、そのままコードにできる 16 独⾃のSQL計算式を⼊れるようなメジャーであっても、裏側でコード化してくれる 参考記事:https://dev.classmethod.jp/articles/omni-how-to-start-analysis-after-create-connection/

Slide 17

Slide 17 text

結合条件がrelationshipオブジェクトとして独⽴している 17 結合条件は⼀度定義したら、relationshipsとして登録される LookerのExploreとほぼ同義のtopicsも、結合したいviewを記述するだけ(DRYなコード)

Slide 18

Slide 18 text

スプレッドシートライクな操作で計算フィールドを追加できる 18 左上図のように、セル同⼠の演算を記述することでも計算可能 左下図のようにPromoteを押すことで、記述したセル同⼠の演算をコード化                   ※コード化できるのは⽐較的シンプルな演算のみ 参考記事:https://dev.classmethod.jp/articles/omni-spreadsheet-to-semantic-layer/

Slide 19

Slide 19 text

可視化表現も豊富 19 よく使うグラフは揃っており、右図のKPIチャートが特徴的 引⽤元:https://docs.omni.co/docs/visualization-and-dashboards/visualization-types

Slide 20

Slide 20 text

完全⼀致のクエリ以外でもキャッシュを再利⽤できる 20   参考記事:https://dev.classmethod.jp/articles/omni-try-caching/

Slide 21

Slide 21 text

接続先のデータべースの動的な切り替えが可能 21 本番⽤データベースとは別に開発⽤データベースを別途⽤意している場合、 ダッシュボードの編集中に接続先のデータベースを切り替えることが可能 (この機能を⽤いて、ユーザー属性ごとに参照させるデータベースの切り替えも可能) 参考記事:https://dev.classmethod.jp/articles/omni-try-dynamic-environments/

Slide 22

Slide 22 text

Lookerの良い点はOmniにも搭載 22 ● Omniから実⾏されるSQLの確認 ● One to ManyでJOINする時のfan out対策 ○ One側のテーブルのレコードが重複し集計値がずれてしまう現象を対策する機能 ● Access filtersとAccess grants ○ ユーザー属性を使⽤した、動的な⾏レベル‧列レベルセキュリティを設定できる機能 ● Aggregate Awareness ⇛ 次⾴で紹介 ○ 選択したフィールドに応じて、最適な粒度のテーブルに対して動的にクエリを発⾏する機能 ● Content Validator ○ ダッシュボードが参照するフィールド等の名称変更があったときに検知‧修正できる機能 ● Embedded Analytics ○ iframeベースの埋め込みが可能で、埋め込み先の認証情報を⽤いた 動的なOmniのユーザー作成&認証も可能(SSO embed)

Slide 23

Slide 23 text

Lookerの良い点はOmniにも搭載:Aggregate Awareness 23 ユーザーが選択したディメンションの粒度に応じて、参照先のテーブルを動的に変更 定義は右下の通り、集計テーブルのviewファイルで対応するフィールド⼀覧を書くだけ 参考記事:https://dev.classmethod.jp/articles/omni-try-aggregate-awareness/

Slide 24

Slide 24 text

AI⽤途のコンテキスト⼊⼒機能が豊富 24 topic、view、field、それぞれでAI⽤のコンテキストを⼊⼒可能 特に「ai_context」という、AIに対する⽂脈を追加できる機能を持つ製品は少ない印象

Slide 25

Slide 25 text

標準のAI機能も豊富:Queryの⽣成 25 ⾃然⾔語で要望することで、AIが必要なフィールド‧メジャーを⾃動で選択 参考記事:https://dev.classmethod.jp/articles/omni-ai-assistant-try/

Slide 26

Slide 26 text

標準のAI機能も豊富:Queryの要約機能 26 Omniのチャートの1つ「AI Summary」 少し⾒ただけでは理解が難しいグラフに対して、AIによる要約を⾏うことが可能 参考記事:https://dev.classmethod.jp/articles/omni-ai-assistant-try/

Slide 27

Slide 27 text

標準のAI機能も豊富:⾃然⾔語での対話分析機能 27 ⾃然⾔語での対話機能があり、グラフの作成だけでなく洞察の内容まで出⼒してくれる 参考記事:https://dev.classmethod.jp/articles/omni-ai-assistant-try/

Slide 28

Slide 28 text

標準のAI機能も豊富:⾃然⾔語での対話分析機能を埋め込み可能 28 前述の⾃然⾔語での対話分析機能を任意のアプリケーションやWebサイトに埋め込み可能 アイコンや⾊味などをカスタマイズ可能 Omni標準の画⾯ カスタマイズしてWebアプリに埋め込んだ画⾯ 引⽤元 引⽤元:https://omni.co/embedded-analytics

Slide 29

Slide 29 text

MCP Serverも提供 29 MCP Serverも提供しており、Omniで定義されたSemantic LayerをOmni外でも活⽤可能 引⽤元:https://omni.co/blog/introducing-omnis-mcp-server

Slide 30

Slide 30 text

⽬次 30 ● クラスメソッドとdbtの関係 ● Omniの紹介 ● dbt × Omniの連携機能紹介 ● まとめ

Slide 31

Slide 31 text

dbt × Omniの連携機能紹介 31 Omniは他のBIツールにはない機能も含め、dbtとの連携機能を豊富に提供 ● dbtで定義したDescriptonをそのままOmniに連携可能 ● dbtの開発ブランチで作られたテーブルをOmniから参照可能 ● OmniからDescriptionとExposureを連携 ● 集計画⾯で定義した内容をSQL化してModelとしてPush ※次のスライドから各機能についてご紹介します

Slide 32

Slide 32 text

dbtで定義したDescriptonをそのままOmniに連携可能 32 dbtで定義したDescriptionと、SQL定義をOmniに連携可能 更に、DescriptionはOmniのフィールド選択画⾯からも確認可能 参考記事:https://dev.classmethod.jp/articles/omni-dbt-integration-setup/

Slide 33

Slide 33 text

dbtの開発ブランチで作られたテーブルをOmniから参照可能 33 dbtで開発を⾏う際は、ブランチを切って開発⽤のスキーマに出⼒することが⼀般的ですが Omniではその開発⽤のスキーマに、データの参照先を切り替えることが可能 参考記事:https://dev.classmethod.jp/articles/omni-dynamic-schema-with-dbt/

Slide 34

Slide 34 text

OmniからDescriptionとExposureを連携 34 Omni上で定義したDescriptionの内容をdbtのyamlに反映したり、 dbtモデルを利⽤するダッシュボード定義をExposureとして⾃動連携 参考記事:https://dev.classmethod.jp/articles/omni-descriptions-exposures-push-to-dbt/

Slide 35

Slide 35 text

集計画⾯で定義した内容をSQL化してModelとしてPush 35 OmniのQuery作成画⾯で、選択したフィールドによって発⾏されるSELECT⽂を ref関数など含めてdbtのModelとしてプッシュしてくれる機能 参考記事:https://dev.classmethod.jp/articles/omni-push-to-dbt-model/

Slide 36

Slide 36 text

⽬次 36 ● クラスメソッドとdbtの関係 ● Omniの紹介 ● dbt × Omniの連携機能紹介 ● まとめ

Slide 37

Slide 37 text

Omniにより実現できること:DWHコスト‧運⽤コストの削減 37 DWHコストの直接削減 開発‧運⽤コストの削減 賢いキャッシュ機能 DWHへの不要な再クエリを 削減し、利⽤コストを削減 集計テーブル⾃動選択 (Aggregate Awareness) 低コストなテーブルへクエリを ⾃動で振り分け、スキャン量削減 GUI操作のコード化 (Semantic Layer) 分析操作から再利⽤可能な コードを⾃動で⽣成 属⼈化排除‧保守効率化 分析ユーザー全員がコード定義 できるようになるため、特定の 担当者の負荷を削減 Omniパフォーマンス最適化機能や⾃動的なコード化機能により、 DWH利⽤コスト、⼈的な開発‧運⽤コスト、共に削減

Slide 38

Slide 38 text

Omniにより実現できること:AI-Readyな基盤を⾃然に構築可能 38 ⽇々の分析活動により⾃然と必要なコンテキストが整っていき、 そのままAI活⽤ができるBIツール「Omni」 指標定義‧説明の記述 (売上、顧客ランク、など) テーブル間の リレーション定義 ⾃動でコード化 メタデータやModel定義の連携、 開発環境のスキーマ参照、etc Omni標準のAI機能 MCP Server経由

Slide 39

Slide 39 text

宣伝:ブース出展しています! 39 Omniのファンになって頂けたでしょうか? より詳しくOmniについて説明を聞きたい場合は、ぜひ弊社ブースにお⽴ち寄りください!

Slide 40

Slide 40 text

No content