---
schema_version: "1"
id: 217991ea1e0b071f0cd1b2d6540f22f90fd6e8a0b79d07388c6f5252ad5584a6
title: 表扩展程序
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/online/tc_table_extensions.md
canonical_url: https://help.tableau.com/v0.0/online/zh-cn/tc_table_extensions.htm
source_site: help.tableau.com
content_type: documentation
content_hash: ebee1211b240e90da017dd528eb42f551af58db978ce5f96df2d2754b278775e
description: Create table extensions with analytics extension scripts in Tableau Cloud.
---
[跳转到主要内容](#main-content)

# 表扩展程序

表扩展程序允许您使用分析扩展程序脚本创建数据表。您可以编写一个自定义 TabPy 或 Rserve 脚本，并可以选择添加一个或多个输入表。Tableau Cloud、Tableau Server 和 Tableau Desktop 支持表扩展程序。本文档重点介绍 Tableau Cloud。

**注意：**与实时连接类似，每次打开工作簿或刷新数据源时，表扩展程序都会刷新。

### 好处

表扩展程序对新用户和有经验的用户都有以下好处。

- 轻松地将脚本或高级功能集成到 Tableau 中
- 轻松地将 Tableau 数据连接中的数据作为输入拖到脚本中
- 低代码编辑器使向数据源添加代码变得容易
- 与[数据指南](https://help.tableau.com/current/server/zh-cn/data_guide.htm)和[“数据解释”功能](https://help.tableau.com/current/server/zh-cn/explain_data_basics.htm)集成
- 与 TabPy、Rserve 和其他分析扩展程序集成
- 结果可用于构建仪表板或可视化项

## 先决条件

必须先完成以下列表，然后才能使用表扩展程序。

- 在 Desktop 或 Web 制作中打开数据源。
- 配置分析扩展程序
    - 有关配置分析扩展程序连接的步骤，请参见[使用分析扩展程序传递表达式](https://help.tableau.com/current/pro/desktop/zh-cn/r_connection_manage.htm)。

## 创建表扩展程序

若要创建表扩展程序，请完成以下步骤。

1. 打开已发布工作簿。
2. 打开数据源或创建数据源。
3. 在**“连接”**下，选择**“新建表扩展程序”**。
    
    ![连接菜单](/tableau/next/zh-cn/online/zh-cn/Img/new_table_extension.png)
4. 将它拖到数据模型中。
5. （可选）将表从数据连接拖到表扩展程序窗格中，以用作分析扩展程序脚本或函数的输入。
    
    - 默认情况下，来自 Tableau 的数据被传递到分析扩展程序并定义为 `variable _arg1`，一个类似字典的结构，例如： `{‘colum_name’: [1,2,3], ‘column_name_2’: [3,4,5]`
        
        **Python 示例：**可以使用以下方法将输入数据转换为 pandas 数据框。
        
        `import pandas as pddf = (pd.DataFrame(_arg1))`
    - 使用 RServe 时，输入数据被定义为变量 .arg1，数据类型是列表的命名列表。
    - 对于受支持的关系数据源，您可以使用自定义 SQL 作为表扩展程序的输入。在自定义 SQL 查询中使用参数时，更改参数会导致查询重新运行并重新计算脚本。这将创建一个路径来动态更新仪表板中的参数，并筛选或以其他方式将值传递给表扩展程序脚本。
        
        ![关系数据源](/tableau/next/zh-cn/online/zh-cn/Img/table_ext_2.png)
6. 在“脚本”区域中，输入您的脚本或函数调用。该脚本必须返回字典或列表的列表，本质上是一个 JSON 对象。RServe 的脚本必须返回一个 data.frame 或命名列表的列表，而 Python 的脚本必须返回一个字典。
    
    **Python 示例：**我们使用以下显式 return 命令。
    
    `return df.to_dict(orient='list')`

**注意：**如果在 TabPy 中禁用了 TABPY\_EVALUATE\_ENABLE，则表扩展程序不支持直接调用 TabPy 端点。

8. 选择**“应用”**运行脚本。
9. （可选）如果您将表扩展程序与数据模型中的另一个表相关联，请定义每个表中至少一个字段之间的关系。如果字段具有相同的名称，此操作可能会自动进行。
10. 选择**“立即更新”**，结果将显示在**“输出表”**选项卡中。
    
    ![输出结果表](/tableau/next/zh-cn/online/zh-cn/Img/table_ext_3.png)

**注意：**如果您没有在数据模型中定义与表的关系，则“输入表”选项卡为空，并将显示消息“数据预览不可用”。

1. （可选）在**“名称”**字段中，输入表扩展程序的唯一名称。
2. 转到“工作表”选项卡以开始探索和可视化数据。来自表扩展程序的结果将像 Tableau 中从平面文件或关系源查询的任何其他数据一样运行。
3. 发布工作簿以共享。发布目标（Server 或 Tableau Cloud）必须启用和配置适当类型的分析扩展程序。

> [!TIP]
> 
> **故障排除提示**：如果执行脚本时出现问题，来自分析扩展程序的错误将显示在 Tableau 错误消息中。如果您的表扩展程序遇到错误，请确保所有代码和格式正确，并尝试使用位于“保存”按钮旁边的圆形“刷新数据源”按钮，或再次单击“应用”。

### **表扩展程序与分析扩展程序**

虽然这些产品中的一些并不相关，但表扩展程序和分析扩展程序有几个共同的功能。表扩展程序功能依赖于与分析扩展程序的连接才能工作。让我们来分析一下每个功能。

#### 仪表板扩展程序

[仪表板扩展程序](https://help.tableau.com/current/pro/desktop/zh-cn/dashboard_extensions.htm)允许使用仪表板扩展 SDK 将自定义 Web 应用程序添加到仪表板，但是，此扩展程序类型与表扩展程序无关。

#### 表扩展程序

表扩展程序功能允许您在数据源中创建一个表，该表可以将数据和脚本发送到您的分析扩展程序，并返回一个任意形状的完整表作为结果。返回的结果在“数据源”选项卡的数据模型中显示为表，并在工作簿中显示为度量和维度。

#### 分析扩展程序

[分析扩展程序](https://www.tableau.com/zh-cn/developer/learning/getting-started-analytics-extensions-api)功能允许您使用编程语言（如 Python、外部工具和外部平台）扩展 Tableau 计算。创建与分析扩展程序的连接后，您可以通过称为 SCRIPT\_X 或 MODEL\_EXTERNAL\_X 的计算字段与外部服务器通信，其中 X 是预期返回值的数据类型。有关详细信息，请参见[使用分析扩展程序传递表达式](https://help.tableau.com/current/pro/desktop/zh-cn/r_connection_manage.htm)。