ElasticSearch - 每个数据库的索引

时间:2016-07-22 13:35:15

标签: oracle elasticsearch

我试图理解某些内容并且没有为此找到相关答案。

我正在构建一个系统,它将某些数据库与ElasticSearch同步,并且我正在挖掘有关我需要的结构的信息。

一些细节:

  • 我的客户使用Web ERP系统,其中一些人在本地拥有ERP,在他们自己的服务器中
  • 其他人使用ERP作为" PAAS" ,有很多JBoss分布在云中的许多机器上。每个客户都有 IP:PORT 。每组ERP都指向同一个 Oracle 实例,但具有不同的 USERS 。 示例:(ClientA - > Oracle1 / USER_A,ClientB - > Oracle1 / USER_B,ClientC - > Oracle2 / USER_C)。

经过一些关于同步的研究后,我找到了三个解决方案:

  • 每个客户的所有文档和别名/过滤器的一个大索引。
  • 每个客户的索引
  • 每个客户端一个ElasticSearch实例。

所以,我的问题是,设计我的应用程序的最佳方法是什么?

第一个似乎更被采用,我的客户通常使用不同版本的ERP(ClientA使用版本1.0,而ClientB使用1.2) 在这种情况下,他们的数据库上的数据可能会略有不同。除此之外,每个客户端都需要能够配置哪些表/字段将被同步以及如何(ElasticSearch Mappings),因为每个客户端的独特需求。 所以这种方法似乎不可能使用,因为不同的映射和文档,用单个索引是不可能实现的。

第二个似乎不太可扩展,他们说大量的索引是坏事,在我的情况下,只有几个数据库用户,所以它不会有这么多指数。 所以到现在为止,这似乎是最好的方法。

第三个会在很多ElasticSearch上运行不同的端口,每个客户端一个,每个端口只会消耗他的ES实例。

提前致谢!

0 个答案:

没有答案