开发者社区> it专家老杨> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

《OdooERP应用与开发案例教程》试读:第二章-PostgreSQL概述

简介: 文/开源智造联合创始人老杨 本文来自《OdooERP应用与开发案例教程》的试读章节。书籍尚未出版,请勿转载。欢迎您反馈阅读意见。 PostgreSQL是Odoo支持的数据库。PostgreSQL是起源于大学的一个历史很长的开源数据库系统。
+关注继续查看

文/开源智造联合创始人老杨

本文来自《OdooERP应用与开发案例教程》的试读章节。书籍尚未出版,请勿转载。欢迎您反馈阅读意见。

PostgreSQL是Odoo支持的数据库。PostgreSQL是起源于大学的一个历史很长的开源数据库系统。包括美国航天局NASA、德国证券交易中心、中国的平安、腾讯的微信支付、阿里巴巴的阿里云都在用PostgreSQL数据库。


PostgreSQL历史

上世纪70年代Edgar F. Codd博士研究关系型数据库理论时候,实际开发了一个数据库产品Ingres。Ingres名字是“Interactive Graphics Retrieval System”的缩写。后来的Sybase、微软的SQL Server也是基于这个Ingres数据库开发的产品。

1985年,加利福尼亚大学伯克利分校的Michael Stonebraker博士等人继承数据库Ingres,发布了Postgres数据库,这就是PostgreSQL的起源。1989年,Postgres 1.0在研究机构小范围内发布。1994年,Postgres发布了4.2版,随后,Postgres作为大学数据库研究项目终止了。

当时的Postgres数据库的查询语言不是SQL,是Postgres独有的。当时参与人员的感觉是“Postgres的引擎非常好,但没有方向盘,就像是用操作杆驾驶的汽车一样非常难操作”,也就是说Postgres的查询语言太难用了。因此,伯克利分校的研究生们用SQL替换了Postgres的查询语言,发布了Postgres95 。

虽然替换成SQL了,Postgres95(相当于Postgres版本5.0)在性能和可靠性方便还有待改善,另外开发人员太少也是个问题。因此,1996年,参考FreeBSD的做法,Postgres开发者分成了Core和Committer两种角色推进。

1995年,脱离大学研究项目,发布了Postgres95,而后,Postgres社区发起了命名的讨论,是用Postgres95,Postgres96呢,还是别的名字?最后决定,因为是在Postgres的基础上增加了SQL,因而用PostgreSQL的名字。版本也改成了5.0,6.0的版本号。

1996年,改名为PostgreSQL后一个月,1997年1月,发布了PostgreSQL 6.0。6.5版则增加了MVCC(MultiVersion Concurrency Control),性能大幅提高,同时增加了日文、中文等多字节字符的支持。

2000年前后出现了几个PostgreSQL服务的企业。最初诞生的是“PostgreSQL Inc”,该公司虽然在1997年设立了社区网站,但商业上却没有成功,慢慢地消失了。2000年“Great Bridge Inc”公司诞生了,该公司目标是做“数据库领域的红帽子”,同年入选了“25 Coolest Global Companies”,但也没多久就消失了。2004年诞生了EnterpriseDB公司,该公司一直持续到现在。该公司依托PostgreSQL开发者一起,面向企业提供PostgreSQL技术支持服务。

PostgreSQL的分支很多,基于PostgreSQL的衍生品也很多。SRA OSS的“PowerGres”,“富士通的Enterprise PostgreSQL”广为人知。其他的如数据仓库产品“Netezza”(被IBM收购),并行处理产品“Greenplum”,亚马逊Web Service之一的数据库服务“Redshift”,集群数据库“StormDB”,流数据库“TelegraphCQ”及其商业版“Truviso”(被思科收购),国内的阿里云PostgreSQL数据库服务等,都是基于PostgreSQL开发的。


PostgreSQL特性

PostgreSQL是一个功能强大的开源数据库系统。经过长达20年以上的积极开发和不断改进,PostgreSQL已在可靠性、稳定性、数据一致性等获得了业内极高的声誉。目前PostgreSQL可以运行在所有主流操作系统上,包括Linux、Unix(AIX、BSD、HP-UX、SGI IRIX、Mac OS X、Solaris和Tru64)和Windows。PostgreSQL是完全的事务安全性数据库,完整地支持外键、联合、视图、触发器和存储过程(并支持多种语言开发存储过程)。它支持了大多数的SQL:2008标准的数据类型,包括整型、数值值、布尔型、字节型、字符型、日期型、时间间隔型和时间型,它也支持存储二进制的大对像,包括图片、声音和视频。PostgreSQL对很多高级开发语言有原生的编程接口,如C/C++、Java、.Net、Perl、Python、Ruby、Tcl 和ODBC以及其他语言等,也包含各种文档。

作为一种企业级数据库,PostgreSQL以它所具有的各种高级功能而自豪,像多版本并发控制(MVCC)、按时间点恢复(PITR)、表空间、异步复制、嵌套事务、在线热备、复杂查询的规划和优化以及为容错而进行的预写日志等。它支持国际字符集、多字节编码并支持使用当地语言进行排序、大小写处理和格式化等操作。它也在所能管理的大数据量和所允许的大用户量并发访问时间具有完全的高伸缩性。目前已有很多PostgreSQL的系统在实际生产环境下管理着超过4TB的数据。一些PostgreSQL系统的极限值如下表所列:

极限值:

最大单个数据库大小   不限      

最大数据单表大小      32 TB

单条记录最大            1.6 TB

单字段最大允许   1 GB

单表允许最大记录数   不限

单表最大字段数   250 - 1600 (取决于字段类型)

单表最大索引数   不限

由于PostgreSQL的优异性能,它已赢得最终用户和业内的多次大奖,包括Linux新媒体(Linux New Media)的最佳数据库奖和5次Linux期刊编辑选出的最佳数据库奖。


PostgreSQL用户 

PostgreSQL的知名用户包括Skype、NTT、Salesforce的Heroku云数据库平台、Etsy等大型企业。PostgreSQL在日本数据库市场有超过60%的市场占有率,大量的制造业、游戏行业、企业ERP系统都采用了PostgreSQL。

2010年以来,随着中国互联网的迅速崛起, PostgreSQL在国内迅速发展,受到越来越多的企业尤其是互联网企业重视。据公开报导,腾讯、阿里、中国平安、苏宁、去哪儿网、斯凯网络等企业都在大规模应用PostgreSQL。尤其是腾讯,基于PostgreSQL架构了TDW(Tencent Distributed Warehouse腾讯分布式数据仓库)平台,存储腾讯海量核心业务数据。

TDW(Tencent Distributed Warehouse):腾讯分布式数据仓库,是腾讯公司海量数据处理平台的核心部件,承载着腾讯公司各业务群产品数据(如互联网增值、SNS、网游、电商等)的储存和处理工作。目前,TDW支持百PB级数据的离线存储和计算,为业务提供海量、高效、稳定的大数据平台支持和决策支持。

据2017年PostgreSQL技术大会腾讯大数据工程师的发言,腾讯TDW数据仓库集群超过100台服务器,超过100T(1T = 1000G)的数据量。

苏宁Citus系统案例。苏宁Citus是一个大数据分析系统,业务场景大致是,每5分钟从多个业务系统抽取业务数据到Citus数据库,每次要更新Citus中10张明细表,大约更新30万条数据记录。Citus中保留最近若干天的数据,数据总量大约3000万条记录。Citus数据库每5分钟分析抽取一次数据,形成30多张不同用途的业务报表。

Citus原来是基于IBM的DB2数据库构建的,如下图所示,DB2已经不堪重负,尤其是大促时候。而且,预计一年后数据量将增长到10倍,也就是每5分钟要更新300万条数据,Citus数据量将达到3亿条数据记录。

苏宁Citus技术团队调查研究之后,决定用PostgreSQL替换IBM DB2数据库。替换后的压力测试表明,系统实际性能表现超过设计目标50%以上。上线运行半年以来,效果相当稳定。苏宁的案例表明,PostgreSQL性能表现远优于IBM的DB2!

文章编辑:开源智造(OSCG) - 源自欧洲,业界领先的免费开源ERP Odoo金牌服务机构


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
基于资源编排一键交付连接RDS的应用
众所周知,许多 Web 应用都会涉及对数据库的访问,但出于对数据的保护,通常我们在构建应用时会将应用本身和其对应的数据库分别部署在不同的机器上,以实现数据与应用相隔离。同时,为了降低应用构建的复杂度,阿里云提供了稳定可靠、可弹性伸缩的在线数据库服务 RDS,实现了对数据库的快速部署,从而使得对应用的
3094 0
分析型数据库 PostgreSQL版本实例规格定义变更
信息摘要: 实例由按多个“计算组”组成,改为由按“节点”组成。一个节点只对应一个数据分区,简化规格定义,遵循标准集群数据库的模式。适用客户: 数据仓库/大数据/数据分析/数据库用户;政府/金融/零售/互联网等行业版本/规格功能: AnalyticDB for PostgreSQL 实例规格定义由多个“计算组”组成改为由多个“节点”组成。
878 0
SpringCloud系列----->SpringBoot项目中整合jooq和postgresql数据库
前言: 公司的BI项目采取的是SpringBoot + Jooq + postgresql 组织形势,现在将这个配置过程,详细记录下来。 Jooq和MyBatis和spring data jpa作用是一样的,都是用来链接操作数据库的。
2300 0
阿里云postgreSQL数据库逻辑备份
一、创建阿里云存储网关参考链接:https://help.aliyun.com/document_detail/108244.html 注意购买OSS bucket的区域与数据库实例所在的区域不同。 二、在与存储网关同一区域的ECS机器上面,挂载存储网关:mount.nfs x.x.x.x:/shares /ossx.x.x.x:/shares是网关的挂载点,/oss为本地目录参考链接:https://help.aliyun.com/document_detail/108284.html最好将nfs挂载点也写入/etc/fstab文件,重启自动挂载。
1115 0
MySQL与 PostgreSQL 数据库功能对比
概述 在几个流行的数据库中,我首先接触到的是MySQL,随着工作发展,接触到越来越多的是PostgreSQL数据库。这两个十分流行的开源数据库。在这之后,我就会经常和一些朋友进行讨论:MySQL和PostgreSQL两者之间到底有什么异同点呢?翻阅资料,今天就来学习一下 ACID的遵从性(ACID...
12071 0
使用Terraform管理分析型数据库 PostgreSQL版
Terraform 是一个开源的自动化的资源编排工具,支持多家云服务提供商。阿里云作为第三大云服务提供商,terraform-alicloud-provider 已经支持了超过 90 多个 Resource 和 Data Source,覆盖 20 多个服务和产品,吸引了越来越多的开发者加入到阿里云 Terraform 生态的建设中。
1643 0
PostgreSQL技术周刊第29期:Oracle数据库快速迁云至阿里云PPAS数据库
【点击订阅PostgreSQL技术周刊】 PostgreSQL(简称PG)的开发者们:云栖社区已有5000位PG开发者,发布了3000+PG文章(文章列表),沉淀了700+的PG精品问答(问答列表)。
4700 0
【PostgreSQL系列直播】Oracle数据库快速迁云至阿里云PPAS数据库
主讲人 樊文凯(唐修)阿里云数据库解决方案架构师,Oracle数据库专家,多年在政府、金融领域从事Oracle、MySQL、Postgres等数据库的运维、优化、架构工作,现在致力于为传统数据库企业上云构建通运解决方案,帮助企业IT系统快速、高效上云。
2257 0
Postgresql数据库安全性配置-密码
Postgresql数据库安全性配置-密码 数据库密码管理是数据库安全的重要环节之一。密码管理及配置策略主要包括: 密码加密存储 密码有效期 密码复杂度 密码验证失败延迟 密码验证失败次数限制,失败后锁定, 以及解锁时间 设置密码时防止密码被记录到数据库日志中下面会依次讲解在PostgreSQL中如何实现密码相关的安全性配置。
4805 0
PostgreSQL pgbench tpcb 海量数据库测试 - 分区表测试优化
标签 PostgreSQL , pgbench , tpcb 背景 pgbench是PG的一款测试工具,内置的测试CASE为tpcb测试。同时支持用户自己写测试CASE。 大量自定义CASE参考 https://github.com/digoal/blog/blob/master/201711/readme.md 当我们使用tpcb测试CASE时,如果生成的数据量过于庞大,例如我最近在生成1万亿的CASE,可以考虑使用分区表,但是目前PG内置分区表的性能在分区非常多时,使用PREPARED STATEMENT会导致性能下降。
1519 0
+关注
it专家老杨
开源PaaS协会专家顾问,专注开源软件企业信息化服务
文章
问答
文章排行榜
最热
最新
相关电子书
更多
PostgreSQL实战教程
立即下载
从零到一:IOS平台TensorFlow入门及应用详解
立即下载
PolarDB for PostgreSQL 从入门到实战
立即下载