Omniで開発用のデータベースを参照することでDWHへの負荷を削減できる「Dynamic environments」機能を試してみた

Omniで開発用のデータベースを参照することでDWHへの負荷を削減できる「Dynamic environments」機能を試してみた

2025.11.24

さがらです。

Omniで開発用のデータベースを参照することでDWHへの負荷を削減できる「Dynamic environments」機能を試してみたので、その内容についてまとめてみます。

https://docs.omni.co/docs/connections/manage/dynamic-database-environments

事前準備

OmniでConnectionとModelを作成

まず、Omniに対するConnectionとModelは作成済みであるとします。

2025-11-24_16h57_07

2025-11-24_16h58_28

また、こちらのConnectionではdbt連携を終えてVirtual Schemaも有効化している状態です。(このDynamic environments機能はdbt連携を行わなくても利用可能です。)

2025-11-24_17h57_27

Snowflakeで開発用のデータベースを作成

次に、Omniから参照先として切り替えるための開発用のデータベースを作成します。

今回は下図のようにクローン機能を使って作成しました。

2025-11-24_17h00_21

Omniで新しいConnectionを作成

開発環境のデータベースを参照する、新しいConnectionを作成します。

ポイントは、Database欄で開発用のデータベースを指定することです。

2025-11-24_17h22_40

Connection作成後、Build Schemaを実行します。

2025-11-24_17h44_34

下図のように新しいModelが作られたら、準備完了です。

2025-11-24_17h45_31

普段使用しているConnectionでEnvironmentを設定

次に、普段使用しているConnectionからEnvironmentを設定していきます。

Connectionの画面からEnvironmentsタブを押し、+New Environmentを押します。

2025-11-24_17h30_19

先程作成した開発用のデータベースを参照するEnvironmentにチェックを入れて、Saveを押します。

2025-11-24_17h31_30

下図のようにEnvironments欄に追加されたら、準備完了です。

※参考までに、Use Schema from Connection Environmentは有効化すると開発用データベースでもスキーマ定義を同期しようとするため、本番用と開発用データベースでカラムの構成などが異なる場合に利用します。Allow environments to be assigned dynamicallyはUser attributeごとに参照させるデータベースを変更させたい場合に有効化します。(こちらは有効化すると使用するUser attributeの入力欄などが表示されます。)

2025-11-24_17h32_38

Dynamic database機能を試してみる

ここまでの設定でDynamic database機能が使えるようになったため、早速試してみます!

保存済のWorkbookを編集するという仮定で、適当なWorkbookを開きます。

2025-11-24_17h39_15

2025-11-24_17h39_40

すると、左上のブランチ名の右横にデータベースアイコンが追加され、これを押すと先程追加したConnection名が表示されます。

2025-11-24_17h49_26

Connection名を押して切り替えた後に、適当なクエリを発行してみます。InspectorのDialect SQLではスキーマ名までしか表示されていないため、どのデータベースを使用したかはわかりません。

2025-11-24_17h54_24

そのため、SnowflakeのQuery HistoryのQuery Profileから確認してみると、開発用のデータベースを参照していることがわかりました!

2025-11-24_17h55_28

2025-11-24_17h55_56

最後に

Omniで開発用のデータベースを参照することでDWHへの負荷を削減できる「Dynamic environments」機能を試してみました。

ダッシュボードの開発時はデータの少ない開発環境を参照したいというケースはあると思いますので、その際にはぜひご活用ください!

この記事をシェアする

FacebookHatena blogX

関連記事