Heroku Postgres 标志

托管Postgres 支持 PostgreSQL

连接 Heroku Postgres 适用于 Excel、Google Sheets、AI 和 REST

从您的 DATABASE_URL 访问 Heroku Postgres。Heroku 数据库位于裸 EC2 主机名上,因此连接通过该连接识别其为 Heroku 数据库。

一个连接,每个表面

你的 Heroku 数据可以去哪里

Query Streams 通过一个只读连接,从 Microsoft Excel、Google Sheets、Power BI、基于 MCP 的 AI 助手以及 REST 端点读取 Heroku Postgres 数据库。Heroku 是托管 Postgres 预设方案中比较特殊的一个:它的数据库使用纯 EC2 主机名,没有任何提供商标识,因此与其他方案不同,它无法通过地址识别连接是 Heroku 的。选择此方案会记录连接信息,这也是为什么它比通用的 PostgreSQL 方案更值得选择的原因。

Heroku Postgres 实际上是 PostgreSQL 在线传输 — 这是标准驱动程序,因此以下所有指南均适用。唯一与 Heroku 相关的部分是连接字符串,详见下文。 连接详情.

  1. 为您的团队、供应商和合作伙伴
  2. Heroku 到 Excel 微软 Excel · Excel 加载项

    将 Heroku 的实时结果直接导入工作表,并按需刷新——支持桌面版 Excel、Excel Online 和 Microsoft 365。

    PostgreSQL 指南
  3. Heroku 到 Google Sheets 表格插件

    从侧边栏运行已保存的 Heroku 查询,并将结果行拖放到工作表中。共享协作者可以自行刷新工作表。

    PostgreSQL 指南
  4. 问问 Nova 关于 Heroku 的事 Nova AI · 文本转 SQL

    用简单的英语提问。Nova 已经了解你的 Heroku 表,会自动编写并运行 SQL 语句,解释答案并绘制图表——无需编写查询语句,也无需提供任何凭证。

    Nova 的工作原理
  5. Heroku 到数据查看器 结果共享 · 团队、供应商、合作伙伴 · 手机、平板电脑、台式机

    您可以与任何人(同事、供应商、合作伙伴)共享 Heroku 的实时结果,以可收藏的网格形式呈现,无论在手机、平板电脑还是台式机上打开,都能立即重新显示。他们看到的是结果,而不是 SQL 语句或凭据。

    数据查看器的工作原理
  6. 对于应用程序和系统
  7. Heroku REST API HTTP 端点

    将 Heroku 查询发布为任何应用程序都可以调用的已认证 JSON 端点,符合 OpenAPI 3.1 规范,并预置了 Postman、Insomnia 和 Hoppscotch 集合。无需打开数据库端口。

    PostgreSQL 指南
  8. 从 Heroku 到 Power BI Power Query M

    将生成的 Power Query M 粘贴到 Power BI 高级编辑器中,报表即可通过 HTTPS 读取 Heroku 的实时结果——无需 ODBC 驱动程序,也无需打开数据库端口。

    Power BI 的工作原理
  9. Heroku 到 Airtable 自动化平台

    按计划将 Heroku 行同步到 Airtable,或者在 Airtable 自动化脚本中获取它们。

    PostgreSQL 指南
  10. Heroku 到 Baserow 自动化平台

    通过 REST 端点从 Heroku 向 Baserow 表提供数据——无论是自托管还是 Baserow 云。

    PostgreSQL 指南
  11. Heroku 到 SeaTable 自动化平台

    无需导出文件或暴露数据库,即可使 SeaTable 数据库与 Heroku 数据保持同步。

    PostgreSQL 指南
  12. Heroku 到 Smartsheet 自动化平台

    将 Heroku 结果推送到 Smartsheet 网格中,以便计划和报告能够从源系统读取数据,而不是从上周的导出数据读取数据。

    PostgreSQL 指南
  13. Heroku 到 Anvil Anvil Works · 应用平台

    通过 REST 端点将 Anvil Python 应用备份到 Heroku,而不是将数据库凭据嵌入到应用中。

    PostgreSQL 指南
  14. 人工智能工具
  15. Heroku MCP 服务器 Claude、Cursor 和 MCP 客户端

    赋予 AI 助手对 Heroku 的只读访问权限,并提供它编写正确 SQL 所需的架构——聊天中不包含任何凭据。

    PostgreSQL 指南
  16. 已送达
  17. Heroku 警报和报告 Slack · Discord · 电子邮件 · Webhook

    将 Heroku 查询设置为定时执行,并将查询结果发送到 Slack、Discord、电子邮件或签名 webhook,或者等到行数、阈值或百分比变化超过您设定的阈值时才发送消息。

    警报和报告的工作原理

工作原理

5 个步骤,无需更改入站防火墙规则

01

您可以根据需要将网络代理安装在任何位置。它会打开一个出站连接,但从不监听,因此 Heroku 会将其视为普通客户端,您的网络也无需设置任何入站规则。

02

从应用程序的“设置”>“配置变量”中复制 DATABASE_URL,并将其粘贴到第一个字段中。主机、端口、数据库、用户名和密码都将从中读取。

03

运行测试前,请确保已启用“使用 SSL”。Heroku 需要加密连接,而对于新连接,该复选框正是用于启用加密连接。

04

保存。此时会生成 Heroku 徽章,这使得之后的连接仍然可识别。

05

请在 Heroku 凭据轮换后重新粘贴。在此期间,Microsoft Excel、Google Sheets、Power BI、MCP 和 REST 都会通过该连接读取数据。

专题深度解析

Heroku 能给你什么

主机名中没有任何关于 Heroku 的信息。

这里其他所有托管的 Postgres 卡都可以通过地址识别自己的服务。而这张卡却不行,理解其中的区别很有意义。

  • Heroku Postgres 无法识别形如 ec2-12-34-56-78.compute-1.amazonaws.com 的裸 EC2 实例名称。主机名中没有匹配的 heroku。
  • 因此,当您使用此卡保存时,系统会记录提供商身份,而不是根据您的连接位置推断。这就是之后显示徽章和图标的原因。
  • 实际后果是:之前通过普通 PostgreSQL 连接到 Heroku 数据库的连接不会追溯地继承 Heroku 的品牌标识。而像 Neon 和 Koyeb 这样的卡片则会根据它们的主机名来继承品牌标识。 — Heroku 就是个例外,它无法正常工作。
  • 如果您想在旧连接上使用品牌标识,请使用此卡重新制作连接。数据路径没有任何变化;只是标签不同而已。

自签名证书,以及加密在这里的含义

Heroku 使用自己的证书来保护其数据库,这决定了代理可以合理检查的内容。

  • 默认情况下启用 SSL,连接已加密。代理程序要求使用 TLS,而不仅仅是提供 TLS。
  • 证书链未经验证。Heroku 的证书是自签名证书,因此完整的验证过程会拒绝一个完全正确的连接。 — 要求加密而不验证链是与服务相匹配的设置。
  • 请将此理解为防止他人读取流量信息,而非证明您到达了哪里。铁路卡也采取了同样的策略,原因也相同。
  • 首次测试前请勿更改此复选框。在尚未保存的连接中,只有此复选框会启用加密功能。

轮岗是你将会遇到的事情。

Heroku 在维护期间会更改数据库凭据,代理会存储您提供的信息。

  • 当 Heroku 进行轮换时,DATABASE_URL 会发生变化,导致存储的凭据失效。这张卡片会在您进入系统时就提示这一点,而不是让您自己去发现。
  • 解决方法是用当前的 DATABASE_URL 覆盖旧的 DATABASE_URL。所有下游流程都会受到影响。 — 已保存的查询、计划、共享 — 继续有效,因为它们指向的是连接而不是凭据。
  • 没有自动同步功能。Query Streams 不会读取您的 Heroku 配置变量,因此重新粘贴是手动步骤,建议您在遇到问题之前了解这一点。
  • 粘贴的字符串本身不会被存储。它只在填写表单时读取一次,然后就被丢弃,因此密码只存在于一个地方,而不是两个地方。
-- 普通 Postgres,只读,通过 TLS SELECT c.name, COUNT(o.id) AS orders, SUM(o.amount) AS revenue FROM public.customers AS c JOIN public.orders AS o ON o.customer_id = c.id WHERE o.placed_at >= now() - interval '30 days' GROUP BY c.name ORDER BY revenue DESC;

每个数据库连接器共享

适用于所有数据库连接器

  • 仅限出站 — 代理程序会打开一个加密连接到查询流。无需转发入站端口,无需 VPN,无需 IP 允许列表,您的数据库信息不会暴露在互联网上。
  • 凭证保留 — 数据库用户名和密码存储在您安装代理的计算机上。Query Streams 永远不会收到这些信息,也无法自行访问您的数据库。
  • 只读,强制执行 ——一次只执行一条语句,仅限 SELECT 及其相关语句。写入操作会在发送到服务器之前就被本地机器拒绝,而不是依赖于其他人设置的权限。
  • 部署任意数量的代理 每个站点、区域或云端只需一个代理。所有数据源都显示在同一个下拉菜单中,因此无需了解哪个代理托管哪些数据源。

查询保存后您将获得什么?

  • 分享的是能力,而不是 SQL — 同事或外部合作伙伴可以运行您的查询并更改其筛选条件,而无需查看其背后的语句。
  • 双向过滤 — 您可以自己将它们声明为 @variables,或者让连接器发现 WHERE 子句中已有的字面值,并将其作为下拉列表提供。
  • 随时随地阅读 — Microsoft Excel、Google Sheets、Power BI、REST API、MCP 上的 AI 助手、查询生成器和 Nova 都读取同一个已保存的查询。
  • 同时运行多个程序 — 将五个已保存的查询分别保存到五个工作表标签中,同时进行流式传输,无论结果有多大。
  • 将其连接到您已连接的任何其他内容 — 用一条只读语句访问另一个数据库、业务 API 或文件文件夹。

跨源 SQL

将 Heroku 与您的其他数据连接起来

一条语句可以同时跨越 Heroku 和其他连接。每个数据源只运行它能够运行的部分,并将结果流式传输回来,连接操作在中心位置完成——数据源之间互不通信,也不会复制任何数据。

3 个连接 · 3 个代理

Heroku Postgres 托管Postgres
微软 SQL 服务器 关系引擎
条纹 付款与账单

一份声明

——没有任何复制、合并或安排操作。
选择   c.region,COUNT(*) AS orders,SUM(i.amount_due) AS invoiced
从     heroku_app.公共.订单1 f
连接     ERP SQL.dbo.customers2    c ON c.id = f.customer_id
连接     计费.stripe.invoices3  i ON i.customer = c.stripe_id
GROUP BY c.区域
ORDER BY 发票上的描述;

这三个部分分别是连接、模式和表——连接名称就是你给它起的任何名字。这里用列举例说明;你的表就是你自己的表。所有部分都采用只读模式:仅支持 SELECT、WITH 和 EXPLAIN 语句,并且对单个查询中每个数据源可以传输的数据量有限制。 联合查询的工作原理

连接详情

Heroku需要什么

主持人
一个裸露的 EC2 名称,例如 ec2-12-34-56-78.compute-1.amazonaws.com,其中没有任何内容可以识别 Heroku。
港口
5432
司机
由代理程序承载的 npgsql——Heroku 端无需安装任何软件。
粘贴格式
从“设置”中的“配置变量”获取 DATABASE_URL,格式为 postgres:// URI。
TLS
必需。已加密;证书链未经验证,而 Heroku 的自签名证书则需要验证。
池化
无。该代理未对 Heroku 应用任何池化器适配。
凭据
Heroku 会在维护期间轮换数据库 URL。届时请重新粘贴当前的 DATABASE_URL——不会自动同步。
已保存
PostgreSQL,Heroku 则以徽章形式保留。由于主机名是匿名的,因此只有当您从此卡片保存时,该徽章才会存在。
默认架构
公开的,也就是联邦引用所携带的。

Heroku 预设让底层设计清晰可见。这里的每张卡片都会保存其真实引擎,并将提供商信息作为标签保留。对于大多数卡片来说,这个标签相当于双重保险——主机名本身就能暴露提供商信息。Heroku 没有这样的备用方案,因此标签是唯一的记录。这就是为什么通过这张卡片重新建立旧连接可以解决品牌信息缺失的问题,以及为什么无法追溯地进行修复的原因。

轮换警告是这张卡片上最实用的信息。Heroku 在维护期间轮换凭据是正常操作,并非故障,它导致的故障表现为身份验证错误,看起来就像有人更改了密码。提前知道只需重新粘贴 DATABASE_URL 即可解决问题,就能将原本令人困惑的故障简化为只需 30 秒即可完成的任务。

对于跨源查询,Heroku 与普通的 Postgres 数据库并无二致。您创建的名为 heroku_app 的连接实际上是 heroku_app.public.orders,它通过一条只读语句即可连接到包含 CSV 文件的文件夹、本地记录系统或计费 API——无需复制任何内容,也无需进行任何调度。

供应商文档: www.heroku.com

常问问题

关于 Heroku Postgres 的问题

哪些工具可以通过查询流读取 Heroku Postgres 数据?

所有这些工具,只需一次连接即可使用:Excel、Google Sheets、MCP、REST API、Airtable、Baserow、SeaTable、Smartsheet、Anvil、Power BI、定时提醒和报表。只需连接一次数据库,所有平台都使用同一个只读连接——无需为每个工具单独设置,也无需创建数据副本。

我是否需要为我的 Heroku Postgres 数据库打开防火墙端口?

不。Query Streams 网络代理运行在您的网络内部,并打开一个单独的出站加密连接。它不会监听入站流量,无需 VPN,数据库也会保留其现有的防火墙规则。

查询流能否更改 Heroku Postgres 中的数据?

不。代理在执行时强制执行只读模式——一次只执行一条语句,仅限 SELECT 及其相关语句。凭据保留在代理上,绝不会发送到查询流。

Query Streams 需要哪些条件才能连接到 Heroku Postgres?

可访问的主机、角色及其密码——代理程序已包含驱动程序,因此无需在数据库上安装任何内容。主机:一个裸露的 EC2 名称,例如 ec2-12-34-56-78.compute-1.amazonaws.com——其中不包含任何 Heroku 标识信息。端口:5432。驱动程序:Npgsql,由代理程序携带——无需在 Heroku 端安装任何内容。粘贴格式:从“设置”->“配置变量”中获取 DATABASE_URL,格式为 postgres:// URI。

我可以在同一个查询中将 Heroku Postgres 连接到另一个数据库吗?

是的——这就是联合查询。一条语句可以同时引用 Heroku Postgres 和其他连接,格式为 connection.schema.table。每个数据源只运行它能够处理的部分,并将结果流式传输回来;连接操作在中心进行,因此数据源之间不会相互连接,也不会进行任何复制或调度。所有部分(SELECT、WITH 和 EXPLAIN)都采用只读模式,并且单个数据源在单次查询中可以传输的数据量有限制。联合查询是计划功能;联合查询页面会显示当前的数据源和大小限制。

连接 Heroku Postgres 与连接 PostgreSQL 有什么不同?

仅需连接字符串。Heroku Postgres 使用 PostgreSQL 网络协议,因此过滤器、调度、共享、Excel 和 Google Sheets 插件以及 MCP 服务器的行为都完全相同。Heroku 卡片会自动填充提供商所需的主机、端口和 SSL 设置。

是否有 Heroku 到 Excel 的集成指南?

是的——这是 PostgreSQL 指南,而且就 Heroku Postgres 而言,指南中的内容是正确的。Heroku 使用 PostgreSQL 的网络协议,因此 Heroku 到 Excel、Heroku 到 Google Sheets 以及其他所有目标平台都遵循相同的步骤。唯一 Heroku 特有的部分是连接字符串,而 Heroku 卡片会自动为您填写这部分。

将 Heroku 部署在工作发生的地方

安装代理,将其指向您的数据库,然后选择目标位置。

只读 仅限出站 凭证保留在代理人身上。