MongoDB Sink 连接器的动态写入策略

问题描述 投票:0回答:1

有没有办法动态选择MongoDB接收器连接器的WriteStrategy?

手头的用例 -

使用 mongodb 接收器连接器从主题读取数据并写入 mongo atlas,以使这些写入的顺序保持完整,就像事件发生在源主题的给定分区上一样。源主题将根据业务键进行分区,然后用于在图集上执行以下 3 项操作之一 -

  1. 插入新文档(可能使用InsertOneDefaultStrategy)
  2. 根据业务密钥更新现有文档(可能使用 UpdateOneBusinessKeyTimestampStrategy)
  3. 根据业务密钥删除现有文档(可能使用DeleteOneBusinessKeyStrategy)

我也在想是否可以使用 ReplaceOneBusinessKeyStrategy 来让事情变得更容易 - 但它不能满足删除要求 - 为此我正在考虑是否应该进行某种软删除。

编写自定义写入策略是另一种选择 - 但不确定我是否想投入时间和精力来想出一些自定义的东西。

出于订购问题,我无法为每种事件类型提供多个源主题。

如果我可以根据输入消息中的某些标头或元数据字段动态选择写入策略,那就太好了。

欢迎任何建议或反馈。

mongodb apache-kafka apache-kafka-connect mongodb-kafka-connector
1个回答
0
投票

我觉得你必须花一些时间来编写自定义写入策略。有

topic.override.<topic>.<property>
设置,您可以为不同的主题指定不同的设置,即writemodel策略。

我想最简单的方法是包含一个描述您要执行的操作的文档字段,并将相关操作应用于文档。

© www.soinside.com 2019 - 2024. All rights reserved.