【问题标题】:Synchronizing data from MSSQL to Elasticsearch using Apache Kafka使用 Apache Kafka 将数据从 MSSQL 同步到 Elasticsearch
【发布时间】:2018-01-16 12:21:22
【问题描述】:

我目前正在 SQL Server 中运行文本搜索,这已成为瓶颈,出于显而易见的原因,我想将内容移至 Elasticsearch,但我知道我必须对数据进行非规范化以获得最佳性能和可扩展性。

目前,我的文本搜索包括一些聚合和连接多个表以获得最终输出。已连接的表并没有那么大(每个表最多 20GB),但会不定期地更改(插入、更新、删除)(其中两个每周一次,另一个按需 x 次每天)。

我的计划是将 Apache Kafka 与 Kafka Connect 一起使用,以便从我的 SQL Server 读取 CDC,将这些数据加入 Kafka 并将其保存在 Elasticsearch 中,但是我找不到任何材料告诉我何时处理删除数据被持久化到 Elasticsearch。

这甚至被默认驱动程序支持吗?如果没有,有哪些可能性? Apache Spark、Logstash?

【问题讨论】:

  • Confluent Elasticsearch 连接器目前不支持通过墓碑删除。这可能是一个不错的添加功能,因此请随时记录问题。
  • @RandallHauch 这令人失望。我会按照你的建议记录一个问题。
  • @RandallHauch 是否可以创建一个空文档而不是删除它?在我的情况下,这也可以正常工作。
  • 我想这取决于payload 为空时这一行发生的情况,这是墓碑事件的情况。就像我提到的那样,修改此代码以执行其他操作会相对容易,例如改用Delete.Builder(key.id)。唯一的技巧是,如果 Elasticsearch 中的文档碰巧不存在,这是否可以。

标签: sql-server elasticsearch apache-kafka apache-kafka-connect


【解决方案1】:

我不确定现在在 Kafka Connect 中是否已经可以做到这一点,但似乎可以通过 Nifi 解决。

希望我理解需要,这里是使用标准 NiFi 处理器之一删除 Elasticsearch 记录的文档:

https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-elasticsearch-5-nar/1.5.0/org.apache.nifi.processors.elasticsearch.DeleteElasticsearch5/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-06
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多