Omniでの分析導線をスムーズにしよう!OmniでWorkbookでのGUI操作からTopicを作成してみた

Omniでの分析導線をスムーズにしよう!OmniでWorkbookでのGUI操作からTopicを作成してみた

2025.12.30

さがらです。

OmniではTopicという機能があり、Omniのmodel内で定義できるユーザー向けデータソースのような役割を担います。LookerでいうExploreに近い概念の機能で、ユーザーがOmniを利用する際の導線をスムーズにできます。

https://docs.omni.co/modeling/topics

Topicの作成方法は、「WorkbookでのGUI操作」と「IDEでのコード編集」の2通りが用意されています。「IDEでのコード編集」については、以下のとおりブログも書かれています。

https://dev.classmethod.jp/articles/omni-create-topics-basicsetting/

一方で、簡単なフィールド定義や結合(JOIN)定義であれば「WorkbookでのGUI操作」で十分なため、「WorkbookでのGUI操作」でTopicをどのように定義できるか試してみました。本記事では、その内容をまとめます。

※注意点として、default_filterscache policiesrequired_access_grantsなどのパラメータは「IDEでのコード編集」でしか定義できません。ご注意ください。

参考:Topicに関する公式情報

Topicの作成手順については、以下の公式Docが参考になると思います。

https://docs.omni.co/modeling/topics/setup

公式からはベストプラクティスも提供されています。内容を一部だけ抜粋すると、万人向けの巨大Topicは避けて部門や用途に合わせて対象を絞ること、最初から完璧を目指さずに小さなTopicをまず作成し、フィードバックを受けながら育てていくこと、base_viewを最もトランザクション性の高いテーブルにしてmany-to-oneの結合条件にすること、labeldescriptionsample_queriesを定義してTopicの使い方をすぐ理解できるようにすること、などが言及されています。

https://docs.omni.co/modeling/topics/best-practices

また、公式からは業態ごとのTopicのイメージも提供されています。

https://docs.omni.co/modeling/topics/examples

前提条件

今回の検証は、以下の設定がすでに行われている前提で進めます。

  • OmniのModelはGit連携済みで、プルリクエストを必須としている
  • Omniで利用するConnectionはdbt連携済み
    • dbt constraintsを定義しているため、relationshipも下図のとおり定義済み

2025-12-30_05h45_06

「WorkbookでのGUI操作」によるTopicの作成

それでは、「WorkbookでのGUI操作」によるTopicの作成に取り組んでいきます。

※新しいメジャーやカスタムフィールドの定義については触れません。必要に応じてExplore画面から追加してください。

Topic編集画面を立ち上げるまで

まず、Omniのトップ画面から新しいExploreを立ち上げます。

2025-12-29_17h46_11

2025-12-29_17h46_33

ベースとなるviewを選択します。ここで選択したviewが、基本的に結合関係でいうleftに位置します。そのため、ファクトテーブルなどトランザクション性の高いテーブルを選択することを推奨します。

今回は「サポートチケットの対応に関する分析Topic」を作ってみるため、Fact Support Ticketを選択します。

2025-12-29_17h59_21

すると、下図のようにExploreの画面が立ち上がります。事前にrelationshipを定義しているため、Dim Productのフィールドも選択できるようになっています。

この画面で、Fact Support Ticketの右の「︙」を押し、ModelingからMake topicを押します。これでTopic編集画面が立ち上がります。

2025-12-30_05h51_51

Details

最初の画面ではOverviewタブとDetailsが表示されています。本章ではDetailsについて説明します。

このDetailsでは、このTopicの名前やDescription、AI Contextを入力できます。

2025-12-30_06h09_40

Topic groupでは、ModelとTopicの間に、Topicを集約するグループを追加できます。今回は下図のように「製品サポート」のgroup labelを作ってみます。

2025-12-30_06h02_28

2025-12-30_06h02_54

DescriptionAI Contextは、右上のアイコンをクリックすることでAIが生成してくれます。

2025-12-30_06h18_05

最終的には下図のようにDetailsを設定してみました。

※以降、Detailsは非表示にして各タブについて説明していきます。

2025-12-30_06h19_20

Overviewタブ

Overviewタブでは、このTopicを開いたときの初期画面がどのように見えるかを確認できます。

2025-12-30_06h28_15

Joinsタブ

Joinsタブでは、別のviewの結合(JOIN)定義を追加できます。+ Newを押すと、relationshipを定義していないviewも結合(JOIN)可能です。

2025-12-30_06h22_22

Fieldsタブ

Fieldsタブでは、Topicの表示に含めるフィールドを選択できます。除外するフィールドの例としては、キー項目や、別の指標の計算に用いているだけのフィールドなどが該当すると思います。

2025-12-30_06h29_50

Curateタブ

Curateタブでは、結合(JOIN)定義を行った各viewごとに、フィールド一覧での表記となるLabel・Group label、フィールドごとのDescription、AI用途に役立つAI ContextやSynonymsなどを定義可能です。

2025-12-30_06h34_36

各view画面の右上のExpandを押すと、入力する表を拡大できます。

2025-12-30_06h43_31

今回は、下図のように各フィールドのLabelだけ追加してみました。

2025-12-30_06h44_16

2025-12-30_06h45_36

YAMLタブ

YAMLタブを押すと、ここまでの編集内容がどのようにYAMLで定義されるのかを確認できます。

この画面では直接コードを編集できないため、ご注意ください。

2025-12-30_06h47_23

Topicの保存

一通り編集を終えたら、右上のSave changesを押します。

2025-12-30_06h48_21

この状態で左側のModel Changesを押すと、各viewのLabel追加などの変更も含めて、変更点がすべて表示されます。(この内容は現時点ではWorkbookレベルで保存されているため、後で共通利用できるようにShared modelへ反映していきます。)

2025-12-30_06h51_03

また、この時点でWorkbookとして一度保存しておくことを推奨します。左上のFileからSaveを押すことで保存可能です。

2025-12-30_06h53_22

2025-12-30_06h54_08

作成したTopicを試しに使ってsample queryを追加する

続けて、作成したTopicを試しに使い、sample queryも追加してみます。

先ほどのTopic編集画面で、右上のUse in queryを押すことで、作成したTopicを用いたQuery画面を起動できます。

2025-12-30_07h00_37

この上で、下図のように、実際によく使いそうな集計パターンでフィールドの選択やフィルターの設定を行います。Omniでは、この「よく行いそうな集計パターン」をsample queryとしてTopicに追加できます。

2025-12-30_07h18_28

上部のModelから、Save as sample query to topicを押します。

2025-12-30_07h19_55

表示された画面で、下図のようにsample queryを定義します。入力欄の右上にAIのアイコンがある場合は、AIに生成を依頼できます。(実際、下図の内容はすべてAIに作ってもらったものです。)

入力が完了したら、右下のSave topic sample queryを押します。

2025-12-30_07h22_22

この後、Edit topicからTopicの編集画面を見ると、定義したsample queryがYAMLで追加されていました。

2025-12-30_07h24_50

2025-12-30_07h25_22

このTopicを用いたQueryの初期画面を改めて起動すると、定義したsample queryが追加されており、これを選択すると自動でフィールドやフィルター設定が行われます。

2025-12-30_07h26_57

2025-12-30_07h28_03

作成したTopicをShared modelに反映

これまでの手順で作成したTopicは、このWorkbook内でしか利用できない状態のため、他のユーザーからも利用できるようにShared modelへ反映していきます。

Topicを作ったWorkbookで、新しいブランチを作成します。

2025-12-30_07h31_43

2025-12-30_07h32_07

左のModel Changesを押し、Add to branchを押します。

2025-12-30_07h32_53

2025-12-30_07h33_21

右上のCreate pull requestを押して、連携しているGitHubのリポジトリからプルリクエストを発行し、mainブランチへマージします。(GitHub上の画面は一部割愛します。)

2025-12-30_07h34_39

2025-12-30_07h35_14

Shared modelに反映した内容を確認

改めてOmniのトップページからModelを選択してExploreを立ち上げると、作成したTopicや、日本語でLabel付けを行った各フィールドの定義が更新されていることがわかります。

2025-12-30_07h38_02

2025-12-30_07h38_30

2025-12-30_07h38_58

最後に

Omniで、WorkbookでのGUI操作からsample queryを含むTopicの作成、Shared modelへの反映まで、一通りの流れを試してみました。

コードを直接編集することなくGUI操作でTopicを作成できるため、Omniでグラフ作成を行う全ユーザーが実施でき、属人化の防止につながります。ぜひご活用ください。

この記事をシェアする

FacebookHatena blogX

関連記事