在Amazon RDS上安装Kmeans PostgreSQL扩展

在Amazon RDS上安装Kmeans PostgreSQL扩展,第1张

我参与了一些Django poroject,我们使用地理数据(使用GeoDjango)。 我按照AWS docs中描述的那样安装了PostGis。

我们在地图上有很多点(标记)。我们需要对它们进行聚类。

我找到了一个库anycluster。该库需要在Postgre数据库上安装名为kmeans-postgresql的PostgreSQL扩展。

但我的数据库位于Amazon RDS上。我无法通过SSH连接到它以安装扩展程序......

有人知道如何在我的Amazon RDS数据库上安装kmeans-postgresql扩展程序?

或许你可以告诉我其他聚类方法?

最佳答案:

2 个答案:

答案 0 :(得分:5)

K-Means这是一个非常复杂的计算,对数据挖掘和聚类分析很有用(你可以在维基百科页面https://en.wikipedia.org/wiki/K-means_clustering中看到更多相关信息)。当必须处理许多要点时,它具有很大的复杂性。对于postgresql http://pgxn.org/dist/kmeans/doc/kmeans.html的K-means扩展,它是用C语言编写的,并在数据库机器中编译。与plpgsql中的过程相比,这带来了更好的性能。不幸的是,@estevao_lucas回答说,这个扩展没有启用到Amazon RDS。

如果你真的需要k-means结果,我翻译了它的这个实现,由Joni Salonen在http://jonisalonen.com/2012/k-means-clustering-in-mysql/中创建并改为plpgsql https://gist.github.com/thiagomata/a9737c3455d6248bef9f。此函数使用临时表。如果您愿意,可以将其更改为仅使用Pins数组。

但是,如果你只需要在地图中显示一些引脚,你可能会对一个非常快速和简单的函数感到满意,它将结果分组为[x,y]矩阵。我创建了这样的函数,因为kmeans函数花了太多时间来处理我的数据库(有超过400K的元素)。所以这个实现真的更快,但没有你期望从K-means模块的所有功能。除此之外,当目标是在地图中显示大量引脚时,此网格函数https://gist.github.com/thiagomata/18ea14853998468c1a1d会返回非常好的结果。 在Amazon RDS上安装Kmeans PostgreSQL扩展,Example of Grid Result,第2张

答案 1 :(得分:1)

您可以在Amazon RDS上安装支持的扩展程序,而不是Kmeans。

  

错误:Amazon RDS不支持扩展“kmeans”   详细信息:安装扩展程序“kmeans”失败,因为它不在Amazon RDS支持的扩展列表中。   提示:Amazon RDS允许具有rds_superuser角色的用户安装支持的扩展。见:SHOW rds.extensions;   alexandria_development => SHOW rds.extensions

RDS扩展程序:

  

btree_gin,    btree_gist,    chkpass,    citext,    立方体,    DBLINK,    dict_int,    dict_xsyn,    earthdistance,    fuzzystrmatch,    hstore,    intagg,    intarray,    ISN,    ltree,    pgcrypto,    pgrowlocks,    pg_prewarm,    pg_stat_statements,    pg_trgm,    plcoffee,    锁相环,    plperl,    PLPGSQL,    pltcl,    plv8,    PostGIS的,    postgis_tiger_geocoder,    postgis_topology,    postgres_fdw,    sslinfo,    tablefunc,    test_parser,    安装tsearch2,    unaccent,    UUID-OSSP

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复