[ { "id": "ingest.snpdb_5min", "label": "SNPDB 5분 버킷", "shortDescription": "AIS 원본 5분 집계 테이블", "stage": "수집", "kind": "source", "trigger": "scheduled", "status": "implemented", "file": "prediction/db/snpdb.py", "symbol": "signal.t_vessel_tracks_5min", "outputs": ["raw_ais_tracks"], "tags": ["AIS", "원본"] }, { "id": "ingest.snpdb_initial_load", "label": "초기 24시간 적재", "shortDescription": "기동 시 24시간 트랙 일괄 로드", "stage": "수집", "kind": "source", "trigger": "on_demand", "status": "implemented", "file": "prediction/db/snpdb.py", "symbol": "fetch_all_tracks", "params": ["hours=24"], "outputs": ["vessel_store"] }, { "id": "ingest.snpdb_incremental", "label": "증분 로드", "shortDescription": "마지막 bucket 이후 신규 트랙 조회", "stage": "수집", "kind": "source", "trigger": "scheduled", "status": "implemented", "file": "prediction/db/snpdb.py", "symbol": "fetch_incremental", "params": ["last_bucket"], "outputs": ["incremental_df"] }, { "id": "ingest.vessel_store_cache", "label": "VesselStore 인메모리 캐시", "shortDescription": "MMSI별 트랙/위치/메타 인메모리 저장", "stage": "캐시", "kind": "cache", "trigger": "scheduled", "status": "implemented", "file": "prediction/cache/vessel_store.py", "symbol": "VesselStore", "inputs": ["raw_ais_tracks"], "outputs": ["vessel_store"], "params": ["CACHE_WINDOW_HOURS"] }, { "id": "ingest.static_info_refresh", "label": "정적정보 갱신", "shortDescription": "선박명/호출부호/IMO 등 메타 갱신", "stage": "캐시", "kind": "cache", "trigger": "scheduled", "status": "implemented", "file": "prediction/cache/vessel_store.py", "symbol": "refresh_static_info", "inputs": ["snpdb.static_info"], "outputs": ["vessel_store.static"] }, { "id": "ingest.permit_registry_refresh", "label": "허가어선 레지스트리 갱신", "shortDescription": "허가어선 MMSI 목록 주기 갱신", "stage": "캐시", "kind": "cache", "trigger": "scheduled", "status": "implemented", "file": "prediction/cache/vessel_store.py", "symbol": "refresh_permit_registry", "outputs": ["vessel_store.permit_set"] } ]