데이터 품질 기준
정상 수집 기준
| 지표 |
정상 |
경고 |
실패 |
| 키워드 수 |
10개 |
5개 미만 |
0개 |
| 수집 성공률 (24h) |
90% 이상 |
70~90% |
70% 미만 |
| 연속 실패 |
0회 |
1~2회 |
3회 이상 |
예상되는 품질 이슈
새벽 시간 데이터 부족
- 시간대: 01:00 ~ 06:00 KST
- 현상: 다음 트렌드가 베타 서비스로, 새벽에는 데이터가 제한적
- 처리:
status=EMPTY 스냅샷으로 기록. 정상 동작이므로 알림 불필요
HTML 구조 변경
- 현상: 대상 사이트가 HTML 구조를 변경하면 파싱 결과가 0건
- 처리:
keyword_count=0이 낮 시간에 연속 발생하면 파서 수정 필요
- 확인 방법: RustFS Bronze의
raw.html을 다운로드하여 구조 변경 확인
중복 수집
- 현상: 같은 시간대에 동일한 키워드 목록이 반복 수집됨
- 원인: 수집 간격보다 트렌드 갱신 주기가 길 때 발생 (정상)
- 처리: 별도 중복 제거 불필요 (시계열 분석 시 자연스러운 현상)
품질 확인 쿼리
최근 24시간 수집 성공률
SELECT
COUNT(*) AS total,
SUM(CASE WHEN status = 'SUCCESS' THEN 1 ELSE 0 END) AS success,
ROUND(SUM(CASE WHEN status = 'SUCCESS' THEN 1 ELSE 0 END) / COUNT(*) * 100, 1) AS success_rate
FROM trend_snapshots
WHERE collected_at >= NOW() - INTERVAL 24 HOUR;
연속 실패 확인
SELECT id, collected_at, status, error_message
FROM trend_snapshots
WHERE status = 'FAILED'
AND collected_at >= NOW() - INTERVAL 6 HOUR
ORDER BY collected_at DESC;
키워드 수 이상 감지
SELECT s.id, s.collected_at, COUNT(k.id) AS keyword_count
FROM trend_snapshots s
LEFT JOIN trend_keywords k ON k.snapshot_id = s.id
WHERE s.status = 'SUCCESS'
AND s.collected_at >= NOW() - INTERVAL 24 HOUR
GROUP BY s.id
HAVING keyword_count < 5
ORDER BY s.collected_at DESC;