본문 바로가기

👩🏻‍💻업무 로그

단기간에 대량의 데이터 수집하기

일주일 안에 약 5TB에 해당하는 1년 치 데이터를 수집해야 했다.

단기간에 대량의 데이터를 수집해야 하는 상황이었기 때문에 단순한 직렬적인 데이터 처리 방식이 적절하지 않았다.

따라서 데이터를 다운로드하는 작업과 처리하는 작업을 병렬적으로 수행해야겠다고 생각했다.

하나의 개발 환경에서 연관된 서로 다른 작업을 병렬적으로 수행해야 하는 상황이었기 때문에 이를 해결하기 위해 두 개의 container를 포함하는 하나의 pod에서 작업을 수행하도록 설계했다.

첫 번째 container에서는 데이터를 다운로드해 스토리지에 저장하는 작업을, 두 번째 container에서는 저장된 데이터를 처리하는 작업을 수행하도록 구현했다.

하지만 사용할 수 있는 자원에 제한이 있어 한 번에 1년 5개월 치의 데이터에 대해 처리할 수 없었다.

따라서 bash shell script를 사용해 한 달 치씩의 데이터에 대해서 처리할 수 있도록 분리했다.