OmniのWorkbook上で選択したフィールドに基づいた集計結果をdbtのModelとしてプッシュしてみた

OmniのWorkbook上で選択したフィールドに基づいた集計結果をdbtのModelとしてプッシュしてみた

Clock Icon2024.08.18

さがらです。

OmniのWorkbook上で選択したフィールドに基づいた集計結果をdbtのModelとしてプッシュしてみたので、その内容を本記事でまとめてみます。

※Omni自体については、下記のブログが参考になると思います。

https://dev.classmethod.jp/articles/try-omni/

試す内容

下記のドキュメントに沿って、OmniのWorkbook上で定義した集計結果をdbtのModelとしてプッシュしてみます。

https://docs.omni.co/docs/integrations/dbt#author-dbt-models-from-omni-queries

事前準備:Connectionのdbt連携設定

まず、事前準備として対象のConnectionでdbt連携設定をする必要があります。

こちらのブログの「Connectionのdbt連携設定」で手順をまとめていますので、こちらをご覧ください。

https://dev.classmethod.jp/articles/omni-dbt-integration-setup/

Workbook上で定義した集計結果をdbtのModelとしてプッシュ

では、本題であるWorkbook上で定義した集計結果をdbtのModelとしてプッシュしてみます。

下図のように、OrdersOrder Itemsという2つのviewを用いて、アイテムごとの単価や売上合計をまとめた集計結果をWorkbook上で定義してみました。また、Order Total Sum Without Taxは下図のように2つのmeasureの差分を定義したフィールドとなっています。

2024-08-18_18h25_19

2024-08-18_18h23_13

この状態で、上部のModelPush to dbtを押します。

2024-08-18_18h09_55

すると、下図のように表示されます。SQLはちゃんとrefを使っているのがいいですね!

各項目編集したうえで、Pushを押します。特にdbt file nameはサブフォルダを指定したいことが多いと思うので忘れずに変更しましょう。(サブフォルダは新規作成するフォルダでも問題ありません、自動で作成されます。)

2024-08-18_20h13_00

すると、Omniの画面の右下にこのようなポップアップが表示されるため、View changes hereを押してみます。

2024-08-18_20h13_59

プルリクエストの発行画面となるため、プルリクエストを発行してマージします。

2024-08-18_20h15_08

2024-08-18_20h15_28

マージ後、dbt Cloudで確認してみると、下図のようにModelが追加されていました!

2024-08-18_20h18_51

気になった点

先ほど検証した内容とは別に、Omniのスプレッドシートのような操作感を活かして、Order Total Sum Without Taxという2つの列の値の差を算出したカラムを追加してみました。

2024-08-18_18h09_17

この状態でPush to dbtを押すと、何度操作を行っても下図のような画面が表示されてしまいました。そのため、スプレッドシートのような操作でロジックを実装した場合はまだすべての処理をdbt化することはできないのだと思います。これはぜひ改善してほしい…!

2024-08-18_18h20_51

最後に

OmniのWorkbook上で選択したフィールドに基づいた集計結果をdbtのModelとしてプッシュしてみました。

検証した結果、現状はスプレッドシート的な操作を行った場合は制限がありそうですが、従来からあるBIツールの操作感でdbtのModelの開発が出来るのはとても便利じゃないでしょうか!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.