【发布时间】: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