在 cassandra 中导入和导出模式

Posted

技术标签:

【中文标题】在 cassandra 中导入和导出模式【英文标题】:Import and export schema in cassandra 【发布时间】:2013-05-02 16:18:18 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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

如果使用 cqlsh,您可以使用“描述架构”命令。您可以使用 'describe keyspace keyspace' 限制键空间。

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

【讨论】:

嗨,理查德,感谢您的回复。您已在两个服务中指定导入密钥空间。但是,我需要为如何在 cassandra-cli 和 cqlsh 上导入和导出密钥空间提供服务?请提供带有语法的信息。 @vpggopal 我想你可能需要为此付钱给他。 如果您使用 cassandra-cli 创建架构,请使用我在上面编写的 cassandra-cli 命令。如果您使用 cqlsh,则使用 cqlsh 命令。不要同时使用两者,并注意 cassandra-cli 不会在其输出中包含 cql3 表。 谢谢你 Richard,如何使用命令在 cqlsh 中导出模式? @vpggopal :您可以使用echo -e "describe keyspace <keyspace>;\n" | cqlsh > <keyspace>.shema 轻松获取文件中的架构【参考方案2】:

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

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

您可以使用以下方法仅导入 DDL(无数据):

cqlsh  CassandraNEWhost -f mySchema.cdl

【讨论】:

这仅适用于兼容版本的远程主机。【参考方案3】:

导出键空间架构:

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 之后包含 IP/主机名,因为我们的实例在配置中使用了 rpc_address)。 我正在尝试导出我的名为 crmdata 的架构及其数据,你能告诉我我需要在哪里运行这个 cmd cqlsh -e "crmdata" > db_schema.cql【参考方案4】:

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

【讨论】:

【参考方案5】:

有认证

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

密码将被提示。

【讨论】:

以上是关于在 cassandra 中导入和导出模式的主要内容,如果未能解决你的问题,请参考以下文章

如何在Chrome中导入和导出密码

我们可以从 dll 中导入和导出函数吗

如何使用 Blazor 框架在前端浏览器中导入和导出 Excel

为什么cassandra导入架构的速度较慢

如何在 Vue 单文件组件中导入和使用图片?

如何在 material-ui 主题中导入和使用自定义字体?