导出/导入整个cassandra数据库

时间:2018-01-25 22:43:29

标签: cassandra

是否有命令行工具或简单脚本可以导出/复制整个Cassandra数据库(表和数据),然后导入到其他地方

2 个答案:

答案 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提供了COPYDESCRIBE KEYSPACES内置功能。此外,GitHub上有几个用户友好的项目,例如https://github.com/gianlucaborello/cassandradump - 受mysqldump的启发。

但如果你有一个庞大的数据集,这将花费很长时间。