Hamlet 如何利用 Databricks Lakebase Postgres 基于生产数据测试变更

Hamlet 如何利用 Databricks Lakebase Postgres 基于生产数据测试变更

💡 原文英文,约2000词,阅读约需8分钟。
📝

内容提要

Hamlet 是 AI 政务平台,索引全美 7200 多个政府机构会议,帮助开发商等搜索会议记录、追踪政策。由于地方政府网站碎片化、数据整合困难,Hamlet 使用 Databricks Lakebase Postgres 为每个拉取请求创建生产数据分支,让工程师和 AI 编码代理在真实数据上测试而不影响生产,合并仍由人工审批。此前准备测试数据每周耗时数小时,现已大幅提速。团队还在探索统一向量与文本搜索、对象存储分支及更长代理任务。

🔎

延伸解读

数据分支如何解决测试数据准备痛点

Hamlet 此前使用 AWS RDS 的单一 staging 实例,每个拉取请求需花 15 到 30 分钟将 staging 调整到正确状态,且这还只是复制到恰好正确数据的最佳情况。工程师每周可能耗费数小时维护测试数据。Lakebase 为每个 PR 创建生产数据分支后,预览环境部署时数据已就绪,可直接在生产数据上测试甚至写入而不影响生产,显著减少了准备时间。

AI 编码代理的隔离测试与人工审批

每个拉取请求拥有独立的生产数据分支,使 Claude 或 Codex 等 AI 编码代理能访问该分支并运行自己的检查,包括跑完数据管道并验证变更效果。每个 PR 都会先经过代理的第一轮检查,让人工审查时已有较高信心。但最终合并仍由人工批准,代理无法直接触碰生产环境,兼顾了自动化效率与安全控制。

搜索与对象存储的下一步简化方向

Hamlet 目前关系型数据与向量搜索分属不同数据库,两者容易不同步,测试搜索又回到旧 staging 问题。团队正试用 Lakebase Search 将向量与文本搜索统一到 Postgres 中。此外,他们希望将分支能力扩展到对象存储中的大文件,并探索运行更长的代理任务,因为当前 AWS Lambda 的 15 分钟限制无法覆盖部分耗时 30 到 40 分钟的浏览器代理任务。

❓

Q&A

Hamlet 是什么平台,主要解决什么问题?

Hamlet 是一个 AI 政务平台,索引并转录全美 7200 多个政府机构(如市议会、规划委员会、分区董事会)的会议,让房地产开发商、记者、研究人员和公民能即时搜索会议记录、追踪地方政策,并针对特定话题、地址或企业设置实时提醒。

为什么地方政府数据难以整合?

美国有 19,000 个市政府、3,000 个县政府和约 80,000 个特别区,网站由少数 CMS 提供商各自定制,导致互联网上的政府数据完全碎片化。整合时不能只对接一个提供商,七八家覆盖约 75% 市场,其余是大量定制设置,有时书记员上传 PDF 议程,有时扫描纸质副本,产生奇怪的文件。

Hamlet 如何确保 AI 对官员发言的解读准确可信?

首先确保转录准确。对于情感分析,使用多个 AI 模型确认评论确实针对特定话题(如数据中心),再结合上下文判断是支持还是反对。在提问前会明确定义“支持”和“反对”的含义(例如警务话题)。多个模型会审查每个情感数据后才发布,并要求高置信度。

Hamlet 为什么选择 Databricks Lakebase Postgres 而不是原来的 RDS 设置?

原来在 AWS RDS 上只有一个生产实例和一个 staging 实例,每个拉取请求需要花 15 到 30 分钟把 staging 调整到正确状态才能验证,工程师每周可能花数小时维护测试数据。Lakebase 的数据分支功能让每个拉取请求自动获得生产数据的分支,预览部署时即就绪,可直接用生产数据测试甚至写入而不影响生产。自动扩展也更方便,调整滑块即可扩容,无需耗时数小时的迁移。

Lakebase 如何支持 AI 编码代理工作?

每个拉取请求都有隔离的生产数据分支,团队给 Claude 或 Codex 等代理访问其分支的权限,让代理运行数据管道并检查更改是否符合预期。每个拉取请求先由代理完成第一轮检查,人工审批合并前团队已较有信心。最终合并仍由人批准。

Lakebase 的分支在 Postgres 中如何工作?

Lakebase 分支是一个独立的 Postgres 环境,以父分支的模式和数据为起点,通过写时复制共享存储。只有分支上的更改会单独写入,因此创建分支不依赖数据库大小。标准 Postgres 通过复制现有数据库来创建新库,会复制数据;Lakebase 分支避免复制,且子分支的更改永远不会影响父分支。

如何为每个拉取请求自动创建和删除 Lakebase 分支?

在 CI 管道(如 GitHub Actions)中添加两个步骤:PR 打开时从生产创建分支,PR 合并或关闭时删除分支。可用 Databricks CLI 编写脚本。创建分支时设置过期时间(TTL),以便清理步骤未运行时分支也能自动删除。

Lakebase 分支的成本如何计算?

成本取决于计算和存储。每个分支有自己的计算资源,空闲时缩容到零,只需为活跃计算时间付费。存储方面,有过期时间的分支仅对更改的数据计费,而无过期的永久分支按完整数据大小计费。建议为短期分支设置过期时间。

🏷️

标签

➡️

继续阅读