如何从 Cassandra 或 Cassandra cqlsh 提示符导入和导出架构?
导出键空间架构:
cqlsh -e "DESC KEYSPACE user" > user_schema.cql
导出整个数据库架构:
cqlsh -e "DESC SCHEMA" > db_schema.cql
要导入模式,请在“user_schema.cql”(“db_schema.cql”)位置(或者您可以指定完整路径)打开终端并打开 cqlsh shell。然后使用以下命令导入键空间架构:
source 'user_schema.cql'
导入完整数据库架构:
source 'db_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
如果使用 cassandra-cli,您可以使用“show schema;”命令转储整个架构。您可以通过运行“use keyspace;”来限制特定的键空间首先。
您可以将输出存储在文件中,然后使用“cassandra-cli -f filename”导入。
如果使用 cqlsh,您可以使用“描述架构”命令。您可以使用“描述密钥空间keyspace”来限制密钥空间。
您可以将其保存到文件中,然后使用“cqlsh -f filename”导入。
对于将来的人来说,只是为了在“CassandraHost”服务器中使用“myschema”获取架构/键空间的 ddl。
echo -e "use myschema;\nDESCRIBE KEYSPACE;\n" | cqlsh CassandraHost > mySchema.cdl
您可以使用以下命令仅导入 DDL(不含数据):
cqlsh CassandraNEWhost -f mySchema.cdl
cqlsh -u <user-name> -e "DESC KEYSPACE user" > user_schema.cql
将提示输入密码。
我目前正在使用 cassandra 1.1 并正在转向 1.2
对于较旧的 Cassandra 版本(<2.0), I found the below to be a handy way:
$ cqlsh -f testFile > user_schema_export.cql
用途:
cqlsh [options] [host [port]]
CQL Shell for Apache Cassandra
Options:
-f FILE, --file=FILE Execute commands from FILE, then exit
testFile 可以根据我们的密钥空间需要包含 DESC 命令。
$ vagrant@vagrant-cass-VM:/cassandra/bin$ cat testFile
use testkeyspace;
DESC KEYSPACE testkeyspace;