Omniの初期セットアップ(Connection作成・dbt連携・権限設定・etc)をやってみた

Omniの初期セットアップ(Connection作成・dbt連携・権限設定・etc)をやってみた

2025.12.31

さがらです。

dbtと連携機能が豊富で、GUIベースで操作したフィールド定義やJOIN定義などを自動でコード化できるBIツールであるOmniについて、改めて新規のConnection作成を行う機会があったので、初期セットアップに必要となる手順を本記事にてまとめてみます。

初期セットアップとは

初期セットアップですが、主に以下6つの項目に分けて実施していきます。

  1. Connection作成
  2. dbt連携
  3. 1つ目のModelのGit連携
  4. 1つ目のTopic作成
  5. ユーザー・グループ・権限設定
  6. Organizationレベルの各種設定

前提条件

使用するDWHはSnowflakeで、DEV・STG・PRODという環境ごとに1アカウント内でデータベースを分ける仕様としています。

2025-12-27_17h43_00

リポジトリについては、1つのリポジトリ内でdbtのコードもOmniのコードもルート階層でフォルダを分けて管理するとします。(dbtの開発・実行環境はdbt Projects on Snowflakeです。)

2025-12-27_18h01_07

1. Connection作成

まず、OmniからSnowflakeに対するConnectionを作成します。

https://docs.omni.co/connect-data/setup/snowflake

Omniの画面で左下のSettingsから、Connectionsを押します。

2025-12-28_07h32_50

2025-12-28_07h34_13

右上のAdd Connectionを押します。

2025-12-28_07h34_54

接続するDWHを選択します。今回はSnowflakeを選択します。

2025-12-28_07h35_24

表示されたセットアップ画面で、各情報を入力していきます。入力が終わったら末尾左下のCreate Connectionを押します。

私は下図の通り入力しました。特筆すべき点を以下にまとめます。

  • Include Schemas:対象のデータベースで開発用のスキーマやStagingレイヤーのスキーマなどOmniが使用することがないスキーマが存在する場合は、Omniで使用するスキーマだけ指定することを推奨します。
    • 今回私は、Stagingレイヤーのスキーマや管理用のスキーマも混在していたため、DWH,MARTという2つのスキーマに絞っています。
  • Authentication Type:パスワード認証とキーペアから選択できます。
    • 今回はキーペア認証を選択しました。
  • Enable DW Semantic View Integration:SnowflakeやDatabricksのSemantic Viewに該当するオブジェクトを定義していると、その内容をOmniのViewとして連携することが可能です。
  • Base Access:このConnectionを利用できる全ユーザーのデフォルト権限を設定できます。デフォルトがQuerierなのですが、Querierだとフィールドの定義を変更してSharedへのプルリクエスト発行ができる権限を広く渡すことになってしまうため、ViewerNo Accessに設定して、Groupなど使って個別により強い権限を渡すことを推奨します。

2025-12-28_08h00_05

2025-12-28_08h23_50

2025-12-28_08h08_15

先程キーペア認証を選択していたため、下図のようにキーペアを設定する画面が表示されます。

今回は事前に作成済みのキーペアがあるため、Add existing keyを押し、秘密鍵を登録します。

2025-12-28_08h09_57

2025-12-28_08h10_57

秘密鍵の登録後、Active列を見るとDisabledになっているため、クリックして有効化します。下図2枚目の通りになっていればOKです。

2025-12-28_08h12_10

2025-12-28_08h12_38

この後Settingsタブに移動し、末尾左下のUpdate and Test Connectionを押します。これで下図のように表示されたら、接続が無事に成功している状態となります。

2025-12-28_08h15_52

最後に、Settingsタブの右上のSchema欄から、Build Schemaを押します。これを押すことで、接続先のSnowflakeのテーブル・ビューの定義を読み取り、Omniで使用するためのSchema modelを作成してくれます。

2025-12-28_08h19_00

Build Schemaを押すと、Developの画面に自動で移動し、新しいModelが作られます。

2025-12-28_08h20_21

2025-12-28_08h25_14

2. dbt連携 ※データ変換にdbtを使用している場合のみ

続いて、今回のデータではdbtを使用して変換処理を行っていたため、dbtとの連携設定を行います。

dbtとの連携設定は「Connection」レベルで行います。

OmniのConnectionでの設定~Deploy keyの登録

先程作成したConnectionで、dbtタブを開き、下図のように設定を行います。入力したらSaveを押します。

特筆すべき設定は以下です。

  • Folder:連携先のGitリポジトリでdbtに関するファイル定義がルート階層ではなく特定のフォルダ内でされている場合、そのパスを入れます。今回連携するGitリポジトリはルート階層でフォルダを分けて管理しているため、dbtに関するファイルを定義しているフォルダ名を入れています。
  • Enable Virtual Schemas:この設定を有効化すると、Dynamic Schemaの機能を有効化して、dbtのEnvironmentを開発・本番と切り替えてOmniからダッシュボードの編集・開発ができるようになります。
    • **後で有効化すると既存のviewを参照している箇所を全てContent Validatorでomni_dbt__<view名>に置き換える必要があるため、dbt連携時は一番最初から有効化することを強く推奨します。
  • Auto-generate primary keys and relationships from dbt constraints:dbt constraintsを設定している場合、Omniのviewファイルでのprimary keyの設定やrelationshipsオブジェクトの定義を自動で行ってくれます。今回連携するGitリポジトリではdbt constraintsを使用していたため、有効化しています。

2025-12-29_06h01_07

するとOmniの画面下部にPublic Keyが表示されるため、これをコピーして連携先のGitリポジトリのDeploy keysから登録を行います。Allow write accessにチェックを入れるのがポイントです。

2025-12-29_06h02_38

2025-12-29_06h05_23

Deploy keyの追加後、Omniの画面に戻りTest Connectionを押します。押した結果下図のように表示されて問題なければ、Saveを押します。

2025-12-29_06h06_29

Environmentの設定

続いて、本番環境に該当するEnvironmentの設定を行います。

対象のConnectionのdbtタブの最下部で、Add Environmentを押します。

2025-12-29_06h08_00

新しいEnvironmentの設定画面が表示されるため、dbtの本番環境に該当するtargetの定義をprofiles.ymlなどから確認して、下図のように入力して右下のSaveを押します。

2025-12-29_06h10_24

Healthの画面に切り替わり、下図のように表示されたら問題なしです。右上のを押してこの表示を消します。(警告は、Connection設定時にstagingスキーマを連携対象から外していたために表示されています。)

2025-12-29_06h13_04

Schema modelのリフレッシュ

この後、Schema modelをリフレッシュしてdbtのメタデータを連携するため、ConnectionのSettingsタブに移動し、Refresh nowを押します。

2025-12-29_06h14_56

2025-12-29_06h16_46

リフレッシュ完了後にIDEから各ファイルを見てみると、dbt constraintsを設定していたため、primary_keyrelationshipsオブジェクトの定義が自動で行われていることがわかります。

2025-12-29_06h24_46

2025-12-29_06h26_29

任意:modelファイルに対してignored_schemasを設定

これでdbtと連携した開発はできるようになったのですが、dbtと連携した直後の状態だと、新しいExploreを立ち上げた時に下図のようにDWHomni_dbt_dwhと2つ同じようなスキーマが表示されてしまい、分析を行うユーザー目線でとてもわかりづらいです。(ちなみにここで選ぶべきはomni_dbt_dwhです、これを選ぶことで後で開発環境のEnvironmentを追加した際に数クリックで参照先を開発環境に切り替えることができるようになります。)

2025-12-29_06h36_09

このため、不要なDWHを表示させないように、modelファイルの内容を変更します。(公式Docにも記載がある方法です。)

下図のように、ignored_schemasと入力し、連携しているスキーマ名をカンマ区切りで入れてあげます。その後、右上のSave changesを押します。

2025-12-29_06h37_26

すると、Virtual Schemaだけが表示されるようになります。

2025-12-29_06h39_00

この上で再度Exploreを立ち上げてみると、利用できるスキーマがOmniのVirtual Schema1つだけになったため、最初からViewの一覧が表示されます。(Virtual Schemaが2つ以上ある場合は、スキーマを選択する画面から表示されます。)

2025-12-29_06h43_14

任意:Connectionの設定で、dbtの開発環境と連携

Omniではdbtと連携することで、dbtの開発環境に参照先をすぐに切り替えることができるDynamic Schema機能があります。

https://dev.classmethod.jp/articles/omni-dynamic-schema-with-dbt/

設定方法としては、対象のConnectionのdbtタブで下図のように新しい開発環境に該当するEnvironment設定します。(開発環境のスキーマを環境変数で切り替えている場合は、Environment Variableも設定します。)

2025-12-29_07h12_08

また、開発環境のデータベースが別れている場合は、ConnectionのSettingsタブでInclude Other Databasesに対象のデータベース名を入れて、dbtの開発用スキーマも読み取れるようにInclude SchemasDBT_*も追加し、末尾左下のUpdate and Test Connectionを押します。(この設定を行わないと、開発用のデータベースに含まれるテーブルを参照できません。)

2025-12-29_07h12_55

設定後、スキーマのリフレッシュも忘れずに行います。

2025-12-29_07h03_20

これで、下図のようにdbtの開発環境に参照先をすぐ切り替えることができるようになります。

2025-12-29_07h14_33

あとはおまけですが、modelファイルのignored_schemasの値も変更して、ユーザーに不要なスキーマが見えないようにしておくことも推奨します。

2025-12-29_07h18_49

3. 1つ目のModelのGit連携

次に、OmniのModelをGitで管理できるように設定をしていきます。

作成したModelをIDEから開き、Git Settingsを押します。

2025-12-29_07h27_16

表示された画面で、下図のように設定します。(Git followerの設定は、より厳密に開発~検証~リリースを切り分けることが出来る機能です。Embedの利用や地域間で同じOmniのModelを展開したい場合などに役立つと思います。詳細は公式Docをご覧ください。)

2025-12-29_07h54_04

Git連携に関する各種設定を行います。基本的にはPull request requiredのみ有効化すれば問題ないと思いますが、以下にパッと見ただけではわかりづらい設定についての説明を記しておきます。(詳細は公式Docもご覧ください。)

  • Require for system syncs:有効化すると、スキーマリフレッシュなどによるviewファイルの書き換えなどのシステム操作もプルリクエストを必要とするようにします。
  • Always create branches:有効化すると、接続されたリポジトリ内のプルリクエストによって、Omniに対応するブランチが作成されます。
  • Model path:デフォルトではリポジトリのルート階層から見てomni/<model-name>という形でフォルダが作られるのですが、この作成先をカスタムすることが出来ます。

2025-12-29_08h04_45

続いてプルリクエストマージ後にOmniのSharedのコードもすぐに反映するようにするため、Webhookの設定をしていきます。

OmniのGit設定画面の末尾のDeploy Keyをコピーし、連携先のGitリポジトリのDeploy keysから登録を行います。Allow write accessにチェックを入れるのがポイントです。

2025-12-29_08h11_03

2025-12-29_08h12_53

この後、OmniのGit設定画面の末尾のPayload URLWebhook secretをコピーし、連携先のGitリポジトリのWebhooksの画面から下図のように設定を行います。Which events would you like to trigger this webhook?ではPull Requestだけ選ぶようにします。(Pushのチェックは外してください。)

2025-12-29_08h15_03

2025-12-29_08h17_14

2025-12-29_08h17_49

この後、OmniのGit設定画面の最上部のTest git connectionを押し、下図のように表示されたら設定完了です!

2025-12-29_08h19_40

4. 1つ目のTopic作成

続いて、ユーザーの分析導線がスムーズとなるように、Topicを作成していきます。

Topicとは

Topicは、Omniのmodel内で定義できるユーザー向けのデータソースのような役割で、LookerでいうExploreに近い概念の機能です。ユーザー向けに、事前にJoinの定義や、ユーザーごとの行レベル・列レベルの表示制御を適用させることも可能です。詳細については、以下の公式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

Topicの作成

Topicの作成は「WorkbookでのGUI操作」と「IDEでのコード編集」の2通りが用意されているのですが、簡単なフィールドやJOIN定義などであれば「WorkbookでのGUI操作」で充分です。

Topicの作成~Shared modelに反映する手順については、以下のブログが参考になると思います。

https://dev.classmethod.jp/articles/omni-make-topic-with-workbook/

今回は下図のようなTopicを作成して、Shared modelへの反映まで行いました。

sowvvhhqluqriny44pd5

5. ユーザー・グループ・権限設定

続いて、ユーザー・グループ・権限についての設定を行っていきます。

まず始めに:権限設定の方針決定

どのツールでもそうですが、どのように権限を設定していくかの方針を決めることが重要です。

具体的には、「どの部署・役割の人に、どのOmniの操作を許可するか」という点になります。

以下は操作権限を振り分ける場合のイメージです。各ロールの違いはこのブログでも後で触れますが、詳細はこちらの公式Docをご覧ください。

  • データエンジニアユーザー
    • Omniで付与させたい権限:Connectionの編集や、Shared modelの編集まで行う
    • Omniで付与するロール:Connection adminModelerを付与
  • 分析パワーユーザー
    • Omniで付与させたい権限:自由にWorkbookの作成を行い、Sharedへの反映をしたい場合はプルリクエストを発行する
    • Omniで付与するロール:Querierを付与
  • 分析一般ユーザー
    • Omniで付与させたい権限:自由にWorkbookの作成を行えるが、Sharedへの反映はできない
    • Omniで付与するロール:Restricted querierを付与
  • 閲覧だけのユーザー
    • Omniで付与させたい権限:作成されたWorkbookを閲覧だけ行う
    • Omniで付与するロール:Viewerを付与

権限管理に関するベストプラクティスも、少しですがOmniの公式Docで公開されています。

https://docs.omni.co/getting-started/best-practices#administration

ユーザー招待&Organization roleの確認

Omniのトップページ左下のSettingsから、Usersを押すことでユーザーの招待・管理が可能です。

2025-12-31_06h04_13

2025-12-31_06h54_58

基本的に各ユーザーは招待するだけで良いのですが、Omniで全ての操作を行えるOrganization Adminをもし付与したい場合には、対象のユーザーをクリックしてOrganization Adminに変更してください。 Organization Adminは非常に強い権限のため、限られたユーザーにだけ付与するようにしてください。

2025-12-31_07h00_06

グループ作成&ユーザーの割当

次に、部署や役割に応じたグループの作成を行います。

Omniのトップページ左下のSettingsから、Groupsを押すことでグループの作成が可能です。

2025-12-31_06h04_13

2025-12-31_07h17_46

右上のNew Groupを押すと、下図のようにグループの作成画面が立ち上がります。

2025-12-31_07h19_56

グループを作成すると、グループに対してユーザー追加を行える画面に移行しますので、各グループに対してユーザーを追加してください。

2025-12-31_07h21_03

権限設定

続いて、権限設定を行います。権限に関しては、大きく「Connection Role」と「Content permissions」の2つに分けられます。

  • Connection Role:以下の6つのロールに別れた、Connection/Modelレベルで設定できるOmniでの操作権限
    • No access:何の権限も持たない
    • Viewer:作成されたWorkbook(ダッシュボード)の閲覧が可能
    • Restricted querier:Workbookを作成できるが、Topicベースでしかグラフを作成できないなど一部制限あり
    • Querier:Restricted querierに加えて、Shared modelへ反映するためのプルリクエスト発行などが行える
    • Modeler:Querierに加えて、Shared modelを直接編集、ブランチのマージなどが可能(ただしConnectionの権限/設定管理は不可)
    • Connection admin:対象のConnectionと関連するModelについての全権限を持つ
  • Content permissions:OmniでのWorkbook自体に対する操作権限で、アカウントレベル・フォルダレベル・Workbookレベルで設定可能

グループに対するConnection Role設定

先程作成したグループに対して、Connection Roleを設定していきます。

各Connectionの詳細画面を開き、Permissionsタブを押すことで、Connection Roleの設定画面を開くことが出来ます。

2025-12-31_07h49_30

Connection Roleの設定欄を見ると、Connectionから作成したModelごとに各グループ名が表示されているため、各グループの行のAccess列から、どのConnection Roleをグループに設定するか決めることが出来ます。

2025-12-31_07h51_59

Content permissions

アカウントレベル~各Workbook(ダッシュボード)レベルで、コンテンツの権限管理を行うことが出来ます。

Content permissionsでは、閲覧から編集までの権限や、アカウントレベルではAI機能など各種機能をどこまで許可するか、という設定が可能です。

https://docs.omni.co/share

Accountレベル

SettingsContent permissionsから設定可能です。

2025-12-31_08h13_21

2025-12-31_08h13_53

フォルダレベル

まずフォルダですが、Omniでは「Hub」でフォルダを作成して、Omni内で共通利用するWorkbook(ダッシュボード)を管理できます。

2025-12-31_08h17_22

対象のフォルダのShareの設定を開くことで、このフォルダ内のWorkbookについてどのグループに対してどの操作権限を付与するか設定することが出来ます。

2025-12-31_08h18_08

2025-12-31_08h19_07

各Workbook(ダッシュボード)レベル

フォルダ内で管理されているWorkbookごとに権限を変更したい場合は、対象のWorkbookのShareの設定を開くことで可能です。

2025-12-31_08h21_30

2025-12-31_08h25_49

また、Settingsを押すことで、アカウントレベルでも設定できた各操作についての許可設定も可能です。

2025-12-31_08h26_55

より高度な権限設定

Omniには他にも、多様な権限設定機能を備えています。具体的には、User attribute(ユーザー属性)を用いた、行レベルセキュリティ、Topicレベルのアクセス制御、フィールドレベルのアクセス制御、などが可能です。

詳細は以下のドキュメントをご覧ください。

https://docs.omni.co/administration/users/attributes#can-i-use-user-attributes-to-control-data-access

6. Organizationレベルの各種設定

最後に、Omniのアカウント全体(Organizationレベル)の各種設定方法について確認していきます。(各項目の詳細な説明は割愛します。)

基本的に、Omniのトップページ左下のSettingsから設定可能です。

2025-12-31_06h04_13

General

デフォルトのタイムゾーンなどの設定変更が可能です。

2025-12-31_06h06_38

AI

AI関係の機能の有効化設定と、AIチャット機能のロゴやプロンプトのプレースホルダーなどの変更が可能です。

2025-12-31_06h13_18

2025-12-31_06h13_55

最後に

改めて新規のConnection作成を行う機会があったので、初期セットアップに必要となる手順を本記事にてまとめてみました。

Omniのセットアップ時の参考になると幸いです!

この記事をシェアする

FacebookHatena blogX

関連記事