Lookerのエクスプローラにはテーブル計算 (表計算) と呼ばれる機能があり、エクスプローラで取得した結果セットに対してSpreadsheetの関数のような感覚で計算・加工を行うことができます。
テーブル計算はLookMLに手を入れる必要がないためビジネスユーザーでも簡単にデータに対する操作を行える非常に便利で強力な機能ではあるのですが、一方でビジネスユーザーが独自に計算を定義できてしまうため、Lookerの主な利点の一つである「LookMLレイヤーでのデータ定義」すなわち「信頼できる単一の情報源」が揺らいでしまうリスクを兼ね備えています。
Lookerのバージョン21.10 から、新たにシステムアクティビティに追加された Custom Field ディメンションを使うことで、どのダッシュボードでテーブル計算が使われているかを確認できるようになりました。
システムアクティビティのDashboard, History, Look, Merge Query, 及びScheduled Plan のエクスプローラで、Custom Fieldsのディメンションが利用できるようになります。このディメンションは、クエリの中で使用されるテーブル計算、カスタムメジャー及びカスタムディメンションをJSON形式にて保持します。
(21.10リリースノートより抜粋)
1. システムアクティビティの Dashboard エクスプローラを開く
2. Queryの配下にある Custom Fields ディメンションを選択する
ダッシュボード毎に確認する場合は Dashboard の Title (ダッシュボード名に相当) 及び Dashboard Element の Title (タイル名に相当) を併せて追加します。また余計なレコードを表示しないようにするため、フィルターでNullと [] を除外するようにしましょう。
3. ダッシュボード内で使用されているCustom Fieldsの内容を確認する
テーブル計算が使われている場合は、以下の様にCustom Fieldsの値の中にJSON形式でテーブル計算の定義が格納されます。
一つのタイルに複数のテーブル計算が使われている場合は、以下の様にテーブル計算の定義のまとまりが複数格納されるようになります。expressionの部分で具体的な計算式が確認できます。
[
{
"table_calculation":"amount_paid_by_medicare_per_procedure",
"label":"Amount Paid By Medicare (per Procedure)",
"expression":"${medicare_procedure.avg_medicare_paid_per_procedure}",
"value_format":null,
"value_format_name":"usd"
},
{
"table_calculation":"amount_unpaid_by_medicare_per_procedure",
"label":"Amount Unpaid By Medicare (per Procedure)",
"expression":"${medicare_procedure.avg_amount_submitted_per_procedure}-${medicare_procedure.avg_medicare_paid_per_procedure}",
"value_format":null,
"value_format_name":"usd"
}
]
テーブル計算は非常に便利な機能ではありますが、使いすぎるとオレオレ計算を生み出してしまう原因にもなってしまいます。利用にあたってはなるべく組織内でポリシーを設け、管理者は上記のシステムアクティビティを活用してどのコンテンツでテーブル計算が利用されているかをチェックすることをオススメします。