2014-06-09 7 views
1

저는 SQL이없는 최신 버전이고 내 배경은 sql db (mysql)을 기반으로합니다. 지난 달 큰 데이터로 작업하기 시작했고 cassandra를 no-SQL db로 선택했습니다.cassandra - cql - csv 파일에서 가져온 데이터를 카운트하고 그룹화하십시오.

이 내 dev에 환경입니다 :

  • 우분투 12.04 64 비트
  • cqlsh 4.1.1
  • 카산드라 2.0.6
  • CQL 사양 3.1.1
  • 드리프트 프로토콜 19.39.0

내 입력은 많은 열이있는 일일 csv 파일이므로 가져와야합니다. 이 열 중 일부만 있습니다. CSV 파일 USER_ID => 텍스트

  • col_A => INT
  • col_B => INT
  • col_C => INT
  • other_col => 가져 오지 않은
  • 의 구조 ... ..
  • .....
  • .....
  • other_col =이> 가져올 수 없습니다

csv 행을 가져 오기위한 조건은 무엇입니까? user_id + col_A + col_B + col_C 열의 값은 고유해야합니다.

는 그럼 난 CSV 파일의 열을 가져 오는 동안

CREATE TABLE unique_value (
    user_id text, 
    col_A int, 
    col_B int, 
    col_C int, 
    PRIMARY KEY (user_id, col_A, col_B, col_C) 
) WITH 
    bloom_filter_fp_chance=0.010000 AND 
    caching='KEYS_ONLY' AND 
    comment='' AND 
    dclocal_read_repair_chance=0.000000 AND 
    gc_grace_seconds=864000 AND 
    index_interval=128 AND 
    read_repair_chance=0.100000 AND 
    replicate_on_write='true' AND 
    populate_io_cache_on_flush='false' AND 
    default_time_to_live=0 AND 
    speculative_retry='99.0PERCENTILE' AND 
    memtable_flush_period_in_ms=0 AND 
    compaction={'class': 'SizeTieredCompactionStrategy'} AND 
    compression={'sstable_compression': 'LZ4Compressor'}; 

이 조합의 단지 고유 값을 삽입 할 것 "USER_ID + col_A + col_B + col_C"많은 기본 키 테이블을 만들 생각 그게 내가 원하는거야.

가져온 후 고유 한 user_id (중복되지 않음)의 총 수를 col_B의 값으로 그룹화하려면 테이블을 쿼리해야합니다. SQL에서 쿼리는

SELECT COUNT(b.user_id), b.col_B(
(SELECT COUNT(user_id) AS is_user_exclusive, user_id, col_B FROM unique_value 
GROUP BY col_B 
HAVING is_user_exclusive < 2) AS b 
GROUP BY b.col_B 

이어야합니다. 그러나 여전히 올바른 cql 쿼리 또는 아마도 올바른 데이터 모델링을 찾을 수 없습니다.

어떤 힌트가 있습니까?

미리 감사드립니다.

답변

0

카운터를보세요!

http://www.datastax.com/documentation/cql/3.0/cql/cql_using/use_counter_t.html

당신은

그래서 때마다 (카운터, USER_ID 텍스트, col_b의 INT, PRIMARY KEY (USER_ID, col_b를) 계산) 테이블 mycounts을 만들이 계산을

을 수행하는 다른 테이블을 만들 수 있습니다 unique_values ​​테이블에 mycounts 테이블에 삽입을 삽입합니다.그런 다음 질의 할 때 mycounts에서 *를 선택하십시오. 이게 도움이 되길 바란다!!