@hihihiroroのLog

ダラダラと。本ブログは、個人の意見であり、所属会社とは関係がありません。

「実践的データ基盤への処方箋」を読んだ

輪読会に参加して発表をしてきた。ようやくそれ以降の内容も読み終えることができたのでブログにしてみた。
輪読会に参加した内容はこちらに書いている。

hihihiroro.hatenablog.com

本書の目次は以下。
1章ではデータ生成から活用までの流れが説明されている。データが出来上がるところから、データを貯める場所をどう整備するか、貯めたデータを使うための役割やサービスレベルについての説明がされていてる。
2章では生成されたデータをデータ基盤へ集めるための技術的な話がされている。複数のデータ収集元からデータを収集する方法が具体的に説明されておりとてもよくまとまっている。
3章はデータ基盤を活用するための組織や人材についての説明がされている。それ以外にも、セキュリティや権限管理、データサイクルなどデータ取り扱いについて注意するべきことが書かれている。

第1章 データ活用のためのデータ整備
 1-1 データの一連の流れを把握し、入り口から出口までを書き出す
 1-2 データの品質は生成元のデータソースで担保する
 1-3 データが生じる現場を把握して業務改善につなげる
 1-4 データソースの整備ではマスタ・共通ID・履歴の3つを担保する
 1-5 データレイク層の一箇所にデータのソースのコピーを集約する
 1-6 データウェアハウス層では分析用DBを使って共通指標を管理する
 1-7 共通指標は本当に必要とされるものを用意する
 1-8 特定用途に利用するデータマートはユースケースを想定してつくる
 1-9 ユースケースを優先的に検討しツールの整備を逆算する
 1-10 データの調査コストを減らすためにメタデータを活用する
 1-11 サービスレベルを設定・計測して改善サイクルにつなげる
 1-12 データ基盤の品質を支えるデータスチュワードの役割を設ける
第2章 データ基盤システムのつくり方
 2-1 一般的なデータ基盤の全体像と分散処理の必要性を理解する
 2-2 データソースごとに収集方法が違うこと、その難しさを理解する
 2-3 ファイルを収集する場合は最適なデータフォーマットを選択する
 2-4 APIのデータ収集では有効期限や回数制限に気をつける
 2-5 SQLを利用したデータベース収集ではデータベースへの負荷を意識する
 2-6 データベースの負荷を考慮したデータ収集では、エクスポートやダンプファイル活用を視野に入れる
 2-7 更新ログ経由のデータベース収集はデータベースの負荷を最小限にしてリアルタイムに収集できる
 2-8 各データベースの収集の特徴と置かれた状況を理解して使い分ける
 2-9 ログ収集はエージェントのキャパシティに注意
 2-10 端末データの収集は難易度が高いためできるだけ製品を利用し無理なら自作する
 2-11 ETL製品を選ぶポイントは利用するコネクタの機能性とデバッグのしやすさ
 2-12 データレイクでは収集したデータをなくさないようにする
 2-13 データウェアハウスには抽出や集計に特化した分析用DBを採用する
 2-14 分析用DBはクラウド上で使い勝手が良い製品を選ぶ
 2-15 列指向圧縮をりかいして分析用DBが苦手な処理をさせないように気をつける
 2-16 処理の量や開発人数が増えてきたらワークフローエンジンの導入を検討する
 2-17 ワークフローエンジンは「専用」か「相乗り」かをまず考える
第3章 データ基盤を支える組織
 3-1 アセスメントによって組織の現状を客観的に把握する
 3-1 組織の状況に合わせて組織構造を採用する
 3-1 データ組織の成功に必要な要因を理解する
 3-2 データ組織を構成する職種と採用戦略の基本を押さえる
 3-3 データ活用とセキュリティはトレードオフの関係にあることを理解する
 3-4 組織の利益となるデータのセキュリティポリシーとそのセキュリティ基準を決める
 3-5 適切な権限設定とリスク管理方法を定める
 3-6 データ利用や権限管理などの運用ルールをドキュメント化する
 3-7 担当、見直しサイクル、判断基準を決めてデータやツールの棚卸しを定期的に行う
 3-8 不正アクセスに備えてデータ保護や匿名加工技術を適用する
 3-9 監査では評価方法を理解して客観性を担保する

1章ではまずデータ生成からデータが利用されるユースケースまで順番に説明されている。データ基盤としてよく説明されるデータレイク層、データウェアハウス層、データマート層の3層構造についての説明がある。また、データ生成元のデータ品質によって活用にどれだけ影響があるかという話がされている。データをどこに貯めておくかというのは運用していると確かに気になることではある。うまく設計できてないとDWH の移行などの際にデータの移動を大量に行わなくなってしまうことなどもあるし、他のアプリケーションから使いにくいものになってしまう。
また最近よく見かけるようになったデータスチュワードの役割の説明、そしてデータスチュワードの必要性や課題などについて説明されている。データ基盤に限らず基盤は使ってもらわないことには価値が出せない。そのために活用の推進を行っていく役割はとても必要だろうなと思う。

2章ではファイル、API、データベース、ログや端末からの情報など複数のデータソースから収集する方法が説明されている。技術に関してはデータエンジニアをやっているとよく知っている内容になっているが体系的にまとまっているので復習するにはとても良かった。また、他の人と話す際にはこちらでまとまっている内容を見せることで簡単に説明できると思った。
後半のETLツール、分析DB、ワークフローエンジンなどを選ぶ基準についての話は読んでいて面白かった。クラウドをまずは選ぶやデバッグしやすいものを選ぶというのも納得感がある。そしてエンジニアが少ない組織についても書かれていた。その他にも分析DBのメリット・デメリットも説明されている。このあたりを知っていることによって考えれる幅は増えるだろうなと思っているので勉強になった。
また、連携方式にしろツールにしろパターンはいくつかあると思うが、絶対の正解はないのだろう。本書で紹介されている知識を身に着けておくことによって適材適所なものが選べるようになる可能性があると思う。その場にあわせて選べるように知識は身につけておきたいと思った。

最後の章ではデータ活用のための組織について書かれている。データ活用熟成度のアセスメントとして以下の5つのレベルが紹介されている。

  1. レベル1 : データ活用の初期段階で、属人的にデータが活用されている
  2. レベル2 : データ活用プロセスに最低限の統制がとられ、再現可能である
  3. レベル3 : データ活用における基準を設け、それが守られている
  4. レベル4 : プロセスを数値化し、モニタリング・管理できている
  5. レベル5 : プロセス改善のゴールを数値化し、それを向けた数値化に取り組んでいる

ここに書かれているようにレベルをどんどん上げれるようにしていきたい。まずは今の自分達がどこのレベルにいるかを知るように使いたいと思う。今の状態がわからないと次に目指すものもわからないので、現状の組織がどこまでできているかをまずは調べてみようと思う。

また、データ組織に必要な要因として以下の10個が紹介されている。

  1. 幹部からの支援
  2. 明確なビジョン
  3. 前向きに取り組むべきチェンジマネジメント
  4. リーダーシップ統制
  5. コミュニケーション
  6. ステークホルダーの関与
  7. オリエンテーションとトレーニン
  8. 導入状況の評価
  9. 基本理念の遵守
  10. 革命ではなく進化

これらについて説明がされているので必要なものがなければ今からでも取り入れなければなと思った。必要なものはたくさんあるのでまずは1個ずつ手に入れていくことを考えようと思った。

人材の確保や役割の説明、データ自体やデータ基盤のライフサイクルについては自分でも考えなければいけないなと思っている。最近データ人材が集まっているSlack に入っているが参加人数がどんどん増えている。あれだけ人がいるのならばどうにかうまく採用を行いたい。
それに、使われていないデータがいつまでも残っていると間違った分析を行うことになったり、無駄なロジックをたくさんのものに適用するなど運用も増え続けることになってしまう。使われなくなったデータも基盤もきれいにしていきたいと思う。

まとめ

  • ふむふむなるほどねと納得する内容ばかりだった
  • データ基盤に関する知識が体系的にまとまっていたので復習になった
  • 用語、アーキテクチャ、考え方をチームメンバで本書をもとに揃えてみたいと思った