작성
·
221
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
Soo Man Choi님,
카프카 스트림즈에서 KTable 또는 GlobalKTable의 데이터 생명주기는 브로커 내부 레코드 삭제 주기와 무관합니다. 만약 KTable, GlobalKTable를 담은 애플리케이션이 실행중인 상태에서 해당 레코드를 삭제하고 싶으시다면 동일한 키의 레코드에 메시지 값을 null로 넣으셔야지만 삭제가 가능합니다. 이를 tombstone message라고 부릅니다. tombstone message에 대한 자세한 설명은 다음 링크를 참고하세요
- Kafka Stream Usage Patterns(링크)
그러므로 브로커 세그먼트에서 gildong:busan이 지워지더라도 1월 15일에 카프카 스트림즈를 통해 조인이 가능합니다.
감사합니다. 그게 궁금했는데 구글링 실력이 부족했는지 쉽게 못찾았습니다. 감사합니다