2013-05-08 5 views

답변

12

cassandra-cli를 사용하는 경우 'show schema;'를 사용할 수 있습니다. 명령을 사용하여 전체 스키마를 덤프하십시오. '키 스페이스 사용'을 실행하여 특정 키 공간으로 제한 할 수 있습니다. 먼저.

출력을 파일에 저장 한 다음 'cassandra-cli -f 파일 이름'으로 가져올 수 있습니다.

cqlsh를 사용하는 경우 'describe schema'명령을 사용할 수 있습니다. 'describe keyspace keyspace'키 공간으로 제한 할 수 있습니다.

파일로 저장 한 다음 'cqlsh -f 파일 이름'을 사용하여 가져올 수 있습니다.

+0

안녕 리처드, 답장을 보내 감사합니다. 두 서비스 모두에서 키 공간 가져 오기를 지정했습니다. 하지만, 나는 cassandra-cli와 cqlsh에서 키 공간을 가져오고 내보내는 방법에 대한 두 가지 서비스가 필요합니다. 구문과 함께 정보를 제공해주십시오. – vpggopal

+0

@vpggopal 나는 그 돈을 지불해야 할 것 같아. –

+0

cassandra-cli를 사용하여 스키마를 만든 경우 위에서 작성한 cassandra-cli 명령을 사용하십시오. cqlsh를 사용한 경우 cqlsh 명령을 사용하십시오. 둘 다 사용하지 말고 cassandra-cli는 출력에 cql3 테이블을 포함하지 않습니다. – Richard

10

앞으로 올 사람에게는 "CassandraHost"서버에서 "myschema"로 스키마/키 공간에 대한 ddl을 얻으십시오.

echo -e "use myschema;\nDESCRIBE KEYSPACE;\n" | cqlsh CassandraHost > mySchema.cdl 

하고 (데이터없이) 단지 DDL을 가져올를 사용할 수 있습니다 :

cqlsh CassandraNEWhost -f mySchema.cdl 
+0

호환되는 버전 인 경우 원격 호스트에서만 작동합니다. –

44

이 키 스페이스 스키마를 내보내려면 :

cqlsh -e "DESC SCHEMA" > db_schema.cql 
:

cqlsh -e "DESC KEYSPACE user" > user_schema.cql 

전체 데이터베이스 스키마를 내보내려면

스키마 가져 오기 'user_schema.cql'('db_schema.cql') 위치의 열린 터미널 (또는 전체 경로를 지정할 수 있음) 및 cqlsh 쉘을 엽니 다. 그런 다음 키 스페이스 스키마를 가져 오려면 다음 명령을 사용하여 명령 줄에서 바로

source 'db_schema.cql' 
+1

감사합니다. 완벽하게 작동합니다! (우리 인스턴스는 config에서 rpc_address를 사용하기 때문에 cqlsh 뒤에 IP/hostname을 포함해야했습니다.) – Jess

+0

내 데이터를 사용하여 crmdata라는 스키마를 내보내려고합니다.이 cmd를 실행해야하는 곳을 알려주십시오.'cqlsh -e "crmdata"> db_schema.cql' – ZAJ

5

모든 :

source 'user_schema.cql' 

는 전체 데이터베이스 스키마를 가져올 수 있습니다. cqlsh에 갈 필요가 없습니다.

가져 오기 스키마 (.cql 파일) :

$ cqlsh -e "SOURCE '/path/to/schema.cql'" 

내보내기 키 스페이스 :

$ cqlsh -e "DESCRIBE KEYSPACE somekeyspace" > /path/to/somekeyspace.cql 

수출 데이터베이스 스키마 :

$ cqlsh -e "DESCRIBE SCHEMA" > /path/to/schema.cql 
관련 문제