在 cassandra 中导入和导出架构

问题描述 投票:0回答:6

如何从 Cassandra 或 Cassandra cqlsh 提示符导入和导出架构?

database cassandra schema database-schema cqlsh
6个回答
69
投票

导出键空间架构:

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'

14
投票

一切都直接来自命令行。无需进入 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

12
投票

如果使用 cassandra-cli,您可以使用“show schema;”命令转储整个架构。您可以通过运行“use keyspace;”来限制特定的键空间首先。

您可以将输出存储在文件中,然后使用“cassandra-cli -f filename”导入。

如果使用 cqlsh,您可以使用“描述架构”命令。您可以使用“描述密钥空间keyspace”来限制密钥空间。

您可以将其保存到文件中,然后使用“cqlsh -f filename”导入。


12
投票

对于将来的人来说,只是为了在“CassandraHost”服务器中使用“myschema”获取架构/键空间的 ddl。

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

您可以使用以下命令仅导入 DDL(不含数据):

cqlsh  CassandraNEWhost -f mySchema.cdl

0
投票

有认证

cqlsh -u <user-name> -e "DESC KEYSPACE user" > user_schema.cql

将提示输入密码。


0
投票

我目前正在使用 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;
© www.soinside.com 2019 - 2024. All rights reserved.