RoR:从PostgreSQL迁移到Elastic

时间:2016-04-25 15:35:40

标签: ruby-on-rails postgresql elasticsearch

我们希望将我们数据库的一部分从PostgreSQL转移到Elastic:基本上我们希望将三个表 - PropertiesListingsAddresses组合成单个文档。

我找不到任何标准工具,可能因为我们有一个Ruby on Rails应用程序,最简单和最可靠的方法是编写一个只会遍历模型的迁移,将它们组成单个文档并保存到Elastic。

这项任务似乎并不复杂,但因为这是我第一次使用Elastic,我想与社区核实。

感谢。

1 个答案:

答案 0 :(得分:1)

我离开的最接近的是JDBC importer。但是,我认为编写自己的脚本可能同样快。

有一个postgres函数row_to_json,它会将结果行转换为JSON,然后您可以将其发布到elasticsearch中。没有什么我知道会自动为你做这件事。假设它不是数十亿行,我会坚持编写一个简短脚本来运行查询的计划,并将HTTP结果发布到elasticsearch中。

您需要决定两件事:索引名称和文档类型。

一些注意事项:

  • 像postgres这样的关系数据库和像elasticsearch这样的最终一致的文档存储之间的一致性模型是完全不同的。您应该了解这些差异及其缺点。
  • 您可能希望弹性搜索中的数据被去规范化,因为没有很棒的连接方式。