【问题标题】:is there a way to dump an entire mongodb collection into the oplog?有没有办法将整个 mongodb 集合转储到 oplog 中?
【发布时间】:2015-04-21 10:49:22
【问题描述】:

我正在使用 mongo-connector python 工具设置一个新的 ElasticSearch 实例。该工具正在运行,但仅从 mongodb oplog 导入了大约 100k 条目。

但是,我的集合包含数百万条记录...有没有办法通过 oplog 传递每个集合中的所有记录而不以任何方式修改记录?

【问题讨论】:

  • 您可以手动直接插入到 oplog,但更好的选择是制作一个导入器脚本,该脚本实际上会将所有旧记录导入 ES
  • 差不多,您可以使用 API elasticsearch.org/guide/en/elasticsearch/reference/current/… 直接用您喜欢的语言(即 PHP)将它们编入索引,只需几百万就可以快速完成
  • @Sammaye:仅供参考,您绝对不应该尝试在 MongoDB oplog 中手动插入或更新条目。该格式是复制的内部格式,弄乱 oplog 数据可能会导致意外结果(即复制中断和/或数据丢失)。
  • 我建议按照Resync the Connector 的说明进行操作(这将转储和重新索引所有数据,然后开始跟踪 oplog)。 ElasticSearch API 也是一种替代方法,但与按预期使用连接器相比可能需要额外的工作。
  • @Stennie tbh 我会说完全依赖 oplog 同步到 ES 是个坏主意,在适当的环境中我至少可以想到 2 个问题,但除此之外它是一个看了一眼,我很快转而提到了另一种方法

标签: mongodb elasticsearch mongoid mongodb-query


【解决方案1】:

按照 Sammaye 的建议,我通过遍历集合、转换为 json 并通过 curl 将其发布到索引 API 来解决了这个问题。感谢您的建议!

【讨论】:

    猜你喜欢
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 2020-03-26
    • 1970-01-01
    相关资源
    最近更新 更多