使用Flink Rich InputFormat创建Elasticsearch的输入格式

问题描述

我们正在使用Elasticsearch 6.8.4和Flink 1.0.18。

我们在Elasticsearch中有一个包含1个分片和1个副本的索引,我想创建自定义输入格式,以使用具有超过1个输入分割的apache Flink数据集API在Elasticsearch中读取和写入数据,以实现更好的性能。那有什么办法可以达到这个要求?

注意:每个文档的大小较大(将近8mb),并且由于尺寸限制,一次只能读取10个文档,并且每个读取请求都希望检索500k条记录。

据我了解,并行性的数量应等于数据源的分片/分区的数量。但是,由于我们仅存储少量数据,因此分片数量仅保持为1,而我们拥有的静态数据每个月的增加很少。

任何帮助或源代码示例将不胜感激。

解决方法

您需要能够生成对ES的查询,以将源数据有效地划分为相对相等的块。然后,您可以使用> 1的并行度运行输入源,并使每个子任务仅读取索引数据的一部分。