【要約】自作アプリからBigQuery・Power BIまで、個人開発で自分用のミニ家計簿ETLを設計した [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
筆者は、BIレポートの品質が、BIツール単体ではなく、入力からDWHに至るETL全体の設計に依存することに気づいた。しかし、ETL全体の設計経験が不足しており、以下の課題に直面していた。
- ・ETLパイプライン全体の設計手法に関する知見の不足。
- ・入力層から分析層までの一貫したデータフローの構築方法。
- ・小規模なデータであっても、将来的な拡張性を考慮したデータ構造の設計。
// Approach
筆者は、日常的な「家計簿」を題材に、各層の責務を明確に分離した小規模なETLパイプラインを構築することで、設計の理解を深めるアプローチをとった。
- ・入力層:Kotlin/Jetpack Composeで作成したAndroidアプリによるデータ入力とCSV出力。
- ・ステージング層:CSVファイルをGoogle Driveに同期し、後段へのインターフェースとして活用。
- ・ETL層:Google Colab上のPythonスクリプトを用い、外部テーブル経由でBigQueryへデータを転送。
- ・DWH層:BigQueryにデータを格納。スタースキーマに基づき、ファクトとディメンションを分離。
- ・BI層:Power BI Desktopを用い、インポートモードで集計・可視化を実施。
// Result
筆者は、入力から可視化までの一連のデータフローを完結させ、ETL全体の設計思想を実践的に習得した。
- ・責務の分離により、アプリ側やBI側の変更が他層へ与える影響を最小化した。
- ・スタースキーマの採用により、将来的なデータ拡張や分析軸の追加に対応可能な構造を実現した。
- ・現在は、Google Cloud Functionsを用いた完全自動化や、分析モデルのさらなる改善を展望している。
Senior Engineer Insight
> 個人開発におけるプロトタイピングとして極めて合理的である。特に、各層の責務を分離し、スタースキーマを意識した設計は、スケーラビリティを担保する優れた判断だ。実戦投入においては、Colabによる手動実行をCloud Functions等のサーバーレス環境へ移行し、エラーハンドリングや監視、パーティション設計を組み込むことが必須となる。コストを抑えつつ、設計の勘所を掴むための優れた学習モデルといえる。