Slide 1

Slide 1 text

第3回 デタマネ会 データモデリング? どのレベルでやるの? 2023/11/09 komiyama 1

Slide 2

Slide 2 text

2 自己紹介 小宮山 紘平 / こみぃ / Kohei Komiyama Twitter: @kommy_jp Facebook: kohei.komiyama Blog: https://zenn.dev/kommy339 Snowflake 2023 Snowflake Data Superheroes Title Data Management Team Manager Data Engineer Magic: The Gathering Body-building Escape game Hobbies Interests

Slide 3

Slide 3 text

目次 ● データモデリングとは? ● データモデリング?どのレベルでやるの? ● データモデリングのステップ ● データモデリングの手法 ● 本日の議論 3

Slide 4

Slide 4 text

目次 ● データモデリングとは? ● データモデリング?どのレベルでやるの? ● データモデリングのステップ ● データモデリングの手法 ● 本日の議論 4

Slide 5

Slide 5 text

5 何故データモデリングが必要なのでしょうか?弊社ではすでにDWHやBIツール も導入済みで、データドリブンな意思決定が出来ていると思います。 すでにDWHとBIツールを導入済みというのは大変すばらなことだと思いま す。 安心してください。データモデリングはその次のステップです。 データモデリングをすることでどんなメリットが得られるのか、解説しますね。 データモデリングはデータ基盤導入の次のステップ!! Q

Slide 6

Slide 6 text

データモデリングとは、データ要件を洗い出し、分析し、取り扱いス コープを決めるプロセスである。このデータ要件を表現し伝えるため に、データモデルと呼ばれる明確に定義された形式が用いられる。 データモデリングはデータマネジメントに必須の要素である。組織は このモデリングプロセスを通してデータの関係性を突き止め、文書化 しなければならない。このモデリングプロセスこそがデータの体系を 設計することである(Simsion, 2023)。組織はデータモデルを使って 自らが持つデータ資産を視覚化し把握する。 6 データモデリングとは?(DAMA-DMBOKより)

Slide 7

Slide 7 text

7 つ、つまり、、、

Slide 8

Slide 8 text

8 !!!!!

Slide 9

Slide 9 text

データを整理して見やすくするプロセス 9 データモデリングとは? 見ることを意識して行う必要がある

Slide 10

Slide 10 text

10 何故データを整理して見やすくする必要があるの? データが整理されていない 間違ったデータを出してしまう 起きること 誤った意思決定 データの閲覧に時間がかかる 意思決定の遅延 データを共有できない コラボレーションが生まれない セキュリティがつらい 機密情報の漏洩

Slide 11

Slide 11 text

11 データが整理されていれば データが整理されている 正しいデータを出せる 起きること 正しい意思決定 素早いデータ閲覧 迅速な意思決定 データを共有できる コラボレーションとシナジー セキュリティがばっちり 安心安全なデータ活用

Slide 12

Slide 12 text

● データモデリングはデータを整理して見やすくするプロセス ● 整理されていないデータは多くのデメリットを生む ● データモデリングはめちゃくちゃ重要! 12 ここまでのまとめ

Slide 13

Slide 13 text

目次 ● データモデリングとは? ● データモデリング?どのレベルでやるの? ● データモデリングのステップ ● データモデリングの手法 ● 本日の議論 13

Slide 14

Slide 14 text

14 データモデリングの重要性はわかりましたが、すでにデータドリブンな意思決 定が出来ているためか、関係部署の協力を得ることが出来ません。 Q 気持ちはわかります。自分たちは意味があると思っていることに周囲が協力 してくれないのって、すごくつらいですよね。 データモデリングの具体的な進め方を解説します。 ひょっとするとあなた自身も考え方を変える必要があるかもしれません。それ も解説します。 データモデリングについての考え方をアップデートしよう!

Slide 15

Slide 15 text

15 データが生み出されてから活用されるまで

Slide 16

Slide 16 text

16 集計するのがデータモデリング? ここ?

Slide 17

Slide 17 text

17 集計するのがデータモデリング? ここ? そんなふうに思っていた時期が 私にもありました。

Slide 18

Slide 18 text

18 実は全部がデータモデリング

Slide 19

Slide 19 text

19 ログを生む過程でのデータモデリング

Slide 20

Slide 20 text

● 既存のデータの正確な仕様の把握は思っている以上に大変 ○ ログの形式がイケてなかったり等の事情でログ設計からやり 直したほうがいいことも多々ある ● いつから必要なログが全て出ていると錯覚していた? ○ 場合によっては追加のログ設計などが必要 ● 今更ログを直せない場合にはクレンジングが必須 データモデリングはログ設計から 20

Slide 21

Slide 21 text

21 ログを貯める過程でのデータモデリング

Slide 22

Slide 22 text

● 誰がどこからどんなデータを抽出しているのか正確に把握する必 要がある ● DWHにデータが溜まっているはずなのに実は使われてないみたい なことが多々ある ● そもそもいつからDWHがあると錯覚していた? そのDWH本当に使われてますか? 22

Slide 23

Slide 23 text

23 集計する過程でのデータモデリング

Slide 24

Slide 24 text

● 誰がどこからどんなデータを抽出しているのか正確に把握する必 要がある(2ページぶり2度目) ● ローデータを各自がExcelで集計する文化の会社も多い データマートという概念は浸透していますか? 24

Slide 25

Slide 25 text

25 使う過程でのデータモデリング

Slide 26

Slide 26 text

● データカタログ ○ 提供しているデータの定義を正確に文書化した資料 ○ 陳腐化しないようにアップデートされる必要あり ● BIツール ○ データを使う人が望む形でデータを提供しないとデータは使 われない ● 適切なサポート ○ ツールの提供だけではなく導入支援も必須 ○ みんながSQLを書けるわけではない 26 正しくデータを提供できていますか?

Slide 27

Slide 27 text

● データモデリングはデータを中間集計してデータマートを作るこ とだけじゃない ● 生成されるデータの把握から終点での活用まで達成してこそデー タモデリング 27 ここまでのまとめ

Slide 28

Slide 28 text

28 データモデリングがこんなに大変なプロセスだとは思っていませんでした。 ひょっとして私は軽い気持ちでやばいところに足を踏み入れたのですか? Q そうです(断言)。 大切なのはこのプロセスが大変なのを自分自身が認識することと、あなたの 上司や関係者に認識してもらい協力を真摯にお願いすることです。 モデリングに限らず、データマネジメントは徳を必要とするお仕事なんです。 データモデリングは、やっぱつれえわ

Slide 29

Slide 29 text

目次 ● データモデリングとは? ● データモデリング?どのレベルでやるの? ● データモデリングのステップ ● データモデリングの手法 ● 本日の議論 29

Slide 30

Slide 30 text

30 データモデリングは挟み撃ちで進める ● データ生産者にヒアリングをしてデータの仕様を正確に把握する ○ ヒアリングだと足りないことも多々ある ● 必要ならログを追加したりなどの調整が必要

Slide 31

Slide 31 text

31 データモデリングは挟み撃ちで進める ● データ利用者と詳細にすり合わせてデータを提供する ○ どんなデータがどんな形式でほしいか? ○ データカタログはどんな形式で提供するのがいいか? ○ 活用支援は必要か?

Slide 32

Slide 32 text

32 データモデリングは挟み撃ちで進める ● 両側からじわじわと外堀を埋めていき、最後にデータマートを作 成していく

Slide 33

Slide 33 text

● データ活用が進めばより多くの要望が生まれる ○ こんなデータもほしい ○ こういう切り口でもデータが見たい ○ 新しい機能が出たからそれらのデータも加えたい ○ KPIの定義が変わった(何故だ) ● その要望を繰り返し叶えていく終わりなき旅 ○ ログの追加実装 ○ データマートの追加 ○ データカタログのアップデート ○ データ提供ツールの拡充 33 データモデリングは終わりなきサイクルのプロセス

Slide 34

Slide 34 text

34 繰り返すモデリングのサイクル。終わりなき日常。そんな中で私達は何を信じ て何に幸せを見い出せばいいのですか? Q 今はつらかろうが、それらを押し殺しましょう。つらいものはつらい。 失ったものじゃなくて、あなたが今持っているものを考えましょう。 データモデリングで現場を助けて、今あなたに残っているものはなんですか? 仲間がいる゛よ

Slide 35

Slide 35 text

目次 ● データモデリングとは? ● データモデリング?どのレベルでやるの? ● データモデリングのステップ ● データモデリングの手法 ● 本日の議論 35

Slide 36

Slide 36 text

● データ生産者、データ利用者と握ることに比べたらデータモデリ ングでどの手法を使うかとかは些細な問題 ○ 文書化するのだけは大変ですが、コミュニケーションの方が17 倍くらい大変 ● モデリング手法は好きなのを選べばOK ○ ディメンショナルモデル ○ 大福帳モデル ○ Data Vault 36 狭義のデータモデリングまで進めるかが成否の8割

Slide 37

Slide 37 text

● データを以下の2つに分けて管理する手法 ○ ディメンション ○ ファクト ● 現在最も一般的と思われ、Data Valutの概念の基礎でもある 37 ディメンショナルモデル

Slide 38

Slide 38 text

38 ディメンショナルモデル 日付 商品ID ユーザーID 個数 売上 2023/01/05 D01 2130001 1 100 2023/01/07 F01 2520318 1 80 2023/01/07 G03 1138654 1 100 2023/01/10 E06 1130032 4 200 ファクト ユーザーID ユーザー名 年齢 2130001 溝口 9 2520318 相模原 35 1138654 本郷 18 1130032 弥生 20 ディメンション 商品ID 商品名 分類 D01 絆創膏 医薬品 F01 消しゴム 文房具 G03 輪ゴム 日用雑貨 E06 じゃがいも 食品 ディメンション

Slide 39

Slide 39 text

● すべてのデータを並べた超巨大なテーブルを作成する手法 ○ ディメンショナルモデルをJOIN済みにしたような形 ● BIツールやデータ利用者からは非常にわかりやすい ● 整備と管理に多大なコストを要する 39 大福帳モデル

Slide 40

Slide 40 text

40 大福帳モデル 日付 年月 期 品目 メーカー 大分類 小分類 原価 売上 Pt利用 割引 2023/01/05 202301 1 絆創膏 ニチバン 日用品 医薬品 100 200 0 10% 2023/01/07 202301 1 消しゴム コクヨ 日用品 文房具 40 100 0 0% 2023/01/07 202301 1 輪ゴム コクヨ 日用品 雑貨 60 120 30 0% 2023/01/10 202301 1 じゃがいも JA北海道 食品 穀類 80 120 10 0%

Slide 41

Slide 41 text

● データを以下の3つの概念で管理する手法 ○ 各カテゴリでキーとなるデータ(ハブ) ○ それぞれのデータ(サテライト) ○ 各ハブ間の関連性(リンク) ● 監査性に優れデータの変化にも柔軟で(以下略) ● クエリがJOINだらけになるのでRedashなどのSQLベースのBIツー ルを使っている場合には扱うのにSQLスキルが要求される ● 理解すること自体に非常に時間がかかる(体験談)のでよほどハ イレベルなデータチームを有していないとそもそも導入すらでき ないと思う 41 Data Vault

Slide 42

Slide 42 text

42 Data Vault

Slide 43

Slide 43 text

43 Data Vault SELECT * (略) FROM hub_sales hs INNER JOIN link_sales_product lsp ON hs.sales_h_key = lsp.sales_h_key INNER JOIN hub_products hp ON hp.product_h_key = lsp.product_h_key INNER JOIN sat_sales ss ON hs.sales_h_key = ss.sales_h_key INNER JOIN sat_products sp ON sp.product_h_key = hp.product_h_key WHERE sat_sales.loaded_at = (select max(loaded_at) from sat_sales) AND sat_products.loaded_at = (select max(loaded_at) from sat_products) ;

Slide 44

Slide 44 text

44 Data Vault SELECT * (略) FROM hub_sales hs INNER JOIN link_sales_product lsp ON hs.sales_h_key = lsp.sales_h_key INNER JOIN hub_products hp ON hp.product_h_key = lsp.product_h_key INNER JOIN sat_sales ss ON hs.sales_h_key = ss.sales_h_key INNER JOIN sat_products sp ON sp.product_h_key = hp.product_h_key WHERE sat_sales.loaded_at = (select max(loaded_at) from sat_sales) AND sat_products.loaded_at = (select max(loaded_at) from sat_products) ; ディメンショナルモデルだったらJOINが1つで良かったこと をJOINが4つ???? (このSQLだとまだユーザー情報と紐づいてない)

Slide 45

Slide 45 text

45 データモデリングの手法は色々あると聞きました。 私の会社ではどれを選ぶのがいいんでしょうか? Q 残念ながら、私もまだまだ全然答えが出せていない領域です。 でも、今日は頼れる皆さんがこの勉強会に参加してくれています。 是非議論して自社に最適な方法を見つけましょう。 仲間がいる゛よ

Slide 46

Slide 46 text

目次 ● データモデリングとは? ● データモデリング?どのレベルでやるの? ● データモデリングのステップ ● データモデリングの手法 ● 本日の議論 46

Slide 47

Slide 47 text

● データモデリングは単なるデータ整理やデータマート作成にとど まらない広い視野が必要なプロセス ● モデリング手法の選択の段階に持っていけたなら8割は成功 ● モデリング手法はまずはディメンショナルモデルから検討してい くと良さそう 47 小宮山の結論

Slide 48

Slide 48 text

1. 生データの把握やクレンジングなどはどうやっていますか 2. 利用者にデータをどう提供していますか 3. データカタログはどう提供していますか 4. どのモデリング手法を使っていますか a. Data Vaultを使うべきなのはどんな状況なの。。。 48 議論したいこと

Slide 49

Slide 49 text

Appendix

Slide 50

Slide 50 text

● 記事 ○ クラウド時代を支える論理データモデリング ○ 今こそ注目!DWHにおけるデータモデリングとその歴史 ● 書籍 ○ データマネジメント知識体系ガイド 第二版 ● スライドシェア ○ DataVault2.0をご紹介 参考文献 50