Server-tools: [RFC] base_elasticsearch

创建于 2016-12-02  ·  20评论  ·  资料来源: OCA/server-tools

该模块将通过elasticsearch-py模块提供到 Elasticsearch 集群和底层节点的连接。 该模块的一个要求是 LGPL 许可,这排除了connector库的使用。

它将允许对 Elasticsearch 索引和文档进行 CRUD。 目标是不将 Odoo 数据库中的集群连接数据和节点主机名以外的任何内容作为该模块的一部分进行持久化。 根据架构限制,我可能还必须存储索引和文档类型 - 但可能在 TransientModel 中,因此它们会被清空。

提供的唯一视图将用于集群/节点元的设置和维护。

如果我可以无缝模拟 Odoo 记录集,但使用 Elasticsearch 数据并且不保留任何数据,那就太好了。 这可能通过一些创造性的方法重载成为可能。

如果 Recordset 模拟是可能的,那么如果提供一些抽象的 Document 视图也会很好。 虽然这并不是真正需要的东西,但直接查询和查看 Odoo 在紧要关头看到的 Elastic 结果会很好。

我想知道是否有人追求过这样的东西,特别是关于仅使用临时存储无缝模拟 Recordset 的观点?

question

所有20条评论

你好@lasley at Akretion 我们可能开始了你需要的东西:
https://github.com/akretion/connector-nosql
另请参阅 solr 分支https://github.com/akretion/connector-nosql/tree/9.0-solr
抄送@sebastienbeau
请让我们共同努力。 我们已经在将 Odoo 与 Solr 和 Algolia NoSQL 数据存储集成方面拥有丰富的经验。

很好,谢谢@rvalyi - 看起来您确实已经开始了我需要的工作。

不幸的是,我的项目的要求之一是它必须是 LGPL——事后我应该在我的 RFC 中提到这一点(编辑以包含它)。 LGPL 要求排除了connector ,也排除了将此逻辑包含到base_external_dbsource 。 此要求是由于我计划将此模块用作我的核心 SaaS 计费基础架构的一部分。

我在这里看到了很多导出逻辑,但没有读取数据。 我的评价正确吗?

您是如何避免在 Odoo 中存储数据的需要?

@lasley我是base_external_dbsource逻辑的作者。 我查看了历史,唯一的其他原创贡献是添加 Firebird DB 连接。 如果这很重要,我们可以考虑将该模块重新授权给 LGPL。
事实上,由于它们只是技术工具,我认为服务器工具存储库尽可能多地使用 LGPL 没有问题。

@dreispt - 如果您对重新许可感到

一开始我们也只需要一个简单的弹性连接,所以base_external_dbsource很合适。 我也可能会稍微重构它以摆脱conn_openexecute内的if链,随着更多源的开始添加,它们将呈指数级增长。

NoSQL 在查询方面有点不同,但我仍然可以通过一些创造性的改编来适应execute界面。

@lasley好的。 为了尊重所有其他贡献,例如从版本移植,我将打开一个问题来提议和讨论许可证更改。
我们应该使模块“可插入”,其中对附加数据库(如 Firebird)的支持可以通过附加模块插入。

谢谢@dreispt - 非常感谢!

关于pluggable - 你有什么想法? 我计划的重构实际上只是为了打破两个巨大的 if 链,但是当它在我的开发板上时,我对其他改进持开放态度。

@lasley我的意思是让另一个模块可以轻松扩展。 附加的扩展模块可以添加附加的数据库支持。

@dreispt啊,是的,

有没有想过将所有独立的数据库源剥离到它们自己的模块中? 我觉得这个尝试/除了顶部的东西有点笨拙,你同意吗? 这是当前的解决方案,但我认为它仍然可以改进。

这是因为稳定版本我们必须等待 v11 发布吗? 或者是否可以与替换模块一起发布?

我也认为添加一个基本的 CRUD 类型接口可能会很好,这样我们就可以考虑远离直接 SQL。

IMO 扩展模块只做通常的想法会更清晰:继承base.external.dbsource模型来修改功能和模型。

为 10.0 提取 db 提供程序是合理的,因为它是一个新版本,但对于 9.0 可能不合理 - 更新会破坏现有安装。

10.0 已经发布,看起来是 1:1 迁移。 我认为我们必须等到 11 才能坚持稳定的发布政策,对吗?

严格来说是的。
这意味着我们不应该从当前模块中删除功能。

如果我们在较低版本中自动安装新模块怎么办? 当我在这里时可以进行隔离,稍后可以轻松关闭。

面向外部的 API 将是相同的,所以我认为我们不会引起任何问题?

@lasley是的,这是个好主意。

你好呀,

@lasley可能你想看看https://github.com/camptocamp/odoo-elasticsearch-kibana

问候,

乔尔

跟进上面@jgrandguillaume 所展示的内容,我们只是与他讨论,拥有一个像https://github.com/OCA/reporting-engine/tree/8.0/bi_view_editor这样的工具来定义报告模型会很棒在 Odoo 中,然后能够将这个模型的数据导出到 ElasticSearch,以便它可以与其他数据源结合,然后使用 Kibana 报告它。

现在,我不确定这是否是@lasley在此 RFC 上遵循的方法?¿?

这两方面都很有趣,感谢

@jbeficent是否将bi_view_editor链接为sql_view的升级形式,该形式链接为odoo-elasticsearch-kibana的模块依赖项?

我对这个 RFC 有一种多用途的意图。 主要目的是将统计信息从 Odoo 中推出,类似于在两个链接库中所做的。

再往前走一点,我将需要反转一些数据路径。 Kibana 对我来说是一个很棒的可视化工具,但我需要在 Odoo 中构建一些仪表板,以便通过客户端仪表板直接报告。

@lasley在此处查看 bi_view_editor: https : odoo-elasticsearch-kibana的依赖项。 它是一种工具,允许普通用户设计用于报告目的的 Odoo 模型。 类似于做一个sql_view,但是权力掌握在用户手中。

我们还希望从 Odoo 中推出统计数据,目的是让用户能够设计他想要从 Odoo 导出的统计数据。

反向路径也会很棒。

@jbeficent - 确实很酷。 由于缺乏关系,为 NoSQL 创建这样的东西可能会容易得多。

我可能需要在我的 #645 中添加一些索引方法以支持这样的事情,这需要我没有开发的索引分析概念。

Ping 任何感兴趣的人 - 如果有人想看一看,我在https://github.com/OCA/server-tools/pull/660#issuecomment -273583948 中放置了一个初步的数据设计。 这仍然缺乏视图框架,但我认为可能会让我们走上正轨。

此页面是否有帮助?
0 / 5 - 0 等级