一、PostgreSQL引擎优势

-NoSQL兼容,易于使用
对SQL标准的兼容性最好(90%兼容SQL:2011)
有丰富的数据类型(IP类型、几何类型、货币类型等等)
原生支持JSON、XML类型
支持扩展性极强的GIN索引
-插件支持,易于扩展
PostGIS提供了强大的GIS支持
hstore实现Key-Value数据存取
几十种其他插件,提供了丰富的数据类型、索引、函数等
-复杂查询,高效计算
强大的、与商业数据库媲美的查询优化器
支持归并连接、散列连接等高效的连接方法
支持分析函数、物化视图、分区表、递归查询等
-安全稳定
多进程结构、物理复制等机制,有天然的稳定性
良好的代码结构和质量,bug快速修复,保障了极高的稳定性

二、PostgreSQL特色解决方案

-空间信息
通过PostGIS插件,PostgreSQL可以轻松支持大部分RDMS无法处理的空间信息。
 
1、空间数据类型,包括:点(POINT)、线(LINESTRING)、多边形(POLYGON)、多点(MULTIPOINT)、 多线(MULTILINESTRING)、多多边形(MULTIPOLYGON)和集合对象集(GEOMETRYCOLLECTION)
2、空间分析函数,包括:面积(Area)、长度(Length)和距离(Distance)
3、元数据以及函数,包括:GEOMETRY_COLUMNS和SPATIAL_REF_SYS
4、二元谓词,包括:Contains、Within、Overlaps和Touches
5、空间操作符,包括:Union和Difference
 
因为空间信息选择了NoSQL的应用,现在可以通过PostgreSQL来简化查询。
-全文搜索
全文搜索提供了通过查询来筛选自然语言文档,并按照相关度来排序的能力。最常见的搜索类型是找到所有包含给定关键词的文档,并将它们按照相似度排序并返回。PostgreSQL提供了全文索引来支持全文搜索。所有存储在PostgreSQL中的文档按照如下步骤进行预处理,并生成全文索引:
 
1、将文档翻译成Token
2、将Token转化成Lexem
3、将预处理过的文档保存下来
 
在合适的查询频度下面,通过PostgreSQL的全文搜索,应用将不再需要额外搭建搜索引擎来支持简单的全文搜索需求。
-数据仓库
在线数据库和数据仓库共用一份数据,可以帮助中小企业降低IT成本。
PostgreSQL除了在高可用方面能够满足在线应用的要求外,还可以通过如下方式支持数据仓库的需求:
 
1、存储过程
2、表分区和继承
3、模式和物化视图
4、窗口函数和递归查询的支持
 
配合完善的SQL语法和优化器,PostgreSQL数据库工程师可以用更少的时间完成更多的分析工作。
-NoSQL兼容
JSON是互联网应用流行的数据类型,通过PostgreSQL9.4您可以直接在SQL中使用此数据类型,并通过最新的JSONB数据类型及处理函数将关系型数据库及NoSQL有机整合,让SQL开发人员可以快速进行JSON操作,提高整体开发效率。
通过PostgreSQL的FDW功能,还可以对外部原生支持NoSQL的各种非关系型数据库进行集成
  • 除以上特色解决方案以外,PostgreSQL也支持更多通用应用场景的解决方案

三、RDS for PostgreSQL用户指南

1.实例购买
和其他类型RDS实例一样,可以通过官网下单购买,目前官网仅支持“包年包月”实例创建。
2.实例列表
在阿里云RDS管理控制台的“实例列表”页,就可以看到购买的所有实例。
3.实例管理
3.1帐号管理
在控制台中进入实例的详情页面之后,左侧栏可以看到“帐号管理”选项
在RDS中,PostgreSQL的帐号体系与之前(MySQL/SQL Server)有了很大的不同。RDS For PostgreSQL典型的用户管理方式为:
1. 在管理控制台“帐号管理”页面,创建“初始帐号”
2. 使用该“初始帐号”登陆数据库实例,建立数据库或者普通帐号
“初始帐号”相当于数据库最大权限的帐号,如果忘记密码,可以在控制台“重置密码”。如果“初始帐号”被删除、或者权限被误操作回收,可以通过控制台“恢复帐号权限”。
3.2系统资源监控
RDS For PostgreSQL目前支持磁盘空间、IOPS的资源显示。通过磁盘空间趋势图,可以了解磁盘消耗的趋势;IOPS趋势图,则显示了数据盘和日志盘的IOPS消耗。
3.3备份与恢复
在左侧栏备份与恢复页面,可以看到当前实例的备份文件列表。需要时,可以下载备份,恢复数据。目前,RDS For PostgreSQL暂支持直接到临时实例的恢复。归档列表页面,则可以看到实例产生的归档列表。
3.4安全控制
用户可以通过白名单设置实现对实例的访问限制,如果设置了白名单,只有在白名单IP列表之内的IP才能够访问实例。
4.如何连接PostgreSQL实例
4.1创建初始帐号
在完成实例购买之后,首先去登陆RDS管理控制台,创建“初始帐号”(参考前文“帐号管理”)。有了初始帐号,就可以对实例进行管理和操作。
4.2命令行连接实例
在管理控制台的基本信息页面,可以找到实例的连接地址和端口,例如我们有如下实例: test1.pg.rds.aliyuncs.com:3432
有了实例连接串、端口、初始帐号、密码,就可以使用命令管理和操作实例了。
创建数据库
createdb -U pgroot -h test1.pg.rds.aliyuncs.com -p 3432 pg001

连接数据库
psql -U pgroot -h test1.pg.rds.aliyuncs.com -p 3432 pg001
Password for user pgroot:

Type "help" for help.

pg001=>
5.数据导入与导出
5.1导入
通过psql来导入SQL文件,命令参考:psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}
示例: ./psql -U pgroot -h pgsupu01.pg.rds.aliyuncs.com -p 3432 -d pg001 -f pg001.sql
5.2导出
通过pg_dump导出对应的数据库数据,命令参考: pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}
示例: ./pg_dump -U pgroot -h pgsupu01.pg.rds.aliyuncs.com -p 3432 pg001 -f pg001.sql
详细导入导出方案请查看《PG数据库之间的导入导出》

四、RDS for PostgreSQL插件支持列表

插件名称

简介

PostGIS

postgis_tiger_geocoder

postgis_topology

earthdistance

提供空间和地理信息方面的数据类型、函数等,可以用于快速方便的构建地理信息系统。RDS支持的PostGIS插件的版本为2.1.7

PL/pgSQL

PG最常用的存储过程编程语言,与Oracle的PL/SQL类似。

PL/Tcl

使用类似C语言语法的存储过程编程语言

PL/Perl

使用Perl语法的存储过程编程语言

PL/V8

使用Javascript语法的存储过程编程语言。RDS支持的PL/V8插件的版本为1.4.2

hstore

使数据能以Key/Value方式高效存储和访问的数据类型插件

postgres_fdw

将远程PG数据库对象映射到本地数据,从而可以像本地数据一样访问它们的扩展插件

pg_stat_statements

收集SQL的运行信息(执行时间、次数等),存入系统表供监控调优的工具类插件

pgrowlocks

用于查看某个表中行锁的工具类插件

citext

提供大小写不敏感的字符类型的数据类型插件

其他

btree_gin

ltree

btree_gist

pgcrypto

chkpass

pg_prewarm

cube

pg_trgm

dblink

sslinfo

dict_int

tablefunc

fuzzystrmatch

tsearch2

intagg

unaccent

intarray

uuid

isn

  • 注意:
  • 1)因为安全原因,只允许创建”信任模式“的PL/Perl(plperl),不允许创建plperlu;而且不支持PL/Python。
  • 2)支持PL/V8。PL/V8 的版本为1.4.2,PostGIS 的版本为2.1.7

五、RDS for PostgreSQL更多产品文档

六、RDS for PG用户互动

  • DBA专家门诊

    PGSQL管理之道

    使用过程中的经典案例分享

    点此查看
  • 需求建议

    我对RDS有话说

    PGSQL使用中的意见和建议

    点此参加
  • 有奖互动

    体验报告提交

    1000元续费代金券等你哦!

    点此参加
  • 晒方案

    会赚钱的迁移方案

    你的PG迁移方案,100%有奖!

    敬请期待!