Skip to content

Latest commit

 

History

History
186 lines (124 loc) · 10.1 KB

20240509_02.md

File metadata and controls

186 lines (124 loc) · 10.1 KB

摸到门路了! 如何学好PostgreSQL或基于它的国产开源数据库

作者

digoal

日期

2024-05-09

标签

PostgreSQL , PolarDB , DuckDB , 学习 , 进阶


背景

我经常被问到:

  • 特别想学习开源PostgreSQL或基于PostgreSQL的国产开源数据库, 但是苦于找不到资料?
    • 先把根学好, 很多国产数据库的文档、代码注释都不太清晰, 建议先把根(PostgreSQL)学好. 毕竟PG是教科书级别的存在.
  • 资料太多, 不知道分辨哪些适合自己?
  • 正规划一条寂寞的晋级之路, 应该如何一步一步实现从菜鸟到大咖?

为此整理了一些资料和方法, 仅供参考. 至于每个阶段达到什么样的标准就应该进入下个阶段, 我觉得你得自我感觉, 没有统一的标准.

一、学习环境

1、《PostgreSQL Docker镜像学习环境 AMD64版, 已集成热门插件和工具》

# 拉取镜像, 第一次拉取一次即可. 或者需要的时候执行, 将更新到最新镜像版本.    
docker pull registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts    
    
# 启动容器    
docker run --platform linux/amd64 -d -it -P --cap-add=SYS_PTRACE --cap-add SYS_ADMIN --privileged=true --name pg --shm-size=1g registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts  
  
##### 如果你想学习备份恢复、修改参数等需要重启数据库实例的case, 换个启动参数, 使用参数--entrypoint将容器根进程换成bash更好. 如下:   
docker run -d -it -P --cap-add=SYS_PTRACE --cap-add SYS_ADMIN --privileged=true --name pg --shm-size=1g --entrypoint /bin/bash registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts  
##### 以上启动方式需要进入容器后手工启动数据库实例: su - postgres; pg_ctl start;    
    
# 进入容器    
docker exec -ti pg bash    
    
# 连接数据库    
psql    

2、《PostgreSQL Docker镜像学习环境 ARM64版, 已集成热门插件和工具》

# 拉取镜像, 第一次拉取一次即可. 或者需要的时候执行, 将更新到最新镜像版本.    
docker pull registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts_arm64    
    
# 启动容器    
docker run -d -it -P --cap-add=SYS_PTRACE --cap-add SYS_ADMIN --privileged=true --name pg --shm-size=1g registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts_arm64  
  
##### 如果你想学习备份恢复、修改参数等需要重启数据库实例的case, 换个启动参数, 使用参数--entrypoint将容器根进程换成bash更好. 如下:   
docker run -d -it -P --cap-add=SYS_PTRACE --cap-add SYS_ADMIN --privileged=true --name pg --shm-size=1g --entrypoint /bin/bash registry.cn-hangzhou.aliyuncs.com/digoal/opensource_database:pg14_with_exts_arm64    
##### 以上启动方式需要进入容器后手工启动数据库实例: su - postgres; pg_ctl start;    
    
# 进入容器    
docker exec -ti pg bash    
    
# 连接数据库    
psql    

二、打基础

官方手册:

内部原理(偏理论):

内部原理(偏实用):

三、找到小伙伴一起进步

加入各种微信群, 现在特别特别多, 都是资深玩家们建的群: PG社区,polardb社区,灿灿,若航,华阳,首席,尚雷techtalk,pgfans,青学会,老唐,老郭,恩墨大讲堂等等.

实在不知道可以加我, 拉你进去.

加入微信群不要只想着索取, 要多回馈(分享、解答别人的问题、参与讨论都可以), 回馈多了人家不仅感激你, 你的影响力也大了, 如果被贵人发现, 对你的职业发展有很大的帮助.

四、工具的使用

第一步给到的学习镜像里面集成了大量日常可能会用到的一些工具、插件, 可以逐渐熟悉.

  • 解决日常管理问题. 例如备份、恢复、高可用、优化、诊断等日常管理需求.
  • 解决业务层的问题. 例如文本搜索、向量搜索、图、时序、GIS、化学分子等业务层需求.

五、紧跟开源社区最新小道消息

社区最近的新闻:

postgresql周刊:

六、用户和黑客们在聊什么

规划功能交流区:

bug交流区:

内核开发者最活跃的交流区:

用户交流区:

七、了解代码, 成为黑客(开发者)

代码Flowchart:

在线的代码结构分析工具:

开发者维基百科:

代码里面有很多readme和注释, 前期就可以翻阅, 里面参考的论文也可以看一看. 到这里你应该再横向看看其他的单点方面特别优秀的新产品:

  • 例如在AP方面特别突出的DuckDB, 它参考了哪些论文进行设计, 用到了什么新的技术使得它在单点方面特别优秀,
  • 又比如datafusion这种架构的产品, 多看, 未来能预判数据库产品可能会往什么方向发展(就像下棋会下出棋感?).

参与到开源项目中, 例如可以先从代码review开始. 或者参与issue的讨论.

如果你有更多的想法, PolarDB开源社区和高校有合作教研的项目, 可以作为PolarDB顾问委员会的成员参与进来, 指导学生们研读和修改代码, 你也可以参与一起开发.

如何成为顾问? 如何参与? 请联系我.

附录, 一直奋斗在一线的人(我)写的一些文章

以下内容可能要科学上网获取:

1、视频下载链接: https://pan.baidu.com/s/1Q5u5NSrb0gL5-psA9DCBUQ (提取码:5nox 如果链接失效请通知我, 谢谢)
2、《2021-重新发现PG之美 系列 - 适合架构师与业务开发者》
3、《2021-DB吐槽大会 系列 - 适合产品经理、架构师与内核开发者》
4、《2020-PostgreSQL 应用场景最佳实践 - 适合架构师与业务开发者》
5、《2020-PostgreSQL+MySQL 联合解决方案课程 - 适合架构师与业务开发者》
6、《2019-PostgreSQL 2天体系化培训 - 适合DBA》
7、《2017-PostgreSQL 应用场景实践 - 适合架构师与业务开发者》
8、《2019-PG天天象上沙龙纪录 - 适合DBA》
9、《2019-Oracle迁移到PostgreSQL - 适合DBA与业务开发者》
10、《2021-Ask 德哥 系列 - 适合DBA与业务开发者》
11、《2018-PG生态、案例、开发实践系列 - 适合架构师与业务开发者》
12、《2018-阿里云POLARDB for Oracle|RDS for PPAS 讲解视频》
13、《2022-每天5分钟,PG聊通透 - 系列1 - 热门问题》
14、《2023-PostgreSQL|PolarDB 学习实验手册》
15、《2023-PostgreSQL|PolarDB 永久免费实验环境》
16、《2024-开源PolarDB|PostgreSQL 应用开发者&DBA 公开课》

1、《Oracle DBA 增值+转型 PostgreSQL 学习方法、路径》
2、《PostgreSQL、Greenplum 技术+108个场景结合最佳实践《如来神掌》》
3、《PostgreSQL 数据库安全指南 - 以及安全合规》
4、《PostgreSQL 持续稳定使用的小技巧 - 最佳实践、规约、规范》
5、《PostgreSQL DBA最常用SQL》
6、《PostgreSQL 数据库开发规范》
7、《企业数据库选型规则》
8、《PostgreSQL 规格评估 - 微观、宏观、精准 多视角估算数据库性能(选型、做预算不求人)》
9、《数据库选型之 - 大象十八摸 - 致 架构师、开发者》
10、《数据库选型思考(PostgreSQL,MySQL,Oracle)》
19、PolarDB开源数据库高校工作室 发布《PostgreSQL+PolarDB开源数据库人才认证培训》教程+实验手册 下载

digoal's wechat