---
schema_version: "1"
id: 5cfe64af52a3317e1d23d2f4a1cd4a9839be5ae691163cc6566ff108884f8896
title: Tableau 和 ODBC
collection: tableau
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/current/zh-cn/pro/desktop/odbc_tableau.md
canonical_url: https://help.tableau.com/current/pro/desktop/zh-cn/odbc_tableau.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 5e6a630524bdebd5fc99f73fc0d79cd8b429c9895bc5a846e040c4340dd602f7
description: Understand how Tableau works with ODBC drivers and tunes their performance.
---
[跳转到主要内容](#main-content)

# Tableau 和 ODBC

Tableau 包括适用于许多数据库的内置连接器。这些连接器利用特定于这些数据源的功能和优化，并经过相应开发和测试，可确保连接器可靠并且性能良好。

但您可能会使用 Tableau 没有相应连接的数据库。在这种情况下，您也许仍然能够将 Tableau 连接到数据库。Tableau 有一个使用 ODBC 标准的连接器。通过使用 ODBC，您可以访问支持 SQL 标准并实现 ODBC API 的任何数据源。

## ODBC 基础知识

ODBC（开放式数据库连接）是一种行业标准，它使各种各样的软件能够访问数据。ODBC 的基础是 SQL 查询的标准语法，软件应用程序使用该语法连接到数据库并从数据库请求数据。通常由数据库供应商提供的 ODBC 驱动程序接受采用此标准语法的请求，并将请求转换为目标数据库首选的本机格式。实际上，ODBC 驱动程序是一个将通用请求转换为数据库特定请求的转换层。

例如，ODBC 规范详细说明了应通过使用以下语法在 SQL 语句中指定日期： `{d 'yyyy-mm-dd'}`。随后驱动程序会将此格式转换为实际数据库的适当日期语法。如果使用 ODBC 连接器来连接到 Oracle 数据库，ODBC 连接器将采用以下格式将请求发送到 Oracle ODBC 驱动程序：

select name from emp where birthdate > {d '1987-12-29'}

驱动程序会将您的请求转换为 Oracle 数据库需要的实际格式，即：

select name from emp where birthdate > '29-DEC-87'

ODBC 规范包括用于进行函数请求的语法、联接语法、数据类型和数据类型转换。SQL 语言本身支持复杂的概念，例如嵌套查询、相关子查询、临时表和可在 select、where、group by、join 等子句中使用的各种函数。ODBC 驱动程序负责将所有这些请求正确转换为适合目标数据库的语法。

## Tableau 如何确定 ODBC 驱动程序的能力

各个数据库供应商在实现 ODBC 标准的功能的方式上可能会存在差异。Tableau 使用 ODBC 中的功能发现 API 向数据库驱动程序查询其支持的功能。Tableau 如何根据驱动程序报告的内容更改行为的一个示例是创建计算字段时可用功能的列表。驱动程序限制越少，就意味着可用功能就越多。

在某些情况下，Tableau 将要求您依据 ODBC 连接器返回的数据创建数据提取。而且，有一些 Tableau 无法连接到的 ODBC 驱动程序和数据库。

### ODBC 发现

在初始连接过程中，Tableau 将执行驱动程序和 SQL 发现查询请求，以便确定驱动程序的功能。

Tableau 执行的功能发现的一些示例包括：

- 可用的标量函数和聚合函数。
- 可用的日期和时间操作函数。
- 您是否能创建临时表？
- 您是否能使用 IF 和 SELECT into 语句？
- 是否支持子查询？
- 是否支持热门和限制查询？
- 支持哪些联接样式（外部、内部、完全）？
- 支持的数据类型。

根据功能发现结果，Tableau 将当前连接分为四种类别之一：

- 完全可用。这是支持 Tableau 使用的所有功能的驱动程序。
- 细微限制。这是具有少量非关键性限制的驱动程序。例如，不支持 Tableau 通常提供的一整套数字、字符串或日期函数的驱动程序。Tableau 将修改其行为以考虑到这些限制并继续。
- 重大限制。这是具有大量限制或不支持 Tableau 依赖的关键功能的驱动程序。不过，即使存在这些重大限制，Tableau 也可能可以很好地进行连接并创建 Tableau 数据提取以便将数据提取到 Tableau 中，供从数据库中进一步脱机处理。在这种情况下，Tableau 将建议您创建数据提取。在创建数据提取时，您也许无法在数据源上创建筛选器来减少数据提取中的数据量。（有关详细信息，请参见[筛选数据源中的数据](https://help.tableau.com/current/pro/desktop/zh-cn/filtering_datasource.htm)。）在提取数据之后，处理数据提取时可以使用完整 Tableau 功能。
- 致命限制。此驱动程序不支持 Tableau 连接并运行基本查询以创建数据提取文件所需的一组最少功能。因此，在使用此驱动程序的情况下，Tableau 无法进一步执行。

建立连接后，如果 Tableau 确定可用功能将此连接分类为无法充分运行，将显示一条消息来通知检测到的限制。例如，连接到具有细微限制的 ODBC 驱动程序时，将显示以下消息：

![Tableau 错误消息：ODBC 驱动程序不支持 Tableau 使用的所有功能。按钮：确定、显示详细信息。复选框显示“不再为此数据源显示”。](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/odbc_limits.png)

对于较严重的限制，警告对话框将建议您创建 Tableau 数据提取以便继续。

## 调整 ODBC 连接器性能

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

## 针对 ODBC 连接的 Tableau 支持

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

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

**注意**：对于 Tableau Desktop 版本 2023.3 及更高版本不再支持 32 位 ODBC 驱动程序。只有 64 位驱动程序才会出现在“DSN（数据源名称）”和“驱动程序”下拉菜单中。

## ODBC 常见问题解答

#### ODBC 连接器的一种典型用例是什么？

ODBC 连接的最常见用例是专门访问数据以将其引入 Tableau 数据提取中。将这些数据引入 Tableau 数据提取中后，即可使用完整 Tableau 功能来处理数据。许多 ODBC 驱动程序都支持所需的功能以便连接并执行完成数据提取所需的较简单查询。无论您是提取所有数据还是仅选择几列并设置一些筛选器来检索相关子集，都应记住应使用 ODBC。

#### 可在何处获得适用于我的数据库的 ODBC 驱动程序？

大多数数据库供应商都分发可与其数据库一起使用的 ODBC 驱动程序。请与您的数据库供应商联系来获取驱动程序。另外，还有许多第三方 ODBC 驱动程序制造商可以为各种常用数据库提供驱动程序。

#### 我需要什么版本的 ODBC 驱动程序？

确保您的 ODBC 驱动程序是版本 3 或更高版本的驱动程序，这意味着它实现 ODBC 规范版本 3。每个驱动程序提供商对其驱动程序版本都有自己的版本编号系统，这可能不同于它实现的 ODBC 版本号。1995 年引入了 ODBC 版本 3 规范，因此您的数据库提供商很可能具有实现此级别合规性的驱动程序。我们发现，许多使用不符合版本 3 标准的驱动程序（连接失败）的 Tableau 客户在升级到较新驱动程序后，都能够继续。

#### Tableau 是否已测试了数据库 \[x\]？

Tableau 已测试了与许多数据源的 ODBC 连接，但由于市场上提供的 ODBC 驱动程序数量庞大，我们没有对每个可能的驱动程序进行测试，Tableau 也无法执行如此广泛的测试。对于任何特定驱动程序，最佳建议是试用一下，然后告诉我们它的工作方式。

#### 如果它不工作，该怎么办？

首先检查驱动程序版本。如果您查看 Tableau 日志，我们将回显驱动程序报告的 ODBC 版本级别。在日志中搜索类似于如下的条目：

ODBCProtocol: driver ODBC version: 03.52

末尾的数字指示 ODBC 版本级别。如果它小于 03.00，则驱动程序需要升级。

如果您在连接时收到警告，指出功能不受支持，请与您的数据库供应商联系，来了解他们是否有支持更多功能的最新驱动程序。并非所有驱动程序都可以与 Tableau 一起使用。

#### 我是应该使用指定的数据库连接器，还是 ODBC 连接器？

如果您要连接到 Tableau 具有指定连接选项的数据库，则使用指定连接器。指定连接器已针对特定数据库优化。

### 另请参见

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

[自定义和调整连接](https://help.tableau.com/current/pro/desktop/zh-cn/connect_customize.htm) - 描述如何自定义 ODBC 连接信息以改进功能和提高性能。

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

[ODBC/SQL 自定义项参考](https://help.tableau.com/current/pro/desktop/zh-cn/odbc_sql.htm) - 列出自定义项，这些自定义项表示 ODBC 驱动程序报告支持的部分 ODBC 和 SQL 标准。