データ分析基盤入門を読んだまとめ。
個人的に必要そうな部分についてのみ。
ETLについて。
総論
データを活かす文化の中で設計・開発・運用する価値があるもの
ETLとは
- データを抽出(Extract)、変換(Transform)、読込(Load)させるまでのステップのこと。
- Web上のログと呼べる情報を収集し、扱い易いように加工し、データとして保管するまでのステップ
一般的なデータ処理ワークフローとその対象例
- 収集
- アプリケーションログ
- ユーザー属性情報
- 広告インプレッション
- 3rdパーティークッキー
- 前処理
- ロボットのアクセス除外
- IPアドレスからの位置判定
- ユーザーエージェントの構造化
- マスタデータを用いたログへのユーザー属性付与
- 分類・集計・分析
- 分類や集計
- A/Bテスト
- ファネル分析
- セグメント分析
- 機械学習処理
- 保存
- データベースへの登録
- 分散処理システムへの転送
- ストレージへの圧縮保存(アーカイブ)
- 統計データの記録
- 活用
- レコメンドエンジンAPIの参照先データ
- リアルタイム取引
- BIアプリケーションを用いたデータの可視化
データ分析システムの可用性
継続して稼動させるために重要な考え方
- 最大1回しか送信しないこと
- 最低1回しか送信しないこと
- 正確に1回送信すること
真に3を実現するのは難しい
3.を満たすには1.2.を保障しなければならず、1.2.を満たそうとするとスループットは低下する
リトライ処理の想定
考慮すべきケース例
- データ保存先容量の不足
- データ保存先との通信失敗
- ハード要因による処理中断
可用性向上に必要なこと
- 分散メッセージキューシステムの導入
- 冪等性やリトライ処理を担保すること
- ただ管理対象は増える
LTEを設計する上で必要になる判断軸
- 保有・分析コスト
- 情報鮮度
- スケーラビリティ
- スキーマ作成のタイミング
- 中間データ保持の有無
書籍情報
鈴木 健太, 吉田 健太郎, 大谷 純, 道井 俊介, データ分析基盤構築入門
https://amzn.to/2B6f8G5
雑感
身近な部分からデータを可視化してみようと思った。