---
schema_version: "1"
id: 6e48acdc028afed303f2ff7f2d3f02362c4d986db4500b6e6861f6e174a0f451
title: 使用分析扩展程序传递表达式
collection: tableau
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/current/zh-cn/pro/desktop/r_connection_manage.md
canonical_url: https://help.tableau.com/current/pro/desktop/zh-cn/r_connection_manage.htm
source_site: help.tableau.com
content_type: documentation
content_hash: f29d3f8d1ecdef5de842acee585700ab6d7d7794ee1ffa79051eec37a84b7388
description: Configure analytics extensions and pass expressions using SCRIPT functions.
---
[跳转到主要内容](#main-content)

# 使用分析扩展程序传递表达式

从版本 2021.2 开始，您可以为任何站点创建多个分析扩展程序连接。对于 2021.2 之前的版本，任何站点都只能使用单一分析扩展程序。

创建与分析扩展程序的连接后，您将通过计算字段与外部服务进行通信。每个计算字段都使用[SCRIPT 表达式函数](#SCRIPT)，作为表计算进行运算。

## 配置分析扩展程序

Tableau 支持通过一组 SCRIPT 函数连接到分析扩展程序。在将任何 SCRIPT 函数传递给分析扩展程序之前，您需要配置与服务的连接。

1. 在 Tableau Desktop 中，单击“帮助”菜单，然后选择“设置和性能”\>“管理分析扩展程序连接”。选择要连接到的分析扩展程序。MATLAB 连接由分析扩展程序 API 管理。
    
    ![可能的连接类型的对话框，包括 tabpy、Einstein Discovery、Rserve 和 Analytics Extension API](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/external_analytics_01.png)
2. 选择并配置您的分析服务。
    
    <table style="width: 100%;"><colgroup><col style="width: 50%;"><col></colgroup><tbody><tr><td>如果您正在使用 <span class="uicontrol">Einstein Discovery</span>，请选择“启用”。您的默认浏览器将打开，允许您授权与 Salesforce 的连接。连接后，转到帮助主题的<a href="#Einstein" class="xref">Einstein Discovery</a>部分以继续。</td><td>对于所有其他服务（Tabpy、Matlab 和 Rserve），将显示以下对话框。</td></tr><tr><td><img src="https://help.tableau.com/current/pro/desktop/zh-cn/Img/external_analytics_05.png" alt="带有连接到 Einstein Discovery 的消息的对话框。"></td><td><img src="https://help.tableau.com/current/pro/desktop/zh-cn/Img/external_analytics_04.png" alt="管理分析扩展程序连接表单。"></td></tr></tbody></table>
3. 使用域或 IP 地址输入或选择服务器名称。
    
    如果服务器使用 SSL 加密，请选择“需要 SSL”选项。Tableau 将读取安装在操作系统密钥存储中的证书，以建立安全连接。
    
    注意：Tableau 仅在连接到 TabPy 或 Rserve 时才支持 PEM 编码证书。
4. 指定端口。
    - 端口 6311 是纯文本 Rserve 服务器的默认端口。
    - 端口 4912 是 SSL 加密 Rserve 服务器的默认端口。
    - 端口 9004 是 TabPy 的默认端口。
5. 单击“测试连接”。
6. 单击“保存”。

如果无法建立连接，则会显示错误消息。 单击消息中的“显示详细信息”查看服务器返回的任何诊断信息。

### 在 Web 制作中配置分析扩展程序

使用 Tableau Cloud Web 制作时，选择“分析”\> “分析扩展程序”\>“管理连接..”.。

选择您想要建立的连接类型，然后填写所需的连接信息。

![tabpy 的编辑连接对话框](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/analytics-extensions-edit-connection.png)

- 对于 Tableau Server，请参见“配置与分析扩展程序的连接”([Windows](https://help.tableau.com/current/server/zh-cn/config_r_tabpy.htm) | [Linux](https://help.tableau.com/current/server-linux/zh-cn/config_r_tabpy.htm))。

### 在 Web 制作中使用分析扩展程序

若要使用分析扩展程序，请选择“分析”\>“分析扩展程序”\>“自定义函数资源管理器..”.，然后选择要用于工作簿的分析扩展程序。每个工作簿只能使用一个分析扩展程序。

![“分析扩展程序连接”对话框，显示所选的 tabpy 连接](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/analytics-extensions-choose-connection.png)

## SCRIPT 表达式函数

可以使用一系列四个 SCRIPT 函数将表达式传递到分析扩展程序并获取结果。这些函数包括：

- `SCRIPT_BOOL`
- `SCRIPT_INT`
- `SCRIPT_REAL`
- `SCRIPT_STR`

有关详细信息和示例，请参见[SCRIPT\_ 函数](https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_tablecalculation.htm#SCRIPTfunc)。

由于连接到分析扩展程序涉及一些网络开销，因此通常最有效的做法是尽可能一次性传递所有数据，而不是以单个行值的形式传递数据。举例来说，如果您将寻址设置为“单元格”（例如，通过单击视图中的字段并选择“计算对象”\>“单元格”），Tableau 将按行（由可视化项中的每个标记创建）单独调用分析扩展程序。根据数据的大小，这可能会导致非常大量的单独调用。

**注意**：调用期望返回的单个列的行数与发送到函数的行数相同。

确保对分析扩展程序进行有效调用的最简单方法是导航至“编辑表计算”并选择“特定维度”，然后选中每个维度旁边的框以对该维度进行寻址。这将为整个可视化项生成一个分析扩展程序调用。任何未选中的维度都将被分区，从而为可视化项中的每个成员生成一个单独的调用。如果可视化项中有许多标记，则在选择维度时选择“暂停自动更新”可能是有利的，以防止在正确运算之前频繁进行计算。

![](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/r_extentions_IMG.png)

## 直接查询外部分析模型

一系列四个函数可以直接查询分析扩展程序中部署的模型。这可以使您不必将冗长的计算写入脚本函数。这些函数统称为 `MODEL_EXTENSION` 函数，就像上面提到的脚本函数一样，有四次迭代：

- `MODEL_EXTENSION_BOOL`
- `MODEL_EXTENSION_INT`
- `MODEL_EXTENSION_REAL`
- `MODEL_EXTENSION_STR`

这四个函数的不同之处仅在于它们返回的值。例如，`MODEL_EXTENSION_BOOL` 函数返回一个布尔值。为了使用 MODEL\_EXTENSION 函数，您需要在外部分析服务中部署模型，并且外部分析服务必须允许直接查询该模型。

注意：目前，只有 TabPy 模型支持 MODEL\_EXTENSION 函数。

### MODEL\_EXTENSION 函数的一部分

![](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/r_extentions_IMG_4.png)

**A.** 您正在调用的模型。模型名称必须与部署的模型匹配。  
**B.** 模型的输入。与您的管理员沟通，了解您正在使用的模型需要哪些输入。  
**C.** 从 Tableau 传递到模型的值。

有关详细信息和示例，请参见[表计算函数](https://help.tableau.com/current/pro/desktop/zh-cn/functions_functions_tablecalculation.htm)。

因为这些e SCRIPT 函数是表计算，所以寻址和分区概念适用。（有关这些概念的说明，请参见[基础知识：寻址和分区](https://help.tableau.com/current/pro/desktop/zh-cn/calculations_tablecalculations.htm#Basics)。）Tableau 会对每个分区调用一次分析扩展程序。这意味着对于计算分区的每个维度，将为可视化项中存在的该维度的每个成员进行一次调用。因此，除非必须进行分区，否则建议将维度放在寻址上。

## TabPy

Python 是广泛使用的高级编程语言，用于一般用途编程。通过向分析扩展程序发送 Python 命令，您可以执行预测客户流失或运行情绪分析等操作。

Tableau Python Server (TabPy) 是 Tableau 的扩展选项扩展范围的一部分。若要安装 TabPy，请访问此 [GitHub 页面](https://github.com/tableau/TabPy)。若要阅读有关在 Tableau 中使用 Python 的可能性的更多信息，请参见[使用 TabPy 构建高级分析应用程序](https://www.tableau.com/zh-cn/about/blog/2017/1/building-advanced-analytics-applications-tabpy-64916)。

### 已部署模型的自定义函数资源管理器

部署的模型可以包含架构信息，其中包括描述、它们采用的参数类型、它们的输出以及类似的文档。自定义函数资源管理器可以读取该架构并为使用该模型的用户提供时间点文档。

例如，已部署模型 `translateToEnglish` 可能如下所示：

"translateToEnglish": {
			"description": "Translates a given input to English",
			"type": "model",
			"version": 2,
			"dependencies": \[\],
			"target": null,
			"creation\_time": 1726765000,
			"last\_modified\_time": 1726777904,
			"schema": "{'input': {'type': 'object', 
				'properties': {'phrase': {'type': 'string', 'description': 'phrase which we would like to translate'}}, 
				'required': \['phrase'\]}, 
				'sample': {'phrase': 'Danke'}, 
				'output': {'type': 'string', 'description': 'translated phrase'}}",
		"is\_public": true

自定义函数资源管理器显示该信息并向用户准确显示模型的用途以及需要更新什么才能引入他们的数据。

![自定义函数资源管理器显示已部署模型的描述、输入、输出和语法](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/custom_function_explorer.png)

#### 使用自定义函数资源管理器

根据您当前的配置，您可能需要执行以下部分或全部步骤：

1. 部署 TabPy 服务器。有关详细信息，请参见 [GitHub 上的 TabPy 文档](https://github.com/tableau/TabPy/blob/master/docs/tabpy-tools.md#deploying-a-function)。
    - **注意**：自定义函数浏览器需要 TabPy 版本 2.12.2 或更高版本。若要更新 TabPy 版本，请参见 [GitHub 文档](https://github.com/tableau/TabPy/blob/master/docs/server-install.md)。
2. 启动已部署模型的 Tabpy 服务器。
3. 在 Tableau 中，打开分析扩展程序连接。
    - 在 Tableau Desktop 中，“帮助”菜单 >“设置和性能”\>“管理分析扩展程序连接…”
    - 在 Web 上：“分析”菜单 >“分析扩展程序”\>“自定义函数资源管理器”
4. 输入**“主机名”**和**“端口”**。

一旦您进入具有数据连接的工作簿并且分析扩展程序连接到正在运行的 TabPy 实例，您就可以使用自定义函数资源管理器：

1. 在包含已连接数据源的工作表上，转到“分析”菜单 > “分析扩展程序自定义函数资源管理器”（在 Web 上，转到“分析”\>“分析扩展程序”\>“自定义函数资源管理器...”）。
2. 选择所需函数，并单击“复制到剪贴板”按钮。

- 只有包含 `is_public=True` 参数的模型才会出现在列表中。默认情况下此参数为 False。 `is_public=False` 的模型仍然可以用作模型扩展程序计算，只是它们不会出现在自定义函数资源管理器中。
- 如果自定义函数资源管理器显示为空或缺少要使用的已部署模型，请验证 `is_public` 对于已部署模型设置为 True。有关详细信息，请参见 [GitHub 上的 TabPy 文档](https://github.com/tableau/TabPy/blob/master/docs/tabpy-tools.md#deploying-a-function)。
- 如果已部署模型没有架构，自定义函数资源管理器就没那么有用，但仍然有**“复制到剪贴板”**选项。

4. 创建一个新的计算，并为函数粘贴复制到剪贴板的语法。
5. 将任何 **InputField** 占位符替换为您想要在模型中使用的数据源中的字段。
    - 请注意，对于所有表计算，您都需要汇总输入。对于字符串，MIN、MAX 和 ATTR 是可能的聚合。

Einstein Discovery

Einstein Discovery 是 Salesforce 中一个强大的分析工具，它利用机器学习提供见解和预测。Einstein Discovery 需要 Einstein Analytics Plus 许可证、Tableau CRM Plus 许可证或 Einstein Predictions 许可证，这些许可证需要额外付费。有关详细信息，请参见[访问要求](https://help.tableau.com/current/pro/desktop/zh-cn/einstein_discovery_predictions.htm#Requirem)。

有关 Einstein Discovery 的详细信息，请参见 Salesforce 帮助中的[发现入门](http://pages.mail.salesforce.com/gettingstarted/analytics-cloud/einstein-data-discovery/)和[利用 Einstein Discovery 进行解释、预测并采取行动](https://help.tableau.com/current/pro/desktop/zh-cn/%3Chttp://%E5%9C%A8 Salesforce 中利用 Einstein Discovery 进行解释、预测并采取行动>)。您也可以通过 [Trailhead](https://trailhead.salesforce.com/en/home) 中的[利用 Einstein Discovery 获得见解](https://trailhead.salesforce.com/en/content/learn/trails/wave_analytics_einstein_discovery)来扩展您的知识。

**注意**：Tableau 中的 Einstein Discovery 由 [salesforce.com](https://www.salesforce.com/) 提供技术支持。有关适用条款，请查阅与 [salesforce.com](https://www.salesforce.com/) 的协议。

### 将 Einstein Discovery m模型集成到 Tableau 中

将 Tableau 连接到 Einstein Discovery 分析扩展程序后，您可以将预测直接嵌入到计算字段和 Tableau 表扩展程序中。在 Salesforce 中，使用 Model Manager 自动生成 Tableau 表计算脚本，然后将该脚本粘贴到计算字段中，以供在 Tableau 工作簿中使用。表计算脚本通过调用预测 ID 和传递模型所需的数据来访问 Salesforce 中部署的预测模型。

**注意**：您可以选择在 Model Manager 生成的脚本中包含其他参数，以用于表计算或 Tableau 表扩展程序。有关详细信息，请参见[向 Model Manager 生成的脚本添加可选参数](#OptionalParams)。

#### 在计算中嵌入预测

1. 打 Einstein Discovery Salesforce 帐户并导航到 Model Manager。选择一个要集成到 Tableau 中的模型。在模型选项卡上，选择“Edit Settings”（编辑设置）\>“Create Tableau Table Calculation”（创建 Tableau 表计算）。
    
    ![名为“最大化按时交货”的模型的预测设置，其中的上下文菜单展开以显示“创建 Tableau 表计算”选项。](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/EDpredictions_calcscript_modelmgr.png)
    
    Model Manager 将生成一个脚本，其中包含要使用的预测定义的 ID、模型中使用的字段（变量），以及 Tableau 中的对应源字段。
    
    ![带有代码片段的 Tableau 表计算窗口。](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/EDpredictions_calcscript.png)
2. 单击“Copy to Clipboard”（复制到剪贴板）。
3. 在 Tableau 工作簿中，选择“分析”\>“创建计算字段”，然后在计算编辑器中粘贴生成的脚本。
    
    将每个 ATTR 或 SUM 函数中的字段名称替换为 Tableau 数据中的匹配字段名称，然后保存计算字段。
    
    ![显示定义按时交付预测模型的脚本的代码片段。](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/EDpredictions_calcfieldscript.png)
    
    计算可以像任何其他 Tableau 计算一样使用。有关详细信息，请参见下面的[SCRIPT 表达式函数](#SCRIPT)。
    
    当脚本运行时，它会向 Salesforce 中的预测定义发送预测请求（带输入数据）。Einstein Discovery 将结果返回 Tableau，该结果将显示在您的工作表或仪表板中。

#### 在 Tableau 表扩展程序中嵌入预测

Model Manager 生成的脚本也可用于创建 Tableau 表扩展程序。若要将 Model Manager 生成的脚本用于表扩展程序，请删除脚本的 SCRIPT\_REAL 部分，并仅包括在括号中包含的请求主体。

#### 向 Model Manager 生成的脚本添加可选参数

您可以选择在 Model Manager 生成的脚本中包含其他参数。这些参数是完全可选的；该脚本可以使用或不使用它们。这些可选参数可以与计算字段或表扩展程序一起使用。

<table style="width: 100%; margin-left: 0; margin-right: auto;"><colgroup><col style="width: 20%"><col style="width: 30%"><col style="width: 50%"></colgroup><thead><tr><th>可选参数</th><th><p>语法</p></th><th>描述</th></tr></thead><tbody><tr><td>maxMiddleValues</td><td><code>"maxMiddleValues": integer</code></td><td><p>指定要在响应中返回的顶级预测因子的数量。</p><p>设置为整数。</p><p>只能与回归和二元分类模型一起使用。</p></td></tr><tr><td>maxPrescriptions</td><td><code>"maxPrescriptions": integer</code></td><td><p>指定要在响应中返回的最大改进数量。</p><p>设置为整数。</p><p>只能与回归和二元分类模型一起使用。</p></td></tr><tr><td>showMultiClassProbabilities</td><td><code>"showMultiClassProbabilities": boolean</code></td><td><p>选择是否显示多类分类模型的概率。</p><p>设置为 true 或 false。</p><p>只能与多类分类模型一起使用。</p></td></tr></tbody></table>

以下示例脚本显示了如何在计算字段的脚本中使用这些可选参数。

SCRIPT\_REAL(  
'{ "modelOrPredictionDefinitionId": "1ORB0000000HC3KOAW",  
"columns": \["Postal\_Code", "City", "Ship\_Mode", "Row\_ID", "Profit", "Category", "Sub\_Category", "Order\_Date", 
     "Quantity", "Ship\_Date", "Region", "Sales", "State", "Segment"\],  
"maxMiddleValues": 3,  
"maxPrescriptions": 5,  
"showMultiClassProbabilities": false }',  
SUM(\[Postal Code\]), ATTR(\[City\]), ATTR(\[Ship Mode\]), SUM(\[Row ID\]), SUM(\[Profit\]), ATTR(\[Category\]), ATTR(\[Sub-Category\]), 
     ATTR(\[Order Date\]), SUM(\[Quantity\]), ATTR(\[Ship Date\]), ATTR(\[Region\]), SUM(\[Sales\]), ATTR(\[State\]), ATTR(\[Segment\])  
)

![带有 Einstein Discovery 预测模型脚本的 SCRIPT\_REAL 函数示例作为分析扩展程序添加到 Tableau 计算中，显示了可选参数的使用](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/EDpredictions_optionalparams.png)

下一个示例显示了将此脚本与表扩展程序一起使用。对于表扩展程序，仅在大括号中包含脚本。不要在大括号外包含 SCRIPT\_REAL 函数和属性。

{  
"modelOrPredictionDefinitionId": "1ORB0000000HC3KOAW",  
"columns": \["Postal\_Code", "City", "Ship\_Mode", "Row\_ID", "Profit", "Category", "Sub\_Category", "Order\_Date", 
     "Quantity", "Ship\_Date", "Region", "Sales", "State", "Segment"\],  
"maxMiddleValues": 3,  
"maxPrescriptions": 5,  
"showMultiClassProbabilities": false  
}

![添加到 Tableau 表扩展程序的 Einstein Discovery 预测模型的脚本示例，显示了可选参数的使用](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/EDpredictions_optionalparams_tte_sm.png)

## Rserve

R 是一种用于统计计算和图形的开源软件编程语言和软件环境。

### 实现 Rserve 连接

Tableau Desktop 可通过纯文本或 SSL 加密的流量连接到 R。有关要使用哪种类型的指引，请咨询您的系统管理员。

### Rserve 分析扩展程序的中间证书链

**注意：**用户不必使用 Tableau Server 将 Tableau Desktop 连接到 Rserve。

您必须在通过 Tableau Server 连接到 Rserve 外部连接的 Tableau Desktop 计算机（Windows 和 Mac）上安装完整的证书链。此要求是由 Rserve 在安全连接上管理握手的方式所确定的。

在 Tableau Desktop 上导入根证书是不够的，必须将整个证书链导入到客户端计算机上。

## MATLAB

MATLAB 是一种通过“分析扩展程序 API”进行连接的高级语言，它使您能以比使用传统编程语言（例如 C、C++ 和 Fortran）更快的速度执行计算密集型任务。您可以在各种各样的应用中使用 MATLAB，包括信号和图像处理、通信、控制设计、测试和测量、金融建模和分析，以及计算生物学。有关如何配置 MATLAB 服务器以使用 Tableau 的信息，请与 [MATLAB 支持](mailto:EISupport_Tableau@mathworks.com)联系。

若要阅读有关在 Tableau 中使用 MATLAB 的可能性的更多信息，请参见[使 MATLAB 模型和算法在 Tableau 中起作用](https://www.tableau.com/zh-cn/about/blog/2017/8/put-your-matlab-models-and-algorithms-work-tableau-74016)。

## 共享需要分析扩展程序连接的工作簿

您可能需要将包含分析扩展程序功能的工作簿发送到其他用户，这些用户可能在其他计算机上使用 Tableau Desktop 的不同副本。或者，用户可从 Tableau Server 下载包含分析扩展程序功能的工作簿。如果与某人共享您的工作簿，他们必须在其计算机上配置分析扩展程序连接。

## 发布需要分析扩展程序连接的工作簿

- 对于 Tableau Server，请参见“配置与分析扩展程序的连接”([Windows](https://help.tableau.com/current/server/zh-cn/config_r_tabpy.htm) | [Linux](https://help.tableau.com/current/server-linux/zh-cn/config_r_tabpy.htm))。

成功发布后，您必须选择要与工作簿关联的已配置分析扩展程序。

![未为工作簿选择连接器时弹出的警告消息。](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/R_extentions_IMG_2_500x430.png)

## 此部分中的其他文章