はじめに¶
このページは、JRVLTSQL を初めて使うときの実行順序だけをまとめた手順書です。 細かい spec やテーブル定義は、あとで 対応データ種別一覧 を見てください。
0. 準備¶
JRVLTSQL は Windows + JRA-VAN DataLab / JV-Link を前提にした JRA 用ツールです。 地方競馬は対象外です。
Python は 3.10 以上で動作します。JV-Link COM を直接使う環境では 32-bit Python を推奨します。
インストール:
irm https://raw.githubusercontent.com/miyamamoto/jrvltsql/master/install.ps1 | iex
手動で入れる場合:
git clone https://github.com/miyamamoto/jrvltsql.git
cd jrvltsql
pip install -e .
1. まず決めること¶
決めることは2つだけです。
| 質問 | 迷ったときの選択 |
|---|---|
| 保存先は SQLite か PostgreSQL か | まずは SQLite。共有・本番運用なら PostgreSQL。 |
| 必要なオッズはどれか | 通常データだけなら quickstart.bat。投資判断時点のオッズ評価をするなら時系列オッズも取得。 |
2. ルートA: SQLiteでまず動かす¶
一番簡単な導線です。
quickstart.bat
実行後にできること:
data\keiba.dbが作られます。- 出馬表、成績、払戻、確定オッズなどの通常データが
NL_*に入ります。 - 完了時に、SQLite 用の日次同期タスクを登録するか確認されます。
このコマンドだけではできないこと:
- PostgreSQL への保存
- 三連複・三連単を含む締切前オッズの長期蓄積
3. ルートB: SQLiteに公式時系列オッズも入れる¶
単複枠・馬連の過去時系列オッズも保存したい場合です。
対話形式では、quickstart.bat の途中で時系列オッズ取得を選びます。
非対話で実行する場合:
quickstart.bat --yes --include-timeseries
この場合の既定範囲:
| データ | 既定範囲 |
|---|---|
| 通常データ | 19860101 から今日まで |
公式時系列オッズ TS_O1 / TS_O2 |
今日から過去12か月 |
範囲を明示したい場合は、SQLite / PostgreSQL 共通の quickstart_timeseries.bat を使ってください。
quickstart_timeseries.bat --db sqlite --from 20250426 --to 20260412
quickstart_timeseries.bat の最後では、指定した DB 種別の日次同期タスクを登録するか確認されます。
--from / --to を省略した場合は、通常データも公式時系列オッズも今日から過去365日分を対象にします。
実行後に入るデータ:
| データ | 保存先 |
|---|---|
| 通常データ | NL_* |
| 単複枠の公式時系列オッズ | TS_O1 |
| 馬連の公式時系列オッズ | TS_O2 |
注意:
--yesを付けると確認プロンプトを出しません。- そのため、日次同期タスク登録もスキップします。必要なら後で
install_tasks.ps1を実行してください。 TS_O1/TS_O2は JRA-VAN 側で約1年保持される公式時系列です。
4. ルートC: PostgreSQLで運用する¶
共有DBや本番運用では PostgreSQL を使います。
先に接続情報を設定します。
set POSTGRES_HOST=127.0.0.1
set POSTGRES_PORT=5432
set POSTGRES_DATABASE=keiba_dev
set POSTGRES_USER=ingestion_writer
set POSTGRES_PASSWORD=<password>
次に PostgreSQL 用 quickstart を実行します。SQLite と同じ形で範囲指定できます。
quickstart_timeseries.bat --db postgresql --from 20250426 --to 20260412
実行後にできること:
- PostgreSQL に指定範囲の通常データが入ります。
- 公式時系列オッズ
TS_O1/TS_O2が入ります。 - 完了時に、PostgreSQL 用の日次同期タスクを登録するか確認されます。
注意:
quickstart_timeseries.bat --db sqlite|postgresql --from <FROM> --to <TO>が、範囲指定つき時系列 quickstart の推奨導線です。--from/--toを省略した場合は、通常データも公式時系列オッズも今日から過去365日分を対象にします。- PostgreSQL 専用バッチ
quickstart_postgres_timeseries.bat <FROM> <TO>もありますが、新規利用では共通コマンドを使ってください。 - タスクから PostgreSQL に接続する場合は、
POSTGRES_*を Windows ユーザー環境変数として保存する必要があります。
5. ルートD: 三連複・三連単を含む締切前オッズを残す¶
全賭式の投資判断時点オッズを評価したい場合は、開催週に速報オッズを蓄積します。
PostgreSQL に保存する場合:
jltsql realtime odds-sokuho-timeseries --from 20260418 --to 20260419 --db postgresql
SQLite に保存する場合:
jltsql realtime odds-sokuho-timeseries --from 20260418 --to 20260419 --db sqlite --db-path data/keiba.db
入るデータ:
| 賭式 | 保存先 |
|---|---|
| 単勝・複勝・枠連 | TS_O1 |
| 馬連 | TS_O2 |
| ワイド | TS_O3 |
| 馬単 | TS_O4 |
| 三連複 | TS_O5 |
| 三連単 | TS_O6 |
注意:
0B30系の速報オッズは JRA-VAN 側の保持が約1週間です。- 1か月後にまとめて取りに行く運用はできません。
- 長期評価したい場合は、開催週から継続蓄積してください。
jltsql realtime odds-timeseries/odds-sokuho-timeseriesは、既存 DB のレース情報を使って取得キーを作ります。先に通常データを入れてください。
日次同期¶
通常データの更新だけを毎日行う場合は daily_sync.bat を使います。
直接実行時の既定は PostgreSQL です。SQLite では必ず --db sqlite を指定してください。
daily_sync.bat --db sqlite --days-back 7 --days-forward 3
daily_sync.bat --db postgresql --days-back 7 --days-forward 3
Windows タスクスケジューラへ手動登録する場合:
powershell -NoProfile -ExecutionPolicy Bypass -File install_tasks.ps1 -DbType sqlite -Time 06:30
powershell -NoProfile -ExecutionPolicy Bypass -File install_tasks.ps1 -DbType postgresql -Time 06:30
daily_sync.bat が更新するのは通常データです。時系列オッズは取得しません。
よくある混同¶
| 混同しやすい点 | 正しい理解 |
|---|---|
quickstart.bat は PostgreSQL も設定するのか |
しません。SQLite 既定の通常 quickstart です。 |
| SQLite と PostgreSQL で時系列 quickstart のコマンド形は違うのか | 推奨導線は同じです。quickstart_timeseries.bat --db sqlite|postgresql --from <FROM> --to <TO> を使います。 |
quickstart_postgres_timeseries.bat は SQLite にも使うのか |
使いません。PostgreSQL 専用 batch です。 |
daily_sync.bat は SQLite / PostgreSQL の両方で使えるのか |
使えます。--db sqlite または --db postgresql を指定します。 |
daily_sync.bat で時系列オッズも入るのか |
入りません。通常データ更新だけです。 |
確定オッズ NL_O* は投資判断時点のオッズか |
違います。レース後の確定オッズです。 |
| 三連複・三連単の過去時系列を1年分まとめて取れるか | 取れません。開催週の継続蓄積が必要です。 |
動作確認¶
DB の状態確認:
jltsql status
保存済み時系列オッズを CSV で見る場合:
python tools/export_timeseries_csv.py --help
CLI の詳細:
jltsql --help
jltsql realtime --help