GreenPlum+PostGIS实现海量空间数据存储

GreenPlum+PostGIS实现海量空间数据存储,第1张

GreenPlum+PostGIS实现海量空间数据存储

使用分布式集群数据库Greenplum结合PostGIS空间扩展,可存储结构化的海量地图数据,同时,使用分布式文件存储系统HDFS存储相关文件资源,可实现海量栅格数据的存储和读取,基于大数据技术架构的云平台,数据存储和计算架构可根据数据规模灵活伸缩,随时扩展。

一、基于Greenplum集群实现海量数据存储技术

Greenplum是一款开源的分布式集群数据库,采用MPP(大规模并行处理)架构,具有PB级海量数据的存储、处理和实时分析能力。支持上百台集群、支持标准SQL,采用存储冗余数据方式保证数据安全,同时能够部署在廉价的机器上降低企业成本,具有灵活、可扩展、高容错等优点。

二、结合PostGIS高效处理海量地图数据技术

PostGIS是运行在Greenplum集群上的空间扩展插件,支持空间对象存储、空间索引、空间 *** 作函数和空间 *** 作符等一系列功能,能满足大规模空间数据的索引、存取和计算等要求。

三、PostGIS常用 *** 作 1. 新建一个空间字段的表
CREATE TABLE t_geoblock ( id int4, name varchar(50) );
2. 增加一个字段来存储矢量数据
SELECt AddGeometryColumn ('t_geoblock', 'the_geom', 4326, 'Point', 2)
3. 插入记录行
INSERT INTO t_geoblock (id, the_geom, name) VALUES (1,ST_GeomFromText('POINT(116.390871 39.915923,)',4326),'故宫');
INSERT INTO t_geoblock (id, the_geom, name) VALUES (2,ST_GeomFromText('POINT(116.390225514 39.991469335)',4326),'鸟巢');
4. 空间关系判断
1. 是否相连
--SELECt st_disjoint(a.geom, b.geom) from china a, china b where a.name='石景山区'  and b."name"='丰台区';

2. 是否相交
--SELECt st_intersects(a.geom, b.geom) FROM china a,china b where a.name='海淀区'  and b."name"='丰台区';

3. 求距离
--SELECt st_distance(a.geom, b.geom) FROM china a,china b where a.name='海淀区'  and b."name"='朝阳区';

4. 是否距离包含
--SELECt st_dwithin(a.geom, b.geom,2) FROM china a,china b where a.name='海淀区'  and b."name"='朝阳区';

5. 是否接触
--SELECt st_touches(a.geom, b.geom) FROM china a,china b where a.name='海淀区'  and b."name"='石景山区';

6. 是否重叠
--SELECt st_overlaps(a.geom, b.geom) FROM china a,china b where a.name='丰台区'  and b."name"='海淀区';

7. 判断是否闭合
--SELECt st_isclosed(geom) FROM china where china.name='海淀区';--

8. 判断是否哟空间拓扑错误,比如自相交
--SELECt st_issimple(geom) FROM china where china.name='海淀区';
5.空间计算

1… 求面积

--Geometry Accessors查询
--SELECt st_area(geom) FROM china where china.name='丰台区' ;
  1. 求长度(单位为米)
select ST_Distance(ST_GeographyFromText('SRID=4326;POINT(114.017299 22.537126)'),ST_GeographyFromText('SRID=4326;POINT(114.025919 22.534866)'));
6. shp文件的导入(使用自带的工具shp2pgsql)
/usr/local/pgsql/bin/shp2pgsql -s 4326 -W GBK /usr/local/data/shp_block/beijing20190107.shp t_geo_block_beijing_geom  | psql -U user_name -d db_name
7. 坐标转换st_transform
select st_transfrom(geom,4326);
8. 创建空间索引
create index t_buildings_idx on t_buildings_idx using gist(geom);



扫码加入我的知识星球:“时空大数据”,获取更多更高品质的地图、地理信息、GIS、大数据、时空分析、实景三维、地图可视化等方面的知识和文件,前20名可享5折优惠券。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5432728.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存