我希望最终能够拥有可扩展的搜索方案来处理PostgreSql中的数据。我的研究指向使用Logstash将写入事件从Postgres运输到ElasticSearch,但我没有找到可用的解决方案。我找到的解决方案涉及使用jdbc-input在一定时间间隔内查询所有数据,并且删除事件无法被捕获。
我认为这是一个常见的用例,所以我希望你们能与我分享你们的经验,或给我一些进一步的提示。
我希望最终能够拥有可扩展的搜索方案来处理PostgreSql中的数据。我的研究指向使用Logstash将写入事件从Postgres运输到ElasticSearch,但我没有找到可用的解决方案。我找到的解决方案涉及使用jdbc-input在一定时间间隔内查询所有数据,并且删除事件无法被捕获。
我认为这是一个常见的用例,所以我希望你们能与我分享你们的经验,或给我一些进一步的提示。
deleted
。 Elasticsearch中将存在相同的标志,您可以通过对deleted
字段进行简单的term
查询来从搜索中排除它们。deleted
的记录。e.g
{
"nodes": {
"table": "book",
"columns": [
"isbn",
"title",
"description"
]
}
}
PGsync可以即时生成你的文档查询语句。无需像Logstash一样编写查询语句。它还支持并跟踪删除操作。
它同时运行轮询和事件驱动模型,以捕获对日期所做的更改,并通知在某个时间点发生的更改。初始同步轮询数据库自上次守护程序运行以来的更改,此后基于触发器并由pg-notify处理的事件通知会对数据库进行更改。
它几乎没有开发开销。
您可以轻松地创建包含多个关系作为嵌套对象的文档。PGSync会跟踪任何更改。
请查看github repo获取更多详细信息。
您可以从PyPI安装该软件包。