导出/导入整个Cassandra数据库

5
有没有一个命令行工具或简单的脚本可以导出/复制整个Cassandra数据库(表和数据),然后在其他地方导入?
2个回答

9

要获取模式,您可以使用以下内容:

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文件解决方案,仍然需要模式。


3
Cassandra提供了内置的COPYDESCRIBE KEYSPACES命令,可用于此操作。此外,GitHub上有一些更加用户友好的项目,例如https://github.com/gianlucaborello/cassandradump - 该项目受到mysqldump的启发。但是,如果您有大量数据集,这将需要很长时间。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接