MarkLogic版本9.0-6.1
我们已经实现了两种用于批量摄取的模式。
模式1:MLCP
模式2:Informatica(或NiFi)读取NDJSON文件并为NDJSON文件中的每个JSON进行MarkLogic REST API PUT调用
我们的生产盒是一个具有72个核心的3节点集群。
我们的MLCP作业在默认线程数为4的情况下运行得很好,并且最多有3个并行运行的MLCP作业,确保在任何时间点至少有60个内核可用于实时(或近实时)处理。
但是,我不确定Informatica / NiFi批处理作业如何用尽内核。与MLCP一样,是否有一种方法可以限制Informatica / NiFi作业使用的核心,以确保有足够的核心/线程可用于实时处理?
随着我们向生产中添加越来越多的流程,我们发现实时REST API PUT / GET调用的超时错误大大增加。这些调用通常只需要几毫秒的时间(当我们单独运行它们时),因此我猜想对资源的争用会导致超时。
我们可以选择扩展集群中的节点,但是这种情况使我认为,MLCP是一种比REST PUT调用批量提取更好的设计,因为我们可以更好地控制每个批处理所使用的内核/线程。流程,确保有足够的内核可用于实时处理。如果用于批量摄取,有没有办法可以控制/限制NiFi使用的资源?
请提出建议。预先感谢!
适用于Informatica客户的解决方案似乎正在为MarkLogic提供本机连接器(就像MongoDB,SalesForce等一样。