返回首页
搜 索
400-77-456-22
英米加集团
领先RFID产品与物联网解决方案专家
INMIGA group
智慧城市
智能交通
德歌:PostgreSQL独孤九式搞定物联网
来源:英米加集团 | 作者:inmiga | 发布时间: 3558天前 | 2748 次浏览 | 分享到:

  破索式 - 搞定数据分析

  PostgreSQL具有强大的数据挖掘能力,可以通过一条SQL搞定数据挖掘,例如:

  SELECT kmeans(ARRAY[x, y, z], K) OVER (), * FROM samples;

  这条语句就可以实现聚类分析;同时PostgreSQL支持GPU,CPU并行计算,处理能力达到25GB/s,已经达到目前内存极限;此外PostgreSQL还兼容MADLib库(支持几百个机器学习库函数、对应各种数学模型)、PL/R,、PL/Python。


 

  图七 破索式 - 搞定数据分析

  破掌式 - 搞定秒杀(高并发行锁竞争)


 

  图八 破掌式 - 搞定秒杀(高并发行锁竞争)

  在物联网领域,例如秒杀等场景行锁竞争强烈。传统的行锁具有无效等待多、无效等待用户长时间占用会话资源、发现锁冲突的代码路径长,需进行大量CPU运算等弊端。PostgreSQL提供了超轻锁((advisory LOCK))来解决高并发锁竞争问题,通过CPU运算发现行锁之前就知道是不是存在冲突,大大缩短CPU计算、等待资源,比如在秒杀抢手机的活动中,给定每个手机一个编号,拿到编号的用户才可以进行抢手机,这样就解决了并行度的问题,整体性能得到了近百倍的提升。

  破箭式 - 搞定模糊、正则查询


 

  图九 破箭式 - 搞定模糊、正则查询

  物联网中,对高效的模糊、相近度查询需求,较大传统查询方式是采用全表扫描的方式,百亿数据的查询响应至少是小时级别的。在PostgreSQL中,通过使用GIN R-TREE索引可以将查询时间缩短到秒级。

  这里举一个模糊查询的例子,如上图所示的车牌,尽管对其中一部分做了遮挡,在PostgreSQL中,通过下几行语句,就可以轻松查出车主的个人信息:

  select 'postregsql' % 'postgresql';

  postgres=# select similarity('postregsql','postgresql');

  similarity

  ------------

电力能源
农林牧渔
航空航天
精益制造
快消零售
智能港口
司法监狱
仓储物流
安监消防
金融通信