数据寻龙点穴(空间聚集分析) - 阿里云RDS PostgreSQL最佳实践

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介:

标签

PostgreSQL , Greenplum , PostGIS , K-Mean , 热力图


背景

最近鬼吹灯热播,胡八一的《十六字阴阳风水秘术》到底是什么武功秘籍?寻龙点穴又是什么?别问我,不知道。

pic

PS:截取自互联网。- 寻龙点穴是风水学术语。古人说:三年寻龙,十年点穴。意思就是说,学会寻龙脉要很长的时间,但要懂得点穴,并且点得准则难上加难,甚至须要用“十年”时间。 但是,若没正确方法,就是用百年时间,也不能够点中风水穴心聚气的真点,这样一来,寻龙的功夫也白费了。 准确地点正穴心,并不是一件容易的事,对初学者来说如此,就是久年经验老手,也常常点错点偏。

pic

但是,我们要相信科学的力量,如今大数据、AI这么发达,实际上我们可以在海量数据的情况下总结经验,和前人通过古老的夜观星象总结的经验可能会出现惊人的相似。

我们有海量的人物活动数据、汽车活动数据、传感器数据等等。完全可以分析出来什么样的地方适合居住,什么样的地方适合做生意,等等。

扯远了,我们回到主题 - 空间数据寻龙点穴。实际上就是PostGIS 2.3的两个新特性,空间数据的聚集分析。

例如我们有人物活动的点数据组成的海量数据,通过空间聚集分析,可以汇聚出指定时间段,数据聚集的热力图。是不是和寻龙点穴有点相似呢?

pic

pic

pic

空间聚集窗口分析函数

鬼吹灯中有一段关于“龟眠之地”的描述:

我掏出《十六字阴阳风水秘术》翻了翻,找到一段“龟眠之地”的传说,书中记载,当年有人在海边,见到海中突然浮出一座黑山,再细观之,原来是数十只老龟,驮负着一头死去的巨龟自海中而出,这些老龟把死龟驮至一处山崖下地洞穴里藏好,这才陆续离去游回大海,偷偷看到这一切的那个人,擅长相地择穴之术,知道此穴乃是四灵所钟。洞中“龙气冲天”,其时正好他家中有先人故去,于是他探明洞中龟尸的特形后,把自己的先人不用棺椁裸身葬入其中。此后这个人飞黄腾达、平步青云,成就了一方霸业。那处龟眠洞日后就成了他家宗室的专用慕穴,数百年后龙气已尽,地崩,露出尸体无数,当地人争相围观,所有尸身皆生鸟羽龙鳞,被海风吹了一天一夜之后,全部尸体同时化为乌有。

鬼吹灯和数据分析有什么关联呢?必须有啊,你想想,古人为了找到一块“龟眠之地”得费劲多少心思了。而现在我们有了数据,是不是很好找了呢。

假设我们的数据包含这些维度:

1、时间

2、人物位置

3、人物属性(收入、行业、年龄、等等)

好了,想象一下,你是不是可以按人物属性、时间,对数据进行空间聚集分析。生成不同分析维度的人群热力图。颇有寻龙点穴范。

那么怎么做空间数据的聚集分析呢?

PostGIS 2.3 新增了两个窗口函数,就是用于

1、基于Density-based spatial clustering of applications with noise (DBSCAN) 算法的空间数据聚集分析函数ST_ClusterDBSCAN

pic

2、基于 k-means 算法的空间数据聚集分析函数ST_ClusterKMeans

pic

有意思吧。

pic

例子

1、

 -- Partitioning parcel clusters by type  
SELECT ST_ClusterKMeans(geom,3) over (PARTITION BY type) AS cid, parcel_id, type  
FROM parcels;  
-- result  
 cid | parcel_id |    type  
-----+-----------+-------------  
   1 | 005       | commercial  
   1 | 003       | commercial  
   2 | 007       | commercial  
   0 | 001       | commercial  
   1 | 004       | residential  
   0 | 002       | residential  
   2 | 006       | residential  
(7 rows)  

2、

SELECT name, ST_ClusterDBSCAN(geom, eps := 50, minpoints := 2) over () AS cid  
FROM boston_polys  
WHERE name > '' AND building > ''  
	AND ST_DWithin(geom,  
        ST_Transform(  
            ST_GeomFromText('POINT(-71.04054 42.35141)', 4326), 26986),  
           500);  

st_union 空间对象聚合

前面提到的两个窗口函数只是生产每条记录所属的聚集ID,按这个聚集ID在聚合,就可以聚合成一个个的几何对象(例如点集),通过点集再可以生成sufface。

http://postgis.net/docs/manual-dev/ST_MemUnion.html

http://postgis.net/docs/manual-dev/ST_Union.html

空间聚集分析业务场景

空间聚集分析窗口函数,非常有助于基于人物、被检测对象在时间、空间、对象属性等多种维度层面的空间聚集透视。

关于多维数据透视,也可以参考我以前写的文章。

《时间、空间、对象多维属性 海量数据任意多维 高效检索 - 阿里云RDS PostgreSQL最佳实践》

实际上除了这两个窗口分析函数,PostgreSQL还提供了MADlib机器学习库,通过SQL接口、R接口(pitovalR)、Python接口可以进行调用,利用数据库的分析能力完成数据透视和编程的易用性(海量数据有MPP,中等体量有PG的多核并行计算、向量计算、JIT等大幅度提升计算能力的特性)。

阿里云相关数据库产品

阿里云 RDS PostgreSQL

阿里云 HybridDB for PostgreSQL

参考

http://planet.postgis.net/index.html

http://postgis.net/docs/manual-dev/ST_ClusterKMeans.html

https://en.wikipedia.org/wiki/K-means_clustering

http://postgis.net/docs/manual-dev/ST_ClusterDBSCAN.html

http://planet.qgis.org/planet/tag/postgis/

http://2012.ogrs-community.org/2012_papers/d3_10_bonin_presentation.pdf

http://www.waurisa.org/conferences/2009/presentations/Tues/OpenSourceWebModelingAndVisualization_Tues_Vennemann_TerraGIS.pdf

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
10月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
593 158
|
9月前
|
存储 消息中间件 监控
MySQL 到 ClickHouse 明细分析链路改造:数据校验、补偿与延迟治理
蒋星熠Jaxonic,数据领域技术深耕者。擅长MySQL到ClickHouse链路改造,精通实时同步、数据校验与延迟治理,致力于构建高性能、高一致性的数据架构体系。
MySQL 到 ClickHouse 明细分析链路改造:数据校验、补偿与延迟治理
|
10月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1579 152
|
10月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1098 156
|
10月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
634 156
|
10月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
755 161
|
9月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
919 6
|
11月前
|
存储 关系型数据库 MySQL
深入理解MySQL索引类型及其应用场景分析。
通过以上介绍可以看出各类MySQL指标各自拥有明显利弊与最佳实践情墁,在实际业务处理过程中选择正确型号极其重要以确保系统运作流畅而稳健。
311 12
|
10月前
|
SQL 关系型数据库 MySQL
阿里云的云数据库RDS简介
阿里云关系型数据库RDS(Relational Database Service)是一种安全稳定、高性价比、可弹性伸缩的在线数据库服务。支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供容灾、备份、恢复、监控、迁移等全套解决方案,帮助用户轻松应对数据库运维挑战。RDS具备高可用性、高安全性、轻量运维和弹性伸缩等优势,适用于各类业务场景,助力企业降低成本、提升效率。
|
SQL 存储 网络协议
RDS PostgreSQL一键大版本升级技术解密
内容简要: 一、PostgreSQL行业位置 二、PostgreSQL版本升级背景 三、PostgreSQL版本升级解密 四、PostgreSQL版本升级成果
2017 0
RDS PostgreSQL一键大版本升级技术解密

相关产品

  • 云数据库 RDS
  • 云数据库 RDS PostgreSQL 版
  • 云数据库 RDS MySQL 版
  • 推荐镜像

    更多