· 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プロジェクトの開発と運用を効率化するための一つの方法です。共通ライブラリと実行アプリケーションを分離することで、コードの再利用性が向上し、メンテナンスが容易になります。ぜひ参考にして、自身のプロジェクトに適用してみてください。

Back to Blog