へんてこのブログ

日々気づいたことや、最近やっていることを書いています

データ基盤構築の為に読んだ本

データ分析基盤を作ることになったけど、データ分析基盤がなんなのか、どんなことをすればいいのかわからない。
こんなことありますよね。

データ分析基盤初心者の自分が、作る前に読んで、概念がわかるようになった本をまとめました。

はじめに

最近データ分析基盤チームの立ち上げを行いました。
現在は絶賛AWS Lake Formationを利用して開発中です。

また、作る要件として以下を設定しました。

  1. プロダクトの指標を出す
  2. 取りたい数字が変わった時に、手戻り少なく変更可能にする
  3. 少ない人数で運用可能にする
  4. データへのアクセス制御を可能にする
  5. プロダクトの指標以外にも応用可能にする

「あの数字を取りたいけど、今から数字を取り始めるとダッシュボードに出すまでに時間がかかる…」というの、プロダクト運用あるあるですよね。
そんな時のために、データ分析基盤は最初からある程度整えておくことが重要です。
途中で取りたい数字が変わっても、手戻り少なく素早く変更することができます。

また、小さい会社だとデータ分析基盤の構築に人手を避けないというのもあるあるです。
できるだけプロダクトの開発を優先したいので、手間なく運用できる形にしたいものです。

さらに、データは貯めるだけではダメで、適切に管理しないといけません。
あらゆることを想定して、データが漏れないように適切にアクセス制御できる形で運用したいです。

そしてデータ分析基盤が育った未来では、売上集計や顧客集計などのプロダクトの指標とは少し別な数字なども、データ分析基盤で取り扱いたくなります。

とはいえ、最初の目的である「プロダクトの指標を出す」というのを忘れてはいけません。
まずは最初に出したい「プロダクトの指標」を出しつつ、運用面で後々困らないように整えていく
そんな基本方針でデータ分析基盤を開発しています。

データ分析基盤初心者が読んだ本

前置きが長くなりました。
ここからが本題です。

上記のような基本方針のデータ分析基盤を作るにあたり、初心者だった自分が読んだ本を紹介します。
どれも最初の章はデータ分析基盤についての初歩的な解説から書いてくれています。
その部分を特に読み込み、データ分析基盤とはなんなのか?どんな用語があるのか?などをざっと洗いました。

データ分析基盤に登場する各ワードは、正確な定義が存在していないらしく(?)各著者それぞれ微妙に意味合いが異なります。
例えばデータレイクと一口に言っても、様々な意味がそこに込められる場合があります。

こう言った時に、複数の本から知識を入れることで、概念としてこういうことなのか、というのがわかりました。

エンジニアのためのデータ分析基盤入門

gihyo.jp

まずはじめに「エンジニアのためのデータ分析基盤入門」を読みました。
最初に選んだ理由としては、何かに依存した知識ではなく、一般的な知識として知りたかったからです。

この本では、データ分析基盤の歴史(シングルノードなど)から始まり、現在主流のクラウド型のデータ分析基盤についての解説が書かれています。
ざっくりとデータウェアハウスとデータレイクはデータを貯めておく場所で、それぞれの違いとしてはデータが分析のために整理されて置かれているかどうかくらいの違い、みたいなことがわかりました。

またデータレイクにデータを集めるのにも、コレクティングレイヤーでデータを集中的に一箇所に集める。
その後加工してデータウェアハウスに入れておく、などの大体の流れもわかりました。

ハンズオンで分かりやすく学べる Google Cloud実践活用術 データ分析・システム基盤編

2冊目に「ハンズオンで分かりやすく学べる Google Cloud実践活用術 データ分析・システム基盤編」を選びました。
選んだ理由としては、1冊目でざっくりと概要は把握したので、次はGCPのBigQueryを例にどのように実データを処理するのか、というのを知るためです。

この本でも1章ではデータ分析基盤の概要について解説しています。
しかしGCPのことが主体の本なので、具体的にこういった処理ではGCPのこのサービスを使う、というように書いてあります。
1章をざっと読むだけで、データ分析基盤をGCPで構築する際の概要が把握できるようになっています。

また2章からはハンズオン形式でBigQueryを実際に触ってみる内容になります。
実際に手は動かしませんでしたが、スクリーンショットなどで大体は想像できますので、追体験できた気になりました。

後半はGKEを使った構築が書かれていましたが、GKEを使うような規模でもないので読みませんでした。

Google Cloudで始める実践データエンジニアリング入門

gihyo.jp

3冊目として、「Google Cloudで始める実践データエンジニアリング入門」を選びました。
選んだ理由として、2冊目よりも詳しくBigQueryについて書かれていると感じたからです。

この本でも例に漏れず、1章ではデータ分析基盤の概要について書かれています。
ここまで3冊読んできて、大体概要については同じことが書かれているため、より理解が深まりました。

またデータ分析基盤に必要なデータウェアハウスとデータレイクの構築、それらを繋ぐETL処理とワークフロー管理、そしてセキュリティ関係やBIとの繋ぎこみの部分まで、GCPでデータ分析基盤を構築するのに必要な全てが書かれていました。

これでGCPにおけるデータ分析基盤の構築はわかった気になりました。

実践的データ基盤への処方箋

gihyo.jp

知識の総仕上げとして、1冊目以来の特定ツールに依存しないデータ分析基盤の作り方についての本として「実践的データ基盤への処方箋」を選びました。

この本ではデータ分析基盤に必要なデータの整備、作り方、それを支える組織について書かれていました。
特に組織について書かれているのはこの本だけだった気がします。

データ分析基盤は常にセキュリティとの戦いです。
データ分析基盤のセキュリティがガバガバだと、それだけで会社が終わる可能性があります。
それらのセキュリティポリシーの策定などについて書かれており、今からデータ分析基盤チームを立ち上げる自分にはとてもマッチしていました。

実際に、データ分析基盤のチームメンバーにはこちらの本を読むのをお勧めしました。

AWSではじめるデータレイク

booth.pm

最後の本として、「AWSではじめるデータレイク」 を選びました。
この本は珍しく、データ分析基盤構築をAWSで解説してくれている本です。

実は上記の4冊を読んでいる時点までは、データ分析基盤をGCPで構築する想定でいました。
GCPの選定理由としては、「データ分析基盤と言えばBigQueryでしょ」との謎の思想があったためです。

またなぜか、データ分析基盤の書籍にはGCPを利用したものが多数存在します。
そしてなぜか、AWSの書籍は少ない傾向にあります。

そういった理由から、当初はGCPでの構築を想定していました。
しかし、現在のインフラがAWSを利用していることや、AWSのソリューションアーキテクトに相談できる環境や運用面を考えて、現在ではAWSで構築中です。

その為に、最後としてAWSでのデータ分析基盤構築をざっくり学ぼうと、この本を読みました。
この本で、データレイクを構築するのに必要なAWSのサービスについて学べました。

正直AWSのサービスは触ってみないと権限周りなどハマるところが多数なので、現在は試行錯誤しながらAWS Lake Formationを使い、データレイクを構築中です。

さいごに

全部で5冊の本を読んで、初心者だったデータ分析基盤の概要についてなんとか把握することができました。
またGCPについての本が多かったですが、基礎となる考え方はGCPもAWSもほぼ同じため、あまり問題ありませんでした。

まだデータ分析基盤が完成したわけではありません。
これから運用面でハマるところなどあるかもしれませんが、なんとかチームで完成させたいと思います。

もしデータ分析基盤の構築に悩んでいる人がいたら、一緒に議論したいので、気軽にTwitterなどで話しかけてください。 twitter.com