[Kafka] Apache Kafka 기본 이해

2020. 7. 15. 00:47Cloud

과거 데이터파이프라인

MySQL → hadoop
MySQL → monitoring
MySQL → search engine

각기 다른 파이프라인이 생겼고 이로 인해 코드의 복잡성이 증가하면서 데이터 연동이 힘들어졌다.


실시간 데이터처리를 위한 기술 Kafka 등장

실시간 데이터 처리 기법

1. 한정 데이터(Bounded data) 처리 
이미 저장된 데이터를 처리하는 것이다. 해당 데이터를 별도로 처리할 수 있는 패턴이 없다.

2. 무제한 데이터(Unbounded data) 처리
 무제한 데이터는 주로 스트리밍 데이터

** 무제한 데이터 처리의 두가지 패턴
 2-1) 배치(Batch)
   - 스트리밍 데이터를 일정 시간 단위로 모아서 처리한다.
   - 구현이 간단하나 데이터 수집 후 처리가 되므로 실시간 처리에서 떨어진다.
 
2-2) 스트리밍(Streaming)
   - 배치 패턴에 비해 복잡하다
     어떻게? 환경에 따라 Skew의 변화가 심하다.

   - 데이터가 시스템에 도착하는 순서가 순차적이지 않다.
      ① Time agnostic
         시간 속성이 없는 데이터를 들어오는 순서대로 처리한다.
      ② Filtering
         들어오는 데이터 중에서 특정 데이터를 선택적으로 저장한다.
      ③ Inner join
         두개의 무제한 데이터에서 들어오는 값을 비교하고 서로 매칭시켜 값을 구별한다.
      ④ Windowing
         스트리밍 데이터를 일정한 시간 간격으로 처리한다.

  • 모든 시스템에 실시간으로 데이터 전송 가능 = 메시지 데이터를 여러 컨슈머가 이용 가능

  • 데이터가 갑자기 많아져도 스케일 아웃으로 확장 용이

MySQL → | Ka   hadoop
Oracle  → |  |   monitoring
NoSQL → | Ka  search engine

 

'Cloud' 카테고리의 다른 글

[cloud] 클라우드 서비스 유형  (0) 2020.07.24
[Docker] 도커 스웜 모드  (0) 2020.07.22
[Docker] 컨테이너 라이브 사이클 1  (0) 2020.07.17
[Cloud] 클라우드 어플리케이션 이해  (0) 2020.07.16
[AWS] 20.07.06 - 08 공부  (0) 2020.07.08