2017-04-18 7 views
0

나는 카산드라에서 가장 최근의 행을 인출 할 수있는 가장 좋은 방법은 다음과 같은 내 테이블을 만드는 것을 이해 :카산드라 CQL : 오름차순으로 "가장 최근"행을 N을 선택

CREATE TABLE IF NOT EXISTS data1(
       asset_id int 
       date timestamp, 
       value decimal, 
       PRIMARY KEY ((asset_id), date) 
      ) WITH CLUSTERING ORDER BY (date desc); 

그리고 1000 개 최근의 데이터를 선택 다음을 통한 상품 :

select * from data1 where asset_id = 8 limit 1000; 

클라이언트는 오름차순으로 데이터를 요구합니다. 서버 쪽이 파이썬입니다. 코드 (즉 파이썬)가 아닌 CQL로 결과를 반전시킬 수 있습니까? 당신은 n 번째 행의 날짜를 제공 할 수있는 경우 https://docs.datastax.com/en/cql/3.1/cql/cql_using/useColumnsSort.html

+0

는, 당신은 그냥으로 CQL –

+0

에서 오름차순을 주문할 수 있습니다 –

+0

결과 집합을 반복 할 것이라고 가정합니다. 역순으로 반복 할 수 없습니까? – xmas79

답변

1

당신이 BY 절 여기에 해당

select * from data1 where asset_id = 8 ORDER BY date asc limit 1000; 

더 많은 정보를 순서를 사용하여 시도 되세요 여기에서이 주제에 대한 흥미로운 토론을 할 수 있습니다 : https://issues.apache.org/jira/browse/CASSANDRA-4004

+1

이것은 오름차순으로 가장 오래된 1000 행을 반환하지만 Shay는 오름차순으로 1000 행을 최근에 가져 오려고합니다. –

+0

전화가 잘 되었기 때문에 그녀가 성취하려는 것을 잘못 읽었습니다. 그 경우 대답은 No. – bechbd

+0

입니다. 예, 마지막으로 입력 한 1000 개의 행이 필요합니다. – Shay