2013-03-07 2 views
0

, 나는 주어진 행에 대한 항목을 추가astyanax는 정렬 된 열 이름을 반환 할 수 있습니까?</p> <pre><code>final ColumnListMutation<String> columnList = m.withRow(columnFamily, key); columnList.putEmptyColumn(columnName); </code></pre> <p>나중에 내가 가진 내 모든 열을 검색 : 다음과 같이 com.netflix.astyanax를 사용

final OperationResult<ColumnList<String>> operationResult = keyspace 
      .prepareQuery(columnFamily).getKey(key).execute(); 
    operationResult.getResult().getColumnNames(); 

올바르게 돌려주는 다음의 모든 열이 나는가 추가되었지만 열은 데이터베이스에 입력 된 시점에 따라 정렬되지 않습니다. 각 열에는 타임 스탬프가 연결되어 있으므로 정확히 수행 할 수있는 방법이 있어야하지만 볼 수는 없습니다. 거기 있니?

참고 :이 없으면, 난 항상 위의 코드를 변경할 수 있습니다

columnList.putColumn(ip,new Date()); 

다음 열 값을 검색, 적절하게 주문하지만 각 이후, 성가신 비효율적, 그리고 바보 같다 열에 이미 타임 스탬프가 있습니다.

답변

0

난 당신이 열 조각을 할 경우 PlayOrm에서 알다시피 순서대로 반환합니다. 사실, 파티션에서 S-SQL을 사용하고 기본적으로 요청 순서에 따라 순서가 바뀌거나 역순으로 나타나는 열 조각을 일괄 적으로 일괄 처리하는 역할을합니다. 0에서 MAXLONG까지 열 조각을 할 수 있습니다.

행을 가져 오는 것이 확실하지 않습니다. 나는 그것을 시도하지 않았다.

아, 그리고 PlayOrm 정말 관계형 더하지 noSql'ish 정말 그것에 의해 입증 된 바와 같이 비록 아 스티 아낙 스의 상단에 바로 매핑 층은 "

http://buffalosw.com/wiki/Patterns-Page/

+0

감사합니다. 이미 com.netflix.astyanax 라이브러리를 사용하여 작성한 코드가 꽤 있습니다. PlayOrm 라이브러리에 의존한다면 그 코드는 모두 계속 실행됩니까? 그리고 내가 astyanax 라이브러리를 사용한다면 확실히 제 문제에 대한 해결책이 없는지 (제가 제안한 대안을 제외하고) 알 수 있습니까? – Lolo

+0

그것은 hibernate와 매우 유사하므로 nosql 패턴을 따를 때를 제외하고 최대 절전 모드를 좋아한다. 당신이 당신의 entites를 정확하게 정의하는 경우에, 그것은 정확하게 정확하게지도로 나타낼 것입니다. 또한 최대 절전 모드와 같이 나란히 두 가지 작업을 수행하고 astyanax를 게임 플레이 모드로 넘어가는 것을 막을 수있는 방법은 없습니다. Playyrm과 달리 Astyanax에는 플러시 기능이있어 모든 쓰기가 1,2,3 대신에 끝납니다 (즉, 쓰기 전에 쓰기가 실패한 경우 2 ... 데이터 손상이 발생합니다.) –

0

카산드라에 열을 주문하지 않습니다 패턴 페이지입니다 게재 신청서 "를 제출해야합니다.

열은 항상 최하위로 정렬됩니다. 또한 cassandra가 열 이름을 해석하는 방법에 따라 다릅니다. 열 패밀리를 정의 할 때 설정 한 비교기로 해석을 정의 할 수 있습니다.

당신이 준 것부터 당신은 String timestamp 값을 사용합니다. 예를 들어 간단히 타임 스탬프를 직렬화 한 경우 "123141"및 "231"은 UTF8Type 비교기 "231"> "123131"을 사용합니다.

더 나은 접근 방식 : 시간 기반 UUID를 열 이름으로 사용하십시오. Cassandra의 시계열 데이터에 대한 많은 예제가 제안합니다. 그런 다음 UUIDType 비교자를 사용할 수 있습니다.

CREATE COLUMN FAMILY timeseries_data 
WITH comparator = UUIDType 
AND key_validation_class=UTF8Type;