나는 실수로 Cassandra 2 상자를 Cassandra 3으로 업그레이드했습니다. 데이터는 그대로 유지되었지만 다른 도구와의 호환성을 위해 다시 Cassandra 2로 가져와야합니다. 여기에 게시 된 How to downgrade Cassandra 3.0.0 -> 2.x?의 게시물을 읽었을 때 수동으로 데이터를 플로팅해야하는 불편을 겪었습니다 (많은 데이터가 아닙니다).Cassandra 2로 다운 그레이드
apt-get dist-upgrade
을 사용하여 업그레이드가 실수로 수행되었지만 이후에 아무 것도 수행되지 않았습니다. nodetool
을 사용하는 것에 대한 의견이 있습니다. apt-get process
의 일부가 아니라면 실행되지 않았습니다. 나는 Cassandra를 관리하는 것에 대해서 0에 대해서 알고 있습니다.
:
[cqlsh 4.1.1 | Cassandra 2.0.17 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
카산드라 3 서버 버전에 :
[cqlsh 5.0.1 | Cassandra 3.0.6 | CQL spec 3.4.0 | Native protocol v4]
내가 모두를 내보내려면
COPY
명령을 사용하여
데이터을 CSV 파일로 변환하고 키 공간에서
DESC
을 사용하여 모든 테이블과 해당 헤더 및 유형을 표시합니다. 나는 키 스페이스와 테이블을 다시 나는
DESC
명령에서 만든
.cql
파일을 사용하려고하면
, 그것은 실패
cqlsh -u cassandra -p cassandra -f "mykeyspace.cql"
mykeyspace.cql:22:Bad Request: Unknown property 'crc_check_chance'
mykeyspace.cql:40:Bad Request: Unknown property 'crc_check_chance'
mykeyspace.cql:57:Bad Request: Unknown property 'crc_check_chance'
...
내가
cqlsh
에 목록을 검색 할 수 있습니다로 키 스페이스를 만드는 나타납니다
하지만 테이블이 없으므로 CSV에서 데이터를 가져올 수 없습니다.
아마도 crc_check_chance가 3.x에서 도입 된 새로운 것이라 생각 했으므로 키 공간을 삭제 한 후 .cql
파일을 다시 실행하려고했지만 다른 옵션에서는 여전히 실패합니다.
이 데이터를 다시 Cassandra 2로 가져 오려면 어떻게해야합니까?
편집 : 여기 내 (현재)에서이 수출에서 하나 개의 테이블 카산드라 3 예는 다음과 같습니다
CREATE TABLE mykeyspace.users (
username text PRIMARY KEY,
first_name text,
last_name text,
roles set<text>
) WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
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 = '99PERCENTILE';
이 실패,하지만 난 다음 필드를 제거하는 경우,이 테이블 구축 할 것 같다
를 테이블이 생성 되더라도AND crc_check_chance = 1.0
AND min_index_interval = 128
AND max_index_interval = 2048
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
는 데이터는 나에게 올바르게 명령을 사용하지 않을 수 있습니다, CSV에서 가져 실패
cqlsh> USE mykeyspace;
cqlsh:mykeyspace> COPY users FROM '/home/user/cassandra/users.csv';
Bad Request: line 1:118 no viable alternative at input ')'
Aborting import at record #0 (line 1). Previously-inserted values still present.
당신은 이미 nodetool upgradedesktop을 실행 했습니까? –
fromanator
명시 적으로. 또한 apt-get 업그레이드 시퀀스가 포함되어 있는지 알 수 없습니다. – Andrew