9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

使用 Amazon Aurora 存储和处理地理信息数据

  • 2019-09-26
  • 本文字数:2047 字

    阅读完需:约 7 分钟

使用Amazon Aurora存储和处理地理信息数据

地理信息是一种特定的空间信息,无论在科学研究还是日常生活中都有广泛应用。我们通常使用计算机和相关软件对地理信息进行储存、管理、运算、分析、显示等操作。


我们对地理信息最常见的使用是导航,对地理信息最有前景的使用场景是自动驾驶。这两种场景都对地理信息的存储和使用有许多新的需求,这些需求包括对地理信息的实时更新、并发读写、版本控制、高可用和高可靠等。


当前,地理信息存储和处理方式,无论是传统方法把地理信息存放在二进制文件中, 还是把地理信息存放在传统的关系数据库里,都无法满足上面提到的新需求。而使用 Amazon Aurora 可以更好的满足这些新的需求。


Amazon Aurora 是一种与 MySQL 和 PostgreSQL 兼容的关系数据库,专为云而打造,既具有高端商用数据库的性能和可用性,又具有开源数据库的简单性和成本效益。


Aurora 的速度最高可以达到标准 MySQL 数据库的五倍、标准 PostgreSQL 数据库的三倍。它可以实现商用数据库的安全性、可用性和可靠性,而成本只有商用数据库的 1/10。Aurora 由 Amazon Relational Database Service (RDS) 完全托管,而 RDS 可以自动执行各种耗时的管理任务,例如硬件预置以及数据库设置、修补和备份。


下面,我们将逐步演示如何把 OSM(Open Street Map)数据导入 Amazon Aurora 数据库,并对地理数据做查询操作。

1. 创建 Aurora 数据库。

为了支持 PostGIS 1.5+, 在创建 Aurora 数据库时,选择 PostgreSQL-compatible,如下图所示:



按照 Aurora 数据库手册创建 Aurora 数据库(Create an Aurora PostgreSQL DB Cluster)。

2. 在创建好的 Aurora 数据库上启动 PostGIS,Hstore 等相关组件。PostGIS 是一个 PostgreSQL 扩展,用于存储和管理空间信息。步骤如下:

首先,使用创建数据库实例的主用户名连接到数据库实例;


然后加载 PostGIS 扩展,使用 CREAT EXTENSION 语句加载扩展。


运行下面语句:


CREATE EXTENSION hstore;
复制代码


结果如下:



运行下面语句:


CREATE EXTENSION postgis;
复制代码


结果如下:



运行下面语句:


CREATE EXTENSION fuzzystrmatch;
复制代码


结果如下:



运行下面语句:


CREATE EXTENSION postgis_tiger_geocoder;


结果如下:


运行下面语句:


CREATE EXTENSION postgis_topology;
复制代码


结果如下:



最后使用 ALTER SCHEMA 语句将所有权移交给 rds_superuser 角色。


运行下面语句:


ALTER SCHEMA tiger owner to rds_superuser;
复制代码


结果如下:



运行下面语句:


ALTER SCHEMA tiger_data owner to rds_superuser;
复制代码


结果如下:



运行下面语句:


ALTER SCHEMA topology owner to rds_superuser;
复制代码


结果如下:


3. 下载中国的 OSM(open street map)数据文件, 下载链接

为了把中国的 OSM 数据导入 Aurora 数据库,我们需要使用 osm2pgsql 工具,在本文中,我们 使用一台 EC2 linux 服务器运行 osm2pgsql 工具导入地理信息数据。


首先我们下载 osm2pgsql 源文件,


git clone git://github.com/openstreetmap/osm2pgsql.git
复制代码


然后安装 osm2pgsql 需要的依赖库


yum install cmake gcc-c++ boost-devel expat-devel zlib-devel bzip2-devel postgresql-devel geos-devel proj-devel proj-epsg lua-devel -y
复制代码


最后编译 osm2pgsql 工具


cd osm2pgsql-master


mkdir build && cd build


cmake … && make && make install


运行结果如下:


4. 导入中国 OSM 数据

osm2pgsql ./china-latest.osm.bz2 -d OSMChina -U root -P 5432 -S ./default.style --hstore -H giscluster.cluster-ccnfhuymduul.rds.cn-northwest-1.amazonaws.com.cn  -W
复制代码


其中文件 china-latest.osm.bz2 是步骤 2 下载的中国 OSM 数据


-d 指定了 Aurora 中数据库的名字


-S ./default.style 是样式文件,在 osm2pgsql 的源文件目录里。


其他是连接数据库需要的参数,比如数据库的 endpoint 和用户名密码下图是 osm2pgsql 的导入过程截图:



我们可以看到,导入全部中国 OSM 数据用了 603s

5. 检查 Aurora 中导入的中国 OSM 数据

数据导入成功后,数据库中会有 3 个新的表, 如下图:



  • planet_osm_point: 包含 PoI(Point of Interet)信息;

  • planet_osm_lines: 包含道路和街道信息;

  • planet_osm_polygons: 包含湖泊,建筑,行政区等信息。

6. 查询在 Aurora 里存储的中国 OSM 信息

SELECT name, ST_AsText(ST_Transform(way,4326)) AS pt_lonlattext -- tags
FROM planet_osm_point
WHERE tags @> 'cuisine=>sushi'::hstore;
复制代码


你可以看到查询结果如下:



通过上面六步操作,我们把中国的 OSM 数据导入到了 Aurora 数据库,并且可以使用 SQL 语句查询地理信息。使用 Aurora 数据库后,地理信息数据库可以支持更大的并发量和更快的查询速度,获得更好的可用性。同时,利用 Aurora 完全托管的特性,数据库管理员可以省去许多繁琐的操作,例如硬件预置以及数据库设置、修补和备份。我们既得到了高端商用数据库的性能和可用性,又有开源数据库的简单性和成本效益。


作者介绍:


谢亚力


AWS 解决方案架构师,负责企业级客户的架构和云上迁移等工作。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/store-and-process-geo-information-data-using-amazon-aurora/


活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2019-09-26 16:42493
用户头像

发布了 1646 篇内容, 共 75.8 次阅读, 收获喜欢 69 次。

关注

评论

发布
暂无评论
发现更多内容

2021阿里大牛最新发布:Java高频面试题和核心技术(已涨薪6K

Java 程序员 后端

6年拉力工作经验,学了阿里P8级架构师的7+1,java基础学习百度云

Java 程序员 后端

as-if-serial规则和happens-before规则的区别

Java 程序员 后端

BAT大厂Java面试必备:20道最新JVM面试题(含答案

Java 程序员 后端

【架构实战营】模块二作业

liu🍊

4个实验,彻底搞懂TCP连接的断开,实战nginx张宴

Java 程序员 后端

4年Java开发经验,从传统公司裸辞之后足足准备了3个月,终于拿到美团

Java 程序员 后端

21道Java基础面试题及答案,Dubbo SPI及自适应扩展原理

Java 程序员 后端

97 道大厂 Java 核心面试题出炉,来试试看你会几道题?

Java 程序员 后端

2021毕业的Java应届生,面试需要掌握哪些技能,才能收割offer

Java 程序员 后端

MacBook M1 搭建OpenVINO环境

IT蜗壳-Tango

OpenVINO MacBook M1 10月月更

90行代码,15个元素实现无限滚动,吃透这份Java高级工程师面试497题解析

Java 程序员 后端

985应届进大厂,后端开发两年被裁,对前路迷茫的我

Java 程序员 后端

apiserver源码分析——启动流程,java工程师技术栈

Java 程序员 后端

apollo在Spring boot加载过程解析,redis单线程原理

Java 程序员 后端

浅谈如何实现自定义的 iterator 之二

hedzr

c++ stl Iterator 迭代器

6 种事件驱动的架构模式,springboot入门书籍

Java 程序员 后端

7年Java开发经验,面试20多家公司,砍下16个Offer

Java 程序员 后端

Alibaba内部流行的“Java突击宝典”,springboot模块化架构

Java 程序员 后端

21道Java基础面试题及答案(1),linux系统管理技术手册

Java 程序员 后端

28天读完349页,这份Alibaba面试通关手册,助我

Java 程序员 后端

95% 的算法都是基于这 6 种算法思想,大厂Java面试必考点

Java 程序员 后端

5种可能在10年后消失的开发语言,java消息队列面试题

Java 程序员 后端

Binder源码阅读指南之java层,Java程序员如何有效提升学习效率

Java 程序员 后端

20年IT农民工终于分享出了SpringCloud微服务架构实战文档,太强了!

Java 程序员 后端

30岁程序员裸辞,闭关三月,拿下阿里字节百度等12家offer

Java 程序员 后端

30张图带你分析:spring事务源码,mysql基础教程视频

Java 程序员 后端

avatar Logo,nginx负载均衡算法及原理

Java 程序员 后端

2021!阿里技术官最新发布Java零基础就业宝典,不用再怀疑人生了

Java 程序员 后端

2021,你还在写“赤裸裸,nginx源码分析pdf

Java 程序员 后端

6月GitHub上最牛逼的10个Java开源项目,号称“Star收割机

Java 程序员 后端

  • 扫码添加小助手
    领取最新资料包
使用Amazon Aurora存储和处理地理信息数据_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章