2013-04-01 6 views
0

Я пытаюсь сбросить схему пространства ключей Cassandra, которое можно использовать для импорта в другое пространство ключей, например, для резервного копирования пространства ключей cassandra и восстановления его в другое пространство ключей с той же схемой.Cassandra CQL clone keyspace schema

Я использую cqlsh:

[cqlsh 2.3.0 | Cassandra 1.2.2 | CQL spec 3.0.1 | Thrift protocol 19.35.0] 

Я сначала создать схему с КЛАСТЕРИЗАЦИЕЙ ПОСЛЕДОВАТЕЛЬНОСТЬЮ отметки времени спусков:

DROP KEYSPACE mailbox; 

CREATE KEYSPACE mailbox 
    WITH REPLICATION = { 'class': 'SimpleStrategy', 'replication_factor': '1' }; 

USE mailbox; 

CREATE TABLE messages (
    id uuid, 
    user_id uuid, 
    contents varchar, 
    created timestamp, 

    PRIMARY KEY (id, created) 
) 
WITH CLUSTERING ORDER BY (created DESC); 

Затем я использую функцию CQL, чтобы сбросить то, что я думал, что будет действительный CQL3:

cqlsh:mailbox> describe keyspace mailbox; 

CREATE KEYSPACE mailbox WITH replication = { 
    'class': 'SimpleStrategy', 
    'replication_factor': '1' 
}; 

USE mailbox; 

CREATE TABLE messages (
    id uuid, 
    created 'org.apache.cassandra.db.marshal.ReversedType'<timestamp>, 
    contents text, 
    user_id uuid, 
    PRIMARY KEY (id, created) 
) 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'}; 

Когда я пытаюсь импортировать это обратно в cqlsh, я получаю follo ошибка крыла:

Bad Request: line 3:56 mismatched input '<' expecting ')' 
text could not be lexed at line 16, char 14 

Я считаю, что это не в состоянии разобрать созданное определение столбца (который изначально был создан с КЛАСТЕРИЗАЦИЕЙ ORDER BY):

created 'org.apache.cassandra.db.marshal.ReversedType'<timestamp> 

Есть ли какой-либо другой способ для сброса схемы данное пространство ключей?

ответ

0

Хм .. думаю, эта проблема разрешена в cassandra 1.2.5, и вы используете cassandra 1.2.2 https://issues.apache.org/jira/browse/CASSANDRA-5528 и еще лучше, обновите до cassandra 2.0, потому что здесь протестировано, отлично работает в cassandra 2.0.2.

В качестве дополнительной заметки вы также можете следить за версией cql. http://cassandra.apache.org/doc/cql3/CQL.html#Versioning