【发布时间】:2018-07-05 07:21:09
【问题描述】:
是否有可以导出/复制整个 Cassandra 数据库(表和数据)然后导入其他地方的命令行工具或简单脚本
【问题讨论】:
标签: cassandra
是否有可以导出/复制整个 Cassandra 数据库(表和数据)然后导入其他地方的命令行工具或简单脚本
【问题讨论】:
标签: cassandra
要获取架构,您可以使用:
cqlsh -e "DESCRIBE SCHEMA" > schema.cql
关于数据导出,如果你只是玩玩,你可能会测试 Mandraenke 发布的 GitHub 项目。但是,如果您在非安全环境(生产)中执行此操作,我建议您反对使用该项目。这不安全,他们甚至在项目页面上写了:
免责声明:大多数时候,您真的不应该使用它。 它脆弱、不可扩展、低效且冗长。
最安全的方法是编写脚本以使用COPY 命令输出数据,并遍历表。查看这篇可能会有所帮助的文章:https://www.datastax.com/dev/blog/simple-data-importing-and-exporting-with-cassandra
本文还介绍了如何使用相同的命令导入数据。
或者,您可以将 SSTable 文件复制到要设置数据库的新位置,然后使用 sstableloader:http://docs.datastax.com/en/cassandra/2.1/cassandra/tools/toolsBulkloader_t.html
不要忘记,即使您选择 SSTable 文件解决方案,您仍然需要架构。
【讨论】:
Cassandra 提供了 COPY 和 DESCRIBE KEYSPACES 内置,您可以使用它。 GitHub 上还有几个对用户更友好的项目,例如 https://github.com/gianlucaborello/cassandradump - 受 mysqldump 启发。
但如果你有一个庞大的数据集,这将需要很长时间。
【讨论】: