fix: parent_resolution JOIN 타이밍 갭 허용 — snapshot_time - 10분
5분 사이클에서 폴리곤 저장 → inference 실행 순서로 인해 latest snapshot_time > last_evaluated_at이 될 수 있음. JOIN 조건에 10분 여유를 두어 이전 사이클 결과도 매칭되도록 수정. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
부모
ed618f6dd0
커밋
dd9de6739c
@ -51,7 +51,7 @@ public class GroupPolygonService {
|
||||
JOIN latest_groups lg
|
||||
ON lg.group_key = c.group_key
|
||||
AND lg.sub_cluster_id = c.sub_cluster_id
|
||||
AND c.observed_at >= lg.snapshot_time
|
||||
AND c.observed_at >= lg.snapshot_time - INTERVAL '10 minutes'
|
||||
GROUP BY c.group_key, c.sub_cluster_id
|
||||
),
|
||||
candidate_counts AS (
|
||||
@ -79,7 +79,7 @@ public class GroupPolygonService {
|
||||
LEFT JOIN %s r
|
||||
ON r.group_key = lg.group_key
|
||||
AND r.sub_cluster_id = lg.sub_cluster_id
|
||||
AND r.last_evaluated_at >= lg.snapshot_time
|
||||
AND r.last_evaluated_at >= lg.snapshot_time - INTERVAL '10 minutes'
|
||||
LEFT JOIN candidate_counts cc
|
||||
ON cc.group_key = lg.group_key
|
||||
AND cc.sub_cluster_id = lg.sub_cluster_id
|
||||
@ -105,7 +105,7 @@ public class GroupPolygonService {
|
||||
LEFT JOIN %s r
|
||||
ON r.group_key = g.group_key
|
||||
AND r.sub_cluster_id = g.sub_cluster_id
|
||||
AND r.last_evaluated_at >= g.snapshot_time
|
||||
AND r.last_evaluated_at >= g.snapshot_time - INTERVAL '10 minutes'
|
||||
WHERE g.group_key = ?
|
||||
ORDER BY g.snapshot_time DESC
|
||||
LIMIT 1
|
||||
@ -130,7 +130,7 @@ public class GroupPolygonService {
|
||||
LEFT JOIN %s r
|
||||
ON r.group_key = g.group_key
|
||||
AND r.sub_cluster_id = g.sub_cluster_id
|
||||
AND r.last_evaluated_at >= g.snapshot_time
|
||||
AND r.last_evaluated_at >= g.snapshot_time - INTERVAL '10 minutes'
|
||||
WHERE g.group_key = ? AND g.snapshot_time > NOW() - CAST(? || ' hours' AS INTERVAL)
|
||||
ORDER BY g.snapshot_time DESC
|
||||
""";
|
||||
@ -186,7 +186,7 @@ public class GroupPolygonService {
|
||||
JOIN latest_groups lg
|
||||
ON lg.group_key = c.group_key
|
||||
AND lg.sub_cluster_id = c.sub_cluster_id
|
||||
AND c.observed_at >= lg.snapshot_time
|
||||
AND c.observed_at >= lg.snapshot_time - INTERVAL '10 minutes'
|
||||
GROUP BY c.group_key, c.sub_cluster_id
|
||||
),
|
||||
candidate_counts AS (
|
||||
@ -215,7 +215,7 @@ public class GroupPolygonService {
|
||||
JOIN %s r
|
||||
ON r.group_key = lg.group_key
|
||||
AND r.sub_cluster_id = lg.sub_cluster_id
|
||||
AND r.last_evaluated_at >= lg.snapshot_time
|
||||
AND r.last_evaluated_at >= lg.snapshot_time - INTERVAL '10 minutes'
|
||||
LEFT JOIN candidate_counts cc
|
||||
ON cc.group_key = lg.group_key
|
||||
AND cc.sub_cluster_id = lg.sub_cluster_id
|
||||
@ -247,7 +247,7 @@ public class GroupPolygonService {
|
||||
JOIN latest_groups lg
|
||||
ON lg.group_key = c.group_key
|
||||
AND lg.sub_cluster_id = c.sub_cluster_id
|
||||
AND c.observed_at >= lg.snapshot_time
|
||||
AND c.observed_at >= lg.snapshot_time - INTERVAL '10 minutes'
|
||||
WHERE c.group_key = ?
|
||||
GROUP BY c.group_key, c.sub_cluster_id
|
||||
),
|
||||
@ -277,7 +277,7 @@ public class GroupPolygonService {
|
||||
LEFT JOIN %s r
|
||||
ON r.group_key = lg.group_key
|
||||
AND r.sub_cluster_id = lg.sub_cluster_id
|
||||
AND r.last_evaluated_at >= lg.snapshot_time
|
||||
AND r.last_evaluated_at >= lg.snapshot_time - INTERVAL '10 minutes'
|
||||
LEFT JOIN candidate_counts cc
|
||||
ON cc.group_key = lg.group_key
|
||||
AND cc.sub_cluster_id = lg.sub_cluster_id
|
||||
@ -301,7 +301,7 @@ public class GroupPolygonService {
|
||||
JOIN latest_groups lg
|
||||
ON lg.group_key = c.group_key
|
||||
AND lg.sub_cluster_id = c.sub_cluster_id
|
||||
AND c.observed_at >= lg.snapshot_time
|
||||
AND c.observed_at >= lg.snapshot_time - INTERVAL '10 minutes'
|
||||
GROUP BY c.group_key, c.sub_cluster_id
|
||||
)
|
||||
SELECT c.group_key, c.sub_cluster_id, c.candidate_mmsi, c.candidate_name,
|
||||
|
||||
불러오는 중...
Reference in New Issue
Block a user