【问题标题】:Replicating Couchbase to ElasticSearch (w/ multiple indices)将 Couchbase 复制到 ElasticSearch(带多个索引)
【发布时间】:2018-06-10 23:55:05
【问题描述】:

目前我们正在使用 Couchbase 和 ElasticSearch(2.x) 并使用 elasticsearch-transport-couchbase 插件成功地将数据从 CB 复制到 ES。

升级到 ES 5.6.4 时出现问题。到目前为止,我们在 ES 中使用单个索引,并且由于 ElasticSearch doesn't recommend this approach anymore 我们现在尝试在 ES 中创建多个索引(每种类型的索引) 这意味着我们需要一种将数据从 CB(单个存储桶)复制到 ES(多个索引)的方法。

解决此问题的最佳方法是什么? 可能的解决方案:

  1. 继续使用 elasticsearch-transport-couchbase 插件,但随后我们将不得不创建大量 (~150) XDCR 复制,每种类型 1 个复制。我怀疑这会扩展..
  2. 使用 Spark 或 Kafka 编写我们自己的解决方案(它们都不在技术堆栈上,因此实施可能需要时间,所以这不是最有利的解决方案)

任何帮助将不胜感激。

【问题讨论】:

  • 你将如何决定哪些数据进入哪个索引。
  • 我们在CB中文档的key是type::uuid,我们可以通过'::'分隔符轻松查看。
  • 您可以提供的任何示例数据。如果您有索引过程中的错误日志..
  • 它可以是一个简单的 JSON 文档,键为“user::123”,其中 user 是实体类型(以及该文档应该被索引到的索引),123 是键。没有错误可以发布,因为我还没有解决方案。目前正在尝试继续使用 elasticsearch-transport-plugin 并通过 ES Ingestion API 将文档重定向到正确的索引。如果有效会更新。

标签: java elasticsearch couchbase elasticsearch-plugin xdcr


【解决方案1】:

Couchbase Elasticsearch Connector 的第 4 版支持新的“index-per-type”模型(以及其他功能,包括支持 ES 6、安全连接和复制检查点管理工具)。如果您想尝试一下,您的反馈将非常宝贵。

免责声明:我是开发 Elasticsearch 连接器的 Couchbase 员工。

【讨论】:

  • 谢谢,正在调查!这将非常有帮助:) 我们可以使用它来将 id 为“user::123”的文档路由到“user”索引吗?或者换个说法,我们可以用它来定义一个分隔符(在这种情况下是双冒号)并且分隔符的前缀会自动设置为 ES 中的索引吗?从我所见(在快速浏览 toml 属性文件之后),我们可以显式定义特定类型的行为(航空公司索引的航空公司_前缀),但它不能动态推断索引名称。我说的对吗?
  • @shays10 你是对的。不过,这听起来是个好主意!您想将此功能请求添加到项目的issue tracker吗?
猜你喜欢
  • 2014-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-09
  • 1970-01-01
  • 1970-01-01
  • 2019-06-24
相关资源
最近更新 更多