最低限これだけは整備しておいた方がいいこと / maemuki-data-seibinin03
by
ShinU
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
最低限これだけは整備しておいた方がいいこと しんゆう@データ分析とインテリジェンス 2020/05/14 第3回 データアーキテクト(データ整備人)を”前向きに”考える会 #前向きデータ整備人
Slide 2
Slide 2 text
• 本日の資料は https://speakerdeck.com/shinu/maemuki-data-seibinin03 に公開済み。ブログ・Twitterからもリンクあり • 〇 SNSで話題にすること #前向きデータ整備人 • × 録画・録音 • アーカイブの配信はありません 資料・SNS・写真撮影などについて
Slide 3
Slide 3 text
• 特にプロダクトの初期には整備のためだけに人を置くどこ ろか時間をかけるメリットはあまりない • だからといって余裕が出たらやればいいと整備を全て後回 しにすると、気づいたら時すでに遅しで重要な指標ですら まともに共有することが出来なくなってしまう • また後になればなるほど整備を始めようにも膨大なリソー スを取られてしまい、分析に時間をさけなくなる • そこでとにかくこれだけは整備しておけ、と考える3つの 項目についてまとめた 前置き
Slide 4
Slide 4 text
• 自己紹介 • 最低限これだけは整備しておいた方がいいこと 1.重要な指標を簡単に取れるようにすること 2.個人情報の隔離 3.重要事項の記録 • まとめ 目次
Slide 5
Slide 5 text
自己紹介
Slide 6
Slide 6 text
• しんゆう( Twitter : @data_analyst_ ) • ブログ「データ分析とインテリジェンス」を書いてる人 https://analytics-and-intelligence.net/ • フリーランスでデータに関する仕事をあれこれ • 仕事でやりたいこと:意思決定のための情報分析をする人 • 仕事でやってること:データをうまく使えるようにする人 自己紹介
Slide 7
Slide 7 text
最低限これだけは整備しておいた方がいいこと
Slide 8
Slide 8 text
• 以下の3点についてはプロダクトの初期であろうとできる ように取り組んでおくことが望ましい 1. 重要な指標を簡単に取れるようにすること 2. 個人情報の隔離 3. 重要事項の記録 その理由について、各項目ごとに説明する 最低限これだけは整備しておいた方がいいこと
Slide 9
Slide 9 text
最低限これだけは整備しておいた方がいいこと 1.重要な指標を簡単に取れるようにすること
Slide 10
Slide 10 text
早い段階でデータを整備しておかないと起きる事 • データを扱うのが1人あるいはごく少数である初期の場合 は問題にはならない。間違っていても気づかない データ レイク 集計できるAさん 売上110万円
Slide 11
Slide 11 text
早い段階でデータを整備しておかないと起きる事 データ レイク 別のエンジニアにお 願いしたCさん 100万円 集計できるAさん 定義を変更したので 105万円 Aさんに以前のクエ リをもらったBさん 110万円 • データを触る人数が増えるとすぐに概ね同じだが集計方法 の微妙な違いが出て合わなくなってくる
Slide 12
Slide 12 text
早い段階でデータを整備しておかないと起きる事 データ レイク POSの売上を集計し てるから税抜きだ 100万円 キャンセル分を引く ようにしたから 105万円 消費税も加味したか ったから 110万円 • 何かの拍子でずれに気づくと答えあわせ大会が始まる • ずれの原因がわかって一安心するがその時はそれで終わる
Slide 13
Slide 13 text
早い段階でデータを整備しておかないと起きる事 データ レイク 違うことをみんなわ かっていればいいじ ゃん クライアントと共有 しているから先方に 話を先に通さないと うちのチームはずっ と税込みで見てるか ら困る • 揃えようにもそれぞれがそれぞれの理由で使い慣れており 簡単ではない。全社レベルで方向合わせは大変
Slide 14
Slide 14 text
早い段階でデータを整備しておかないと起きる事 データ レイク ロジックに若干の変 更が必要になったの を聞いて「了解!」 → やらない ロジックに若干の変 更が必要になったけ れどできない → エンジニア稼働 数字がすごくずれて 大騒ぎ → 長いSQLの中で 1つだけ変更し忘れ • その他にもいろいろな問題が頻発
Slide 15
Slide 15 text
早い段階でデータを整備しておかないと起きる事 データ レイク ずっと前からいるF さん 「忘れた」 異動してきたEさん 「前の部署で は・・」 新しく入ってきたD さん 「この数値はどうい う意味ですか」 • といったことが、あらゆるレベルのあらゆるデータで起き、 定期的に繰り返される
Slide 16
Slide 16 text
• なので整備はしておくべきなのは誰も反対しないはず • しかし、特に初期の段階では整備にリソースを振り分ける 余裕も意味もあまりない • 使う人が少ないのに整備に時間をかけてもしょうがない • いくら整備しても完璧にはできないので、トラブルは必ず 起きる • だからといって放置すると、事態は悪化するばかり どうしたらいいのか
Slide 17
Slide 17 text
• そこで、重要な指標を簡単に取れるようにすることだけは やっておくことを強くお勧めする • ではその重要な指標とは何か どうしたらいいのか
Slide 18
Slide 18 text
• そこで、重要な指標を簡単に取れるようにすることだけは やっておくことを強くお勧めする • ではその重要な指標とは何か • 「全社レベルで共有しておくべきKPI」 どうしたらいいのか
Slide 19
Slide 19 text
• そこで、重要な指標を簡単に取れるようにすることだけは やっておくことを強くお勧めする • ではその重要な指標とは何か • 「全社レベルで共有しておくべきKPI」 • みんなの目線を合わせるためであり、売上かもしれないし、 会員数かもしれない • 部署単位とか言い出すときりがないのでまずは全社レベル を必須とし、本当に必要なら増やせばいい どうしたらいいのか
Slide 20
Slide 20 text
どのように整備するか データ レイク • 整備したデータマートから重要指標がごく簡単に、定義が ぶれないように取れるようにしておく データ マート 複雑なクエリは 全部ここで吸収
Slide 21
Slide 21 text
どのように整備するか データ レイク • 整備したデータマートから重要指標がごく簡単に、定義が ぶれないように取れるようにしておく データ マート 売上100万円 売上100万円 売上100万円 日付などごく簡 単な指定のみ
Slide 22
Slide 22 text
どのように整備するか データ レイク • 各部署でのカスタマイズは当然必要になるが、基礎の数字 を共有しておくことでぶれを抑えられる データ マート 売上100万円 うちはそれでOK 売上100万円 +うちはキャンセル は無視したいので 105万円 売上100万円 +うちは税込みで見 たいから110万円
Slide 23
Slide 23 text
最低限これだけは整備しておいた方がいいこと 2.個人情報の隔離
Slide 24
Slide 24 text
• 個人情報の隔離はなぜ必要かといえば ✓ 漏れるリスク ✓ 目の前にあったらつい悪さをしないとも限らない ✓ 何かあった時に余計な疑いをかけたりかけられたり • そのままにしておくことにメリットはない 個人情報の隔離はなぜ必要か
Slide 25
Slide 25 text
どうやって個人情報を隔離するか データ レイク • 分析用のデータマートを作る際に消すなりフラグなどに変 換してしまうのが手っ取り早い データ マート 数値が見られればOK 営業 ここで個人情報 のデータを消す か変換する
Slide 26
Slide 26 text
どうやって個人情報を隔離するか データ レイク • 同時に個人情報が含まれている場所へのアクセスも必要な 人以外には制限をかける。とりあえずこれで隔離できる データ マート 数値が見られればOK 営業
Slide 27
Slide 27 text
どうやって個人情報を隔離するか データ レイク • しかし、問い合わせからの調査などで個人情報が必要にな った場合に整備されていないデータを使うのは大変 データ マート 問い合わせがあって 調査する役目の アナリスト まったく整備さ れていない状態 のデータを扱う
Slide 28
Slide 28 text
どうやって個人情報を隔離するか データ レイク • 例:人を特定してその人の購買の詳細を見たい → 購買が整備しないとまともに使えない状態だと大変 データ マート 問い合わせがあって 調査する役目の アナリスト まったく整備さ れていない状態 のデータを扱う
Slide 29
Slide 29 text
どうやって個人情報を隔離するか データ レイク • 解決策:個人情報を含んだ形で整備をしておく データ マート 不正かどうかを調べ る役割の アナリスト データ マート 個人情報を消さ ずに整備
Slide 30
Slide 30 text
どうやって個人情報を隔離するか データ レイク • 個人情報以外は同じデータマートをもう1つ作る データ マート 不正かどうかを調べ る役割の アナリスト データ マート ここで個人情報 を削除
Slide 31
Slide 31 text
どうやって個人情報を隔離するか データ レイク • 個人情報が含まれている部分をアクセス制限して使わない 人には触らせない データ マート 不正かどうかを調べ る役割の アナリスト データ マート 通常は使わない
Slide 32
Slide 32 text
どうやって個人情報を隔離するか データ レイク • 必要になってもデータの体系などが同じように扱えるので ゼロから整備のロジックを入れなくて済む データ マート 不正かどうかを調べ る役割の アナリスト データ マート もし必要な場合 でも通常データ と同じに扱える
Slide 33
Slide 33 text
• 保管のためのコストとかバッチ処理の時間といった問題も あるので必要なことだけやるか、手っ取り早く削除だけす るなど総合的な判断になる • なお削除するとはカラムを落とすだけでなく ✓ 暗号化・マスク ✓ フラグやコード化(電話番号登録あり/なし) ✓ 一部情報のみ(住所→都道府県) • なども含む 併せて考える必要があること
Slide 34
Slide 34 text
最低限これだけは整備しておいた方がいいこと 3.重要事項の記録
Slide 35
Slide 35 text
記録が無いと・・・ • 初期のころは少人数の作った当人達がデータも扱うので知 っている、すぐ聞けるためやはり困らない 初期からいるエンジニア
Slide 36
Slide 36 text
記録が無いと・・・ このデータの仕様 は? • プロダクトや人が増えたり分析や整備など、エンジニアで はなくデータを使う人は問い合わせが必要 後から入った 整備・分析担当
Slide 37
Slide 37 text
記録が無いと・・・ 調べるのでしばらく 待って → 数日待ち • 全てを正確にぱっと答えることは難しいし、よく忘れてる ので調べなおしで返答に時間がかかる
Slide 38
Slide 38 text
記録が無いと・・・ • 詳しかった人がすでにいないので1から調べなおしになっ て大変。正確にわからないこともしばしば このデータの仕様 は? わかる人がいないの でゼロからしらべな いと・・・
Slide 39
Slide 39 text
記録が無いと・・・ • 記録を残そうとすると知っている人に聞く→聞いた人が書 くの流れで後から入った人が全部やるはめになる 記録を残そう! 〇〇だからそっちで 書いておいて
Slide 40
Slide 40 text
記録が無いと・・・ • はっきりいって面倒だし、無くても聞けばいいし、いまま で誰もやってないからいいやとなって、振出しに戻る 面倒だし他に使う人 いないし、もういい か・・・
Slide 41
Slide 41 text
記録が無いと・・・ • はっきりいって面倒だし、無くても聞けばいいし、いまま で誰もやってないからいいやとなって、振出しに戻る このデータの仕様 は? 次に入った人が言うこと
Slide 42
Slide 42 text
• 人の記憶に頼るのはやめて、記録するべき • 特に記録しておきたい項目 1. データの仕様 2. データの変更記録 3. 特殊な抽出ロジック 記録しよう
Slide 43
Slide 43 text
• いつどこで誰が何をしたら/おきたらどういった値が入っ てくるかについての正確な仕様 • 作った時に全て記録し、かつエラーチェックの仕組みまで 作っておくのが理想ではあるが実現性は低い • 仕様が固まるまでの試行錯誤期間においては頻繁に変わっ たり無くなるのは当然なので程度の問題は残るが、数か月 前のデータがきちんと取れない、はやはりまずい 1.データの仕様
Slide 44
Slide 44 text
• 途中でデータの変更がされた場合、いつどの時点で何がど う変わったかも併せて記録する • よくあるのが区分値の追加、廃止、統合 • データが存在していない場合、区分が追加でも廃止でも 「本当にその区分のデータが存在しない状況なのか、本来 はあるべきなのにないのか」の区別がつかない 2.データの変更記録
Slide 45
Slide 45 text
• 抽出するのに複雑なロジックはそれ単体で記録しておく • 顧客の状態を見るために複数のテーブルをつなげて複雑に 場合分けをするとか、クライアントごとに微妙に条件が異 なるといったケースは特に必要 • 通常はデータマートを作る際に全て吸収しておくにしても、 修正やロジックの確認が必要になった場合にクエリだけか ら読み取るのは大変。非常時であればなおさら早くミスな くが求められる 3.特殊な抽出ロジック
Slide 46
Slide 46 text
• 必ず忘れるのでとにかく人の記憶に頼ることはやめる • メモレベルでもとにかくどこかに記録を残しておく • テキストに殴り書きでもあれば全然違う • 初期段階から記録することを始めて、文化として定着させ ておかないと途中からだと厳しい 記録することを文化とする
Slide 47
Slide 47 text
全てに共通すること
Slide 48
Slide 48 text
• 共通して言えることは ✓ 遅かれ早かれやることになるので、整備担当がとかでは なく最初にやっておくべきことに含むのが良い ✓ 一方、整備に時間をかけすぎてサービスの開発が進まな いのは本末転倒 ✓ 全て完璧にしていたらきりがないので本当に主要なこと に絞る 共通すること
Slide 49
Slide 49 text
まとめ
Slide 50
Slide 50 text
• まったく整備されないままで時間が経ってから整備を始め ようとすると簡単なことでも膨大な時間をかけないとでき なくなることがある • データ整備の担当を後から入れるにもパフォーマンスを出 すには必要なことは先にやっておいてもらうのがよいので まずはこれだけはやっておいた方がいいことをまとめた • まだやっていないことがあったらすぐに取り掛かってみま せんか まとめ
Slide 51
Slide 51 text
宣伝
Slide 52
Slide 52 text
• データ整備関連のニュースや記事がまとまっていないので、 あったらいいなと思ってたけど誰もやってくれないので自 分で始めた • 適当に見つけたのが溜まったら都度発行する形式 • ブログか「データ整備人ニュース(仮)」で検索してくだ さい。そのうちまとめページを作る予定 データ整備人ニュース(仮)
Slide 53
Slide 53 text
• データ分析やその周辺にまつわる色々なイベントを開催中 • Compassで「データ分析とインテリジェンス」というグル ープがあるので興味があれば登録しておくと新しいイベン トの登録や募集開始時に連絡がいきます https://analytics-and-intelligence.connpass.com/ Compassグループ
Slide 54
Slide 54 text
ご清聴ありがとうございました しんゆう@データ分析とインテリジェンス https://analytics-and-intelligence.net/ Twitter:@data_analyst_