PostgreSQL
本页介绍如何将 PostgreSQL 连接为**数据仓库**。有关将 PostgreSQL 用作 Metabase 的**应用程序数据库**,请参阅配置 Metabase 应用程序数据库。
要添加数据库连接,请点击右上角的齿轮图标,然后导航到管理员设置 > 数据库 > 添加数据库。
填写该数据库的字段,然后点击底部的保存更改。
支持的版本
Metabase 支持从最旧受支持的 PostgreSQL 版本到最新的稳定版本。请参阅PostgreSQL 版本。
连接到 Supabase
要连接到 Supabase 数据库,请选择 PostgreSQL。有关更多详细信息,请查看 Supabase 文档。
连接和同步
连接到数据库后,您将看到“连接和同步”部分,其中显示当前连接状态和管理数据库连接的选项。
在此处,您可以同步数据库架构并重新扫描字段值,并编辑连接详情。
编辑连接详情
您可以随时编辑这些设置。请务必保存您的更改。
连接字符串
在此处粘贴连接字符串以预填充以下剩余字段。
显示名称
Metabase 界面中数据库的显示名称。
主机
您的数据库 IP 地址或其域名(例如,esc.mydatabase.com)。
端口
数据库端口。例如 5432。
数据库名称
您要连接的数据库的名称。
用户名
您要用于连接数据库的帐户的数据库用户名。您可以使用不同的用户帐户对同一个数据库设置多个连接,每个帐户都具有不同的权限。
密码
您用于连接数据库的用户的密码。
使用身份验证提供商
您可以选择使用受支持的提供商进行身份验证,而不是使用密码。
仅适用于自托管的专业版和企业版计划。
Azure 托管标识
要使用 Azure 托管标识,您需要输入您的客户端 ID。
OAuth
要使用 OAuth 作为提供商,您需要输入您的
- 身份验证令牌 URL
- 身份验证令牌请求头(JSON 映射)
Schema
您可以指定要同步和扫描的 schema。选项包括
- 全部
- 仅这些…
- 除这些之外的所有…
对于**仅这些**和**除这些之外的所有**选项,您可以输入逗号分隔的值列表,以告诉 Metabase 您要包含(或排除)哪些 schema。例如
foo,bar,baz
您可以使用 *
通配符来匹配多个 schema。
假设您有三个 schema:foo、bar 和 baz。
- 如果您设置了**仅这些…**,并输入字符串
b*
,则会同步 bar 和 baz。 - 如果您设置了**除这些之外的所有…**,并输入字符串
b*
,则只会同步 foo。
请注意,只支持 *
通配符;您不能使用其他特殊字符或正则表达式。
使用安全连接 (SSL)
Metabase 会自动首先尝试通过 SSL 连接到数据库,如果失败则尝试不使用 SSL。如果可以通过 SSL 连接到您的数据库,Metabase 将使其成为数据库的默认设置。如果您希望在没有此安全层的情况下连接,您可以随时更改此设置,但我们强烈建议保持 SSL 开启以确保数据安全。
SSL 模式
PostgreSQL 数据库支持不同安全级别的连接,并具有不同级别的开销。
SSL 模式选项包括
- 允许
- 偏好
- 需要
- 验证 CA
- 完全验证
有关不同SSL 模式的表格,请参阅 PostgreSQL 文档,并选择适合您的选项。
SSL 根证书 (PEM)
如果将 SSL 模式设置为“verify-ca”或“verify-full”,则需要指定根证书 (PEM)。您可以选择使用**本地文件路径**或**上传文件路径**。如果您使用的是 Metabase Cloud,则需要选择**上传文件路径**并上传您的证书。
验证客户端证书
切换以显示客户端证书选项。
SSL 客户端证书 (PEM)
您可以选择使用**本地文件路径**或**上传文件路径**。如果您使用的是 Metabase Cloud,则需要选择**上传文件路径**并上传您的证书。
SSL 客户端密钥 (PKCS-8/DER)
同样,您可以选择使用**本地文件路径**或**上传文件路径**。如果您使用的是 Metabase Cloud,则需要选择**上传文件路径**并上传您的证书。您还需要输入您的**SSL 客户端密钥密码**。
私钥必须是 PKCS8 格式并以 DER 格式存储。
如果您有 PEM 格式的 SSL 客户端密钥,您可以使用 openssl 将该密钥转换为 PKCS-8/DER 格式。命令如下所示:
openssl pkcs8 -topk8 -inform PEM -outform DER -in client-key.pem -out client-key.der -nocrypt
注意:如果您使用 GCP 并且设法颁发了客户端证书,所有内容都将以 PEM 格式提供,您只需要将 client-key.pem 转换为 client-key.der 用于“SSL 客户端密钥”
使用 SSH 隧道
请参阅我们的SSH 隧道指南。
展开 JSON 列
对于 PostgreSQL 数据库,Metabase 可以将 JSON 列展开为组件字段,从而生成一个表,其中每个 JSON 键都成为一个列。JSON 展开默认开启,但如果性能缓慢,您可以关闭 JSON 展开。
如果开启 JSON 展开,您还可以在表元数据中切换单个列的展开。
附加 JDBC 连接字符串选项
您可以将选项附加到 Metabase 用于连接数据库的连接字符串。使用以下格式:
options=-c%20key=value
PostgreSQL 连接 URI 需要对空格和符号进行百分比编码。
重新运行简单探索的查询
如果用户希望在应用任何汇总或筛选选择之前单击运行(播放按钮),请将此选项关闭。
默认情况下,只要您从**汇总**菜单中选择分组选项或从深入分析菜单中选择过滤条件,Metabase 就会执行查询。如果您的数据库速度较慢,您可能希望禁用重新运行以避免每次点击都加载数据。
选择同步和扫描发生的时间
请参阅同步和扫描。
定期重新指纹识别表
定期重新指纹识别将增加数据库的负载。
将此选项打开,以便在 Metabase 每次运行同步时扫描值的样本。
指纹识别查询会检查每列的前 10,000 行,并使用这些数据估算每列的唯一值数量、数字和时间戳列的最小值和最大值等。如果将此选项设置为**关闭**,Metabase 将在设置期间只对您的列进行一次指纹识别。
模型功能
选择是否启用与Metabase 模型相关的功能。这些功能通常要求数据库用户帐户(您用于连接数据库的帐户)同时具有读写权限。
模型操作
启用此设置以允许运行由此数据创建的模型中的操作。操作能够读取、写入和可能删除数据。您的数据库用户将需要写入权限。
模型持久化
我们将创建包含模型数据的表,并按照您定义的计划刷新它们。要启用模型持久性,您需要授予此连接的凭据对 Metabase 提供的模式的读写权限。
数据库路由
通过数据库路由,管理员可以使用一个数据库构建一次问题,然后根据查看问题的用户,该问题将在具有相同数据结构(schema)的不同数据库上运行查询。
请参阅 数据库路由。
危险区
请参阅危险区。
延伸阅读
阅读其他版本的 Metabase 的文档。