如何使用任何opensource etl工具将数据从postgres迁移到cassandra?

问题描述:

我试图不使用复制命令,因为它的数据库是相当大的。我正在使用talend etl开源工具,但尚未找到任何解决方案。如何使用任何opensource etl工具将数据从postgres迁移到cassandra?

有3个最常见的数据迁移到Cassandra的选项:
1.自定义Spark工作。这需要一些编程,尽管它是最具可扩展性的解决方案,并允许您拥有任何自定义数据转换逻辑。您可能需要数据转换,因为我无法想象您将拥有完全相同的RDBMS和键值存储的表结构。
2.使用DataStax Enterprise软件包中的sqoop(它包含Cassandra的自定义驱动程序)。
3.使用sqoop和Casasndra的JDBC驱动程序。虽然,我对上次Cassandra的JDBC驱动程序版本功能和稳定性没有任何意见。我们在之前的版本中遇到了一些问题。
好的,有第四个。您可以编写自己的数据简单的独立迁移工具(例如使用Java)。该工具将逐行读取来自Postgres的数据并调用Cassandra的插入。这将会非常缓慢,虽然很简单。
你已经提到过,数据库非常大。但这只是意味着你必须等待更长时间直到迁移结束。这对于很多情况并不重要,确实如此。
CPU工作,而你可以做一些其他的事情。否则,当CPU放松时,你必须使用自己的时间。

+0

非常感谢! :) – Annie

+0

@S。 Stas 有没有什么办法可以达到上述目的,例如将Postgres转储文件转换成Cassandra转储文件或其他东西。 –

+0

好吧,从技术上讲,您可以运行pg_dump并获取sql命令列表。然后你可能需要用文本编辑器替换一些sql命令(对于Cassandra的特定版本)。不好的是,@Annie写道,数据库非常大。所以.sql文件会更大。所以COPY命令在这里是更现实的输入方式。 –

如果您更喜欢Apache Spark,则可以使用Spark Cassandra Connector将DataFrame保存到Cassandra。关于如何使用PySpark连接Postgres,请参阅this question