跳转到主要内容
ClickHouse Managed Postgres 是采用 NVMe 存储的企业级 Postgres,与 EBS 等网络附加存储相比,可为磁盘受限型工作负载带来最高 10 倍的性能提升。本快速入门分为两个部分:
  • Part 1: 开始使用 NVMe Postgres,并体验其性能
  • Part 2: 通过与 ClickHouse 集成,解锁实时分析能力
Managed Postgres 目前已在 AWS 的多个区域提供,并在私有预览期间免费。 在本快速入门中,您将:
  • 创建一个采用 NVMe 存储、具备高性能的 Managed Postgres 实例
  • 加载 100 万条样本事件,亲自体验 NVMe 的速度
  • 运行查询,体验低延迟性能
  • 将数据复制到 ClickHouse,实现实时分析
  • 使用 pg_clickhouse 直接从 Postgres 查询 ClickHouse

第 1 部分:开始使用 NVMe Postgres

创建数据库

要创建新的 Managed Postgres 服务,请在 Cloud Console 的服务列表中点击 New service 按钮。然后即可选择 Postgres 作为数据库类型。 为数据库实例输入名称,然后点击 Create service。随后会进入概览页面。 您的 Managed Postgres 实例将在 3 到 5 分钟内完成预配并可供使用。

连接到你的数据库

在左侧边栏中,你会看到一个 Connect 按钮。点击该按钮即可查看连接信息以及多种格式的连接字符串。 复制 psql 连接字符串并连接到你的数据库。你也可以使用任何兼容 Postgres 的客户端 (如 DBeaver) 或任何应用程序库。

体验 NVMe 性能

下面来实际感受一下 NVMe 带来的性能提升。首先,在 psql 中启用计时功能,以测量查询执行时间:
创建两个示例表,分别用于事件和用户:
现在,插入 100 万条事件,看看 NVMe 的速度:
NVMe 性能在不到 4 秒的时间内插入 100 万行 JSONB 数据。在使用 EBS 等网络附加存储的传统云数据库中,由于网络往返延迟和 IOPS 限流,同样的操作通常要多花 2 到 3 倍的时间。NVMe 存储将存储设备直接与计算资源物理连接,从而消除这些瓶颈。性能会因实例规格、当前负载和数据特征而异。
插入 1,000 个用户:

查询你的数据

现在我们来运行一些查询,看看在使用 NVMe 存储时 Postgres 的响应速度有多快。 按类型聚合 100 万条事件:
结合 JSONB 过滤和日期范围进行查询:
将事件与用户联接:
您的 Postgres 已准备就绪至此,您已经拥有一个功能完善、性能出色的 Postgres 数据库,可用于承载事务型工作负载。继续阅读第 2 部分,了解原生 ClickHouse 集成如何显著提升您的分析能力。

第 2 部分:使用 ClickHouse 增加实时分析能力

虽然 Postgres 擅长事务处理工作负载 (OLTP) ,但 ClickHouse 是专为海量数据集上的分析查询 (OLAP) 而设计的。将两者集成后,你就能兼得两者之长:
  • Postgres 用于应用程序的事务型数据 (插入、更新、按键查询)
  • ClickHouse 用于对数十亿行数据进行亚秒级分析
本节将介绍如何将 Postgres 中的数据复制到 ClickHouse,并对其进行无缝查询。

设置 ClickHouse 集成

现在我们已经在 Postgres 中创建了表并写入了数据,接下来将这些表复制到 ClickHouse 中用于分析。首先,点击侧边栏中的 ClickHouse 集成。然后点击 在 ClickHouse 中复制数据 在接下来的表单中,你可以为集成输入一个名称,并选择一个现有的 ClickHouse 实例作为复制目标。如果你还没有 ClickHouse 实例,也可以直接在此表单中创建一个。
重要请确保所选的 ClickHouse 服务处于 Running 状态后再继续。
点击 Next,进入表选择器页面。在这里,你只需要:
  • 选择一个要复制到的 ClickHouse database。
  • 展开 public schema,并选择我们之前创建的 users 和 events 表。
  • 点击 将数据复制到 ClickHouse
复制过程将会开始,随后你会进入集成概览页面。由于这是第一个集成,设置初始基础设施可能需要 2 到 3 分钟。在此期间,我们来看看新的 pg_clickhouse extension。

在 Postgres 中查询 ClickHouse

pg_clickhouse 扩展允许你使用标准 SQL 直接从 Postgres 查询 ClickHouse 中的数据。这意味着你的应用程序可以将 Postgres 作为统一的查询层,同时查询事务型和分析型数据。详情请参阅完整文档 启用该扩展:
然后,创建一个连接到 ClickHouse 的 foreign server。对于安全连接,请使用端口 8443http 驱动:
<clickhouse_cloud_host> 替换为你的 ClickHouse 主机名,将 <database_name> 替换为你在设置复制时选择的数据库。你可以在 ClickHouse 服务中点击侧边栏里的 Connect 来找到主机名。 现在,将 Postgres 用户映射到 ClickHouse 服务的凭据:
现在将 ClickHouse 表导入 Postgres schema:
<database_name> 替换为你在创建服务器时使用的数据库名称。 现在,你可以在 Postgres 客户端中看到所有 ClickHouse 表:

查看分析效果

让我们回到集成页面。你应该会看到初始复制已经完成。点击集成名称即可查看详细信息。 点击服务名称,打开 ClickHouse Console 并查看你的复制表。

比较 Postgres 与 ClickHouse 的性能

现在我们来运行一些分析查询,对比 Postgres 和 ClickHouse 的性能。请注意,复制表采用 public_<table_name> 的命名约定。 查询 1:按活跃度排序的高活跃用户 此查询通过多个聚合找出最活跃的用户:
查询 2:按国家和平台划分的用户参与度 此查询将 events 与 users 两张表关联,并计算参与度指标:
性能对比:
何时使用 ClickHouse即使是在这个包含 100 万行的数据集上,ClickHouse 在包含 JOIN 和多个聚合的复杂分析查询中,性能也可提升 3–7 倍。随着规模进一步扩大 (超过 1 亿行) ,这种差距会更加明显:ClickHouse 的列式存储和向量化执行可带来 10–100 倍的加速。查询时间会因实例大小、服务间的网络延迟、数据特征以及当前负载而有所不同。

清理

要删除在本快速入门中创建的资源:
  1. 首先,从 ClickHouse 服务中删除 ClickPipe 集成
  2. 然后,在 Cloud Console 中删除 Managed Postgres 实例
最后修改于 2026年7月2日