대중적인 스트리밍 시스템

스트리밍 개념

Mike Metzger

Data engineer

스트리밍 도구

  • 필요에 따라 여러 도구 사용 가능
  • 설계자가 최적의 도구를 선택 가능
  • 대표 시스템:
    • Celery
    • Kafka
    • Spark Streaming

Celery

Apache Kafka

Spark Streaming

스트리밍 개념

Celery

  • 분산형 작업 큐 / FIFO
  • 주로 잡/작업 큐로 사용
  • 비동기 작업에 자주 사용
    • 비밀번호 재설정 이메일 발송
    • 디지털 주문 처리
    • 이미지 크기 변경
  • 대량 메시지의 실시간 처리 지원
  • 관리·확장 기능 제공(수직/수평)

Celery 프로젝트

스트리밍 개념

Apache Kafka

  • 분산형 이벤트 스트리밍 시스템
  • 프로듀서컨슈머 간 이벤트 전송용
    • 프로듀서토픽에 이벤트 생성
    • 토픽은 지정 형식의 메시지 집합
    • 컨슈머는 새 이벤트 수신
  • 컨슈머별로 필요에 따라 처리 가능(로깅, 변환, 릴레이 등)
  • 지정에 따라 이벤트 저장 처리
  • 매우 강력하지만 구성이 까다로움

Apache Kafka

스트리밍 개념

Kafka 활용

  • 여러 시스템 간 데이터 전달에 최적
    • 단일 진실 소스
    • 변경 데이터 캡처
    • 데이터 백업
    • 데이터 시스템 마이그레이션
스트리밍 개념

Spark Streaming

  • Apache Spark의 일부
  • 스트리밍 데이터 처리용 설계
  • Spark의 Scala, Python, SQL 등 처리 기능을 활용
  • 대량 데이터 처리 및 머신러닝에 유용
  • 배치에서 스트림 처리로 쉽게 전환 가능
  • 저장/로그용이 아니라 주로 데이터 처리·변환

Apache Spark

스트리밍 개념

연습해 봅시다!

스트리밍 개념

Preparing Video For Download...