---
schema_version: "1"
id: 1597fd4622f052775ff00c1cc679e5b3a5984bc331c269c1db826e66f0fb7b40
title: Tableau 和 JDBC
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/pro/desktop/jdbc_tableau.md
canonical_url: https://help.tableau.com/v0.0/pro/desktop/zh-cn/jdbc_tableau.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 190a8e253526e56c96230a5e0d2cc4f717394329ff687a229a23fe80e7ff6b2e
description: Understand how Tableau uses JDBC drivers and how to tune their performance.
---
[跳转到主要内容](#main-content)

# Tableau 和 JDBC

Tableau 支持多个连接器的 JDBC（Java 数据库连接）驱动程序。这既包括官方命名的连接器（例如 Athena），也包括与其他基于 JDBC 的驱动程序一起使用的通用连接器，称为**其他 (JDBC)。**

JDBC 需要 Java，这使得它独立于平台。从版本 2020.2 开始，所有 Tableau 应用程序都与 Java 运行时捆绑在一起，因此您不必单独安装它。

**注意：**如果您使用 2020.2 之前的 Tableau Desktop 版本，请参见[驱动程序下载](https://www.tableau.com/zh-cn/support/drivers)页面，了解有关安装 Java 的说明。

## 调整 JDBC 连接器性能

Tableau 支持自定义 JDBC 数据连接的功能，这可以改善连接体验。有关详细信息，请参见[自定义和调整连接](https://help.tableau.com/v0.0/pro/desktop/zh-cn/connect_customize.htm)。

## 针对 JDBC 连接的 Tableau 支持

Tableau 不保证使用具有任何特定 JDBC 驱动程序或数据库的**其他数据库 (JDBC)** 连接器将能够成功连接和查询数据。有些 JDBC 驱动程序支持完整 Tableau 交互式体验，而有些驱动程序可能仅可用于创建数据提取。某些 JDBC 驱动程序可能无法与 Tableau 配合工作。

注意：Tableau 将提供合理的客户支持级别来帮助排除使用 JDBC 驱动程序进行连接的故障，但无法创建或自定义连接器来处理特定的 JDBC 驱动程序。

## 常见问题

下面列出了一些常见问题和解决步骤。

我看到一条“缺少 Java”消息。现在怎么办？

如果您使用 2020.2 之前的 Tableau 版本，或在 Windows 上使用 Kerberos，有时会发生这种情况。有关为连接器安装正确版本的 Java 的说明，请参见[驱动程序下载](https://www.tableau.com/zh-cn/support/drivers)页面。

从版本 2020.2 开始，所有 Tableau 应用程序都与 Java 运行时捆绑在一起，因此不会出现此错误。

**我看到一条“缺少驱动程序”消息。我该怎么办？**

在以下路径之一中安装驱动程序及其所依赖的任何库：

- Windows：C:\\Program Files\\Tableau\\Drivers
- Mac：/Library/JDBC 或 ~/Library/JDBC
- Linux：/opt/tableau/tableau\_driver/jdbc

确保运行 Tableau 的用户或 Tableau 服务用户可读取驱动程序。

**我为 Tableau 安装了多个 JDBC 驱动程序，但连接时遇到问题。我该怎么办？**

如果您为 Tableau 安装了多个 JDBC 驱动程序，则它们可能使用不同的版本相同的第三方库。这可能会以不可预测的方式导致问题。如果在连接时出现奇怪的错误，并且 JDBC 驱动程序文件夹中安装了多个 JDBC 驱动程序，则可以使用以下步骤来隔离它们。

假设您在 JDBC 文件夹中安装了这些库：

- athena-driver.jar
- athena-dependency.jar
- athena-dependency.so
- postgres-driver.jar

要将 Athena 驱动程序与 Postgres 驱动程序隔离，请将它们安装在单独的子目录中：

- Athena/athena-driver.jar
- Athena/athena-dependency.jar
- Athena/athena-dependency.dll
- Postgres/postgres-driver.jar

移动驱动程序后，重新启动 Tableau。

**我看到一条“ClassNotFoundException”（或类似）消息。我该怎么办？**

如果您运行的 JDBC 驱动程序不兼容 Java 11，则可能会在运行 Tableau 时遇到问题。

如果您认为您的问题可能是由 Java 11 引起的：

1. 从 AdoptOpenJDK 下载 Java 64 位 JRE（Java 运行时环境）或 JDK（Java 开发工具包）：
    1. 转到 [https://adoptopenjdk.net/releases.html](https://adoptopenjdk.net/releases.html)。
    2. 选择“**OpenJDK**11”，然后选择“**Hotspot**”。
    3. 选择“**其他**平台”可查看选项的完整列表。
    4. 下载适用于您的操作系统的 JRE 或 JDK。
2. 在运行 Tableau 的计算机上，设置如下环境变量：
    
    TABLEAU\_JAVA\_HOME=C:\\Program Files\\AdoptOpenJDK\\jre-8.0.232.09-hotspot
    
    或
    
    TABLEAU\_JAVA\_HOME=C:\\Program Files\\AdoptOpenJDK\\jdk-8.0.252.09-hotspot

**如何解决代理问题？**

从版本 2019.4 开始，当 Tableau 在 Windows 上运行时，它通过为 [Java](https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html) 启用 `useSystemProxies` 选项来读取代理设置。

在某些情况下，这可能会导致问题。举例来说，如果选择“为所有协议使用相同的代理服务器”，Java 虚拟机会尝试使用 SOCKS 代理。

若要查找解决此问题的说明，请参见名为 [Tableau 无法通过代理连接到 Amazon Athena，并出现错误代码 37CE01A3](https://kb.tableau.com/articles/issue/tableau-desktop-fails-to-connect-to-amazon-athena-through-proxy-with-error-code-37ce01a3?lang=zh-cn) 的 Tableau 知识库文章。本文具体提到 Athena，但此方法可能适用于任何 JDBC 连接器。

**使用 SSL 连接到服务器时遇到问题。我可以尝试什么操作？**

如果看到错误消息，比如“Couldn’t find SSL verification path”（找不到 SSL 验证路径），您可能需要配置证书或私钥。

有关使用证书的说明，请参见[适用于 JDBC 连接的单向 SSL](https://help.tableau.com/v0.0/pro/desktop/zh-cn/jdbc_ssl_config.htm)。如果您使用的是 Oracle JDBC 驱动程序，请参见[使用 SSL 的 Oracle JDBC 连接](https://help.tableau.com/v0.0/pro/desktop/zh-cn/jdbc_oracle_ssl_config.htm)，了解有关使用相应证书和/或密钥进行连接的信息。

**将其他数据库 (JDBC) 连接器与 Postgres JDBC 驱动程序结合使用时，尝试创建数据提取有时失败。我可以尝试什么操作？**

如果未设置 Postgres 驱动程序提取大小，并且启用了自动提交，则可能会遇到错误。驱动程序将尝试一次性处理太多数据，但无法处理。

请尝试以下操作：

1. 使用 defaultRowFetchSize 设置数据的提取大小。
    
    有关详细信息， 请参见PostgreSQL 站点上的 [JDBC 驱动程序](https://jdbc.postgresql.org/documentation/head/connect.html)页面。
2. 通过创建（或编辑现有）TDC 文件来禁用自动提交。在 TDC 文件中包括以下内容：
    
    `<?xml version='1.0' encoding='utf-8' ?>   <connection-customization class="genericjdbc" enabled="true" version="10">   <vendor name="genericjdbc"/>   <driver name="postgresql"/>   <customizations>   <customization name="CAP_JDBC_QUERY_DISABLE_AUTO_COMMIT" value="yes"/>   </customizations>   </connection-customization>`
    
    **注意：**尽管使用其他数据库 (JDBC) 连接器时需要此步骤，但对于指定的 Tableau 连接器，并不是因为默认情况下已设置自动提交。
    
    有关为 JDBC 连接使用 TDC 文件的详细信息，请参见[自定义和调整连接](https://help.tableau.com/v0.0/pro/desktop/zh-cn/connect_customize.htm)。

### 另请参见

[其他数据库 (JDBC)](https://help.tableau.com/v0.0/pro/desktop/zh-cn/examples_otherdatabases_jdbc.htm) – 描述如何使用通用 JDBC 连接器连接到数据。

[自定义和调整连接](https://help.tableau.com/v0.0/pro/desktop/zh-cn/connect_customize.htm) - 描述如何使用 TDC 和 .properties 文件自定义连接。

[适用于 JDBCP 连接的单向 SSL](https://help.tableau.com/v0.0/pro/desktop/zh-cn/jdbc_ssl_config.htm)– 提供有关使用带有 JDBC 驱动程序的证书通过 SSL 访问服务器的说明。

[Tableau JDBC 功能自定义项参考](https://help.tableau.com/v0.0/pro/desktop/zh-cn/jdbc_capabilities.htm) - 列出可用于定义数据源支持的 Tableau 功能的自定义项。