Omniで参照先のスキーマ名を変更してしまった際の検知・修正をContent Validatorを用いてやってみた

Omniで参照先のスキーマ名を変更してしまった際の検知・修正をContent Validatorを用いてやってみた

2025.10.31

さがらです。

Omniでは参照先のテーブル名やフィールドの名称変更があったときにまとめて検知・修正できる「Content Validator」という機能が備わっています。

https://docs.omni.co/docs/modeling/manage-develop/content-validator

この機能を試しながら、参照先のスキーマ名を変更してしまった際の対処を行ってみたので、本記事で内容をまとめてみます。

やること

Omniが参照しているdbtで作られたスキーマについて、generate_schema_nameのマクロの仕様を変更して出力先のスキーマが全く異なってしまった、という状況であるとします。

こうすると、Omniで定義していたダッシュボードにおいて下図のようにエラーとなってしまいます。この状況を、Content Validatorを使って解決していきます。

2025-10-31_17h55_09

注意点

本来のOmniの機能をフル活用するのであれば、OmniのWorkbookでブランチを切った際にdbtの開発スキーマを動的に参照できるDynamic Schemaという機能があるため、これを使ってOmniで公開されているダッシュボードに影響与えずに対処すべき事案です。

ただ、このDynamic Schemaについてのブログは近日中に書こうと思っておりますので、一旦本記事では「本番環境のスキーマの参照先を急に変えてしまったらOmniのダッシュボードも見れなくなってしまった、という状況をどうContent Validatorで解決するか」という観点で見て頂けますと幸いです。

やってみた

スキーマ情報のリフレッシュ

まず、Content Validatorを使うには、Shared ModelのIDEを開く必要があります。メニューのDevelopから対象のModelを選択すればOKです。

2025-10-31_18h17_40

Shared ModelのIDEを開いたら、今回はスキーマレベルの変更を行ったため、古いスキーマ情報が残っていることがあると思います。そのため、スキーマ情報をリフレッシュする必要があります。

Shared ModelのIDE上部のModelからRefresh schemaを押します。

2025-10-31_18h05_52

その後、特に入力はせずにRefresh schemaを押します。

2025-10-31_18h06_38

すると、Shared ModelのIDE下部で、下図のようにエラーが起きると思います。

2025-10-31_18h07_07

Content Validatorの起動と修正

Shared ModelのIDEで、画面左のContent Validatorを押します。

2025-10-31_18h10_37

すると、下図のようにContent Validatorの画面が表示され、このShared Modelを参照していてエラーとなっているModelの一覧が表示されると思います。エラーを見ると、Table 'prod__orders' not foundとなっていますね。

2025-10-31_18h13_35

修正するため、エラーの横にあるReplaceを押します。

2025-10-31_18h15_40

表示された画面で、VIEW to replaceには<変更前のスキーマ名>_<view名>を入れて、Replace withには<変更後のスキーマ名>_<view名>を入れればOKです。この後で、Replaceを押します。

2025-10-31_18h21_25

これでダッシュボード側の参照は正しくなったのですが、まだエラーがあるためShared Modelの定義自体を修正していきます。(フィールド名の修正などであれば、このタイミングで修正が終わっているはずです…。)

2025-10-31_18h24_18

Content Validatorだけで修正できなかった箇所をブランチを切って修正

今回は参照するスキーマを変更するというちょっと劇的なことを行ってしまったため、Content Validatorだけで修復を終えることができませんでした。

そのため、新しいブランチを切って修正を行っていきます。(事前にOmniとGitHubの連携は済んでいるとします。)

  • 新しいブランチを作成

2025-10-31_18h33_14

2025-10-31_18h34_23

  • SCHEMAS欄の一番上にスキーマの参照先の変更により行き場を見失ったカスタムのdimensionとmeasureが定義されたviewがあるため、これをコピーして参照先のスキーマを変更した上で正しいviewファイルの適切な位置に貼り付け・修正

2025-10-31_18h41_30

2025-10-31_18h43_33

2025-10-31_18h44_50

  • relationshipsのview名も誤っているため、修正

2025-10-31_18h48_59

  • topicsのview名も誤っているため、修正

2025-10-31_18h50_20

  • 最後に不要となった以前のviewファイルを削除

2025-10-31_18h51_59

  • ブランチを切った状態で実際にWorkbookを見て問題なく、エラーもすべて消えたことを確認したら、プルリクエストを発行し、マージする

2025-10-31_19h04_39

2025-10-31_18h53_13

この一連の作業を行ったことで、エラーとなっていたダッシュボードを無事復旧できました!

2025-10-31_19h06_42

最後に

Omniで参照先のスキーマ名を変更してしまった際の検知・修正をContent Validatorを用いてやってみたので、その内容をまとめてみました。

スキーマを変更してしまうとContent Validatorの修正だけでは済まなかったのですが、コードの修正時はブランチを切りながら対処することでコンテンツの動作確認も行えるのはとても良いなと思いました!(ただ、ダッシュボード1つでも大変だったので、参照するスキーマの変更はなるべく避けたいですね…)

修正手順はもう少しスマートなやり方があるかもしれませんが、この記事の内容が1つの参考となれば幸いです。

この記事をシェアする

FacebookHatena blogX

関連記事