はじめに
Domo(ドーモ)は、データの接続や可視化といったデータを扱うために必要な操作を直感的に行うことができる製品です。
Domoでは、ビジネスクエッション(=データから把握したい事柄)毎にデータをグラフなどで可視化したものをカードと呼びます。
目的に沿ったカードを1つのページに配置してダッシュボードを作成して、データの分析や活用を行います。
ダッシュボードは用途に合わせ手軽に作成できる反面、無数に増えていき管理に苦労しているという声を耳にします。
本記事ではDomo運営に携わる人向けのダッシュボードを容易に管理するための方法を紹介します。
管理者権限を持つユーザー向けの内容となっています
ダッシュボード管理で知りたい情報
管理といっても切り口は様々ありますが、ここでは以下の点に絞って解説します。
- ダッシュボードの階層関係
- ダッシュボードに配置されているカード
- ダッシュボードで使用されているDataset
- ダッシュボードやDatasetの所有者
※ダッシュボードの利用状況という観点には、この記事では触れません。
必要情報の取得
必要な情報は全てDomoで取得することができます。
Domo Governance Dataset Connecterを使用して対象レポートを取得しましょう。
♯ | 必要情報 | 取得できるレポート |
---|---|---|
1 | ダッシュボードの階層関係 | Pages and Cards |
2 | ダッシュボードとカードの関係性 | Pages and Cards |
3 | カードとDatasetの関係性 | Cards and Datasets |
4 | Datasetの所有者 | Datasets |
Datasetの所有者情報は、DomoStatsのDataSets
などからも取得可能です。
本記事の内容
本記事では♯1ダッシュボードの関係性の可視化について説明します。
※インスタンス、データは全てダミーとなります。
ダッシュボードの階層関係
Domoではダッシュボードを最大3階層で表現することができます。
本記事では、階層を上から順に親、子、孫として表現させていただきます。

親ダッシュボード:page_A、page_E
子ダッシュボード:page_B、page_D ※page_Aの子ダッシュボード
孫ダッシュボード:page_C ※page_Aの孫ダッシュボード(page_Bの子ダッシュボード)
Pages and Cardsの読み方
この親子関係は、取得したPages and Cards
では、「Parent Page ID」「Parent Page Title」と「Page ID」「Title」で確認することができます。
Pages and Cards
は、ダッシュボード×カードの組み合わせで1行となるDatasetのため、見やすく集計すると以下のようになります。
Title=page_Bの行では、Parent Page ID=page_Aとなっており、page_Bの親ダッシュボードがpage_Aと特定できます。
Title=page_Cの行では、Parent Page ID=page_Bとなっており、page_Cの親ダッシュボードがpage_Bと特定でき、page_Bとpage_Cの2行でA-B-C=親ー子ー孫であることがわかります。
Title=page_Aの行では、Parent Page IDが空欄になっています。これは親ページが存在しない=親ページであると判定できます。
Domoでは同一名のダッシュボードを存在させることができます。
「Parent Page Title」のみで確認すると、ダッシュボード名の重複がある場合に誤った取扱いをしてしまうリスクがあるため、ユニークとなるIDとセットで確認しましょう。
分析用Datasetの作成
Pages and Cards
の読み方がわかったところで、分析に使用しやすいようにデータの整形を行います。
整形にはMagic ETL
を使用します。
STEP1:ダッシュボードの組み合わせ毎に集計

Pages and Cards
は、カード単位のデータのため、ダッシュボード単位に集計します。
ここではだに配置されたカード数を取得するために、Card IDのカウントで集計します。
STEP2:親×子×孫を紐づけ
次にPage IDとParent Page IDを、孫と子、子と親として列名を変更します。
「データを結合」で子を結合キーとして、孫、子、親の三世代が1行3列で表現されるようにします。
STEP3:空欄の階層を埋める
STEP2の時点でのデータは、親ダッシュボード、子ダッシュボードに空欄の列が発生しています。
階層 | 親 | 子 | 孫 |
---|---|---|---|
親ダッシュボード | 親 | ||
子ダッシュボード | 親 | 子 | |
孫ダッシュボード | 親 | 子 | 孫 |
この後の工程で各階層のダッシュボードに対して、配置されているカードの情報を紐づけます。
各階層を以下のように表現します。
※全てのダッシュボードを孫視点で、親や祖父母の有無を確認して適切な世代に値を入れます。
階層 | 親 | 子 | 孫 |
---|---|---|---|
親ダッシュボード | 親 | 親 | 親 |
子ダッシュボード | 親 | 子 | 子 |
孫ダッシュボード | 親 | 子 | 孫 |
「スクリプトを追加」にて、赤字部分の列を新規作成します。
子ダッシュボードにあたる子階層は、STEP2では親IDですが子IDに差し替えるところがポイントです。
スクリプトの詳細
case
when `親Title` is null then
case
when `子Title` is null then `孫Title`
else `子Title`
end
else `親Title`
end
--または
case
when `親Title` is null then ifnull(`子Title`,`孫Title`)
else `親Title`
end
case
when `親Title` is null then `孫Title`
else `子Title`
end
STEP4:作成したID、Titileと差し替え

STEP3で新規作成した親、子のID、Title列(New_〇〇)と既存列を差し替えます。
差し替えには「列を変更」または「列を選択」を使用します。
STEP5:出力(完成)

最後に出力すれば完成です。
出力されたデータは以下のようになり、三世代のダッシュボードを表現できるデータになりました。
ダッシュボードの関係性の可視化
作成したDatasetを使って以下のようなカードを作ってみましょう。
検索しやすいように、ダッシュボード上にフィルタを設置してみます。(親~孫フィルタの計3つ)
本記事で使用したインスタンスではダッシュボードの全数が少ないですが、
数多くのダッシュボードが存在するインスタンスでは、このフィルタが重宝します。
利用シーンの例はこちらです。
- ダッシュボードを上位から絞込み配下のダッシュボード総数を確認
- 特定のダッシュボードがどこに属したダッシュボードなのかを確認(孫フィルタで絞り込んだ結果を確認)
Dataset自体にアレンジを加えれば以下のようなこともできます。
- 階層によって所有者や公開範囲の異なるダッシュボードの発見
- ダッシュボードの閲覧状況の把握による階層の最適化
是非色々と試してみてください!
まとめ
本記事では、ダッシュボードを分析するためのベースとなる♯1ダッシュボードの関係性の可視化について説明しました。
ダッシュボードの管理はインスタンスを管理する上で重要な仕事です。
インスタンスを俯瞰することで新しい気づきが得られるかもしれません。
Domo自身のデータを使いDatasetやカードを駆使して、業務の効率化を図ることができます。
Domoの管理でお悩みの方の一助になれば幸いです。
後日、ダッシュボードに配置されたカード、ダッシュボードに使用されたDatasetの管理方法も公開したいと思います。