Skip to main content
ClickHouse Managed Postgres 是企业级 Postgres 服务,以 NVMe 存储为底层支撑,与 EBS 等网络附加存储相比,针对磁盘密集型工作负载可提供高达 10 倍的性能提升。本快速入门分为两个部分:
  • 第 1 部分: 上手 NVMe Postgres,体验其性能
  • 第 2 部分: 通过与 ClickHouse 集成,实现实时分析
Managed Postgres 目前已在 AWS 的多个区域上线,当前处于 Public Beta 阶段。在本快速入门中,您将:
  • 创建一个具备 NVMe 加速性能的 Managed Postgres 实例
  • 加载 100 万条样本事件,直观感受 NVMe 速度
  • 运行查询,体验低延迟性能
  • 将数据复制到 ClickHouse 进行实时分析
  • 使用 pg_clickhouse 直接从 Postgres 查询 ClickHouse

Part 1:NVMe Postgres 入门

创建数据库

要创建新的 Managed Postgres service,请在 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 集成如何大幅提升您的分析能力。

第二部分:使用 ClickHouse 添加实时分析功能

Postgres 擅长处理事务性工作负载 (OLTP) ,而 ClickHouse 则专为大规模数据集上的分析查询 (OLAP) 而生。将两者结合,即可兼得两者之长:
  • Postgres 用于存储应用程序的事务性数据 (插入、更新、点查)
  • ClickHouse 用于对数十亿行数据进行亚秒级分析
本节介绍如何将 Postgres 数据复制到 ClickHouse 并进行无缝查询。

设置 ClickHouse 集成

现在 Postgres 中已有表和数据,接下来将这些表复制到 ClickHouse 以进行分析。首先点击侧边栏中的 ClickHouse integration,然后点击 Replicate data in ClickHouse在接下来的表单中,您可以为集成输入名称,并选择一个现有的 ClickHouse 实例作为复制目标。如果您尚未拥有 ClickHouse 实例,可以直接在此表单中创建一个。
重要请先确保您选择的 ClickHouse 服务处于 Running 状态,然后再继续。
点击 Next,进入表选择器。在此,您只需:
  • 选择要复制到的 ClickHouse 数据库。
  • 展开 public schema,并选择我们之前创建的 users 和 events 表。
  • 点击 将数据复制到 ClickHouse
复制过程将随即启动,您将被跳转至集成概览页面。由于这是首次集成,初始基础设施的配置可能需要 2 到 3 分钟。在此期间,我们来了解一下新的 pg_clickhouse 扩展。

从 Postgres 查询 ClickHouse

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

实际体验数据分析功能

返回集成页面查看状态。此时初始复制应已完成。点击集成名称可查看详细信息。点击服务名称,打开 ClickHouse 控制台,查看您的复制表。

比较 Postgres 与 ClickHouse 的性能

现在,让我们运行一些分析查询,比较 Postgres 与 ClickHouse 之间的性能差异。请注意,复制表采用 public_<table_name> 的命名规范。查询 1:按活跃度排名的用户此查询使用多个聚合来找出最活跃的用户:
查询 2:按国家和平台划分的用户参与度此查询将事件与用户进行关联,并计算参与度指标:
性能对比:
何时使用 ClickHouse即使在这个 100 万行的数据集上,ClickHouse 在包含 JOIN 和多种聚合的复杂分析查询中,性能也能达到 3 到 7 倍提升。随着规模进一步增大 (1 亿+行) ,这种差异会更加显著,此时 ClickHouse 的列式存储和向量化执行可带来 10 到 100 倍的加速。查询时间会因实例规格、服务之间的网络延迟、数据特征和当前负载而异。

清理

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