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

Create Input Format of Elasticsearch using Flink Rich InputFormat

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

我们在 elasticsearch 中有一个包含 1 个分片和 1 个副本的索引,我想创建自定义输入格式以使用 apache Flink 数据集 API 在 elasticsearch 中读取和写入数据,并按顺序进行 1 个以上的输入拆分以获得更好的性能。那么有什么办法可以达到这个要求吗?

注意:每个文档的大小较大(将近 8mb),由于大小限制和每个阅读请求,我一次只能读取 10 个文档,我们想要检索 500k 条记录。

按照我的理解,no.of并行度应该等于数据源的shards/partitions个数。然而,由于我们只存储少量数据,我们将分片数量保持为 1,并且我们有一个静态数据,它每月略有增加。

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

您需要能够生成对 ES 的查询,从而有效地将源数据划分为相对相等的块。然后您可以 运行 您的输入源的并行度 > 1,并让每个 sub-task 只读取索引数据的一部分。