배치 프로세싱 VS 스트림 프로세싱

SeungHyuk Shin·2022년 5월 17일
2
post-thumbnail

카카오 모빌리티 개발자 컨퍼런스를 보다가 빅데이터와 관련되서 배치 프로세싱과 스트림 프로세싱의 대한 내용이 간략하게 나왔는데 매우 흥미로워서 현재 재직 중인 회사에서도 주문 수집을 다음과 같은 방법을 통해 진행해본다면 매우 좋을 것 같아서 개념에 대해 정리해보려 한다. 해당 영상은 이 주소에서 확인 할 수 있다!


1. 배치 처리: 대규모 및 복잡한 데이터 분석:

배치 처리란 특정 시간 범위 내에서 대량의 데이터를 일괄 처리하는 것을 말한다. 대량의 데이터를 한 번에 처리한다. 배치 처리는 데이터 크기가 알려져 있고 유한할 때 사용된다. 데이터를 처리하는 데 시간이 거의 걸리지 않는다. 배치 프로세서는 데이터를 여러 경로로 처리한다. 시간이 지남에 따라 데이터가 수집되고 유사한 데이터가 일괄 처리/그룹화되면 일괄 처리가 사용된다.

스트림 처리와 달리 배치 처리는 데이터를 분석 시스템에 즉시 제공하지 않으므로 결과를 실시간으로 얻을 수 없다. 배치 처리의 경우 데이터베이스나 파일 시스템과 같은 데이터를 로드하기 위해 어떤 유형의 스토리지가 필요하다.

배치 처리는 매우 큰 데이터 세트와 심층적인 데이터 분석이 필요한 프로젝트에 이상적이다. 이 방법은 속도나 실시간 결과를 필요로하는 프로젝트에는 그다지 맞지 않다. 또한 많은 레거시 시스템은 일괄 처리만 지원한다.

이로 인해 개발팀은 오래된 메인프레임과 서버를 포함하는 클라우드 데이터 마이그레이션 중에 배치 처리를 사용해야 한다. 성능 측면에서도 데이터가 이미 수집되었을 때 일괄 처리가 더 최적화가 잘 된다.

배치 처리 예제: 매일, 소매업자는 모든 상점의 전체 수익을 추적한다. 소매업체는 모든 구매를 실시간으로 처리하는 대신 각 점포의 일일 총수입을 하루의 끝에 일괄 처리한다.

배치 처리의 문제:

  • 시스템의 디버깅은 오류를 수정하기 위해 전담 개발자가 필요하기 때문에 어렵다.
  • 소프트웨어와 훈련은 배치 스케줄링, 트리거링, 알림 등을 이해하는 데 초기에는 많은 비용이 소요된다.

2. 스트림 처리: 응답성 및 실시간 분석:

스트림 처리는 데이터가 생성되는 즉시 연속 스트림을 처리하는 것을 말한다. 스트리밍 데이터를 실시간으로 분석한다. 스트림 처리는 데이터 크기를 알 수 없고 무한하고 연속적일 때 사용된다. 데이터를 처리하는 데 몇 초 또는 몇 밀리초가 걸린다. 스트림 처리에서 데이터 출력 속도는 데이터 입력 속도만큼 빠르다. 스트림 프로세서는 데이터를 몇 번의 패스로 처리한다. 데이터 스트림이 연속적이고 즉각적인 응답이 필요한 경우 스트림 처리가 사용된다.

스트림 처리를 통해 데이터가 생성되자마자 분석 시스템에 하나씩 데이터가 공급된다. 스트림 처리는 시간 경과에 따른 데이터 배치를 처리하는 대신 각 데이터 지점 또는 "마이크로 배치"를 분석 플랫폼에 직접 제공한다. 이를 통해 팀은 거의 실시간으로 핵심 통찰력을 얻을 수 있다.

스트림 처리는 속도와 민첩성이 요구되는 프로젝트에 이상적이다. 이 방법은 데이터 볼륨이 크거나 심층 데이터 분석이 많은 프로젝트에는 덜 관련이 있다.

Apache Kafka, Apache Flink, Apache Storm 또는 Apache Samza와 같은 플랫폼과 결합하면 스트림 처리가 빠르게 핵심 통찰력을 생성하므로 팀이 빠르고 효율적으로 의사 결정을 내릴 수 있다. 스트림 처리는 부정 행위 탐지 및 거의 즉각적인 대응이 필요한 기타 기능과 함께 중단 없는 데이터 소스에 맞게 준비된다.

스트림 처리 예제: 한 탄산음료 회사가 스포츠 행사 중 광고를 내보낸 후 브랜드 관심을 증폭시키려고 한다. 이 회사는 소셜 미디어 데이터를 분석 시스템에 직접 제공하여 청중의 반응을 측정하고 브랜드 메시지를 실시간으로 활성화하는 방법을 결정한다.

스트림 처리의 문제:

  • 데이터 입력 속도 및 출력 속도 때문에 문제가 발생할 수 있다.
  • 방대한 양의 데이터와 즉각적인 응답에 대응한다.

배치 처리 VS 스트림 처리

데이터 처리에서는 일반적으로 정답이 없다. 배치 처리와 스트림 처리에는 프로젝트에 따라 장단점이 있다. 응답성을 유지하기 위한 노력의 일환으로 많은 기업들은 스트림 처리를 선호하고 있다.

그러나 배치 처리는 여전히 널리 사용되고 있으며 레거시 시스템이 데이터 생태계의 필수 구성 요소로 남아 있는 한 오래 지속될 것이다.

데이터 처리에 있어 유연성은 데이터 팀에 가장 중요한 요소이다. 프로젝트마다 다른 접근 방식이 필요하다. 각 팀은 각 사용 사례에 맞는 최적의 솔루션을 찾을 수 있는 수단을 갖추고 있어야 한다.

배치 처리와 스트림 처리의 비교에서 확실한 정답은 없다. 정답은 둘 다 유연하게 사용할 수 있는 개발 조직이다.

0개의 댓글