本文へ移動

ホーム / Data / 第5部 品質・ガバナンス

第5部 品質・ガバナンス・第13章

指標の定義とデータの管理

★★☆ 重要5トピック・面接 3問

誰もが同じ意味でデータを使い、自分で探して判断できるようにする方法を押さえる。

ひとことで

「売上」「アクティブユーザー」の定義が部署で違うと議論にならない。定義を1か所で管理する。

「今月の売上」を聞いたら、営業部と経理部で違う数字が出てきた――これはデータ基盤でとてもよくある問題です。税込か税抜か、キャンセル・返品を引くか、計上は注文日か出荷日か。定義がそろっていないと、会議が「どちらの数字が正しいか」の議論で終わってしまいます。

どこから使っても、同じ定義で同じ数字BI ツールスプレッドシートノートブック・SQLAI のアシスタントセマンティックレイヤー(指標の定義)売上=paid・shipped の注文の税抜金額の合計(注文日)/アクティブユーザー=…DWH(mart のテーブル)
セマンティックレイヤーで指標の定義を1か所にする

セマンティックレイヤーは、指標(売上・アクティブユーザー数など)の定義を1か所のコードで管理し、BI ツールや SQL、スプレッドシートなど、どこから使っても同じ計算で数字が出るようにする層です。dbt のセマンティックレイヤー、Looker の LookML などがあります。たとえば「売上=ステータスが paid と shipped の注文の税抜金額の合計。日付は注文日」と一度だけ定義し、各ダッシュボードはそれを呼び出すだけにします。

道具を入れるだけでは定義はそろいません。指標ごとに持ち主(決める人)を決め、定義を文章でも残し、変えるときは告知する、という運用が先です。まずは利用の多い 10個ほどの指標から始めるのが現実的です。

面接ではこう答える

部署によって「売上」の数字が違うのは、税込か税抜か、キャンセルを引くか、注文日か出荷日か、といった定義がそろっていないからです。セマンティックレイヤーは、指標の定義を1か所のコードで管理し、BI でも SQL でも同じ計算で数字が出るようにする層で、dbt のセマンティックレイヤーや Looker の LookML があります。ただし道具より先に、指標ごとの持ち主を決め、定義を文章で残し、変えるときに告知する運用が大事です。

指標の定義は、計算式だけでなく「何を含み、何を除くか」「どの日付で数えるか」まで書いて、初めて数字がそろいます。

指標の定義書(売上の例)名前売上(税抜)計算注文明細の金額の合計(税抜)含む・除くstatus が paid・shipped。キャンセル・返品は除く日付の基準注文日(日本時間)持ち主経営企画(変更は告知のうえ月初から)
文章とコードの両方に同じ定義を書く
項目書くことずれやすい例
計算分子・分母、合計か件数か平均の平均を取ってしまう
含む・除く状態・テストのアカウント・社内の注文社員の注文やテストの注文が混ざる
日付の基準注文日・出荷日・入金日、タイムゾーン経理は出荷日、営業は注文日
粒度日・週・月、どの切り口で出してよいか週の始まりが日曜か月曜か
持ち主と変更の手順誰が決め、いつから変えるか黙って定義が変わり、過去と比べられない

13.3データカタログ

用語★★☆ 重要
ひとことで

どんなテーブルがあり、各列が何を意味し、誰が持ち主で、どれくらい新しく、どこから作られているかを検索できる目録。

データカタログは、どんなテーブルがあり、各列が何を意味し、誰が持ち主で、どれくらい新しく、どこから作られているか(リネージ)を検索できる目録です。利用者が「このテーブルを使っていいのか」を自分で判断できるようになり、データのチームへの同じ質問が減ります。

カタログの1つのテーブルのページ説明1行が何か(粒度)・何に使えるか列各列の意味・単位・個人情報の印持ち主問い合わせ先のチーム鮮度・品質最終の更新・テストの結果リネージどこから作られ、どこで使われるか
利用者が「このテーブルを使ってよいか」を自分で判断できるようにする
セマンティックレイヤーデータカタログ
答える問い「この指標はどう計算するか」「どんなデータがあり、使ってよいか」
中身指標・集計の定義(コード)テーブル・列の説明、持ち主、鮮度、リネージ
使う人BI・SQL・スプレッドシートなどの仕組みから呼ぶ利用者が検索して読む
効果同じ指標が、どこでも同じ数字になる同じ質問が減り、自分で探せる

カタログは、説明が空っぽだと使われなくなります。dbt の YAML に書いた説明を自動で取り込むなど、コードと一緒に説明を書く仕組みにすると、古くなりにくくなります。よく使われるテーブルから説明を埋めます。

面接ではこう答える

データカタログは、どんなテーブルがあり、各列の意味、持ち主、鮮度、テストの結果、リネージを検索できる目録です。利用者が「このテーブルを使ってよいか」を自分で判断できるようになり、データのチームへの同じ質問が減ります。説明が古くならないよう、dbt の YAML などコードと一緒に書いた説明を自動で取り込むのがコツです。

「このテーブルの数字がおかしい」と言われたとき、誰が直すのかが決まっていないと、問い合わせがデータのチームに集まり続けます。データにも持ち主を決めます。

役割責任
元のデータの持ち主(業務のチーム)元のシステムのデータの正しさ。変更の事前の連絡
基盤の持ち主(データエンジニア)取り込み・変換が止まらず、決めた時刻に届くこと
指標の持ち主(業務の責任者)指標の定義を決め、変えるときに告知する
mart の持ち主(アナリティクスエンジニアなど)mart の設計・テスト・説明

持ち主はカタログや dbt の YAML(meta の owner など)に書いておき、テストの失敗の通知もその持ち主に届くようにします。

データメッシュは、データの提供を中央の1チームに集めず、そのデータに詳しい業務のチームが「データプロダクト」として提供する、という組織の考え方です。

中央のチームとデータメッシュ中央のデータチーム全部のパイプラインを1チームが作る品質と形をそろえやすい依頼が集中して遅くなるデータメッシュ業務のチームが自分のデータを提供共通の基盤と決まりは中央が用意各チームに力と手間が要る
組織が大きくなり、中央のチームが詰まってきたときの選択肢

データプロダクトは、他のチームがそのまま使えるように、説明・品質の約束・持ち主・権限まで含めて提供されるデータのことです。どの組織の形でも、「使う人のための製品として、データを作る」という考え方は役に立ちます。

この章のまとめ

🖨 まとめシート(印刷・PDF)
  • 指標の定義をそろえる(セマンティックレイヤー・定義書)
  • データカタログで、自分で探して判断できるようにする
  • データの持ち主と責任の分け方

この章のクイズ

面接ではこう聞かれる

まず答えを見ずに声に出して答え、そのあと開いて比べる。

Q1部署によって「売上」の数字が違うと言われたら、どうしますか?

模範回答

まず、それぞれの数字がどう計算されているかを並べて比べます。違いはたいてい定義にあり、税込か税抜か、キャンセルや返品を引くか、注文日か出荷日か、といった点です。どちらが正しいかではなく、目的によって両方とも正しいことも多いです。

そのうえで、指標の持ち主(決める人)と一緒に、会社としての「売上」の定義を1つ決め、必要なら「出荷ベースの売上」のように名前を分けます。定義は文章にしてデータカタログに載せ、計算はセマンティックレイヤーや mart の1か所にまとめ、各ダッシュボードはそれを使うように寄せていきます。

深掘りされたら

  • 定義を変えたら、過去の数字はどうしますか?

見られているポイント定義の違いを見つけて、合意と仕組みでそろえる

Q2指標の定義を変えたいと言われました。どう進めますか?

模範回答

まず、その指標の持ち主(決める人)が合意しているかを確かめ、変える理由と新しい定義を文章にします。次に、リネージでその指標を使っているダッシュボードとレポート、利用者を洗い出し、新旧の定義で過去の数字がどれだけ変わるかを計算します。

そのうえで、いつから切り替えるかを決めて事前に告知し、切り替えの前後で比べられるよう、しばらくは旧定義の値も並べて出します。定義書とセマンティックレイヤーのコードは同時に直し、変更の履歴を残します。

深掘りされたら

  • 過去の数字も新しい定義で作り直しますか?

見られているポイント影響の範囲を調べ、告知してから切り替える進め方

Q3データカタログを入れたのに、誰も使ってくれません。どうしますか?

模範回答

使われない理由の多くは、説明が空っぽか古いこと、そして探す場面にカタログがないことです。まず、よく使われる上位のテーブルから、粒度・列の意味・持ち主を埋めます。説明は dbt の YAML などコードと一緒に書き、自動で取り込むようにして古くならないようにします。

あわせて、問い合わせが来たときにカタログのリンクで答える、BI ツールからカタログに飛べるようにするなど、普段の流れの中で目に入るようにします。使われているかはアクセスの数で測り、改善を続けます。

深掘りされたら

  • 説明を書く手間は誰が負担しますか?

見られているポイント道具ではなく運用と習慣の問題として捉えられるか