인프런 커뮤니티 질문&답변

Soo Man Choi님의 프로필 이미지
Soo Man Choi

작성한 질문수

[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!

KStream, KTable 조인 스트림즈 애플리케이션

스트림즈에서 테이블의 데이터 수명주기

작성

·

216

0

안녕하세요 카프카 스트림에서 조인을 공부하다가 질문을 남기게 되었습니다.

카프카에는 기본적으로 세그먼트가 있는거로 알고 있습니다. 저는 이것의 수명주기를 1주일로 세팅했다고 가정하겠습니다.

1월 1일
address topic에 gildong: busan 이라는 내용이 들어갔습니다.

1월 3일
order topic에 gildong: iphone이라는 내용이 들어갔습니다.

1월 15일
order topic에 gildong: apple watch라는 내용이 들어갔습니다.

그럼 1월1일 address의 gildong: busan은 1월 15일에는 액티브 세그먼트에는 들어있지 않게 되는거 아닌가요?

이상태에서 order에 gildong: ipad라는 내용이 들어가면 조인이 되는건지 궁금합니다.

답변 1

0

데브원영 DVWY님의 프로필 이미지
데브원영 DVWY
지식공유자

Soo Man Choi님,

카프카 스트림즈에서 KTable 또는 GlobalKTable의 데이터 생명주기는 브로커 내부 레코드 삭제 주기와 무관합니다. 만약 KTable, GlobalKTable를 담은 애플리케이션이 실행중인 상태에서 해당 레코드를 삭제하고 싶으시다면 동일한 키의 레코드에 메시지 값을 null로 넣으셔야지만 삭제가 가능합니다. 이를 tombstone message라고 부릅니다. tombstone message에 대한 자세한 설명은 다음 링크를 참고하세요

- Kafka Stream Usage Patterns(링크)

그러므로 브로커 세그먼트에서 gildong:busan이 지워지더라도 1월 15일에 카프카 스트림즈를 통해 조인이 가능합니다.

Soo Man Choi님의 프로필 이미지
Soo Man Choi
질문자

감사합니다. 그게 궁금했는데 구글링 실력이 부족했는지 쉽게 못찾았습니다. 감사합니다

Soo Man Choi님의 프로필 이미지
Soo Man Choi

작성한 질문수

질문하기