使用分布式集群数据库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折优惠券。

GreenPlum+PostGIS实现海量空间数据存储相关推荐

  1. 在 Docker 上搭建 PostGIS 数据库实现空间数据存储及可视化

    此文旨在记录与传播在 Docker 上搭建 PostGIS 数据库实现空间数据存储及可视化的知识要点. PostGIS 已经有PostGIS经验的大佬可以忽略此段了.解释 PostGIS 之前需要介绍 ...

  2. v380云存储怎么用_云智中国-百度智能云薄磊:海量无限存储,助力产业智能化升级...

    12月11日,由百度智能云主办.天互数据承办的,2020云智中国西安站论坛在香格里拉大酒店成功举办.此次论坛以"智能生态,预见未来"为主题,百度智能云推动产业智能化再升级.论坛上, ...

  3. 对象存储使用案例_杉岩MOS海量对象存储中标福建移动

    近日,杉岩数据成功中标中国移动福建公司(以下简称福建移动)企业级IT云四期对象存储采购项目,将对接福建移动IT云资源池,对外提供对象存储服务.作为领先的综合智能信息服务运营商,近年来,中国移动福建公司 ...

  4. 武汉大学计算机学院李俊,GML空间数据存储技术研究.pdf

    GML空间数据存储技术研究.pdf 第41卷增刊 计算机研究与发展 v01.41,Suppl. 2004年10月 OFCOMPUTER Oct.2004 JOI瓜NAL RESEARCHANDDEVE ...

  5. 海量日志存储和查询方法及系统

    摘要 本发明提供一种海量日志存储和查询方法及系统,其中的方法包括将分片后的日志按照主从关系存储为文件结构,其中,分片后的日志按照主从关系存储在主文件和从文件内,主文件包括日志的聚合数量.分片开始时间和 ...

  6. MySQL空间拓展:SpringBoot整合Jts-GIS空间数据存储

    MySQL空间拓展与JTS套件 1. MySQL空间拓展 1.1 OpenGIS几何模型结构 1.2 MySQL的空间数据存储方式 1.3 MySQL的空间数据操作函数 2. JTS Topology ...

  7. JUST技术:管理海量空间数据的利器-空间填充曲线

    现实世界中存在大量的多维空间数据,如加油站位置.河流走向等.为了高效存储和管理海量的空间数据,很多基于Key-Value存储的空间数据库,如开源的空间插件GeoMesa[1].京东城市自研的时空数据引 ...

  8. java 海量文件存储_【直通BAT】海量数据面试总结

    出处:https://github.com/CyC2018 目录 海量数据计算总结 海量数据去重总结 1. 计算容量 在解决问题之前,要先计算一下海量数据需要占多大的容量.常见的单位换算如下: 1 b ...

  9. Redis应用实践:小红书海量Redis存储之道

    简介文字: 小红书业务增长非常迅猛,保证数据存取效率的前提下,海量的SNS数据无法用传统型关系数据库去解决,同时爆发式的业务场景使小红书的研发团队更佳青睐于用非关系型数据库做主业务数据存储.为了应对快 ...

最新文章

  1. openstack mysql 故障_Openstack mysql自发连接错误2006,“mysql服务器已经离开
  2. python-判断语句介绍
  3. linux下开机启动oracle
  4. border和图片之间有缝隙_院子里现浇水泥板,每块之间留7公分的缝,铺出来的效果漂亮大气...
  5. 给谷歌输入法增添自定义词组,提高输入效率
  6. 项目总结:华南师范大学校园开发教育android客户端总结
  7. redis 4.0.9 centos7 双机集群安装
  8. BlockChain:区块链入门课程 -- 区块链应用于能源 POWER LEDGER案例
  9. SqlServe中使用EXEC @sql 来传递table变量
  10. npm install socket.io 提示缺少VCBuild.exe
  11. java代码表示非空链表整数_Leetcode: Topic 2 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的.......
  12. 手把手教你使用EndNote X8 详细笔记
  13. 经纬度与墨卡托坐标转化
  14. codevs 1024 一塔湖图 floyd 解题报告
  15. 计算机检测不到蓝牙,图解Win10 1809系统中检测不到蓝牙设备的方法
  16. 编写一个程序实现顺序栈(假设栈中元素类型为char)的各种基本运算
  17. IOTA--帮你构建安全的边缘计算网络
  18. mysql中一次字符集和排序规则引起的sql查询报错
  19. 血色冲锋队洛谷P1332(福建省历届夏令营)
  20. 怎样让您的电脑待机耗电等于零?

热门文章

  1. 电影《小鞋子》观后感
  2. mysql 逐行相加_隔行求和很难吗?使用函数即可轻松搞定,再也不用逐行相加了...
  3. Xamarin 跨平台应用开发(3)——数据与项目结构
  4. C++面向对象三大特性——封装与信息隐蔽
  5. web ui自动化之模拟鼠标操作 - ActionChains
  6. 熔断式一次性保险丝有哪几种系列型号?
  7. html表格单元格边框合并
  8. 【避坑】ubuntu 14.04 可以用的中文输入法
  9. [SDOI2010]魔法猪学院(k短路)
  10. Win10如何隐藏或显示指定的WiFi SSID