Tiingo API
Ticker universe、EOD、Daily Metrics。
System Structure & Flow
Tiingo APIから正規化されたDataFrame、独立した3つの保存先、本番オーケストレーション、releaseとproduction deployまでを1枚にまとめた構造図です。
Ticker universe、EOD、Daily Metrics。
検証、上限付きretry、安全なエラー報告。
collect_ticker_universe、collect_historical、collect_fundamentals。
保存先に依存しない正規化データ。
↓ 用途に応じて独立に選択(複数選択可)
本番参照の正本かつ復旧基準。自然キーによる冪等upsert。
account termsで許可される場合の永続的な分析replica/高速OLAP cache。正本ではない。
account termsで許可される場合の検証済みatomic local artifact。off-host公開後は全履歴archive/交換形式。
Data terms: sinkは技術的な選択肢であり、保存許可を与えるものではありません。Starter/Trial Planはcanonical DataFrameを一時的なmemory内で処理し、計算/操作完了直後に恒久的に削除し、かつ、いかなる場合でもprocess、job、user session終了前に削除します。local DuckDBまたはParquetはaccount termsまたは別途の書面契約が永続化を許可する場合だけ利用します。詳細はData terms and project identityを参照してください。
quansift_schedulerがstock、ETF、Fundamentals stageを起動。collect_fundamentalsがsecurity observationsとfundamental daily metricsへ正規化。失敗時: transactionをrollbackし、エラーを記録してpending entryを残す。他tickerは継続し、次回runで再試行する。
snapshot元。
postgres extensionでscan。永続storeにはしない。
temporary fileを検証後、local atomic publication。
postgres extensionはbuild時にinstallします。runtime library codeはLOADのみを行い、downloadしません。
migrate_postgres!がmigration advisory lockを取得。tiingojulia_schema_migrationsから現在versionを確認。migration error時はschema変更とledger更新をまとめてrollbackし、直前versionを正本として維持する。
main、required CI passmainへmergemain SHAに対するstrict release preflightPre-registration中はmanual tagを作らず、competing version tagも許可しない。
mainで検証productionをfast-forwardgit pull --ff-onlyDuckDB自体はdeprecatedではありません。full-historyをDuckDB経由に固定する次の7 entry pointだけが将来のmajor releaseで削除予定です。
| Deprecated | Replacement |
|---|---|
export_to_postgres | PostgreSQL upsert_* overloads + write_parquet |
update_historical | collect_historical + caller-supplied writer |
update_historical_parallel | collect_historical + caller-supplied writer |
update_historical_sequential | collect_historical + caller-supplied writer |
download_tickers_duckdb | collect_ticker_universe + replace_ticker_universe |
add_historical_data | collect_historical + caller-supplied writer |
update_split_ticker | collect_historical + caller-supplied writer |