J-Quants API V2(Premium)で取得可能なデータを、バックフィル + 増分で収集して ローカルデータレイクとして保存するプロジェクトです。
- Bronze: APIレスポンス生データ(JSON Lines + gzip)
- Bulk: Bulk APIファイル(Key名そのまま)
- Resume-safe: 中断後の再実行で既存データをスキップ
CONTEXT.md: 実装・運用・参照順序の統合コンテキストDATA_LAKE_GUIDE.md: 保存形式、命名規則、データセット対応PLAN.md: 取得計画、定期実行周期、運用チェックdocs/README.md: 詳細設計資料の索引
python -m venv .venv
source .venv/bin/activate
.venv/bin/pip install -r requirements.txt
cp .env.example .env.env で最低限 JQUANTS_API_KEY を設定してください。
- 全体実行(推奨)
run/run_all.sh <FROM_DATE> <TO_DATE> <INCREMENTAL_DATE>例:
run/run_all.sh 2006-02-02 2026-02-14 2026-02-14- バックフィルのみ
.venv/bin/python -m src.main backfill --from 2006-02-02 --to 2026-02-14- 単日増分のみ
.venv/bin/python -m src.main incremental --date 2026-02-14- Bulk同期のみ
.venv/bin/python -m src.main bulk-sync- 完了チェック
sqlite3 run/checkpoints.sqlite "select status,count(*) from checkpoints group by status;"
sqlite3 run/checkpoints.sqlite "select dataset,scope from checkpoints where status!='done';"- 毎営業日 12:10: 当日分の取得(
incremental) - 毎営業日 20:00-23:00: 本処理(
incremental) - 毎営業日 夜:
bulk-sync - 毎営業日 夜: checkpoint監視
詳細は PLAN.md の 2.1 推奨スケジュール(JST) を参照。
DATA_LAKE_ROOT/
bronze/
bulk_raw/
metadata/
このリポジトリを再クローンした後でも、Driveに退避したアーカイブを展開すれば データと進捗(checkpoint)を引き継いで再開できます。
- リポジトリをクローン
git clone <YOUR_REPO_URL>
cd J-Quants- Driveからアーカイブを配置して展開(リポジトリ直下で実行)
tar -xzf /path/to/jquants_backup_YYYYMMDD_HHMMSS.tar.gz- Python環境を作成
python -m venv .venv
source .venv/bin/activate
.venv/bin/pip install -r requirements.txt.envを作成して API キーを設定
cp .env.example .envJQUANTS_API_KEY を設定してください。
- 進捗引き継ぎの確認
sqlite3 run/checkpoints.sqlite "select status,count(*) from checkpoints group by status;"
sqlite3 run/checkpoints.sqlite "select dataset,scope from checkpoints where status!='done';"- そのまま再開
.venv/bin/python -m src.main incremental --date $(date +%F)
.venv/bin/python -m src.main bulk-sync補足:
- アーカイブには
data_lake/とrun/checkpoints.sqliteが含まれていれば十分です。 - 同じ期間の
backfillを再実行しても、既存データは自動スキップされます。