데이터 탐색
KBO 데이터의 수집 현황과 자동 수집 스케줄을 한눈에 확인하고, DB 테이블과 데이터를 SQLite 없이 바로 탐색합니다. 테이블을 클릭하면 컬럼 구조와 데이터를 보고 CSV로 내려받을 수 있습니다.
database 데이터 현황
자동 수집 스케줄 (Cron)
총 9개 작업EC2 서버(crontab)에서 자동 실행되는 수집·집계 모듈과 배포 자동화입니다. 서버는 UTC로 동작하므로 실행 시각은 KST(UTC+9)로 변환해 표기했습니다.
| 모듈 (실행 스크립트) | 설명 | 실행 시각 (KST) | 마지막 업데이트 시간 |
|---|---|---|---|
| selenium_batter_scraper.py → kbo_to_db.py → selenium_pitcher_scraper.py → pitcher_to_db.py → email_notifier.py | KBO 공식 타자·투수 통계를 Selenium으로 크롤링해 DB에 UPSERT 저장하고, 완료되면 수집 결과 요약을 이메일로 발송합니다. | 매일 02:00 | - |
| daily_kbo_pbp.sh crawler/pbp.py | 어제 경기의 PBP(투구·타석 단위) 데이터를 크롤링해 play_by_play 테이블에 적재합니다. 같은 날짜는 멱등 재적재됩니다. | 매일 03:30 | - |
| daily_player_detector.py | 어제 PBP·공식 통계와 players 테이블을 대조해 이적·등번호 변경이 의심되는 선수를 재크롤링하고, 선수 이력(player_history)을 SCD Type 2로 갱신합니다. | 매일 04:00 | - |
| daily_cleanup_orphan_stats.py | PBP 기록이 0건인데 공식 통계에만 남아 있는 시범경기·오분류 row를 정리합니다. (PBP·변경 감지 작업 이후 실행) | 매일 04:30 | - |
| park_factors/run_pipeline.sh compute_self_park_factors.py → build_wrc_plus.py → build_re24_run_values.py | 누적 PBP·통계로 자체 파크팩터, wOBA/wRC+, RE24·득점가치 지표를 재계산해 갱신합니다. | 매일 05:00 | - |
| player_registry_sync.py | KBO 구단별 소속선수 명단(육성 포함)·등록 현황·이동 현황(트레이드, 등번호 변경, FA, 추가 등록)과 현 시즌 통계·PBP를 대조해 신규 영입 선수를 players에 등록하고, 이적·등번호 변경을 선수 이력(SCD Type 2)에 반영합니다. | 매일 05:40 | - |
| futures_schedule.py | KBO 퓨처스리그(2군) 경기 일정·결과를 공식 Schedule.asmx에서 수집해 futures_games 테이블을 갱신합니다. | 매일 12:00~23:30 (30분 간격) |
- |
| player_info_scraper.py | 기존 player_id 기준으로 선수 상세 프로필을 전체 재수집합니다. (월 1회 전체 보정) | 매월 1일 13:00 | - |
| auto_deploy_poll.sh deploy.sh (fetch → reset → restart → health) | GitHub main에 새 커밋이 감지되면 최신 코드를 서버에 자동 반영합니다. 교체 후 API를 재시작하고 헬스체크하며, 실패 시 직전 상태로 자동 롤백합니다. | 3분마다 | - |