部署 Data Connect

在您的组织中部署 Data Connect 之前,请验证您是否已满足先决条件:

步骤 1:设置群集

验证以下连接和访问:

  • Data Connect 基础设施、群集和容器需要通过网络访问业务流程提供程序服务(上图中的 #2)和 Tableau Cloud(仅出站,#5)。

  • Data Connect 基础设施、群集、容器和代理需要通过网络访问您的数据库 (#6)。

请参见网络规格

部署和配置

在组织中想要运行 Kubernetes 群集的每台计算机上运行以下过程。

  1. 验证您的辅助卷未格式化。在 Linux 节点上,运行以下命令:

    lsblk -f

    下面显示了群集节点上未格式化且 FSTYPE 为空的额外卷 nvme1n1 的示例:

  2. 在“Data Connect”选项卡上的“池”下,单击“新建池”。在“新池”窗口中,输入池名称,然后单击“创建”

  3. 在“数据连接”选项卡上的“群集和节点”下,单击“新建群集”。在“新建群集”对话框中,输入群集名称,然后单击“创建”

  4. 在刚刚创建的集群上,单击“操作”列,然后单击“新建节点”。在“添加新节点”窗口中,单击“下载文件”

    cluster.tar 文件将下载到 Downloads 文件夹。此文件包含您将在节点上运行的引导脚本。

  5. 将群集 .tar 文件复制到计算机上。下面的示例显示如何复制 tar 文件、提取文件、将脚本更改为可执行文件,然后运行该脚本。该示例在 AWS 上下文中展示了这一点。更改您的环境的文件路径。

    以 root 或 sudo 用户身份运行以下命令,将 <key-name><IP-address> 替换为您的值:

    > scp -i <key-name>.pem /Downloads/cluster.tar ec2-user@ip-<IP-address>.us-west-2compute.internal:~/

    > ssh -i <key-name>.pem ex2-user@ip-<IP-address>.us-west-2compute.internal

    > tar -xvf cluster.tar

    > chmod +x onboard_node.sh preflight_check.sh

    > ./onboard_node.sh

    注意:默认情况下,bzip2 不会随 Ubuntu 一起安装。若要安装它,请运行 apt install bzip2 -y

    脚本成功运行后,您将在终端窗口中看到Successfully performed all operations,Tableau 团队将开始预置过程。

    如果遇到错误,请验证您的部署是否满足规划您的 Data Connect 部署中指定的最低硬件要求和网络规格。

  6. 在您站点的“Data Connect”选项卡上,在您在步骤 2 中创建的池中查找。在“操作”列下,单击“分配群集” ,然后选择您在步骤 3 中创建的群集。

  7. 单击群集上的 V 形符号 (⌄) 以查看主机名和可用操作。如果没有显示该信息,您可能需要重新加载页面。确认主机名是目标节点后,单击“接受节点”,然后单击“确认”

    然后,群集节点将转换为“正在预置”状态。预置节点可能需要一个小时或更长时间。

  8. 当节点上的状态更改为“可用”时,导航到分配了群集的池并单击操作按钮( ... ),然后单击“刷新令牌”。验证您正在刷新正确池的令牌,然后单击“确认”

  9. 等待令牌刷新完成。完成后,池状态设置为“可用”。导航回群集并单击 V 形符号 (⌄) 以折叠群集名称部分。单击群集的操作按钮 (...),然后单击“获取容器注册表信息”

    • 如果您在尝试此步骤时收到错误,则表示注册表尚未部署,并且预置过程可能仍在完成中。稍等几分钟,然后重试
    • 当显示注册表信息(服务器名称、用户名和密码)时,将其复制以进行下一步。

步骤 2:构建基础映像并发布

在此步骤中,您将构建包含所需驱动程序的基础映像,然后将映像发布到 Docker 容器注册表。开始之前:

  • 请验证您是否拥有上一步中的 Docker 容器注册表信息。

  • 每个池可以有自己独特的基础映像和一组驱动程序。

  • 如果您计划使用 TDC 文件进行连接,则需要将此文件包含在基础映像中。系统用户 tableau 必须具有此文件的读取权限。有关如何创建和存储此文件的详细信息,请参见 Tableau Desktop 帮助主题自定义和调整连接(链接在新窗口中打开)

构建容器

以下过程显示了构建容器的示例。您可能需要安装软件包管理器工具或其他特定于您的部署的工具。请注意,您构建的 docker 映像必须来自 Red Hat,因为 Tableau Bridge 安装程序是 Red Hat 安装程序(*.rpm 文件)。

  1. 登录到 Data Connect 群集中的任何节点。将群集 .tar 文件复制到计算机上。下面的示例显示如何复制 tar 文件、提取文件、将脚本更改为可执行文件,然后运行该脚本。该示例在 AWS 上下文中展示了这一点。更改您的环境的文件路径。

    以 root 或 sudo 用户身份运行以下命令,将 <key-name> 和 <IP-address> 替换为您的值:

    scp -i <key-name>.pem /Downloads/cluster.tar ec2-user@ip-<IP-address>.us-west-2compute.internal:~/
    ssh -i <key-name>.pem ec2-user@ip-<IP-address>.us-west-2compute.internal
    tar -xvf clustertar.tar
    chmod +x onboard_node.sh preflight_check.sh
    ./onboard_node.sh
  2. 按要求安装 Docker 及支持工具:

    #RedHat
    sudo dnf install -y container-tools podman-docker
    #Ubuntu
    sudo apt-get update -y
    sudo apt-get install -y docker.io
  3. 创建 Dockerfile:

    touch Dockerfile
  4. 更新 Dockerfile 以包含支持连接的驱动程序。此 Dockerfile 中指定的命令将在构建基础映像时运行。例如:

    # example base 
    FROM registry.access.redhat.com/ubi8
    RUN yum -y update
    WORKDIR /
    # Go to https://tableau.com/support/drivers
    # Follow the instructions to install your drivers for linux
    CMD [“/bin/bash”]

    驱动程序文件的目标目录将会有所不同。请参见 Tableau 驱动程序下载(链接在新窗口中打开)以了解更多详细信息。

    注意:Data Connect 支持具有 Linux 驱动程序且标有“通过 Bridge 与 Tableau Cloud 配合使用”的 Exchange 连接器。有关详细信息,请参见 Tableau Exchange 连接器(链接在新窗口中打开)

    公共 JDBC 驱动程序的示例 Dockerfile 行,使用 curl 命令下载驱动程序:

    RUN mkdir -p /opt/tableau/tableau_driver/jdbc
    RUN curl --location --output /opt/tableau/tableau_driver/jdbc/<file> <URL>
    				

    非公共 JDBC 驱动程序的示例 Dockerfile 行,使用复制:

    RUN mkdir -p /opt/tableau/tableau_driver/jdbc
    COPY  <file> /opt/tableau/tableau_driver/jdbc

    taco 驱动程序的示例 Dockerfile 行,使用复制:

    RUN mkdir -p /home/tableau/Documents/My_Tableau_Bridge_Repository/Connectors
    COPY  <file> /home/tableau/Documents/My_Tableau_Bridge_Repository/Connectors
  5. 当您仍登录到 Kubernetes 群集节点时,使用池 ID 的值设置变量 POOL_ID。若要显示池 ID 值,请打开“Data Connect”选项卡并单击池名称。

    • 将您复制的注册表值设置为相应的值。

      REGISTRY_HOSTNAME=registry_host_name_you_copied
      REGISTRY_USERNAME=registry_user_name_you_copied
      REGISTRY_PASSWORD=registry_password_you_copied
    • 设置池 ID 值:

      POOL_ID=<pool_id_value>
  6. 构建用作基础映像的容器。

    docker build -f <path_to_dockerfile> -t $REGISTRY_HOSTNAME/bridge-base:$POOL_ID .
  7. 登录到您现有的 Kubernetes 节点并将映像推送到本地容器注册表。

    docker login --username $REGISTRY_USERNAME $REGISTRY_HOSTNAME
    docker push $REGISTRY_HOSTNAME/bridge-base:$POOL_ID
  8. 在您正在配置的池下,单击操作按钮 (...),然后单击“刷新基础映像”。此操作将使用基础映像启动部署,最多可能需要 10 分钟。

    注意:每当创建并刷新新的基础映像时,都会创建一个新的部署。用于先前基础映像的 Bridge 代理将作为未分配的资产保留。不要删除未分配的 Bridge 代理。

步骤 3:将域映射到池

您在允许列表中指定的域名是用于数据源连接的服务器名称。

  1. 在“Data Connect”选项卡的池和私有网络允许列表部分下,选择您已分配的池,然后单击“操作”列中的“新建域”

  2. 在“域”文本框中,使用允许列表注册表规则中描述的信息输入域的 URI。您指定的域 URI 仅限于您正在配置的池。

  3. 在“域权限”下,确认选中“允许”单选按钮。

  4. 完成后,单击“保存”

连接错误故障排除

您必须配置网络基础设施,以便 Data Connect 可以访问您想要连接的所有必需的数据源。若要验证 Data Connect 是否可以访问您的数据源,请从将运行 Data Connect 的节点运行以下 curl 命令:

$ curl -v $DB_HOSTNAME:$DB_PORT

如果您已成功建立连接,您应该会看到一系列响应。这里显示了一些示例:

  • Host $DB_HOSTNAME:$DB_PORT was resolved:确认 DNS 服务器成功解析主机名。

  • Connected to $DB_HOSTNAME:确认节点有网络连接。

  • Empty reply from server. Closing connection:这是预料之中的,因为 curl 不是数据库客户端。

  • Could not resolve host: $DB_HOSTNAME:DNS 解析存在问题。

  • Trying $DB_IP_ADDRESS:$DB_PORT:当此消息后面跟着挂起结果时,表示存在网络问题。

如果您使用第三方数据连接基础设施,请确保网络逻辑不会被第三方破坏。

(可选)步骤 4:跨站点共享群集

默认情况下,Data Connect 群集及其对应的节点仅由最初创建它们的站点使用。但是 Data Connect 群集可以在 Tableau Cloud Manager 租户内的所有站点之间共享。共享群集允许租户内不同站点上的查询使用相同的节点基础设施。

为了确保跨站点的数据隐私,您的共享群集的任何数据都不会被您的租户上的任何其他站点获取。

注意:共享群集是一项永久性的操作。若要取消共享群集,您必须移除并重新安装群集。

群集仅在其创建的原始站点上成功接受后才能共享。

若要共享 Data Connect 群集,请执行以下操作:

  • 导航到要共享的群集,单击操作省略号 (...),然后单击“共享”

共享群集后,租户内其他站点的站点管理员将能够将该群集与他们在其站点中创建的任何池一起使用。

(可选)步骤 5:在共享群集上创建池作为群集接收者

在共享群集上将池创建为接收者之前,请验证以下事项:

  • 共享群集与您的站点使用的数据库具有网络连接

  • 您的站点中的数据库所需的所有数据库驱动程序都必须安装在群集上

若要开始使用共享群集作为群集接收者,您需要与群集所有者沟通,以将池的基础映像添加到群集:

  1. 在“Data Connect”选项卡上的“池”下,单击“新建池”

  2. 在“新池”窗口中,输入池名称,然后单击“创建”

  3. 在新池中,单击“分配群集”,选择共享群集,单击操作省略号 (...),然后单击“刷新令牌”

  4. 验证您正在刷新正确池的令牌,然后单击“确认”

  5. 当池状态设置为“可用”时,复制池的 Pool_ID。若要显示 Pool_ID 值,请单击池名称。

  6. 为您的站点添加基础映像。请参见步骤 2:构建基础映像并发布

    在添加基础映像的过程中,具有群集访问权限的管理员需要使用 Pool_ID 值构建一个新容器。您还需要最初创建群集的站点上的注册表值,这些值可以由群集所有者提供。

  7. 将基础映像发布到本地容器注册表后,导航到共享站点上的池,然后单击“刷新基础映像”

  8. 若要完成设置,请参见上面的步骤 3:将域映射到池

从现有群集添加节点

  1. 导航到群集并单击“新建节点”

  2. 按照上面步骤 1:设置群集程序中的步骤 4、5、7、8、9 进行操作。省略步骤 6,因为您不需要分配群集。

  3. 刷新令牌步骤完成后,转到与群集关联的池并单击“刷新基础映像”

注意:创建并刷新新的基础映像时,都会创建一个新的部署。用于先前基础映像的 Bridge 客户端将作为未分配的资产保留。不要删除未分配的 Bridge 客户端。

从现有群集中移除节点

从群集中移除节点后,Tableau Cloud 将无法再访问 Bridge 客户端。删除节点时在 Data Connect 上运行的任何作业都将失败。但是,系统不会将其他作业被路由到这些 Bridge 客户端。

若要移除节点,请导航到群集,单击操作省略号 (...) 并选择“删除”

更新现有池的基础映像

如果您决定使用新的数据库或更新 Data Connect 群集将使用的驱动程序,则可以更改现有的基础映像以适应这些更改。为此,请按照步骤 2:构建基础映像并发布中的说明使用更改来更新容器文件。更新容器文件后,单击“刷新基础映像”。部署新的基础映像最多可能需要 15 分钟。在新的基础映像成功部署之前,将使用您之前的基础映像。

数据库连接疑难解答

首先验证您的域是否遵守允许列表注册规则。请参见配置池

接下来,确认已您必须配置网络基础设施,以便 Data Connect 可以访问您想要连接的所有必需的数据源。若要验证 Data Connect 是否可以访问您的数据源,请从将运行 Data Connect 的节点运行以下 curl 命令:

$ curl -v $DB_HOSTNAME:$DB_PORT

如果您已成功建立连接,您应该会看到一系列响应。这里显示了一些示例:

  • Host $DB_HOSTNAME:$DB_PORT was resolved:确认 DNS 服务器成功解析主机名。

  • Connected to $DB_HOSTNAME:确认节点有网络连接。

  • Empty reply from server. Closing connection:这是预料之中的,因为 curl 不是数据库客户端。

  • Could not resolve host: $DB_HOSTNAME:DNS 解析存在问题。

  • Trying $DB_IP_ADDRESS:$DB_PORT:当此消息后面跟着挂起结果时,表示存在网络问题。

如果您使用第三方数据连接基础设施,请确保网络逻辑不会被第三方破坏。

感谢您的反馈!您的反馈已成功提交。谢谢!