이 질문은 후속 작업으로 Kafka Streams with lookup data on HDFS입니다. 카파 (Kafka) 스트림에 작은 사전 데이터를 결합해야합니다.Kafka Streams "map-side"사전 검색처럼 합치다
AFAIK, Kafka Stream 인스턴스는 항상 특정 주제의 파티션에서 작동합니다. 조회를 원할 경우 관련 레코드를 함께 가져 오기 위해 두 스트림을 조인 키로 다시 분할해야했습니다.
여러 조회 데이터를 검사해야하는 경우 여러 번 다시 분할하는 비용은 얼마입니까? 전체 조회 데이터 세트를 각 파티션에 보낼 수 없으므로 검색 주제에서 KTable
을 빌드하면 모든 카프카 스트림 애플리케이션 인스턴스에서 전체 데이터 세트를 볼 수 있습니다. 따라서 KStream#transform()
메서드에서 조회를 수행 할 수 있습니다.이 메서드는 내가 가지고있는 조회 데이터가있는 로컬 RocksDB 저장소를 사용합니다.
나는 더 적합 할 것이다 옵션 궁금 해요 :
이 주제의 각 파티션에 동일한 데이터 (전체 데이터 세트)를 삽입하고
KStream#transform
에서 조회를 할. 주제가 너무 많으면 중복되는 데이터가 많지만 작은 데이터 세트의 경우 문제가되지 않습니다.룩업 (조인)을 수행 할 수 있도록 DSL API를 사용하여 두 스트림을 다시 분할 할 수 있습니다. 여기 성능에 미치는 영향은 무엇입니까?
감사합니다. Michael! 나는 이미 카프카 스트림 내부를 점검하기 시작했는데 어떻게 그런 세계적인 상태를 유지할 수 있었는지 알 수 있었지만 어떤 제안이라도 좋을 것입니다. 아니면 아마 내 요구에 accoding rocksdb을 채우는 자신의 프로세서를 만들 수 있습니까? – Bruckwald
지금은 맞춤 프로세서를 사용하는 것이 좋습니다. 그 안에는 관심있는 각 Kafka 주제의 모든 파티션을 완전히 읽는 "정상적인"Kafka 소비자 클라이언트를 사용할 수 있습니다 (위의 "전역 상태/테이블"아이디어 참조). 그리고 사용 사례에 따라 필요에 따라 진행할 수 있습니다 . –