【要約】GCPで始めるデータエンジニアリング入門②:ビジネスルールでクレンジングしてBigQueryにロードする [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
データエンジニアは、プロファイリングで判明したデータの不備を、どうシステムへ反映すべきかという課題を抱える。不適切なデータが混入すると、分析結果の信頼性が損なわれるためだ。具体的には以下の問題がある。
- ・キャンセル取引や負の値による売上集計の歪み。
- ・CustomerIDの欠損によるデータ消失のリスク。
- ・BigQueryにおけるスキャンコストとクエリ速度の低下。
// Approach
筆者は、ビジネスルールを明確に定義した上で、Cloud Run Functionsを用いたサーバーレスなETL処理を採用した。実装のステップは以下の通りである。
- ・ビジネス判断に基づくクレンジングルールの言語化。
- ・Cloud Run Functionsによる「読込・加工・書込」の責務分離。
- ・BigQueryへの日付パーティショニングと計算済みカラムの導入。
// Result
本手法により、20日分のトランザクションデータを正確にBigQueryへロードすることに成功した。得られた成果は以下の通りである。
- ・キャンセル取引(728行)を適切に除外。
- ・日付パーティショニングにより、将来的なクエリコストを抑制。
- ・sales_amountの事前計算により、集計クエリの簡素化を実現。
Senior Engineer Insight
> 本構成は小規模バッチには最適だが、Pandasのメモリ消費特性に注意が必要だ。データ量が増大した際は、Cloud RunやDataflowへの移行を検討すべきである。また、クレンジングの「判断理由」をコードではなくドキュメントとして残す姿勢は、実務において極めて重要だ。これは、後続の分析者がデータの妥当性を検証する際の根拠となる。