이 프로젝트는 Scrapy를 이용해 클럽 정보를 크롤링하고, MongoDB에 저장한 후, ETL(Extract, Transform, Load) 과정을 통해 데이터를 PostgreSQL로 변환하는 시스템입니다.
먼저 필요한 패키지를 설치해야 합니다.
pip install -r requirements.txt
MongoDB, PostgreSQL, Scrapyd 및 ETL을 포함한 모든 컨테이너를 실행하려면 다음 명령어를 사용합니다.
docker-compose up -d --build
Scrapyd를 사용하여 Scrapy 크롤러를 실행합니다.
curl http://localhost:6800/schedule.json -d project=club_scraper -d spider=clubs
MongoDB에 저장된 크롤링 데이터를 PostgreSQL로 이동하는 ETL 파이프라인을 실행합니다.
docker-compose run etl
또는, 직접 실행할 수도 있습니다.
python etl/etl_pipeline.py
PostgreSQL에 데이터가 적재되었는지 확인합니다.
docker exec -it postgres_db psql -U myuser -d mydatabase
SQL 쿼리를 실행하여 데이터 조회:
SELECT * FROM clubs;
모든 컨테이너를 종료하려면 아래 명령어를 실행합니다.
docker-compose down
- Scrapy + Scrapyd: 크롤링 및 관리 자동화
- MongoDB: 크롤링 데이터 저장 (NoSQL DB)
- PostgreSQL: 메인 서비스 데이터 저장 (RDBMS)
- SQLAlchemy: PostgreSQL ORM 처리
- Docker + Docker Compose: 컨테이너 기반 배포 및 실행
- Pandas: 데이터 변환 및 정제
- AWS EC2에서 Scrapyd 배포 및 크롤링 자동화
- MongoDB를 AWS DocumentDB로 이전 고려
- PostgreSQL을 AWS RDS로 이전하여 안정성 확보
이 프로젝트에 대한 피드백이나 질문이 있다면 언제든지 환영합니다! 🚀