У меня есть простое требование в SQL мире я хочу создатьCassandra Композитный Колонка Family
CREATE TABLE event_tracking (
key text,
trackingid timeuuid,
entityId bigint,
entityType text
userid bigint
PRIMARY KEY (key, trackingid)
)
Мне нужно кли создать команду, которая я не в состоянии сделать это. Мне нужно создать столбец семью через кли, как свинья не может читать колонки семья создается через cqlsh (ДУХ)
Вот что я пытался и техника его подводит работал
create column family event_tracking
... WITH comparator='CompositeType(TimeUUIDType)'
... AND key_validation_class=UTF8Type
... AND default_validation_class = UTF8Type;
1) Я не знаю, почему это добавить столбец значение для это когда я вижу это в cqlsh
CREATE TABLE event_tracking (
key text,
trackingid timeuuid,
value text,
PRIMARY KEY (key, trackingid)
) WITH COMPACT STORAGE AND
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'};
2) Я использую asynatax для вставки строки.
OperationResult<CqlResult<Integer, String>> result = keyspace.prepareQuery(CQL3_CF)
.withCql("INSERT INTO event_tracking (key, column1, value) VALUES ("+System.currentTimeMillis()+","+TimeUUIDUtils.getTimeUUID(System.currentTimeMillis())+",'23232323');").execute();
, но как только я пытаюсь добавить динамические столбцы, не в состоянии признать
OperationResult<CqlResult<Integer, String>> result = keyspace.prepareQuery(CQL3_CF)
.withCql("INSERT INTO event_tracking (key, column1, value, userId, event) VALUES ("+System.currentTimeMillis()+","+TimeUUIDUtils.getTimeUUID(System.currentTimeMillis())+",'23232323', 123455, 'view');").execute();
выглядит как я не могу добавить динамические столбцы через cql3
3) Если я пытаюсь добавить новую колонку через cql3
alter table event_tracking add eventid bigint;
это дает мне
Bad Request: Cannot add new column to a compact CF
Спасибо Тео. Мое намерение состоит в том, чтобы создать семейство столбцов так долго (System.getCurrentMilliSeconds()), идентификатор отслеживания как uuid и сделать их как составной, а затем добавить сущность, тип сущности, идентификатор пользователя и событие в качестве динамического столбца.Цель состоит в том, что даже если мы получим одновременный запрос в одно и то же время, мы можем записать события в одной строке. Надеюсь, что я получу какой-то смысл. – plzdontkillme
Могу ли я создать CREATE TABLE event_tracking ( key text, trackingid timeuuid – plzdontkillme