专访唐成:从小工到专家,PostgreSQL的修炼之道

唐成,拥有十几年数据库、操作系统、存储领域的工作经验。目前任沃趣科技首席数据库架构师,从事数据库高可用、高性能以及数据库云化等方面的研究工作。历任阿里巴巴数据库专家、高级数据库专家,从事过阿里巴巴的线上Oracle、Greenplum、PostgreSQL数据库的架构设计和运维工作,为阿里巴巴的PostgreSQL数据库的布道者,推动阿里云的关系型数据库服务(RDS)中提供PostgreSQL数据库服务,为阿里巴巴PostgreSQL数据库方面的技术带头人。也曾任网易杭州研究院开发专家,主导了网易云计算中的云硬盘产品(类似amazon有EBS)的设计和开发。


日前,CSDN采访了唐成,请他分享数据库PostgreSQL发展现状以及未来趋势,以及从一名小工到专家的修炼之道。



唐 成


CSDN:你是从什么时候开始从事数据库工作的?有没有什么故事可以分享给大家?


唐成:在上大学时到工作的时间中,一直与数据库打交道。


  • 在1995年上大学期间接触了Foxbase数据库, Foxbase是一个单机的数据库,也可以是说是一门解释型的编程语言,可能现在一些年轻的人已不太知道这个东西了,但较早时期的人都对Foxbase留下了较深的印象,那时候很多信息系统都是用Foxbase完成。

  • 1997年正式到电信公司工作,主要做计费工作,那时使用的也是Foxbase,那时就觉得使用数据库很方便,比写程序存取数据方便多了。

  • 1997年底,当时的邮电部电信总局在全国提出要开发和建设一个叫“市内电话业务计算机综合管理系统”的工程,即“九七工程”,这是中国电信行业信息化的开端,当时我所在的省新疆电信使用的是Sybase数据库,第一次接触过Sybase数据库,那时感觉Sybase数据库比Foxbase先进多了,能共享数据多个同时访问,有事务的功能。

  • 后来在2002年接触到Oracle数据库,感觉Oracle数据库又比Sybase强了一些,锁可以做到行级别,而且可以双机跑同一个数据库,访问任一台机器看到的都是一样的,即当时的OPS技术(RAC技术的前身)。

  • 大约在2006年左右,接触到了PostgreSQL数据库,现在也记不清楚怎么接触到的PostgreSQL,当时好象是看看有什么象Oracle的开源数据库。

  • 真正成为一名正式的DBA,是在2008年加入阿里巴巴之后。那时开始专职搞数据库,那时也开始认真的学习PostgreSQL数据库,当时越学习越感觉PostgreSQL功能的强大,如表字段还可以用数组类型,如以前没有听过的一些索引的概念如Gist索引、部分内容索引。当时PostgreSQL良好的架构可以让人容易的扩展它的功能以及优美的源代码让我越来越喜欢上了PostgreSQL数据库。


CSDN:是什么原因促使你写下《PostgreSQL修炼之道:从小工到专家》这本书的?经历了多久完成著作的?这本书适合什么样的读者?


唐成:当时参加PostgreSQL中国社区时,大家在一起讨论的,就感觉中文的学习资源比较少,包括我自己学习的时候,也是感觉中文资料比较少,虽然看英文的资料也可以,但实际上对于母语不是英语的人来说,看英文的速度终究比中文慢一些。另在网上找的一些资料总是比较零散一些,不容易串起来。当时就想写一本PostgreSQL的书,尽量能把PostgreSQL的方方面面都能介绍到。当然最后下定决定写这本书,还是编辑lisa找到我的时候。


这本书从2013年中到现在完成,大约花了近两年的时间,因为都是靠业余时间完成的,所以写的比较慢,直到今年5月才正式出版本。个人觉得这本书首先适合数据库的入门者。


PostgreSQL是目前开源功能最强大的数据库,很多先进的数据库理念和功能都能在PostgreSQL中找到。PostgreSQL数据库的创始人Michael Stonebraker获得了2014年的图灵奖。到目前为止,数据库领域总共只有4个人获得图灵奖,前三位为1973 年 Bachman(数据库与网状数据库)、1981 年 Codd(关系数据库)、1998 年 Gray(数据库与事务处理)。


所以PostgreSQL数据库是数据库科学家们努力的一个结晶,初学者通过学习PostgreSQL能打实数据库的理论基础,掌握数据库领域中一些新进的技术。这本书还适合Oracle和MySQL的DBA,由于这本书把PostgreSQL数据库的方方面面都介绍了,Oracle和MySQL的DBA通过快速学习这本书,可以快速掌握PostgreSQL数据库的知识,即使你在工作中暂时用不到PostgreSQL,但学习PostgreSQL数据库可以让你拓宽视野。这本书还适合PostgreSQL数据库相关的开发人员,通过此书可以快速掌握PostgreSQL数据库方面的知识,让你开发出的程序更健壮,同时PostgreSQL良好的架构和丰富的接口让你容易扩展PostgreSQL数据库的功能,不必什么都自己实现,减少程序的代码量。


CSDN:作为数据库方面的专家,你怎么看待PostgreSQL目前以及未来的发展状况?


唐成:PostgreSQL数据库是数据库科学家们努力的一个结晶,所以在早期易用性不是太好,但在9.X版本之后,这种情况已经改变。9.0之后提供了流复制,可以搭建与Oracle类似的Standby,Standby可以做到只读,9.1、9.2、9.3、9.4这部分功能都一直在增强。9.4强大的JSBONB类型又可以把PostgreSQL数据库变成一个NOSQL数据库。目前社区越来越活跃,从DB-Engines网站数据库排名及分值,PostgreSQL数据库的人气越来越高,说明今后的发展会越来越好。


CSDN: PostgreSQL目前在国内外非常流行,你认为是什么造就了它的流行?与传统的关系型数据库相比,PostgreSQL有哪些优势?


唐成:PostgreSQL数据库越来越来流行,2015年的DTCC也设置了PostgreSQL的专场,这个结果是PostgreSQL厚积薄发的结果。PostgreSQL在早期的发展过程中,一直在打实基础,看看PostgreSQL的功能以及优美的源码就知道了。当建造一个建筑物时,开始打地基时,都是比较慢的,但如果把地基打的很结实合理,后面的速度就会大大增快。


与传统的关系型数据库相比,PostgreSQL数据库具备了一些NOSQL数据库的特点,如可以存JSON数据到数据库中,还可以在JSON数据的内部键值上建索引(类似全文检索的功能),字段类型可以支持数组类型,这样可以方便的把半结构化的数据存入其中。同时PostgreSQL与一些NOSQL一样提供了灵活的接口,便于扩展功能。


CSDN:在你看来,PostgreSQL对传统数据库是否构成威胁?传统数据库有哪些痛点呢?


唐成:不能说PostgreSQL数据库对传统数据库构成了威胁,但可能会终结Oracle数据库在传统数据库领域一家独大的情况。传统数据库不开源,不容易扩展功能,数据库系统比较重,安装包动则几个GB大小,不容易在云中部署,不能存储非结构化数据库,不能快速应对业务的变化。


CSDN:国内有哪些企业在使用PostgreSQL?能否例举一二。数据库的规模达到什么级别?


唐成:在国内,斯凯网络(股票代码:MOBI)和去哪儿网(qunar.com)的后台数据库基本使用的都是PostgreSQL数据库;腾讯和阿里也部分使用了PostgreSQL数据库。几百G大小的数据库非常多,几TB大小的数据库也经常见。阿里云和青云的平台都提供了PostgreSQL数据库。


CSDN:作为一名数据库专家,有什么使用经验可以分享给读者的?


唐成:其实也没有好的经验,只要对数据库有浓厚的兴趣,按本书或网上的一些教程搭建一个PostgreSQL环境学习, 不断的学习,不断地结合理论进行实践,你一定能成为一名数据库专家的。(欢迎下载《PostgreSQL修炼之道:从小工到专家》试读样章。)


PS:值得一提的是,CSDN将特别策划一期新型数据库专题,现面向广大网友征稿,与我们分享您的故事,与同行交流技术经验,欢迎投稿;详情请查看征文活动。



CSDN现开启图书作者专访栏目,欢迎推荐采访人或自荐,来分享你的成长经历和相关技术,相关信息请发送邮件至:xiamz#csdn.net(#换成@)。更多精彩内容,请点击社区之星或搜索关键字图书作者查看。


本文为CSDN原创,点击“阅读原文”可查看全文并参与讨论。


如果您喜欢这篇文章,请点击右上角“…”将本文分享给你的朋友。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读601次。Oracle的数据导入导出是一项基本的技能,但是对于懂数据库却不熟悉Oracle的同学可能会有一定的障碍。正好在最近的一个项目中碰到了这样一个任务,于是研究了一下Oracle的数据导入导出,在这里跟大家分享一下。......_oracle 迁移方法 对比
文章浏览阅读553次。开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共700多人左右 1 + 2)。最近我们在使用MYSQL 8 的情况下(8.025)在数据库运行中出现一个问题 参数prefer_order_i..._mysql prefer_ordering_index
文章浏览阅读3.5k次,点赞3次,收藏7次。折腾了两个小时多才成功连上,在这分享一下我的经验,也仅仅是经验分享,有不足的地方欢迎大家在评论区补充交流。_navicat连接opengauss
文章浏览阅读2.7k次。JSON 代表 JavaScript Object Notation。它是一种开放标准格式,将数据组织成中详述的键/值对和数组。_postgresql json
文章浏览阅读2.9k次,点赞2次,收藏6次。navicat 连接postgresql 注:navicat老版本可能报错。1.在springboot中引入我们需要的依赖以及相应版本。用代码生成器生成代码后,即可进行增删改查(略)安装好postgresql 略。更改配置信息(注释中有)_mybatisplus postgresql
文章浏览阅读1.4k次。postgre进阶sql,包含分组排序、JSON解析、修改、删除、更新、强制踢出数据库所有使用用户、连表更新与删除、获取今年第一天、获取近12个月的年月、锁表处理、系统表使用(查询所有表和字段及注释、查询表占用空间)、指定数据库查找模式search_path、postgre备份及还原_pgsql分组取每组第一条
文章浏览阅读3.3k次。上一篇我们学习了日志清理,日志清理虽然解决了日志膨胀的问题,但就无法再恢复检查点之前的一致性状态。因此,我们还需要日志归档,pg的日志归档原理和Oracle类似,不过归档命令需要自己配置。以下代码在postmaster.c除了开启归档外,还需要保证wal_level不能是MINIMAL状态(因为该状态下有些操作不会记录日志)。在db启动时,会同时检查archive_mode和wal_level。以下代码也在postmaster.c(PostmasterMain函数)。......_postgresql archive_mode
文章浏览阅读3k次。系统:ubuntu22.04.3目的:利用向日葵实现windows远程控制ubuntu。_csdn局域网桌面控制ubuntu
文章浏览阅读1.6k次。表分区是解决一些因单表过大引用的性能问题的方式,比如某张表过大就会造成查询变慢,可能分区是一种解决方案。一般建议当单表大小超过内存就可以考虑表分区了。1,继承式分区,分为触发器(trigger)和规则(rule)两种方式触发器的方式1)创建表CREATE TABLE "public"."track_info_trigger_partition" ( "id" serial, "object_type" int2 NOT NULL DEFAULT 0, "object_name..._pg数据表分区的实现
文章浏览阅读3.3k次。物联网平台开源的有几个,就我晓得的有、、thingskit、JetLink、DG-iot(还有其他开源的,欢迎在评论区留言哦!),然后重点分析了下ThingsBoard、ThingsPanel和JetLink,ThingsBoard和Jetlinks是工程师思维产品,可以更多的通过配置去实现开发的目的,ThingsPanel是业务人员思路产品,或者开发或者用,避免了复杂的配置带来的较高学习门槛。ThingsBoard和Jetlinks是Java技术体系的,ThingsPanel是PHP开发的。_jetlinks和thingsboard
文章浏览阅读3.8k次。PostgreSQL 数据类型转换_pgsql数字转字符串
文章浏览阅读7k次,点赞3次,收藏14次。在做数据统计页面时,总会遇到统计某段时间内,每天、每月、每年的数据视图(柱状图、折线图等)。这些统计数据一眼看过去也简单呀,不就是按照时间周期(天、月、年)对统计数据进行分个组就完了嘛?但是会有一个问题,简单的写个sql对周期分组,获取到的统计数据是缺失的,即没有数据的那天,整条记录也都没有了。如下图需求:以当前月份(2023年2月)为起点,往后倒推一年,查询之前一年里每个月的统计数据。可见图中的数据其实是缺少的,这条sql只查询到了有数据的月份(23年的1月、2月,22年的12月)_如何用一条sql查出按年按月按天的汇总
文章浏览阅读3.8k次,点赞66次,收藏51次。PostgreSQL全球开发小组与2022年10月13日,宣布发布PostgreSQL15,这是世界上最先进的开源数据库的最新版本_mysql8 postgresql15
文章浏览阅读1.3k次。上文介绍了磁盘管理器中VFD的实现原理,本篇将从上层角度讲解磁盘管理器的工作细节。_smgrrelationdata
文章浏览阅读1.1k次。PostgreSQL设置中文语言界面和局域网访问_postgressql汉化
文章浏览阅读4.2k次。PostgreSQL 修改数据存储路径_如何设置postgresql 数据目录
文章浏览阅读4.7k次。在项目中用到了多数据源,在连接postgres数据库时,项目启动报错,说数据库连接错误,说dual不存在,网上好多教程都是说数据库查询的时候的大小写问题,而这个仅仅是连接,咋鞥却处理方法是修改application-dev.yml中的配置文件.项目中的druid参数是这样的:确实在配置文件中有个查询语句。_relation "dual" does not exist
文章浏览阅读4.9k次。PostgreSQL是一款强大的关系型数据库,但在实际使用过程中,许多用户经常会遇到慢SQL的问题。这些问题不仅会降低数据库性能,还会直接影响业务流程和用户体验。因此,本文将会深入分析PostgreSQL慢SQL的原因和优化方案,帮助用户更好地利用这个优秀的数据库系统。无论你是初学者还是专业开发者,本文都将为你提供实用的技巧和方法,让你的PostgreSQL数据库始终保持高效快速。_postgresql数据库优化
文章浏览阅读1.6k次。Linux配置postgresql开机自启_linux 启动pgsql
文章浏览阅读2k次。本篇介绍如何在centos7系统搭建一个postgresql主备集群实现最近的HA(高可用)架构。后续更高级的HA模式都是基于这个最基本的主备搭建。_postgresql主备