
Omni の Topic で views パラメーターを使ってビューをカスタマイズする
こんにちは、ikumiです。
特定のユーザーや用途に向けた分析画面を用意したい場合、通常Omniではトピックを使用するかと思います。そのトピック上で、「このフィールドのラベルをこのトピックの文脈に合わせて変えたい」「このトピックだけで使いたいフィールドを追加したい」という場面が出てきます。
トピックの views パラメーターを使うと、グローバルなビューファイルを変更することなく、特定のトピック内だけに閉じたビューのカスタマイズが実現できます。今回はこの views パラメーターを試してみました。
機能概要
views パラメーターは、トピックの YAML 内にインラインで記述することで、そのトピック内だけに閉じたビューのカスタマイズを実現します。グローバルのビューファイルは変更しないため、他のトピックには影響を与えません。
試してみた
事前準備
今回は新規にトピックを作成します。使用するビューファイルは tran.view.yaml(ビュー名: brand_ana__tran)です。このビューには brand(ディメンション)と sales_sum(メジャー)が定義されています。
1. 新規トピックを作成する
まず brand_ana__tran_kensyo.topic.yaml を新規作成し、最小構成のトピックを定義します。base_view に使用するビュー名を指定します。

base_view: brand_ana__tran
label: ブランド別売上分析
joins: {}
ワークブックを開き、ブランド別売上分析トピックが表示すると、tran.view.yaml で定義した列一覧が確認できます。

2. views でフィールドのラベルをトピック内だけで変更する
続けて views パラメーターを追加し、sales_sum のラベルをこのトピック専用の表示名に変更します。グローバルの tran.view.yaml は変更しません。
views キー以下に変更対象のビュー名を記述し、その配下で上書きしたいフィールドを定義します。
label: ブランド別売上分析
base_view: brand_ana__tran
joins: {}
views:
brand_ana__tran:
measures:
sales_sum:
label: 総売上金額
ワークブックを開き直し、フィールド一覧で sales_sum が 総売上金額 と表示されていれば問題ありません。tran.view.yaml のグローバル定義は変わっていないため、他のトピックでは元のラベルのままです。

3. views でトピック内だけで使えるフィールドを追加する
views パラメーターではラベル変更だけでなく、ディメンションやメジャーの追加もできます。グローバルのビューファイルには載せたくないが、このトピックだけで使いたいフィールドがある場合に便利です。
例えば今回は、ブランド名を大文字で表示するための列を追加してみます。
label: ブランド別売上分析
base_view: brand_ana__tran
joins: {}
views:
brand_ana__tran:
measures:
sales_sum:
label: 総売上金額
dimensions:
brand_upper:
sql: "UPPER(${brand_ana__tran.brand})"
label: ブランド名(大文字)
ブランド別売上分析トピック上でのみ ブランド名(大文字) ディメンションが表示され、データも正しく確認できます。

最後に
Omni のトピック views パラメーターを使って、ラベル変更とフィールド追加をトピック内に閉じ込めて試してみました。
グローバルのビューファイルを変更せずに、トピックの文脈に合わせたカスタマイズができるのが便利な点です。「このトピックだけこの名前で見せたい」「この分析にしか使わないフィールドを他のトピックに混ぜたくない」という場面でぜひ試してみてください。






