活动预告:在即将到来的 2019 数据技术嘉年华大会上,来自 PostgreSQL 方面的主题同样丰富多彩,既有来自云厂商的数据库研发成果,新版本新特性介绍,还有来自于用户的最佳实践。
这些主题包括来自 华为智能数据与存储领域总裁 周跃峰 , 阿里巴巴以及PostgreSQL社区首席布道师的 周正中(德哥),华为GaussDB生态与标准CTO 王伟民,PostgreSQL社区核心成员 张文升,腾讯云的技术专家 孙旭,云和恩墨的研究员 刘伟,阿里云的技术专家 周振兴,腾讯云技术专家 李跃森 等的主旨分享。这些专家将为大家展示 PostgreSQL 数据库蓬勃的生命力和广泛的数据库生态,以及最佳应用场景。详情:http://www.modb.pro/dtc(复制到浏览器中打开或者点击阅读原文)
前言
武侠世界,9是个神奇的数字,武学秘籍有《九阳真经》《九阴真经》,凡武功修炼到第九层,闯荡江湖将独孤求败,快意恩仇。以文昌塔为喻,我把学习PG划分九层,希望可以对玩转数据江湖的同学,有所参照,逐层递进,直至达到高手行列,闯荡职场,游刃有余。
第一层:初识PG,开阔心胸
数据库不只有Oracle、DB2、SQLSERVER,还有PostgreSQL(简称PG),PG是最强大的开源数据库,PG开源友好,学习PG可以从事DBA/应用开发/系统内核开发等工作,而且会有很大的发挥空间,使用PG可以为企业提供有效的数据库管理,也可以自主可控、节约成本。当今职场,多懂几个数据库,会让我们有更多的机会。
初识PG,主要是学习认知PG的起源发展,主要版本特性,应用领域;了解国际PG社区组织、资源、动态,与中国PG分会、PG社区建立联系,积极互动,获取学习资源,尝试分享,展示自我。
第二层:安装使用,动手操练
“安装部署、服务管理、体系结构、初始化配置、数据库对象管理”,这是PG的应用管理基础,DBA要会,应用开发也要会。当然两种角色关注重点稍有不同,譬如DBA关注架构部署、运行稳定性和高效性,而应用开发更多的是掌握数据库对象的创建及管理。
第三层:把握要点,提纲挈领
PG作为关系型数据库承担着管理企业数据的重任。功能、性能很重要,稳定性更重要,这也是作为DBA首要考虑的问题。PG数据库发展30多年,国际、国内的众多应用案例表明稳定性可以信赖。关注学习与稳定性相关的知识点,能够将PG的稳定性发挥的更好:
PG稳定性要点:
内存配置
日志配置
磁盘管理
并发控制
进程控制
……
PG的功能强大、繁多,可以系统化、模块化的选择性学习。譬如PG有地理信息数据处理功能(GIS),暂时用不到可以先放过,除非很有志趣。DBA和应用开发人员可以根据工作需要深入学习不同功能要点。
PG功能列表:
安全控制
基准测试
监控功能
审计功能
并发控制
并行处理
临时表
触发器
函数、存储过程
执行计划
物理连接
数据缓存
物化视图
分区表
主从流复制
逻辑复制
访问外部数据
……
第四层:熟练操作,得心应手
学习了稳定性要点、功能列表后,PG基本可以用来服务于工作了。通过不断的自我练习,满足工作业务需求,会看到自己的水平会不断的进步。
第五层:透视功能,探究原理
PG功能点繁多,独特的功能适用于不同的业务场景,而且随着PG版本的更新迭代,重要的功能点也会不断得到优化,无论是使用上的便捷性还是性能的增强,无不体现着源码内核贡献着的智慧与追求:使PG不断完善,更好的服务于业务。
譬如分区表,PG V9版本中是通过表继承+触发器的方式实现,因触发器本身的限制,数据的插入性能并不高;PG V10实现了内置分区表,创建的分区实质上也是普通的表结构,从而管理分区方便,数据插入效率得以提高;PG V11增加哈希分区、默认分区、支持更新分区键等,完善了分区的功能。
探究原理能从内部机理深入理解,面对问题也能透过现象看本质,发现问题的诱因是使用不当还是系统bug,从而能更好的处理问题。
第六层:问题处理,性能优化
习得第五层是为了更好的使用PG,遇到问题可以快速定位、分析处理。处理问题需要平时多积累整理,一方面是技术群、网站论坛抛出的问题,主动思考、整理,学习总结,以备不时之需,有些问题平常不经常遇到,但一旦出现,之前没有处理过会比较棘手;另一方面是工作中的问题,通常会有应急处理办法,问题处理后,尽量形成问题分析报告,对有些问题选择深度思考、讨论,探究根本原因,进而归档或分享,这都是宝贵的经验。
性能优化一直是数据库大脑的重点,也是运维、开发者工作价值的体现。通过对内幕的探索,能够拨云见日,配合相关工具通过配置或SQL的优化,来提升数据库的访问性能。
第七层:读懂源码,快速定位
大学计算机相关专业的同学,一般会有C语言的课程,C语言可以算是世界上最伟大的编程语言之一,可以用来编写UNIX/Linux的内核,也可以实现Python/Ruby解析器、Apache中间件等,很多关系数据库都能看到C语言的影子。
PG源代码也是用C编写,尝试学习源码是件有挑战性的事,就如同驾驶手动挡汽车,如能操作熟练,必能体会其中的乐趣。不用任何解读,就能快速定位到源代码直接理解PG的工作逻辑,帮助我们更好的使用PG。
第八层:编写源码,完善优化
编写PG源码是有志于从事系统编程工作同学的追求或方向,PG的强大凝聚了世界各地PG内核编码工程师的智慧,遗憾的是,PG国际社区的贡献者档案中还没有出现中国人的名字。当然,国内也不乏优秀的系统编码者,期待通过大家共同的努力,将会涌现更多、更优秀的系统编码工程师出现在列表中!
PG国际社区贡献者列表链接:
https://www.postgresql.org/community/contributors/
第九层:融会贯通,自由驰聘
学习任何技能,最终的境界是融汇贯通,以无招胜有招。
无论大家从事DBA、DEV或者系统内核开发,通过有效的方法,坚持不懈的积累都可以达到这一层,自由挥洒。
后记
以上内容只是在PG的学习角度做的一些总结,用好PG还需要有良好的系统、数据库原理知识,这也是基础,犹如地基,地基稳,宝塔立。PG学习的九层宝塔,是为了更形象具体的描述,学习过程不是说必须按此一层一层进行,大家可以根据自己兴趣或工作需要有所选择的开展学习。
最后,说两点学习的方法体会:
第一:多交流、多阅读、多练习。
多与前辈交流,科学问答,多阅读优秀书籍,自己多做实验。书是人类进步的阶梯,学习最好的伙伴,可以根据学习阶段或工作需要选择阅读。
参考书目
《PostgreSQL修炼之道-从小工到专家》
《PostgreSQL 9X之巅》
《PostgreSQL实战》
《PostgreSQL指南:内幕探索》
《PostgreSQL服务器编程》
……
第二:投资学习,向导师借力。
培训是件专业的事,优秀的培训导师可以帮你快速把握要领、修正方法;帮你节约时间、能更快速有效的提升技能;还能够提供更多的资源,譬如良好的学习环境、就业机会、技术支持等,人生多一良师,也是一大幸事。
读罢本文,想必有读者会问我是几层,我只能这么回答您“路漫漫其修远兮,吾将上下而求索”。如果本文对您有所帮助,也不枉费脑力一场;如果您有不同意见也可以借PG分会平台发表或进一步交流。
作者:魏波,中国PG分会培训认证执行总监、资深数据库工程师,十多年的数据库运维管理及培训经验,掌握PostgreSQL架构部署、性能优化等,致力于推动PostgreSQL在中国的发展。
延伸阅读...
关于中国PostgreSQL分会
中国开源软件联盟PostgreSQL分会于2017年成立,由多家国内主要PG生态企业共同发起,是PostgreSQL数据库作为开源联盟重点发展和支持对象所产出的重要成果。受工信部中国电子信息产业发展研究院、中国开源软件联盟共同指导,以提高中国PostgreSQL发展和应用水平为宗旨,致力于构建PG产业生态、推动PG技术产学研用发展。作为国内唯一的PG行业协会组织,分会承担着在国内推广和发展PostgreSQL技术的职能。
关于中国PostgreSQL产业发展基金
中国PostgreSQL发展基金是由中国开源软件联盟PostgreSQL分会发起并管理,致力于在国内推动PostgreSQL生态发展的产业基金,PostgreSQL发展基金吸收多家PG技术应用企业捐助,基金总规模1000万。
分会使命:依托PG技术,催化产业共赢。
分会职能与任务:提升PG在中国影响力、促进PG产业生态发展
分会重点工作:
PostgresConf.CN(PCC)大会——中国地区规模最大,国际嘉宾最多的PG生态大会,PGconf全球正式会议。
PostgreSQL中国培训认证体系——国内唯一的体系化、规范化PG培训与认证体系
PostgreSQL中国象牙塔计划——联合各会员单位和PG产业链企业,依托中国PG产业发展基金,致力于推动高等院校PG产学研用生态发展,培养更多高水平PG技术人才的计划。该计划主要通过全国范围100所高等院校共建开源数据库创新实验室,PG分会高校实训基地,PG创新研究启动基金等方式落地,目标在未来5年培养5万以上PG专业技术人才。
PostgreSQL中国贡献者计划——依托中国PG产业发展基金和PG分会国际技术交流桥梁的职能,引导、培育更多的中国PG技术人员向国际社区核心开发者,源码贡献者方向发展,培育出一支以上世界级的核心社区贡献者团队。帮助中国数据库内核研究跨越式发展。
PostgreSQL生态基础建设——除PG培训认证体系外,通过PG人才供需平台、高等院校象牙塔计划、PG中国Support平台等打造推动PG生态发展的基础设施。为产业发展提供必要支撑与支持。
会员单位(截止2019.11):
阿里云计算有限公司
瀚高基础软件股份有限公司
腾讯云计算(北京)有限公司
北京百度网讯科技有限公司
云和恩墨(北京)信息技术有限公司
平安科技(深圳)有限公司
平安壹钱包电子商务有限公司
山大地纬软件股份有限公司
国家电网全球能源互联网研究院
北京许继电气有限公司
亚信科技(南京)有限公司
武汉大学计算机学院
惠而浦(中国)股份有限公司
北京海量数据技术股份有限公司
北京晟数科技有限公司
北京优技教育科技有限公司
北京今日智能科技有限公司
南京柯普瑞信息技术有限公司
成都文武信息技术有限公司
北京优炫软件股份有限公司
天曦网络科技(北京)有限公司
广州云徙科技有限公司
北京优帆科技有限公司
上海佳软信息科技有限公司
上海云贝网络科技有限公司
北京太阳塔科技有限公司
杭州乘数科技有限公司
了解 PostgreSQL 数据库生态,了解那些从 O2P 的故事和历程,诚邀参与 『2019 数据技术嘉年华』大会!现在加入,尽享超低票价优惠: