[Spark] Streaming 기본 개념

Woong·2021년 12월 9일
0

Apache Spark

목록 보기
1/22

consuming, streaming

consuming

  • 스트림으로부터 데이터에 접근하는 것은 스트림 소비 (consuming the stream)

sink

  • 외부에 데이터를 쓰는데 사용되는 추상화는 streaming sink

변환(Transform), 집계(aggregation)

변환 (Transform)

  • 스트림의 모든 요소에 대해 동일한 방식으로 계산
    • ex. 모든 요소를 2배로 파생 스트림 생성

집계 (aggregation)

  • 많은 요소와 현재까지 환찰된 스트림의 모든 요소에 의존하는 결과를 생성
    • ex) 입력 스트림 중 상위 5개 숫자를 수집
    • ex) 매 10부마다 일부 판독값의 평균을 계산

Window

  • 규칙적이고 반복적인 시간 기반의 집계
  • '각 x 기간의 그룹화 함수' 로 표현

텀블링 윈도우 (Tumbling windows)

  • 겹치지 않는 고정된 기간의 그룹
    • 각 기간이 이전 기간과 독립적

슬라이딩 윈도우 (Sliding windows)

  • 집계 기간보다 더 높은 빈도로 보고되는 일정 기간 동안의 집계
  • 겹칠 수 있음
  • 이동 평균 (moving average)
    • 평균 함수 + 슬라이딩 윈도우의 조합
  • 보고 빈도 = 윈도우 크기 -> 텀블링 윈도우
    • 텀블링 윈도우는 슬라이딩 윈도우의 특별한 경우로 볼 수 있음

상태 기반 스트림 처리 (Statefal stream processing)

  • 입력 데이터의 '상태' 를 저장하여 새 스트림의 요소 연산에 활용
    • ex) 요소의 실행 평균, 표준편차를 계산 후 새 요소가 평균보다 5 표준편차보다 멀면 메시지 출력
    • ex) 피보나치 수열을 계산하기 위해 과거 숫자의 합을 '상태' 로 저장하여 활용
  • Spark 에서 '상태' 는 임의의 date type일 수 있음.

0개의 댓글