DXを支える技術(ETLについて)
ETLとは
- データを抽出(Extract)、変換(Transform)、読込(Load)させるまでのステップのこと。
- Web上のログと呼べる情報を収集し、扱い易いように加工し、データとして保管する
データ分析システムの運用で最も重要で、正常に動作させ続ける必要がある3つのステップ
一般的なデータ処理ワークフローとその対象例
1. 収集
- アプリケーションログ
- ユーザー属性情報
- 広告インプレッション
- 3rdパーティークッキー
2. 前処理
- ロボットのアクセス除外
- IPアドレスからの位置判定
- ユーザーエージェントの構造化
- マスタデータを用いたログへのユーザー属性付与
3. 分類・集計・分析
- 分類や集計
- A/Bテスト
- ファネル分析
- セグメント分析
- 機械学習処理
4. 保存
- データベースへの登録
- 分散処理システムへの転送
- ストレージへの圧縮保存(アーカイブ)
- 統計データの記録
5. 活用
- レコメンドエンジンAPIの参照先データ
- リアルタイム取引
- BIアプリケーションを用いたデータの可視化
データ分析システムの可用性
継続して稼動させるために重要な考え方
1. 最大1回しか送信しないこと
2. 最低1回しか送信しないこと
3. 正確に1回送信すること
真に3を実現するのは難しい
3.を満たすには1.2.を保障しなければならず、1.2.を満たそうとするとスループットは低下する
リトライ処理の想定
考慮すべきケース例
- データ保存先容量の不足
- データ保存先との通信失敗
- ハード要因による処理中断
可用性向上に必要なこと
- 分散メッセージキューシステムの導入
- 冪等性やリトライ処理を担保すること
- ただ管理対象は増える
LTEを設計する上で必要になる判断軸
- 保有・分析コスト
- 情報鮮度
- スケーラビリティ
- スキーマ作成のタイミング
- 中間データ保持の有無
感想
DXって本当にまだ啓蒙が必要なレベルで、一番下のレイヤーは本当に地味で泥臭い業務なので、もっと顧客が理解と必要性に迫られないと実現していくのは大変な感じする