2025年9月25日: PostgreSQL 18 发布!

Database Lab Engine 2.2.0 和 Joe Bot 0.9.0

发布于 2021-02-25,作者 Postgres AI
相关专有 相关开源

关于 Database Lab Engine

Database Lab Engine (DLE) 是一个 PostgreSQL 数据库的开源实验平台。DLE 可以即时创建生产数据库的全尺寸精简克隆,您可以使用这些克隆来:

  1. 测试数据库迁移
  2. 优化 SQL 查询
  3. 部署全尺寸的暂存应用程序

Database Lab Engine 可以为任何大小的数据库生成精简克隆,从而消除了使用传统方法创建“厚”数据库副本所需的数小时(甚至数天!)时间。精简克隆是独立的、完全可写的,并且其行为与生产环境完全相同:它们拥有相同的数据,并将生成相同的查询计划。

详细了解 Database Lab Engine 并注册账户,请访问 https://postgres.ai/

Database Lab Engine 2.2.0

Database Lab Engine (DLE) 2.2.0 进一步改进了对两种类型的 PostgreSQL 数据目录初始化和同步的支持:“物理”和“逻辑”。特别是对于“逻辑”类型(对于像 Amazon RDS 用户这样的托管云 PostgreSQL 很方便),现在可以设置多个磁盘或磁盘阵列,并自动化按计划检索数据。这可以优雅地清理最旧的数据版本,而不会中断克隆的生命周期或造成停机。

其他改进包括:

  • 客户端 CLI(“dblab”)的自动补全
  • 克隆容器配置 — 现在可以在 DLE 配置中定义 Docker 参数(例如,在较新版本的 Postgres 中使用并行工作进程处理查询时所需的 --shm--size 以避免错误)
  • 允许请求非超级用户访问的克隆 — 这是 API 和 CLI 中名为“restricted”的新选项

Database Lab Engine 链接

Joe Bot 0.9.0 - 用于 SQL 优化的虚拟 DBA

“Joe Bot”,一个用于 SQL 优化的虚拟 DBA,是一种革命性的新方法来排查和优化 PostgreSQL 查询性能。用户无需直接在生产环境中运行 EXPLAIN 或 EXPLAIN (ANALYZE, BUFFERS),而是将查询发送给 Joe Bot 进行排查。Joe Bot 使用 Database Lab Engine (DLE) 来:

  • 生成一个全新的精简克隆
  • 在克隆上执行查询
  • 将结果执行计划返回给用户

返回的计划在结构和数据量上与生产环境相同——这是通过两个因素实现的:

  • 精简克隆拥有与生产环境(在指定时间点)相同的数据和统计信息,以及
  • 克隆上的 PostgreSQL 规划器配置与生产环境配置匹配。

Joe Bot 用户不仅可以获得关于查询如何在生产环境中执行的可靠且无风险的信息,还可以轻松地在自己的精简克隆上应用任何更改,并查看查询行为如何受到影响。例如,可以添加一个新索引,看看它是否真的有助于加快查询速度。

Joe Bot 的一个关键方面是用户不会直接看到数据,他们只处理元数据。因此,没有生产数据访问权限的团队可以被授予使用此工具的权限 [1]

Joe Bot 0.9.0 的主要变化是改进了安全性:在之前的版本中,使用了 DB 超级用户。现在所有请求都使用非超级用户。这使得不可能使用 plpythonu、COPY TO PROGRAM、FDW 或 dblink 来执行大量数据复制到不受严格防火墙保护的基础设施之外。强烈建议所有用户尽快升级。

另一个主要新功能是生产持续时间估计器,目前处于“实验”状态。此功能旨在帮助用户了解特定操作(例如,索引创建操作)在生产数据库上实际需要多长时间,因为生产数据库可能具有与 DLE 上运行的精简克隆不同的物理基础设施(例如,不同的文件系统、更多的 RAM 和/或更多的 CPU 核心)。阅读更多:“Database Lab 和生产环境之间的查询持续时间差异”

SQL 优化聊天机器人“Joe Bot”链接


[1] 尽管 Joe Bot 只返回元数据,但可以通过 EXPLAIN ANALYZE 来探测特定值的数据。在向没有生产级别访问权限的人员提供 Joe Bot 之前,请咨询您组织的安全专家。


Joe Bot 和 Database Lab Engine 都基于 OSI 批准的许可证(AGPLv3)分发。


我们非常重视您的反馈