我知道 scikit-learn 模型可以通过使用 joblib 保存在文件中(如下所述:http://scikit-learn.org/stable/modules/model_persistence.html)。但是,由于我在 postgresql plpythonu 函数中有机器学习过程,所以我宁愿将模型保留在 Postgresql 数据库中。
在 Postgresql 数据库中存储 scikit-learn 模型的最方便的推荐方法是什么?
根据PostgresSQL 文档,有参数keepalives和更多参数keepalives_idle,keepalives_interval并且keepalives_count仅在以下情况下才相关keepalives=1。
但我不清楚如果参数keepalives设置为零意味着什么?
keepalives如果参数设置为零 ( )到底会发生什么keepalives=0?
这是否意味着 PostgreSQL 会话永远不会终止?如果客户端应用程序关闭会发生什么?如果网络连接中断会发生什么?这是否意味着 PostgreSQL 服务器永远不会终止空闲会话?
在https://www.postgresql.org/docs/current/static/pgtrgm.html上,解释了如何使用带有 gin_trgm_ops 选项的特殊 GIN 索引来提高 trigram 相似性运算符的性能。
CREATE INDEX trgm_idx ON test_trgm USING GIN (t gin_trgm_ops);
Run Code Online (Sandbox Code Playgroud)
也有人说:
这些索引不支持相等或简单的比较运算符,因此您可能还需要常规 B 树索引。
然而,还有 BTREE_GIN 扩展,它应该允许 GIN 索引用作 BTREE 索引的替代品。https://www.postgresql.org/docs/current/static/btree-gin.html
我的问题是:如果我安装 BTREE_GIN 扩展,pg_trgm GIN 索引(带有 gin_trgm_ops 选项)可以用作 BTREE 索引的替代品吗?它是否结合了 BTREE_GIN 和 trigram GIN 索引的属性,或者仍然需要额外的 BTREE 索引来进行连接和相等表达式等?
postgresql ×3
b-tree ×1
connection ×1
gwt-gin ×1
libpq ×1
persistence ×1
scikit-learn ×1
trigram ×1