您可以将 PostgreSQL 数据库连接到数据洞察,以直观呈现和分析数据。使用 PostgreSQL 连接器将数据转换为交互式信息中心和报告。然后,您可以与没有直接数据库访问权限的团队或利益相关方分享您的数据洞见。
支持的版本
我们已在以下 PostgreSQL 版本上测试了数据洞察:
- 9.6
- 10
- 11
- 12
- 13
- 14
如果您在使用受支持的版本时遇到问题,请在数据洞察社区中告诉我们。您还可以在问题跟踪器中添加功能请求并进行投票。
如何连接到 PostgreSQL
PostgreSQL 连接器使用 PostgreSQL JDBC 驱动程序将数据洞察数据源关联到单个 PostgreSQL 数据库表,或关联到您提供的自定义查询。
如需连接到 PostgreSQL 数据库,请按照以下步骤操作:
- 登录数据洞察。
- 在数据洞察首页上,点击 创建,然后选择数据源。
- 选择 PostgreSQL 连接器。
- 如果系统提示,请授权数据洞察访问您的数据。
- 使用其中一个连接选项配置对数据库的访问权限。
- 点击AUTHENTICATE。您会看到该数据库中的表列表。
- 从列表中选择一个表,或输入自定义查询。
- 点击连接。
现在,您可以将表中的所有列作为报告中的字段进行访问。
连接选项
使用主机名或 IP 地址进行连接
在连接面板中,选择基本。输入连接详细信息:
- 主机名或 IP 地址
- 端口(可选)
- 数据库
- 用户名
- 密码
使用 JDBC 网址进行连接
在连接面板中,选择 JDBC 网址。输入连接详细信息:
- JDBC 网址
示例
jdbc:postgresql://HOSTNAME[:PORT]/DATABASE_NAME对于 Cloud SQL(专用 IP)
jdbc:google:postgresql://< var>INSTANCE_CONNECTION_NAME/DATABASE_NAME
- 用户名
- 密码
如需使用 IPv6 字面量地址进行连接,请将该地址括在方括号中。例如:jdbc:postgresql://[2001:db8:1:1:1:1:1:1]/your_db。
使用 SSL 进行连接
数据洞察支持使用 TLS(传输层安全协议)协议 (TLS 1.2) 与服务器建立安全(加密)连接。TLS 也称为 SSL(安全套接字层)。
如需启用安全连接,请选择启用 SSL,然后提供 SSL 配置文件。
使用客户端身份验证进行连接
选中启用客户端身份验证复选框后,您可以上传客户端私钥和客户端证书(如果访问数据库需要)。
详细了解 PostgreSQL 安全连接。
自定义查询
选择自定义查询选项,以提供 SQL 查询,而不是连接到单个表。数据洞察会将此自定义 SQL 用作针对数据库生成的每个查询的内部 select 语句。
自定义 SQL 查询只能包含一条语句。例如,以下代码无法正常运行,因为它包含多个 SQL 语句:
DECLARE cost_per_tb_in_dollar FLOAT64 DEFAULT 4.2;
SELECT total_bytes_billed / (1024 * 1024))* cost_per_tb_in_dollar)/(1024*1024))) FROM billing-table;
数据洞察中的查询可能会在 3 到 5 分钟后超时。如果您的自定义查询超时,请尝试以下方法来解决问题:
- 简化查询,以便加快运行速度。
- 在数据库中运行查询,并将结果存储在单独的表中。连接数据源中的新表。
支持的数据类型
PostgreSQL 连接器支持以下数据类型:
- 数字
- 基于字符,
- 布尔值
- 日期/时间(间隔除外)
当数据洞察遇到不受支持类型的列时,不会为该列创建字段。
详细了解 PostgreSQL 数据类型。
公共连接和专用连接
数据洞察支持通过公共 IP 和专用 IP 连接到 Cloud SQL 上的 PostgreSQL。
如需使用专用 IP 连接到 Cloud SQL for PostgreSQL 实例,请验证以下要求:
- Identity and Access Management (IAM) 权限:在包含 Cloud SQL 实例的 Google Cloud项目中授予 Cloud SQL Client (
roles/cloudsql.client) IAM 角色。您必须将此角色授予在数据洞察中对连接进行身份验证的用户账号,或授予数据源的凭证所有者。如果数据源使用查看者的凭证,请向每位报告查看者授予此角色。 - 实例设置:在 Cloud SQL 实例设置中选择 Google Cloud 服务的专用路径选项。
JDBC 网址:在连接面板中,选择 JDBC 网址连接选项,然后按以下格式输入连接字符串:
jdbc:google:postgresql://INSTANCE_CONNECTION_NAME/DATABASE_NAME
替换以下内容:
INSTANCE_CONNECTION_NAME:实例连接名称,格式为PROJECT_ID:REGION:INSTANCE_IDDATABASE_NAME:PostgreSQL 数据库的名称
例如:
jdbc:google:postgresql://my-project:us-central1:my-instance/my-db请勿将组织名称或组织 ID 作为前缀添加到连接字符串中,并从网址中移除所有空格。
防火墙和数据库访问
如需允许数据洞察连接和查询防火墙后面的数据库,您需要开放对以下某个 IP 地址的访问权限。 您可能还需要将数据库配置为接受来自这些地址的流量。请参阅您所用特定数据库的文档,了解如何执行此操作。
IP 地址
以下地址预留给数据洞察的全球基础架构:
142.251.74.0/232001:4860:4807::/48(可选,用于支持 IPv6 的平台)
如果您已为数据洞察 Pro 订阅启用数据驻留,请改用以下地址:
142.251.56.0/242001:4860:4815::/48(可选,用于支持 IPv6 的平台)
PostgreSQL 连接器的限制
连接到 Cloud SQL PostgreSQL 实例时,PostgreSQL 连接器不使用 Cloud SQL 代理。如果您使用公共 IP 连接到 Cloud SQL PostgreSQL 实例,则需要将列出的 IP 添加到已获授权的网络列表中。请参阅 Cloud SQL 文档。
不支持通过 SSL 连接到 AlloyDB 数据源,因为 AlloyDB 不支持导出证书授权机构 (CA) 证书。
不支持选择
public架构之外的表。不过,您可以选择自定义查询选项来编写包含任何架构中的表的查询。使用此连接器,您每次查询最多可以查询 15 万行。如果超出此限制,数据将被截断。
列标题(字段名称)只能使用 ASCII 字符。不支持非 ASCII 字符。
问题排查
如需查看常见出错提示及其解决步骤的列表,请参阅 数据洞察问题排查指南。