Я столкнулся с некоторой специфической проблемой в DSE 3.2.4, вот структура моей таблицы,
CREATE TABLE tbl_samp (
PK text,
CK1 varint,
CK2 text,
CK3 varint,
value float,
PRIMARY KEY (PK, CK1, CK2, CK3)
) 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
read_repair_chance=0.100000 AND
replicate_on_write='true' AND
populate_io_cache_on_flush='false' AND
compaction={'class': 'SizeTieredCompactionStrategy'} AND
compression={'sstable_compression': 'SnappyCompressor'};
Я сбрасываю огромное количество данных из свиньи в кассандру, используя CqlStorage();
У меня есть около 1,12 миллиона различных комбинаций (PK, CK1, CK2, CK3)
поэтому, когда я закончил запускать PIG
вот мои свиные отношения
reqDataCQL = foreach reqData generate TOTUPLE(TOTUPLE('PK',PK), TOTUPLE('CK1',CK1), TOTUPLE('Ck2',CK2), TOTUPLE('CK3',Ck3)), TOTUPLE(value);
store reqDataCQL into 'cql://MyKeyspace/tbl_samp?output_query=update+MyKeyspace.tbl_samp+set+value+%3D+%3F' using CqlStorage();
я вижу следующее
Input(s):
Successfully read 34327 records from: "/user/k/Input.txt"
Successfully read 4 records from: "cql://MyKeySpace/mappingtable"
Output(s):
Successfully stored 1128902 records in: "cql://MyKeySpace/tbl_samp?output_query=update+conflux.to1+set+value+%3D+%3F"
Но когда я запрашиваю таблицу tbl_samp, я вижу только 8600 записей, которые представляют собой комбинацию (PK и CK1)
вот мой запрос на подсчет
select count(1) from tbl_samp limit 2000000;
count
-------
8681
Есть ли пробел в моем понимании Composite Key?
Я знаю, что PK — это мой RowKey, а комбинации (CK1, CK2, CK3) со значением будут именем моего столбца.
Мое понимание Cassandra Composite таково:
PK,(CK1|CK2|CK3|value:1),(CK11|CK22|CK33|value:11)
PK1,(CK111|CK222|CK333|value:111)
Пожалуйста помоги мне с этим