데이터 엔지니어 이것저것

CCDAK 준비 본문

오픈소스/kafka

CCDAK 준비

pastime 2022. 11. 14. 21:07
728x90

Confluent Certified Developer for Apache Kafka® 자격증 준비

신청 링크 : https://training.confluent.io/examdetail/confluent-dev

 


stateless and stateful

쉽게 표현하면 mapreduce 인것같다

 

 

stateless 는 Kstream 만으로도 작업이 충분하다.

stateful 은 Windowing, Aggreagting 같은 상태를 가지는데, 데이터 또는 상태를 추적해야하기 때문에 좀 더 복잡하다.

 

  • stateless: consume message and put it into an external storage
  • stateful: consume messages, define a window (=time interval) and calculate the number of messages per any kind of identifier

 Zookeeper zNodes?

 

zNode는 클러스터를 구성하고 있는 각각의 서버를 뜻한다

주키퍼 서비스는 일종의 파일 시스템을 제공하는데, 노드 이름으로 구분한다.

 

주키퍼의 내부 데이터 구조는 트리와 같다.

- 각 노드를 zNode 라고 한다.

- 각 zNode에는 경로가 있다.

- zNode는 일시적이거나 영구적

- 각 zNode 의 이름을 변경 할 수 없다.

- 각 zNode에서 변경 사항 확인 가능

 

 


GlobalKTable vs KTable

 

GlobalKTable은 kafka streams DSL에서 지원하는 KTable이다. 일반적인 KTable과의 차이는 다음과 같다

  - Ktable은 해당 노드에 할당된 파티션의 데이터만 읽어와서 StateStore에 보관한다.

  - GlobalKTable은 모든 파티션의 데이터를 읽어와서 StateStore에 보관한다.

 

이러한 특징들 떄문에 GlobalKTable 은 파티셔닝에 대한것에 신경을 안써도 되는 장점.

카프카 스트림즈의 모든 클러스터는 각각의 토픽의 전체 파티션을 모두 읽어와서 각 노드에 각각의 StateStore를 가지게 된다.

 

GlobalKTable의 경우 로컬 스토리지에 저장하고, 모든 노드가 같은 데이터를 모두 보관하고 있는 단점이 있어,

한 노드가 가져와도 문제 없을 정도의 가벼운 데이터의 경우 사용하는것이 좋다.

 


ksqlDB란? 컨플루언트에서 만든 스트리밍 프로세스용 툴. SQL구문을 사용하여 스트리밍 프로세스를 이용.

 


Kafka Windowed

카프카 윈도우 모드는 스트림 집계의 결과 키


Kafka Streams window

 

- Tumbling time window (time-based): Fixed-size, non-overlapping, gap-less windows. 

- Hopping time window (time-based): Fixed-size, overlapping windows.

 - Sliding time window (time-based): Fixed-size, overlapping windows that work on differences between record timestamps. 

- Session window (session-based): Dynamically-sized, non-overlapping, data-driven windows.

 


카프카 5개 주요 API

  • Producer API
  • Consumer API
  • Stream API
  • Connect API
  • Admin API

Kstream, KTable, GlobalKTable

 

Kstream은 디비 로그라고 생각하고, Ktable은 해당 디비 테이블의 최신 데이터 정보

즉 Kstream에 A라는 데이터를 1 -> 2 -> 3 이런식으로 update하는 쿼리가 존재 하는 로그를 가지고있고

Ktable에는 최종 변환된 값만 저장.

 

 

Kafka Streams DSL(Domain Specific Language)은 Streams Processor API 위에 구축

 

KStream-KStream 조인

 

 

Kstrea 간의 조인은 windowed 조인이다, 안그러면 사이즈가 무한대로 증가하기 떄문.

 

728x90

'오픈소스 > kafka' 카테고리의 다른 글

카프카 메시지 순서를 보장  (0) 2023.03.27
Kafka Topic  (0) 2023.01.28
카프카 커넥트  (0) 2022.08.22
카프카를 사용하는 이유  (0) 2022.01.03
브로커와 클러스터  (0) 2022.01.03