有没有一个命令行工具或简单的脚本可以导出/复制整个Cassandra数据库(表和数据),然后在其他地方导入?
要获取模式,您可以使用以下内容:
cqlsh -e "DESCRIBE SCHEMA" > schema.cql
免责声明:大多数情况下,您真的不应该使用这个工具。 它很脆弱、不可扩展、效率低下且冗长。
最安全的方法是编写一个脚本,使用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文件解决方案,仍然需要模式。
COPY
和DESCRIBE KEYSPACES
命令,可用于此操作。此外,GitHub上有一些更加用户友好的项目,例如https://github.com/gianlucaborello/cassandradump - 该项目受到mysqldump的启发。但是,如果您有大量数据集,这将需要很长时间。