2017-12-12 1 views
0

PipelineDB 및 스트림 분석에 새로운 기능이 있습니다.Slip Windows와 PipelineDB의 TTL을 비교

이 두 가지 SQL 명령이 있습니다.

CREATE CONTINUOUS VIEW timing_hashtags WITH (sw = '1 minutes') 
AS SELECT h, minute(arrival_timestamp) as minuteOfArrival, COUNT(*) as quantity 
FROM hashtag_stream GROUP BY h, minuteOfArrival; 

CREATE CONTINUOUS VIEW timing_hashtagsTTL WITH (ttl = '1 minute', ttl_column = 'minuteOfArrival') 
AS SELECT h, minute(arrival_timestamp) as minuteOfArrival, COUNT(*) as quantity 
FROM hashtag_stream GROUP BY h, minuteOfArrival; 

내가 모두 연속 뷰에서 다음 쿼리를 실행

;

SELECT * FROM timing_hastags order by minuteOfArrival desc; 

결과는 timing_hastags 및 timing_hastagsTTL 연속보기 모두에서 동일합니다.

enter image description here

것은 누군가가 나에게 "TTL"연속보기에 "SW"연산자의 사용 사이의 차이를 이해하는 데 도움이 바랍니다 수 있습니다.

감사합니다.

답변

0

내가 잘하면 둘 사이의 구분이 명확하게 여기에 각 하나를 정의 할 수 있습니다 :

TTL -이 이전의 모든 행이 백그라운드에서 삭제 될 수 있습니다 사신에 대한 힌트를. 따라서 TTL 만료 된 행은 사신이 제거하지 못하면 읽기 시간에 계속 표시 될 수 있습니다.

슬라이딩 창 - 읽기 전용 시간에만이 창 내의 데이터를 고려하십시오. 지정된 창 외부의 데이터는 읽기 시간에 표시되지 않습니다. 슬라이딩 윈도우는 TTL을 내부적으로 사용하여 이전 행을 만료 시키며 읽기 시간에 슬라이딩 윈도우를 통해 최종 집계를 수행합니다.

연속보기에서 "ttl"및 "sw"연산자 사용의 차이점을 이해할 수 있습니까? 슬라이딩 윈도우 CV는 타임 스탬프 열을 포함 할 때마다

CREATE CONTINUOUS VIEW timing_hashtags WITH (sw = '1 minutes') 
    AS SELECT h, minute(arrival_timestamp) as minuteOfArrival, COUNT(*) as quantity 
FROM hashtag_stream GROUP BY h, minuteOfArrival; 

, 그냥 아무 슬라이딩 윈도우와 TTL을 사용하는 것이 거의 항상 낫다. 그 이유는 마지막 1 분에 걸친 최종 집계가 읽기 시간에 수행되기 때문입니다. 이는 각 행이 이미 분 수준에서 집계 되었기 때문에 불필요한 것입니다. 내부적으로 SW CV는 1 분보다 높은 단위 (예 : 분당 많은 행이있을 것임)로 집계되고 읽기 시간에 마지막 순간에 해당 행을 집계합니다.

이 CV 정의에서 minuteOfArrival을 제거하면 SW 의미가 더 명확 해집니다. minuteOfArrival이 없어도 CV에서 읽을 때 마지막 순간의 데이터 만 볼 수 있습니다.

+0

이 명확한 답변에 감사드립니다. –

관련 문제