PostgreSQL 是一款功能丰富的开源数据库,它支持丰富的数据类型,除了常用的数据类型外,还支持网络地址、数组、JSON、几何类型等,以满足应用程序开发需求。此外,PostgreSQL 还支持局部索引、表达式索引、GIST/GIN 索引以及范围索引,支持物化视图、集合查询、窗口函数;同时,PostgreSQL 还支持众多丰富的外部扩展,外部扩展完善了PostgreSQL的功能,奠定了 PostgreSQL 强大的扩展能力基础。

专家怎么说?

6月23日,PG社区主席、ApsaraDB数据库产品专家萧少聪(铁庵)通过《NoSQL、RDS和大数据异构融合实战》的直播,与大家分享了通过PostgreSQL实现NoSQL、RDS和大数据异构融合实战。下面小编就跟大家分享一下此次讨论的重点内容。

Why PostgreSQL ?


图一 PostgreSQL的发展历程

PostgreSQL的前身为ingres Database,从1973年伯克利分校的Ingres项目至今,PostgreSQL现已经过了几十年的发展。相比较于广泛使用MySQL开源数据库,我们之所以对PostgreSQL数据库情有独钟,是因为其独特的魅力所在:

  • 开放性更强:PostgreSQL基于BSD/MIT协议,对所有人免费,可以任意处置,包括使用、复制、修改、合并、发表、分发、再授权或者销售。唯一的限制是,软件中必须包含上述版权和许可提示;相比于其它如 GPL / Apache 开源协议更开放、更适合于长远的企业战略发展;
  • 稳定性:PostgreSQL至今已有超过40年历史,专注于OLTP事务处理;其多程衍生产品已经用于用于传统金融、通讯、能源企业认可,如:平安集团、MasterCard、浙江移动、日本NTT、韩国KT、国家电网;
  • 企业功能:在PostgreSQL 9.0中增加了大量的企业功能:
    • 数据流式复制(9.6支持多节点全同步);
    • 基于ACID的JSON及KV数据类型;
    • PostGIS地理信息模型;
    • FDW对接第三方数据源,或实现Sharding;
    • 可扩展支持R语言、网络、生物、化学等函数;
    • 唯一明确说明对SQL 2011的兼容程度>90%;

目前,PostgreSQL正面临着巨大的机遇:首先国内PostgreSQL使用量仅是国外的三十分之一,潜力巨大;从2011年开始,PostgreSQL在国内的查询指数呈现逐年倍增;同时众多国内外商业数据库都是基于PostgreSQL,生态丰富,使其大有成为数据库界Linux之势。

Why FDW ?

FDW全称Foreign-Data Wrapper,简单来说就是PostgreSQL中的外部表功能。得益于PostgreSQL源代码的开放性,当前已经支持包括:MongoDB、Redis、MySQL、SQL Server、Oracle、Hadoop、Hive、Elastic Search等近30种不同的外部数据源。也就是说可以将这些数据库当做是PostgreSQL内的表格直接进行如insert、delete等操作处理。

首先来看一下传统企业现有的数据操作模型。

图二 传统企业的数据操作模型

从上图可以看出,传统企业的数据操作模型中的数据库主要使用Oracle、MSSQL或者MySQL等关系型数据库;前端包括业务系统、OA系统、财务系统等大大小小不同的系统,各系统与之对应的数据库也不尽相同。

当传统企业面向互联网/物联网进行转型时,必须要构建新的系统与数据库。对于大部分企业而言,通常会选择MongoDB作为其数据库,这是因为互联网应用中大量的数据是以JSON这类非结构化模式存储。但MongoDB实际上不是一个关系型数据库,因此不具有表格(Table)之类的概念。当企业开发的新应用需要与传统的应用进行通信时,目前采用的方法是:在原有的业务、OA等系统的原有程序上加入新代码,而且新代码操作并非传统的SQL语句,而是使用MongoDB专用的语法进行操作,这使得整体的开发变得更为复杂。

图三 传统企业整个大数据处理模型

对于传统企业整合大数据处理而言,需要将数据放入到Hadoop/Spark/HBase中进行整体分析。在这个过程中,需要将MongoDB以及传统的Oracle/MSSQL/MySQL中的数据通过定期ETL清洗等方式定期传回到大数据分析平台中,并且利用Hadoop编写MapReduce一系列的组件将Hadoop中的分析结果转存系统的数据库中,以供业务系统使用。

因此,在传统企业向互联网/物联网转型的过程中,会创造大量的软件,而这些软件可能是由不同的代码语言编写而成;同时还需要在旧的系统中扩展新的代码。总结来看,传统的企业(ISV)面临的问题可以概括成下面三点:

  • 时间:不抓紧时间转型将可能错失良机;
  • 复杂:新架构跨界操作多管理难;
  • 团队:新知识积累不足,抗风险能力低。

如何去解决这些问题呢?我们采用的方式是:PostgreSQL FDW 。

图四 PostgreSQL FDW

从上图可以看出,通过FDW之后,可以将MongoDB/Redis等NoSQL数据库、MySQL/SQL server等RDS关系型数据库或者Hadoop等大数据处理平台,甚至是一些OSS/Excel等文件当成一系列的外部表进行操作。

话题讨论

PostgreSQL被誉为“全球最先进的开源数据库”,有着40年历史,以核心交易型事务处理为发展重心的关系型数据库。对于如此强大的数据库,我们所能介绍的只有冰山一角。 根据上述的分享,小编设置了3个问题供大家交流讨论:

  1. PG有哪些模块可以进行再优化?
  2. PG的架构选择是进程好还是线程好?
  3. PG的FDW你最想结合什么种类的数据库?


瀚高软件作为推广PostgreSQL在中国发展的中坚力量,多年来一直致力于促进PG国产化进程,在从PG汲取营养的同时,也不断寻求契机回报PG。未来期待更多的开发者成为PostgreSQL新生的一代,共同推进其在国内的发展。

奖品设置

即日起至7月22日12:00,小伙伴们可以点击下方“写留言”参与话题讨论。活动结束后,小编将选出三个亮点留言,分别送出PG最新参考书目《数据架构师的PostgreSQL修炼:高效设计、开发与维护数据库应用》一本!

赶紧点击下方的留言,发表你的看法吧!

服务热线:400-708-8006

HighGoDB咨询热线:0531-55701518

官方网站:www.highgo.com

官方微信:HIGHGO2005

请在登录后发表评论,否则无法保存。
© 2010 PostgreSQL中文社区