在 AWS 关系数据库服务 (RDS) 上创建 PostgreSQL DB 实例

从 2019.3 版本开始,您可以在 AWS Cloud Platform 上托管您的外部存储库。本主题介绍如何创建 AWS RDS PostgreSQL DB 实例以用作 Tableau Server 外部存储库。

若要查看可用于外部存储库的主机的完整列表,请参见Tableau Server 外部存储库

要求和建议

  • 至少使用数据库 db.m4.2xlarge Amazon RDS 内存优化实例类型。这是推荐为 Tableau Server 外部存储库使用的最小 AWS RDS 实例大小,但具体要求将因您的要求和使用情况而异。我们建议使用 db.r4.xlarge(或 db.r5.xlarge)Amazon RDS 内存优化的实例类型以实现最佳性能。

    可以从较小的实例类型开始,如果以后发现需要更大的实例类型,则可以升级现有的 RDS 实例。有关详细信息,请参见升级 RDS 实例

    使用 SSL 实现 Tableau Server 和外部 PostgreSQL DB 实例之间的安全通信不是必需的,但建议这样做。

  • Tableau Server 群集中的所有节点都必须可以访问 PostgreSQL DB 实例。可实现此目的的方法之一是:将 PostgreSQL DB 实例设为安全组的成员,该安全组具有必要的权限,使 Tableau Server 群集中的所有节点都能够访问。

  • PostgreSQL 版本应与 Tableau Server 在本地安装时使用的版本相匹配。Tableau Server 2020.4 使用 PostgreSQL 版本 12。

在 Amazon RDS 上创建 PostgreSQL DB 实例

步骤 1:创建参数组

您为本地 PostgreSQL 实例在 postgresql.conf 文件中设置的 PostgreSQL 参数保留在 DB 实例的 DB 参数组中。创建 DB 实例时,将加载关联的 DB 参数组中的参数。

可以通过更改参数组中的值来修改参数值。您也可以使用 ALTER DATABASE、ALTER ROLE 和 SET 命令来更改参数值(如果您有执行此操作的安全权限)。

PostgreSQL 参数有两种类型:静态和动态。静态参数要求在应用之前重新启动 DB 实例。动态参数可以立即应用。

下表显示了应使用 Tableau 推荐值进行修改的参数:

名称 数据类型 参数类型 推荐的 Tableau 配置值 描述
autovacuum 布尔值 动态 1 启动 subprocess 子进程。
client_min_messages 字符串 动态 error 设置发送到客户端的消息级别。
escape_string_warning 布尔值 动态 0 有关普通字符串文本中的反斜杠 (\) 转义的警告。
lc_messages 字符串 动态 en_US.UTF-8 设置消息的显示语言。
lc_monetary 字符串 动态 en_US.UTF-8 设置用于设置货币金额格式的区域设置。
lc_numeric 字符串 动态 en_US.UTF-8 设置用于设置数字格式的区域设置。
lc_time 字符串 动态 en_US.UTF-8 设置用于日期和时间值格式的区域设置。
log_autovacuum_min_duration 整数 动态 100 设置最短执行时间,超过该时间即会记录 autovacuum 操作。
log_connections 布尔值 动态 1 记录每次成功的连接。
log_lock_waits 布尔值 动态 1 记录长时间锁定等待。
log_min_duration_statement 整数 动态 100 设置最短执行时间,超过该时间即会记录语句。
log_min_messages 字符串 动态 error 设置记录的消息级别。
log_temp_files 整数 动态 128 记录使用的临时文件大于此千字节数的情况。
rds.force_ssl 布尔值   1 强制 SSL 连接;需要在客户端密钥存储上导入证书
rds.logical_replication 布尔值   1  
ssl 布尔值 静态 1 设置为允许 SSL 连接
standard_conforming_strings 布尔值 动态 0 原因...要按字面意义处理反斜杠的字符串。
work_mem 整数 动态 16384 设置用于查询工作区的最大内存。

有关 PostgreSQL 参数的详细信息和完整列表,请参见 AWS 网站上的使用 PostgreSQL 参数(链接在新窗口中打开)

步骤 2:在 Amazon RDS 上创建 PostgreSQL DB 实例

若要创建新的 PostgreSQL DB 实例,请按照 Amazon 文档网站(链接在新窗口中打开)上提供的说明进行操作。

以下是适用于新 PostgreSQL DB 实例的配置选项和推荐值:

  • 实例规范

    • 使用在步骤 1 中创建的参数组。
    • 将兼容版本的 PostgreSQL 用于您正在使用的 Tableau Server 版本。有关与 Tableau Server 版本兼容的 PostgreSQL 版本的完整列表,请参见产品兼容性
    • 使用 db.m4.2xlarge 或更大的 DB 实例类。
    • 至少分配 100 GB 的存储。
    • 存储类型和调配的 IOPS:保留默认值(推荐值可能会根据负载测试而变化)。
  • 设置

    • 必须使用 rails 作为主用户名。

      这是外部存储库与 Tableau Server 正常配合工作的要求。

    • 选择符合 AWS 要求的密码。

  • 网络和安全

    • 确保所有 Tableau Server 节点都可访问 RDS 实例。这通常涉及创建一个允许通过节点访问的安全组。

  • 数据库选项

    • 不要创建初始数据库。数据库名称应留空,因为 Tableau Server 将在 RDS 实例中创建所需的数据库。

    • 该端口可以为任意端口,但我们建议将其保留为默认值 5432。

    • 将 DB 参数组设置为在步骤 1 中创建的参数组。

    • 将 IAM DB 身份验证保留为禁用状态。

  • 加密

    • 您可以选择是否希望加密。

  • 备份

    • 这适用于 AWS 的自动备份,而不是 Tableau Server 的备份。您可以指定符合要求的设置。

  • 监视

    • 您可以根据要求指定设置。

  • 日志导出

    • 您可以根据要求指定设置。

  • 维护

    • 禁用自动次要版本升级。Tableau Server 是为使用特定版本的 PostgreSQL 而构建的。如果需要,在 Tableau Server 升级期间,系统会提示您升级 PostgreSQL 版本。

  • 删除保护

    • 您可以根据要求指定设置。

步骤 3:获取 PostgresSQL DB 实例端点

创建 PostgreSQL 数据库实例后,您不能在 AWS 完成其初始化之前使用它,这可能需要几分钟时间。实例准备就绪后,获取您将用于配置 Tableau Server,以便为 Tableau Server 存储库使用此实例的端点信息。

步骤 4:下载 SSL 证书文件(.pem 文件)

Tableau Server 和外部存储库之间使用 SSL 的安全连接不是必需的,但建议使用。

如果要在 Tableau Server 和外部存储库之间设置安全连接,则在将 Tableau Server 配置为将外部数据库实例用于 Tableau Server 存储库时将需要 .pem 文件。有关详细信息,请参见使用 SSL 对 DB 实例加密(链接在新窗口中打开)

如果不需要在 Tableau Server 和外部存储库之间使用安全连接,则需要将 RDS 实例配置为允许未加密的连接。

重要信息:如果作为 RDS 实例的 SSL 证书计划过期的一部分,您需要使用新的证书文件更新 RDS 实例,则还需要更新 Tableau Server 设置以使用新的证书文件。可以通过下载最新文件和运行 tsm topology external-services repository replace-host 命令并提供新的证书文件来执行此操作。

为 PostgreSQL DB 配置高可用性

Tableau Server 不会为外部存储库管理或设置高可用性。Amazon RDS 提供了可用于提供高可用性、管理故障转移等的高可用性功能。有关详细信息,请参见 Amazon RDS 高可用性(链接在新窗口中打开)

PostgreSQL DB 的灾难恢复

如果发生灾难,您可能需要设置新的 RDS 实例。在其他情形下,您可能需要从 RDS 实例的问题中恢复。例如,升级 Tableau Server 时,可能还需要升级 RDS 实例上的 PostgreSQL 版本。如果您的 PostgreSQL 升级不成功,您可能必须使用新的 RDS 实例。在这种情形下,若要将 Tableau Server 配置为使用新的 RDS 实例,请使用以下步骤:

  1. 将快照还原到新的 RDS 实例。AWS 不支持将快照还原到现有 RDS 实例。有关 RDS 快照备份和还原的详细信息,请参见 Amazon RDS 备份和还原

  2. 创建新的 JSON 设置文件,其中包含新 RDS 实例的连接信息。有关创建 JSON 设置文件的详细信息,请参见随外部 PostgreSQL 存储库一起安装 Tableau Server中的步骤 1

  3. 使用 tsm topology external-services repository replace-host 命令将 Tableau Server 指向新的 RDS 实例。

    有关 tsm topology external-services repository replace-host 命令的详细信息,请参见tsm topology

谁可以执行此操作

只有 Tableau Server 管理员可以将 Tableau Server 配置为使用外部存储库。您还需要一个 AWS 账户来创建 RDS 实例。

感谢您的反馈!