· FinDocGen · 3 min read
DABSプロジェクトのディレクトリ構成例
DABS (Data and Analytics for Business Solutions) プロジェクトの典型的なディレクトリ構成例を紹介します。共通ライブラリと実行アプリケーションを分離し、メンテナンス性と再利用性を高める方法を解説します。
🏁 はじめに
DABS (Data and Analytics for Business Solutions) プロジェクトを構築する際の、典型的なディレクトリ構成例を紹介します。この例では、共通ライブラリと実行アプリケーションを分離し、メンテナンス性と再利用性を高めることを目的としています。
📂 プロジェクト構成例
src/
├── findocgen/ # 【共通ライブラリ:Wheelとしてビルド】
│ ├── __init__.py
│ ├── data_sources/ # yfinance, EDINET等の外部APIクライアント
│ │ ├── __init__.py
│ │ └── yfinance_api.py
│ ├── utilities/ # 計算ロジック、日付処理、共通スキーマ
│ │ ├── __init__.py
│ │ └── spark_utils.py
│ └── models/ # 証券レポート解析用のデータモデル等
│
└── findocgen_etl/ # 【実行アプリケーション:ファイルとして同期】
├── jobs/ # 本番 Job (Pythonスクリプト または ノートブック)
│ └── stock_ingestion.py # ← ここから from findocgen.data_sources import ... する
├── transformations/ # DLT (Delta Live Tables) 定義ファイル
│ └── silver_to_gold.py
└── explorations/ # 試行錯誤・可視化用ノートブック
└── market_analysis.ipynb🔍 解説
findocgen/ディレクトリは、DABSプロジェクトの共通ライブラリを格納します。ここには、外部データソースとのインターフェース、ユーティリティ関数、データモデルなどが含まれます。この部分はWheelとしてビルドされ、他のプロジェクトでも再利用可能です。findocgen_etl/ディレクトリは、実際のETLジョブやデータ変換ロジックを含むアプリケーションコードを格納します。ここでは、共通ライブラリをインポートして使用します。jobs/フォルダには、本番環境で実行されるETLジョブのスクリプトやノートブックが含まれます。transformations/フォルダには、Delta Live Tables (DLT) の定義ファイルが含まれます。explorations/フォルダには、データの試行錯誤や可視化のためのノートブックが含まれます。
🚀 まとめ
このプロジェクト構成例は、DABSプロジェクトの開発と運用を効率化するための一つの方法です。共通ライブラリと実行アプリケーションを分離することで、コードの再利用性が向上し、メンテナンスが容易になります。ぜひ参考にして、自身のプロジェクトに適用してみてください。
Share: