是否有命令行工具或简单脚本可以导出/复制整个Cassandra数据库(表和数据),然后导入到其他地方
答案 0 :(得分:6)
要获取架构,您可以使用:
cqlsh -e "DESCRIBE SCHEMA" > schema.cql
关于数据导出,如果您只是玩游戏,可以测试Mandraenke发布的GitHub项目。但是如果你在非安全的环境(生产)中这样做,我推荐使用该项目的AGAINST。这不安全,他们甚至在项目的页面上写道:
免责声明:大部分时间,你真的不应该使用它。 它脆弱,不可扩展,低效且冗长。
最安全的方法是编写脚本以使用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文件解决方案,您仍然需要架构。
答案 1 :(得分:2)
Cassandra提供了COPY
和DESCRIBE KEYSPACES
内置功能。此外,GitHub上有几个用户友好的项目,例如https://github.com/gianlucaborello/cassandradump - 受mysqldump的启发。
但如果你有一个庞大的数据集,这将花费很长时间。