Нежелательный столбец KEY при перемещении кода из Thrift в CQL - PullRequest
0 голосов
/ 13 июня 2018

Мы работаем с Datastax Enterprise 4.8.8. У нас есть несколько приложений, подключающихся к Cassandra с использованием Hector API (Thrift Communication).

В рамках перехода от Thrift Communication к CQL Communication (с использованием драйверов Datastax Cassandra):Я вижу странную ошибку: добавлен дополнительный столбец KEY в моей схеме ColumnFamily.

ColumnFamily был создан давно с использованием cassandra-cli:

  CREATE TABLE mykeyspace."ColumnFamilyName" (
        key blob,
        column1 text,
        value blob,
        PRIMARY KEY (key, column1)
    ) WITH COMPACT STORAGE
    AND bloom_filter_fp_chance = 0.01
    AND comment = ''
    AND dclocal_read_repair_chance = 0.0
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = 'NONE'
    AND caching = {
        'keys' : 'ALL',
        'rows_per_partition' : 'NONE'
    }
    AND compression = {
        'chunk_length_kb' : 64,
        'sstable_compression' : 'LZ4Compressor'
    }
    AND compaction = {
        'class' : 'SizeTieredCompactionStrategy',
        'min_sstable_size' : 52428800
    };

Выше приведена правильная и ожидаемая схема скопированаиз DevCenter.То же семейство Column Я могу попытаться увидеть схему из cqlsh, я вижу ниже:

cassandra@cqlsh> DESC mykeyspace."ColumnFamilyName";

/*
Warning: Table mykeyspace."ColumnFamilyName" omitted because it has 
constructs not compatible with CQL (was created via legacy API).

Приблизительная структура, для справки: (это не должно использоваться для воспроизведения этой схемы)

CREATE TABLE mykeyspace."ColumnFamilyName" (
    key blob,
    column1 text,
    value blob,
    "KEY" blob,
    PRIMARY KEY (key, column1)
) WITH COMPACT STORAGE
    AND CLUSTERING ORDER BY (column1 ASC)
    AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
    AND comment = ''
    AND compaction = {'min_sstable_size': '52428800', 
       'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}
    AND compression = {'chunk_length_kb': '64', 
       'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND dclocal_read_repair_chance = 0.0
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = 'NONE';
*/

У кого-нибудь была такая проблема?Если да, то есть какое-либо предлагаемое решение без воссоздания стола?Дополнительный столбец KEY виден только через CQLSH, а не из пользовательского интерфейса Devcenter.

Последнее, я даже не могу запустить команду COPY из-за этого дополнительного столбца KEY (так как он является частью ключа раздела).

...