一些非常有用的 PostgreSQL 扩展

我亲爱的朋友们,今天让我们来讨论下 PostgreSQL 以及该数据库最有用的一些扩展。

PostgreSQL 是一个关系型数据库管理系统,主要特点:

  • 数据库支持几乎无限的大小;
  • 强大而且可靠的事务复制机制
  • 内建的可扩展编程语言
  • 继承
  • 可通过一些扩展组件进行功能扩展

今天我们主要介绍最后一个特性,下面让我们来看一些 PostgreSQL 的扩展。

PostGIS

http://www.oschina.net/p/postgis

PostGIS在对象关系型数据库PostgreSQL上增加了存储管理空间数据的能力,相当于Oracle的spatial部分。PostGIS最大的特点是符合并且实现了OpenGIS的一些规范,是最著名的开源GIS数据库。

PostPic

http://www.oschina.net/p/postpic

PostPic 是 PostgreSQL 数据库的扩展,用来在数据库内进行图像处理,PostPic 为 SQL 增加了 image 类型,还包含很多相关的函数用来处理图片以及从图片中抽取对应的属性。

PL/Proxy

http://www.oschina.net/p/pl+proxy

PL/Proxy和PostgreSQL集群的结构关系可以用下图清楚地表示

Texcaller

http://www.oschina.net/p/texcaller

Texcaller 是 TeX 命令行工具的编程接口,采用纯 C 编写的可移植库,无需外部依赖。

PgMemcache

http://www.oschina.net/p/pgmemcache

PgMemcache 是一组 PostgreSQL 用户自定义函数提供了访问 memcached 缓存服务器的接口。安装 pgmemcache 很简单,但需要一些额外的琐碎要求:libmemcached 必须是 0.38 或者更新版本,PostgreSQL 必须是 8.4 或者更新版本。该扩展提供了 memcached 数据的读写、搜索和删除。

Prefix

http://pgfoundry.org/projects/prefix

prefix 模块实现了文本的前缀匹配操作,支持索引典型的写法:
SELECT * FROM osc_prefixes WHERE prefix @> ’0123456789′ ORDER BY length(prefix::text) LIMIT 1

pgSphere

http://www.oschina.net/p/pgsphere

pgSphere 为 PostgreSQL 数据库提供球面数据类型,函数,和运算函数。

Multicorn

http://www.oschina.net/p/multicorn

Multicorn 是一个 PostgreSQL 9.1+ 的扩展模块,用于简化外部数据封装开发,允许开发者使用 Python 编程语言开发。

  • oracle_fdw – connects to Oracle databases.
  • mysql_fdw – connects to MySQL databases.
  • tds_fdw – connects to Sybase and Microsoft SQL Server databases.
  • odbc_fdw – connects to any ODBC source.
  • couchdb_fdw – connects to CouchDB databases.
  • redis_fdw – connects to Redis databases.
  • twitter_fdw – fetches messages from Twitter.
  • ldap_fdw – queries LDAP servers.
  • file_fdw – access data files in the server’s file system and query them as tables.
  • file_fixed_length_record_fdw – reads flat files with columns of fixed width.
  • PGStrom – uses GPU devices to accelerate sequential scan on massive amount of records with complex qualifiers.
  • s3_fdw – reads files located in Amazon S3.
  • www_fdw – accesses web services as a data source.
  • multicorn.sqlalchemyfdw – used to access data stored in any database supported by the sqlalchemy python toolkit, such as MySQL, SQLite, Oracle, Microsoft SQL Server and many others.
  • multicorn.fsfdw – used to access data stored in various files, in a filesystem.
  • multicorn.csvfdw – used to access data stored in CSV files.
  • multicorn.rssfdw – used to access items from an RSS feed.

Hstore

http://www.postgresql.org/docs/9.1/static/hstore.html

该模块为 PostgreSQL 提供存储Key-Value数据的功能,你可以定义 hstore 数据列来存储这样的数据,并可对这些数据进行分组、排序和唯一检索的查询。

Intarray

http://www.postgresql.org/docs/9.1/static/intarray.html

intarray 模块提供一系列有用的函数和运算用于操作整数数组,同时支持索引搜索。

如果数组中包含 null 元素,那么所有的这些操作都将抛出错误。当我开发一个简单的图像比较功能时,我会使用这个扩展 (http://leopard.in.ua/2010/12/09/bystroe-sravnenie-izobrazhenij-s-pomoshhyu-rubyphp-i-postgresql/, 俄文).

Dblink

http://www.postgresql.org/docs/9.1/static/dblink.html

Dblink 让你可以在 PostgreSQL 连接会话中支持连接到其他 PG 数据库,同时支持自主事务  autonomous transactions (like in Oracle).

That’s all folks!

英文原文OSCHINA原创翻译