前言
平时我在写文章、准备分享,或者研究 PostgreSQL 的某个技术方向时,我经常会去翻各类 PG 大会的演讲材料,因为这些材料的质量很高很干。
很多 PostgreSQL 新特性,在进入正式文档之前,开发者可能已经在 PGConf.dev、PGConf.EU、PGCon 或其他地区性大会上讲过一轮。除了新版本特性,还有优化器、执行器、存储、复制、备份恢复、扩展生态等大量实践内容。
有时一个问题在官方文档里只有几句话,会议 PPT 里却会讲清楚设计背景、实现细节、测试过程,以及为什么最后选择了现在这套方案。
因此,我一直觉得 PostgreSQL 各类大会的演讲材料,是一个很值得长期整理的资料来源。
可关键问题是,这些资料并不好收集。这些资料往往分散在不同会议网站里。有些 PPT 是大会结束后才陆续放出来,有些页面需要一层层点进去,有些文件名还是各种缩写或者 URL slug。
以前如果想系统性收集这些资料,基本只能靠人工:
- 先去 PostgreSQL 官方活动页面找会
- 再进入会议官网,打开 Agenda 或 Schedule,逐个点进 Session 页面,
- 看看演讲者有没有上传 Slides
- 如果上传了,再把 PDF、PPT 或 PPTX 一个个下载下来。
如果只是下载一两个还好。但如果想长期收集 PostgreSQL 生态大会资料,这件事就会变得很繁琐。
所以我开源了一个小工具:pg-slide-harvester,GitHub 地址:https://github.com/xiongcccc/pg-slide-harvester,觉得项目不错点个 ⭐️ ~
这个工具解决什么问题
其目标很简单:自动发现、下载、整理 PostgreSQL 相关会议中的公开 PPT/PDF 资料。目前整个流程大致如下:
1 | PostgreSQL 官方活动页面 |
这个工具目前可以完美解决我自己的真实需求:
- 不想每次手动去会议网站里找 PPT
- 不想错过大会后几天才发布的 slides
- 不想下载下来之后面对一堆混乱文件名
- 不想按会议一个个目录找资料
- 希望所有资料可以按主题长期沉淀下
下载完成后,它会把资料整理成类似这样的结构:
1 | archive/ |
自动按照内容主题进行分类。
基本使用方式
安装后可以直接使用 pgsh 命令:
1 | python3 -m pip install -e . |
也可以不安装,直接运行脚本:
1 | python3 pgppt.py init |
比如我想下载 PGConf.dev 2026 的资料,只需要执行:
1 | pgsh download-event "PGConf.dev 2026" |
工具会尝试根据本地已经发现的 event 信息,自动寻找对应会议页面,并下载公开可访问的 slides。
针对资料延迟发布的处理
很多大会的 PPT 并不是当天立刻放出来。
有些可能是几天后,有些甚至更久。
所以工具里也做了一个简单的状态跟踪机制。
如果某个 session 当前没有发现 slides,它不会直接丢掉,而是记录为 missing,后续可以通过:
1 | pgsh tick |
继续检查这些尚未发布的资料。因为会议资料发布本来就不是一个强实时行为,不适合只抓一次。
文件名也做了规范化
很多会议网站里的文件名并不适合长期保存。比如可能是:
1 | Update-on-index-prefetching.pdf |
工具下载后会尽量使用 session 标题作为文件名,并清理掉不适合做文件名的特殊字符。例如:
1 | Update on index prefetching.pdf |
这样放在本地目录里会清楚很多。
每次下载都会生成报告
此外我还加了 report 机制。
每次下载都会按照 event 和日期生成一份清单,方便知道:
- 哪一天下载了什么
- 哪些文件是新下载的
- 哪些文件已经存在
- 哪些 session 还没有发布 slides
- 文件来自哪个 URL
- 被归类到了哪个主题
同时也有一个全局报告:
1 | reports/index.html |
以及每次运行的单独报告:
1 | reports/runs/2026-07-14/pgconf.dev-2026-run-12.html |
这个对后续复盘很有帮助。
后续计划
后面可能会继续完善几个方向:
- 支持更多 PostgreSQL 会议网站 adapter
- 改进分类规则
- 增加定时任务使用说明
- 对 PGConf.EU、PostgreSQL Europe 等站点做更好的适配
- 逐步积累更多真实会议样本
- 也可以考虑对下载后的 PDF 和 PPTX 提取正文,增加本地全文搜索。到那时,查找资料就不只是依赖标题和摘要,还可以直接搜索某一页演讲中出现的内容。
不过这些可以慢慢做。
现阶段先把会议发现、资料下载、延迟补抓、主题整理和来源追踪这条链路跑通,已经解决了我自己收集 PG 大会资料时最麻烦的一部分工作。
项目地址:https://github.com/xiongcccc/pg-slide-harvester,别忘了给个 ⭐️。
工具不复杂,但我觉得挺实用。
毕竟,好的技术资料,下载下来只是第一步。
真正有价值的是,能长期沉淀、分类、复习,并在需要的时候快速找到。
评论区按需加载,正文阅读不会被第三方服务拖慢。