如何将部分Cassandra表数据导出到另一个Cassandra数据库?

时间:2018-11-06 01:41:55

标签: cassandra

我有一个特殊要求,我必须将部分表的数据导出到另一个Cassandra数据库。两台服务器位于不同国家/地区的不同数据中心。

导出的表与原始表具有相同的结构,只有新的数据库是旧数据库的子集。

例如,该表具有3列[user,cxtId,cxt],并且[user,cxtId]是主键。

在一般情况下,我将有一个具有许多cxtId的用户。假设我现在在数据库中有十个用户数据,但是我只想将其中的三个数据导出到新数据库中,目标可能有一些具有相同主键的数据,并且我想覆盖这些数据。

我如何在Cassandra中做到这一点。

我已经检查了COPY命令,但似乎支持完整的数据集(可能带有部分列)。

是否有解决我问题的好方法?谢谢。

埃里克

2 个答案:

答案 0 :(得分:0)

最后,我找到了一个来自GitHub的工具可以解决我的问题。 https://github.com/gianlucaborello/cassandradump

我可以使用此python脚本转储所选结果,并使用cqlsh -f将数据加载回Cassandra。

答案 1 :(得分:0)

我在项目中使用了一个库,该库帮助我将大量数据从一个表转换为另一个表。

我想您可以从这里探索这个图书馆。 https://github.com/brianmhess/cassandra-loader

您卸载数据,根据需要进行操作,然后将数据加载到新表中。