The Informed Companyを読んでみた
これは何か
「The Informed Company」という本を読んでみたので、スタートアップのデータ現場にいるものとして感想などを記載する。
この本は、BIプラットフォームであるChartioのCEO(現在はAtlassianに買収)などが著者となり、企業が巨大なデータセットを活用できるモダンなデータスタックのアーキテクチャやベストプラクティスについて書かれたものである。
なぜ読んだか
スタートアップで0からデータ基盤のアーキテクチャを設計するにあたり、参考になりそうだと思った。
内容(一部)
企業のデータスタックの4ステップ
データ基盤には以下の4ステップが存在する。
- Source
- Lake
- Warehouse
- Mart
ここで重要なのは、ステップを飛び越えずに順番に拡大していくことである。 例えば、Sourceステージで必要なインサイトが得られるのであれば、わざわざWarehouseを作る必要はない。
感想
データレイク・データウェアハウス・データマートなどの三層構造をよく耳にするようになって久しいが、必ずこの3レイヤーを並立させるものだと思っていたため、ここはかなり新鮮だった。
直近マートの整備などやろうかなと思っていたが、いやそれ以前にLakeの整備からが先だよなと思い直した。
Source
全ての始まり。単一のデータソースから直接データを引っ張ってきて、ExcelやシンプルなSQLで集計を実施するような状態。
ベストプラクティスとして以下のような内容が語られていた。
- データの定義やロジックをドキュメントで管理する
- SQLスニペットを管理する
- BIツールを使う
感想
うちは今はこのフェーズ。
1に関して言うと、NotionやConfluenceなどで、簡易なテーブル定義書などを作成している会社は多いと思う。初期のサービスだとここらへんの定義が気づかないうちに古くなったりするので気を付けたい。また、新規に入るメンバーが車輪の再発明のように自前のデータ定義ドキュメントを作りがちなので、オンボーディング用の資料などに置いておくのも良さそう。
また、2では、BigQueryのプロジェクトに保存などで、よく使うSQLなどを共有してもいいかもしれない。
3は、スタートアップだと後手になるかもしれないが、TableauやLookerなどを直接データソースにつないで、ビジネスユーザーにGUIで分析させるのも良さそうらしい。小規模のサービスであれば、データ量としてもたかが知れているので、よくあるパフォーマンス問題で困ることはないはずで、そうなると直でデータソースにつなぎ、LookMLでセマンティックレイヤーを管理するだけで、だいぶデータガバナンス効きそうな感じはある。
Lake
各データソースから分析基盤にデータをコピーしているような状態。Sourceステージでパフォーマンス問題が出てきたり、横断的にデータ分析をしたいニーズが出てきた時に、このステージに移行する。
基本的にELT>ETL。しかし、①必要なカラムのみをロードする・②プライバシー情報は基盤に入れないか、ハッシュ化するといった処理は必要となるらしい。
感想
今はここを目指して色々準備中。
なぜELTがどのように優れているかについては非常に分かりやすく解説されていた。よくある話として、データレイクにガンガンデータ突っ込んでおいて、データサイエンティストやMLエンジニアがオーバーヘッドなくモデルの試行錯誤できるようにしようぜがあると思う。個人的な経験ベースだと、いつか使うかもで入れた大量のカラムを管理するのはドキュメント作成一つとってもかなり大変なので、筆者の意見に同意。また、スタートアップではMLとか言っている場合でないというのもある。
全体を通して
Warehouse, Martもかなり参考になる示唆深いものだった。正直データマート開発なんて、うちのフェーズから行けばまだまだ先の話だなと反省した。また、日本の書籍やサイトでデータ基盤周りの情報はけっこう当たったつもりだが、モダンなデータスタックの概観を、ベストプラクティスも含めてここまで丁寧に記載している本は見つけられなかったので、スタートアップに限らずデータ基盤に携わっている方にお勧めできる。今後この本をベースにして自社のデータ基盤アーキテクチャを設計する予定なので、その記事も書きたい。
Discussion