kairosdb 和 elasticsearch 集成

kairosdb and elasticsearch integration

我使用 Kairosdb 作为我的主数据库。现在我想将 Elasticsearch 功能集成到我在 Kairosdb 中的数据中。正如 docs 中所述,我必须在 Elasticsearch 数据库中复制主数据库的所有条目。

更新

我的意思是,如果我想在 elasticsearch 中索引某些东西,我必须这样做,例如:

获取Kairosdb的数据,一个例子json{"name": "hi","value": "6","tags"}

然后放到Elasticsearch里面:

 curl -XPUT 'http://localhost:9200/firstIndex/test/1' -d '{"name": "hi","value": "6","tags"}'

如果我想搜索我必须这样做:

curl 'http://localhost:9200/_search?q=name:hi&pretty=true'

我想知道是否可以在 Elasticsearch 中不复制我的数据,以一种我可以实现的方式:

我该怎么做?

听起来您希望将 Elasticsearch 用作主数据存储 (KairosDB) 的辅助(和外部)全文索引。

由于 KairosDB 仍然是您的主要数据存储,因此您加载到 Elasticsearch 中的每条记录都需要两条信息(至少):

  1. 用于定位相应 KairosDB 记录的主键字段。在 mapping 中,确保设置 "store": true, "index": "not_analyzed"
  2. 您希望可搜索的任何字段(在您的示例中,仅搜索 name"store": false, "index": "analyzed"

如果您想进一步减小索引大小,请考虑 disabling the _source field


然后您的搜索工作流变成一个两步过程:

  • 在 Elasticsearch 中查询 name:hi 并检索每个匹配记录的 KairosDB 主键字段。
  • Query/return KairosDB 时间序列数据使用从 Elasticsearch 返回的关键字段。

不过要说清楚。您不需要加载到 Elasticsearch 中的每条 KairosDB 记录的精确副本。只是可搜索的字段,以及在 KairosDB 中定位原始记录的方法。