迁移有界数据时使用哪些工具?

时间:2018-03-30 09:06:54

标签: apache-spark content-management-system streaming apache-flink jackrabbit-oak

我最近开始在两个不同的内容管理系统之间开展内容存储库迁移项目。

我们在源存储库中有大约11 PB的文档。我们希望通过查询源系统API并通过目标系统API保存,一次迁移所有文档。

我们将有一台独立的机器用于此迁移,并且应该能够管理(启动,停止,恢复)整个过程。

您会为此类任务建议哪些平台和工具? Flink的数据集API是否适合这项工作的有界数据?

2 个答案:

答案 0 :(得分:2)

Flink的DataStream API可能是比DataSet API更好的选择,因为流API可以停止/恢复,并且可以从故障中恢复。相比之下,DataSet API从一开始就重新运行失败的作业,这不适合可能运行数天(或数周)的作业。

虽然Flink的流媒体API是针对无界数据流而设计的,但它对于有界数据集也非常有效。

如果基础CMS可以支持并行执行迁移,Flink可以轻松满足此要求。 Async I/O feature在这种情况下会有所帮助。但是如果你要按顺序进行迁移,那么我不确定你会从像Flink或Spark这样的框架中获得很多好处。

答案 1 :(得分:1)

基本上大卫在上面说过。我认为您遇到的主要挑战是跟踪进度,以便检查点/保存点(从而重新启动)正常工作。

这假设您有一些合理有效且稳定的方法来枚举源系统中所有1B文档的唯一ID。我们在之前的迁移项目中使用的一种方法(尽管不使用Flink)是使用文档创建时间戳作为"事件时间"。