「売上」「アクティブユーザー」の定義が部署で違うと議論にならない。定義を1か所で管理する。
「今月の売上」を聞いたら、営業部と経理部で違う数字が出てきた――これはデータ基盤でとてもよくある問題です。税込か税抜か、キャンセル・返品を引くか、計上は注文日か出荷日か。定義がそろっていないと、会議が「どちらの数字が正しいか」の議論で終わってしまいます。
セマンティックレイヤーは、指標(売上・アクティブユーザー数など)の定義を1か所のコードで管理し、BI ツールや SQL、スプレッドシートなど、どこから使っても同じ計算で数字が出るようにする層です。dbt のセマンティックレイヤー、Looker の LookML などがあります。たとえば「売上=ステータスが paid と shipped の注文の税抜金額の合計。日付は注文日」と一度だけ定義し、各ダッシュボードはそれを呼び出すだけにします。
道具を入れるだけでは定義はそろいません。指標ごとに持ち主(決める人)を決め、定義を文章でも残し、変えるときは告知する、という運用が先です。まずは利用の多い 10個ほどの指標から始めるのが現実的です。
面接ではこう答える
部署によって「売上」の数字が違うのは、税込か税抜か、キャンセルを引くか、注文日か出荷日か、といった定義がそろっていないからです。セマンティックレイヤーは、指標の定義を1か所のコードで管理し、BI でも SQL でも同じ計算で数字が出るようにする層で、dbt のセマンティックレイヤーや Looker の LookML があります。ただし道具より先に、指標ごとの持ち主を決め、定義を文章で残し、変えるときに告知する運用が大事です。
Dataとの関わり「どちらの数字が正しいか」の議論をなくし、データ基盤の信頼を作る中心の仕組みです。