쿼리

ksqlDB에는 영구(persistent), 푸시(push), 풀(pull)의 세 가지 쿼리가 있습니다. 

 

영구 쿼리

영구 쿼리는 이벤트 행을 무기한으로 실행하는 서버 측 쿼리입니다. 기존 스트림 또는 테이블에서 새 스트림 및 새 테이블 을 만들어 영구 쿼리를 실행합니다.

Push 쿼리

푸시 쿼리 는 실시간으로 변하는 이벤트를 구독하는  클라이언트에 의해 발행된 쿼리입니다.

푸시 쿼리의 예로 특정 사용자의 지리적 위치를 구독하는 것입니다. 쿼리는 지도 좌표를 요청하는 푸시 쿼리이기 때문에 위치 변경이 발생하는 즉시 클라이언트에 "푸시"됩니다. 이는 프로그래밍 방식으로 제어되는 마이크로서비스, 실시간 앱 또는 모든 종류의 비동기 제어 흐름을 빌드하는 데 유용합니다.

푸시 쿼리는 SQL과 유사한 언어를 사용하여 표현됩니다. 특정 키에 대한 스트림이나 테이블을 쿼리하는 데 사용할 수 있습니다. 또한 푸시 쿼리는 키 조회에만 국한되지 않습니다. 필터, 선택, 그룹화 기준, 파티션 기준 및 조인을 포함한 전체 SQL 세트를 지원합니다.

푸시 쿼리를 사용하면 결과에 대한 구독으로 스트림 또는 구체화된 테이블을 쿼리할 수 있습니다. 스트림을 반환하는 쿼리를 포함하여 모든 쿼리의 출력을 구독할 수 있습니다. 푸시 쿼리는 스트림 또는 구체화된 테이블로 실시간으로 새로운 정보에 조회할 수 있습니다. 비동기식 애플리케이션 흐름에 적합합니다. 요청/응답 흐름은 풀 쿼리를 참조하십시오 .

ksqlDB REST API에 HTTP 요청을 전송하여 푸시 쿼리를 실행하면 API가 무기한 길이의 청크 응답을 다시 보냅니다.

푸시 쿼리의 결과는 지원 Kafka topic에 유지되지 않습니다. Kafka 주제에 대한 쿼리 결과를 유지해야 하는 경우 CREATE TABLE AS SELECT 또는 CREATE STREAM AS SELECT 문을 사용합니다.

Pull 쿼리

풀 쿼리는 기존 RDBS에 대한 쿼리와 같이 "지금"의 결과를 검색하는 클라이언트가 수행한 쿼리입니다.

특정 사용자에 대한 지리적 위치에 대한 풀 쿼리는 현재 지도 좌표를 요청합니다. 풀 쿼리이기 때문에 현재까지의 데이터를 반환되고 연결이 닫힙니다. 이는 페이지 로드 시 사용자 인터페이스를 한 번 렌더링하는 데 이상적입니다. 일반적으로 모든 종류의 동기 제어 흐름에 적합합니다.

풀 쿼리를 사용하면 구체화된 뷰의 현재 상태를 가져올 수 있습니다. 구체화된 뷰는 새 이벤트가 도착하면 점진적으로 업데이트되기 때문에 풀 쿼리는 짧은 수행 시간으로 실행됩니다. 요청/응답 흐름에 매우 적합합니다. 비동기식 애플리케이션 흐름의 경우 푸시 쿼리를 참조하십시오 . 풀 쿼리는 ANSI SQL을 따릅니다.

ksqlDB REST API에 HTTP 요청을 전송하여 pull 쿼리를 실행하면 API가 단일 응답으로 응답합니다.

 

 

'ksqlDB' 카테고리의 다른 글

ksql - Time and Windows - 수정  (0) 2022.01.13
ksql - joins  (0) 2022.01.13
ksql - 테이블  (0) 2022.01.13
ksql - Streams  (0) 2022.01.12
ksql - Materialized Views  (0) 2022.01.12

+ Recent posts