0. 기존 댓글 수집 아키텍처
Youtube 댓글 수집
Youtube Data API 사용방법 한국 지역 인기동영상 모든 댓글 및 답글 수집 코드 단점 예외처리가 어려움 API를 사용하기 때문에 여러 요인의 예외가 발상하지만 예외처리가 코드를 추가하면 코드가
geup.tistory.com
하지만 이 방식은 예외처리가 어렵고, 토큰을 하드코딩 해야 하며, 병렬처리가 어렵고, 수집을 위해 운영자가 직접 실행해야 하고, 댓글 혹은 답글이 수정되거나 추가되면 다시 수집해야 한다는 등 여러 단점이 있다.
1. Airflow, RabbitMQ를 활용한 댓글 수집 아키텍처
해소된 문제점
- 예외처리가 어렵다?
- Airflow를 사용하면 댓글 수집 파이프라인을 하나의 긴 스크립트에서 여러 개의 태스크로 분리하고 workflow 매니지먼트를 통해 실행할 수 있다. 따라서 수집 중간에 예외가 발생해도 해당 태스크부터 다시 실행하면 된다.
- 토큰을 하드코딩 해야 한다?
- Airflow는 자격 증명 정보를 관리할 수 있는 기능을 제공한다.
- 병렬처리가 어렵다?
- RabbitMQ에 댓글을 수집해야하는 동영상의 video_id 게시하면 작업자는 해당 video_id를 consume하여 댓글을 수집할 수 있도록 로직을 구현하였으며 이는 이후 병렬처리에 활용될 예정이다.
- Airflow를 사용하면 executor에 따라서 병렬처리가 가능하며, 이후 KubernetesPodOperator를 활용하면 k8s의 replicaset을 활용해 작업자를 여러 명으로 늘릴 수 있다.
- 댓글 혹은 답글이 수정되거나 추가되면 다시 수집해야 한다?
- 해당 문제를 해결하는 로직을 추가하였다. (그림 1의 collect_exist_video_comment 태스크)
- 직접 실행해야 한다?
- Airflow의 Schedule기능을 활용해 매일 0시에 수집 작업이 실행되도록 함
문제점
- 아직 병렬 처리가 적용되지 않음
- 가용성 문제
- Airflow가 실행되고 있는 Node에 장애가 발생하면 댓글 수집에 장애가 발생함
- 로컬 파일 시스템에 수집된 데이터를 저장하고 있기 때문에 로컬 파일 시스템에 장애가 발생하면 댓글 수집에 장애가 발생함
코드
https://github.com/GEUP/youtube-comment/tree/useAirflow
GitHub - GEUP/youtube-comment: 유튜브 한국지역 인기동영상 댓글 수집 및 분석 프로젝트
유튜브 한국지역 인기동영상 댓글 수집 및 분석 프로젝트. Contribute to GEUP/youtube-comment development by creating an account on GitHub.
github.com
2. Airflow, RabbitMQ, Kubernetes를 활용한 댓글 수집 아키텍처
해소된 문제점
- 가용성
- kubernetes가 airflow와 RabbitMQ에 장애가 발생하면 자동으로 복구해주기 때문에 가용성이 높아진다.
- 확장성
- 부하가 높은 태스크인 댓글 수집 태스크의 경우 DAG를 수정하여 필요한만큼 병렬처리할 수 있다. (실험 필요)
문제점
- Observation, monitoring의 어려움
- 어떤 영상의 댓글일 얼마나 수집되고 있는지 확인하기 어려움
코드
https://github.com/GEUP/youtube-comment/tree/useKubernetes
GitHub - GEUP/youtube-comment: 유튜브 한국지역 인기동영상 댓글 수집 및 분석 프로젝트
유튜브 한국지역 인기동영상 댓글 수집 및 분석 프로젝트. Contribute to GEUP/youtube-comment development by creating an account on GitHub.
github.com
재현 방법 (PPT 참조)
.
'Data Engineering > Youtube Comment Analysis' 카테고리의 다른 글
[데이터 시스템 구축기] 2. Data Warehouse 구축 (0) | 2022.06.22 |
---|---|
[데이터 시스템 구축기] 1. 시스템 설계 (0) | 2022.05.24 |
[데이터 시스템 구축기] 0. 데이터 시스템 구축기란? (0) | 2022.05.24 |