SAP HANA

本文介绍如何将 Tableau 连接到 SAP HANA 数据库并设置数据源。

注意:此连接器使用适用于 Mac、Linux 和 Windows 的 JDBC 驱动程序。适用于 Windows 的 JDBC 驱动程序是 Tableau 版本 2021.1 中新增的。适用于 Mac 和 Linux 的 JDBC 驱动程序随 Tableau 版本 2020.2 一起引入。推荐使用 JDBC 驱动程序版本 2.3.4。

开始之前

在开始之前,请收集以下连接信息:

  • 您是在建立单节点还是多节点连接?

    • 单节点:数据库服务器名称和端口号。

    • 多节点:数据库服务器名称、主机名和端口号。

  • 身份验证:

    • Windows:Windows 身份验证或用户名和密码

    • Mac:Kerberos 或用户名和密码

  • 是否要连接到 SSL 服务器?

  • (可选)要在每次 Tableau 连接时运行的初始 SQL 语句

注意:如果要使用实时连接连接到 SAP HANA,则必须禁用参数和变量。如果您使用参数和变量,与 SAP HANA 计算视图的实时连接将无法与 Tableau Bridge 配合使用。

需要驱动程序

此连接器需要驱动程序才能与数据库通信。计算机上可能已经安装了所需的驱动程序。如果计算机上未安装该驱动程序,Tableau 将在连接对话框中显示一条错误消息,其中包含指向驱动程序下载(链接在新窗口中打开)页面的链接,您可在该页面中找到驱动程序链接和安装说明。

进行连接并设置数据源

  1. 启动 Tableau,并在“连接”下选择“SAP HANA”

    1. 选择连接的类型:

      • 单节点:输入承载要连接到的数据库的服务器的名称,以及端口号(如果使用非默认端口)。

      • 多节点:输入每个服务器的主机名和端口号,由逗号分隔。例如:

        host1:30015,host2:30015,host3:30015

    2. 选择登录到服务器的方式:

      Windows:

      • 如果您的环境支持单点登录 (SSO) ,请选择“使用 Windows 身份验证”

      • 或者选择“使用特定用户名和密码”。如果服务器有密码保护,而您不在 Kerberos 环境中,则您必须输入用户名和密码。

      Mac :选择“Kerberos”,或者选择“使用特定用户名和密码”

      在连接到 SSL 服务器时,选中“需要 SSL”选项。

    3. (可选)选择“初始 SQL”以指定要在每次连接开始时(例如打开工作簿、刷新数据提取、登录到 Tableau Server 或发布到 Tableau Server 时)运行的 SQL 命令。有关详细信息,请参见运行初始 SQL

    4. 选择“登录”

      如果 Tableau 无法建立连接,请验证您的凭据是否正确。如果仍然无法连接,则说明您的计算机在定位服务器时遇到问题。请联系您的网络管理员或数据库管理员。

  2. 在数据源页面上,执行下列操作:

    1. (可选)在页面顶部选择默认数据源名称,然后输入要在 Tableau 中使用的唯一数据源名称。例如,使用可帮助其他数据源用户推断出要连接的数据源的数据源命名约定。

    2. “架构”下拉列表中,选择搜索图标,或在文本框中输入架构名称并选择搜索图标,然后选择架构。

    3. “表”文本框中,选择搜索图标,或输入表名称并选择搜索图标,然后选择表。

      Tableau Desktop 还支持连接到 SAP HANA 表函数,这些函数出现在“数据源”页面左侧窗格中的“存储过程”下。

    4. 将表拖到画布,然后选择工作表标签以开始分析。

      默认显示为列标签。

      使用自定义 SQL 连接到特定查询,而非整个数据源。有关详细信息,请参见连接到自定义 SQL 查询

      注意:使用分析视图创建自联接时,并且其中一个表包含变量时,请确保包含变量的表位于左侧。否则,联接可能无法返回预期结果。

登录到 Mac

如果在 Mac 上使用 Tableau Desktop,则在输入服务器名称进行连接时,请使用完全限定的域名(例如 mydb.test.ourdomain.lan)而不是相对域名(例如 mydb 或 mydb.test)。

或者,可以将域添加到 Mac 计算机的“搜索域”的列表中,以便在您连接时,只需要提供服务器名称。若要更新“搜索域”的列表,请转到“系统首选项”>“网络”>“高级”,然后打开“DNS”选项卡。

将 SAP HANA 级别分层结构转换为用户分层结构

当您创建 SAP HANA 数据源或工作簿时,可以创建自己的分层结构以在 Tableau 中使用。从版本 2019.4 开始,Tableau 支持在 SAP HANA 中创建的级别分层结构。在将 Tableau 连接到具有级别分层结构的 SAP HANA 计算视图时,“数据”窗格中将显示 SAP HANA 级别分层结构的结构。如果要在 Tableau 中修改 SAP HANA 级别分层结构,则必须将 SAP HANA 级别分层结构转换为用户分层结构。

警告:将 SAP HANA 级别分层结构转换为用户分层结构后,将无法撤消。如果您决定要使用 SAP HANA 级别分层结构而不是用户分层结构,则必须重新开始。

若要转换为用户分层结构,请完成以下步骤:

  1. “数据”窗格中,选择分层结构。
  2. 在下拉菜单中,选择“转换为用户分层结构”

自定义 JDBC 连接

在 Mac 和 Linux 上,SAP HANA 使用 JDBC 连接。您可以使用属性文件自定义 JDBC 连接。有关详细信息,请参见 Tableau 社区中的使用属性文件自定义 JDBC 连接(链接在新窗口中打开)

在 Mac 上安装受信任的 SSL 证书

如果要使用 SSL/TLS 对 Tableau Desktop 和数据库之间的通信进行加密,您必须将证书添加到 Java 证书信任存储库。如果数据库使用自签名证书,则必须这样做。若要使用 SSL/TLS 将 Tableau Desktop 连接到数据库,请完成以下步骤:

  1. 启动终端应用程序,并导航到您的 Java 主目录。它位于 /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home,除非您已安装 JDK 或设置 JAVA_HOME 环境变量。

  2. 运行以下命令:

    bin/keytool -importcert -keystore cacerts -alias <certificate name>  -file <path to certificate file>

注意:从 Tableau 版本 2020.2 开始,您可以将自定义证书导入到“系统”钥匙串中。有关详细信息,请参见适用于 JDBCP 连接的单向 SSL

选择变量和输入参数

如果您使用的表包括必需或可选的变量或参数,则“变量和输入参数”对话框将打开。

  • 必需的变量和参数将显示其当前值或“*必填”

  • 可选的变量和参数显示其当前值或显示为空白。

  • 通过选中“提示”下的复选框,在工作簿打开时提示输入变量。

选择一个变量或参数并为其键入或选择值。为所有必填值和您要包括的任何可选值重复此步骤,然后选择“确定”

注意:您可以使用基于 SQL 查询的 SAP HANA 提示。

支持 SAP HANA 单点登录 (SSO)

通过将 SAP HANA 配置为支持单点登录 (SSO),您可以访问数据、发布数据源并将工作簿发布到 Tableau Server,而不必重新输入您的用户名和密码。若要使用 SSO,您必须使用“Viewer(查看者)凭据”身份验证将数据源和工作簿发布到 Tableau Server。若要启用“Viewer(查看者)凭据”身份验证,您必须在 Windows 计算机上使用 Windows 身份验证或在 Mac 上使用 Kerberos 连接到 SAP HANA。 有关详细信息,请参见发布到服务器

登录到服务器

您可以通过输入服务器名称登录 SAP HANA 服务器。或者,您可以选择在 Windows 计算机上使用 Windows 身份验证或在 Mac 上选择 Kerberos。若要完成,请选择“登录”

发布到服务器

您不必输入其凭据即可访问该数据源或工作簿(如果将其发布到启用了 SSO 的 Tableau Server)。若要在将数据源或工作簿发布到 Tableau Server 时启用 SSO,请完成以下步骤:

  1. 选择“服务器”“发布数据源”“服务器”“发布工作簿”
  2. “数据源”下,选择“编辑”

  3. 在“管理数据源”对话框中,执行以下操作:

    • 选择“发布类型” “嵌入工作簿中”“单独发布”

    • “身份验证”选择“Viewer(查看者)凭据”

  4. 选择“发布”

如何在使用 SSO 时刷新 HANA 数据提取

您可以使用 Tableau 数据提取实用工具来自动执行数据提取刷新任务。例如,以下命令刷新名为“mydatasource”的已发布 SAP HANA 数据提取。此命令指定以下内容:

  • Tableau Server 的名称

  • 要刷新的数据源的名称

C:\Program Files\Tableau\Tableau 10.2\bin>tableau refreshextract --server https://mytableauserver --datasource mydatasource

有关该实用工具的详细信息,请参见Tableau 数据提取命令行实用工具

性能提示

您可以通过启用查询参数绑定来提高性能。

使用绑定变量

为了提高性能,Tableau 可为您的 SAP HANA 查询使用绑定变量。

  • 查询:HANA 可以编译一次查询并多次执行它。
  • 多节点 HANA 部署:参数化查询会以最佳方式路由到正确的节点。

若要启用此功能,Tableau Server 管理员可以在 TDC 文件中添加 CAP_ODBC_QUERY_USE_PREPARE_PARAMETER_MARKER 功能。

注意:此功能需要 Tableau 2018.3 或更高版本。
您可以将 CAP_ODBC_QUERY_USE_PREPARE_PARAMETER_MARKER 与 JDBC 和 ODBC 一起使用。

使用列元数据集合

Tableau 支持列元数据集合,这可以改善某些视图的加载时间。

当 Tableau 读取表或视图的列元数据时,默认情况下它会使用表上的已准备好的查询。

注意:列元数据收集通常是最准确的选项,但处理时间可能更长。

您可以使用 TDC 文件禁用准备好的查询元数据。使用列元数据集合时,Tableau 将使用 ODBC API SQLColumns。虽然此方法速度更快,但可能不太准确。请谨慎使用此选项,并且仅当它看起来是适合您的数据的好方法才使用。使用以下功能通过 SQLColumns 启用列元数据:

  • CAP_ODBC_METADATA_SUPPRESS_EXECUTED_QUERY
  • CAP_ODBC_METADATA_SUPPRESS_PREPARED_QUERY

 

注意:若要将这些功能应用于临时表,您必须安装 Tableau Server 2019.3.6 或更高版本。

SAP HANA 的 TDC 示例

您的 TDC 文件看起来应类似于以下示例。

<?xml version='1.0' encoding='utf-8' ?>
<connection-customization class='saphana' enabled='true' version='9.3'>
<vendor name='saphana' />
<driver name='saphana' />
<customizations>
<customization name='CAP_ODBC_QUERY_USE_PREPARE_PARAMETER_MARKER' value='yes' />
</customizations>
</connection-customization>

有关使用 TDC 文件的详细信息,请参见自定义和调整 ODBC 连接主题中的“创建 TDC 文件”。另请参见名为将 TDC 文件与 Tableau Server 配合使用的知识库文章。

重要信息:确保在 connection-customization 行中包括 enabled=’true’。

另请参见

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