우리는 우리가이 행에 대한 세포의 대부분에 널 (null)을 삽입 한 600000 행> 우리 주위에있는 카산드라카산드라 널 세포! = 삭제 표시된 세포 수
cqlsh 5.0.1 | Cassandra 2.1.14.1272 | DSE 4.8.7 | CQL spec 3.2.1
을 사용하고 있습니다. 우리는 어제, 오늘, 내일의 날짜와 함께 8000 행을 스캔하는 쿼리를 실행합니다.
Read 101 live and 997 tombstone cells [SharedPool-Worker-1] | 2017-04-20 11:05:02.901000 | 10.74.70.30 | 11297
내가 카산드라에 삽입 널 (NULL)이 그 세포에 대한 삭제 표시를 만들 것을 알고 있지만 왜 난 단지 쿼리가 각 레코드 들고 8K 기록을 반환하는 경우에도 같은 몇 삭제 표시를 볼 수 있습니다 내가 추적을 사용할 때 그러나 나는 단지 찾기 여러 개의 NULL이 있습니까? 이것을 설명 할 수 있을까요? 이 레코드의 TTL은 기본적으로 30 일이므로 TTL로 인해이 8KB의 결과 집합에 삭제 표시를 사용할 수 없습니다.
CREATE TABLE transportation_events.events_for_load_ops_exceptions (
exception_phase text,
exception_date text,
event_id timeuuid,
actual_delivery_ts timestamp,
actual_pickup_ts timestamp,
carrier_due_ts timestamp,
carrier_id text,
carrier_mode text,
carrier_pickup_ts timestamp,
dest_loc_banner_code text,
dest_loc_class_code int,
dest_loc_id int,
dest_loc_name text,
dest_loc_type text,
dest_time_zone text,
destination_city text,
destination_postal_code text,
destination_state text,
destination_street_addr text,
exception_type text,
late_reason_code text,
load_id text,
load_type text,
loc_time_zone text,
orig_loc_id int,
orig_loc_name text,
orig_loc_type text,
orig_time_zone text,
origin_city text,
origin_postal_code text,
origin_state text,
origin_street_addr text,
reason_code_category text,
reason_code_desc text,
scheduled_delivery_ts timestamp,
scheduled_pickup_ts timestamp,
status_reason_code text,
stop_loc_id int,
stop_loc_name text,
stop_loc_type text,
stop_seq_num int,
stop_type text,
triggered_by text,
PRIMARY KEY ((exception_phase, exception_date), event_id)
) WITH CLUSTERING ORDER BY (event_id DESC)
내가 널 (null)을 삽입 한 것입니다 CQL을 통해 볼 수 있습니다
import com.datastax.driver.mapping.Mapper;
mapper.save(resultRecord);
에 의해 카산드라에 저장하고 :
EDIT 1
내 스키마입니다.
쿼리 나는 아마도 압축이 삭제 표시의 대부분을 제거했습니다
select * from transportation_events.events_for_load_ops_exceptions where exception_phase='PLANNING' AND exception_date IN ('2017-04-19','2017-04-20','2017-04-21');
을 추적입니까? 다른 설명이 있습니까? EDIT 2 삭제 표시와 그 원인을 한꺼번에 요약하여 요약하여 볼 수있는 방법이 있다면? 테이블을위한 묘비 덤프처럼?
테이블의 스키마는 무엇입니까? – DineMartine
그리고 정확히 어떻게 NULL 값을 삽입 했습니까? 지금까지 Cassandra는 "unset"매개 변수와 NULL 매개 변수를 구별 할 수 없기 때문에 준비된 명령문을 사용할 때 NULL이 결과로 표시됩니다. C * 버전 <= 2.2.0은 insert 문에 힌트를 제공하여 C *에게 [NULL을 설정하지 않음] (https://issues.apache.org/jira/browse/CASSANDRA-7304)을 처리하도록 알려줍니다. – Ralf
dse API의 mapper.save를 사용하면 자동으로 NULL이 삽입됩니다. 나는 CQLSH를 사용하여 행을 쿼리 할 때 NULL을 볼 수 있습니다. – Tanvi