2017-12-11 14 views
0

KTABLE의 모든 현재 항목을 쿼리하는 방법이 있습니까? 페이로드로 REST API에 대한 http 요청을 실행하려고합니다.KSQL - 비 스트리밍 쿼리

{ 
    "ksql": "SELECT * FROM MY_KTABLE;", 
    "streamsProperties": { 
     "auto.offset.reset": "earliest" 
    } 
} 

이며 스트림이 무기한으로 걸려 있습니다. 설명서에 따르면

전통적인 데이터베이스 테이블과 동일하지만 윈도우 화와 같은 스트리밍 의미가 있습니다.

스트리밍하지 않고 현재 데이터 만 필요하고 KTABLE을 일반 캐시 테이블로 간주하면 정기적 인 쿼리를 만들 수 있습니까?

답변

1

KSQL 테이블은 Kafka Streams의 KTable을 사용하므로 KTable의 현재 값에 액세스하려면 스트림 작업의 모든 인스턴스에서 상태 저장소에 액세스해야합니다. Kafka Streams에서는 interactive queries을 사용하여이 작업을 수행 할 수 있지만 KSQL의 대화식 쿼리는 아직 지원하지 않습니다.

KSQL에서 테이블의 현재 상태를 확인하는 한 가지 해결 방법은 Kafka Connect를 사용하여 테이블에 해당하는 카프카 항목을 Postgres 테이블이나 Cassandra 테이블과 같은 외부 테이블로 푸시하는 것입니다. 이 외부 테이블에는 KSQL 테이블의 최신 값이 있습니다.