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

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

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

配置分析扩展程序

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

  1. 在 Tableau Desktop 中,单击“帮助”菜单,然后选择“设置和性能”>“管理分析扩展程序连接”

    选择要连接到的分析扩展程序。MATLAB 连接由分析扩展程序 API 管理。

  2. 选择并配置您的分析服务。

    • 如果您正在使用 Einstein Discovery,请选择“启用”。您的默认浏览器将打开,允许您授权与 Salesforce 的连接。连接后,转到帮助主题的Einstein Discovery部分以继续。
    • 对于所有其他服务(Tabpy、Matlab 和 RServe),将显示以下对话框。
  3. 使用域或 IP 地址输入或选择服务器名称。

    如果服务器使用 SSL 加密,请选择“需要 SSL”选项。Tableau 将读取安装在操作系统密钥存储中的证书,以建立安全连接。

    注意:Tableau 仅在连接到 TabPyRServe 时才支持 PEM 编码证书。

  4. 指定端口。

    • 端口 6311 是纯文本 RServe 服务器的默认端口。

    • 端口 4912 是 SSL 加密的 Rserve 服务器的默认端口。

    • 端口 9004 是 TabPy 的默认端口。

  5. 单击“测试连接”

  6. 单击“保存”

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

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

当您使用 Web 制作来创建或编辑工作簿时,选择“分析”>“管理分析扩展程序连接”,然后选择要用于工作簿的分析扩展程序。每个工作簿只能使用一个分析扩展程序。

Einstein Discovery

Einstein Discovery 是 Salesforce 中一个强大的分析工具,它利用机器学习提供见解和预测。Einstein Discovery 需要 Einstein Analytics Plus 许可证、Tableau CRM Plus 许可证或 Einstein Predictions 许可证,这些许可证需要额外付费。有关详细信息,请参见访问要求

有关 Einstein Discovery 的详细信息,请参见 Salesforce 帮助中的发现入门(链接在新窗口中打开)利用 Einstein Discovery 进行解释、预测并采取行动(链接在新窗口中打开)。您也可以通过 Trailhead(链接在新窗口中打开) 中的利用 Einstein Discovery 获得见解(链接在新窗口中打开)来扩展您的知识。

注意:Tableau 中的 Einstein Discovery 由 salesforce.com(链接在新窗口中打开) 提供技术支持。有关适用条款,请查阅与 salesforce.com(链接在新窗口中打开) 的协议。

将 Einstein Discovery m模型集成到 Tableau 中

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

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

在计算中嵌入预测

  1. 打 Einstein Discovery Salesforce 帐户并导航到 Model Manager。选择一个要集成到 Tableau 中的模型。在模型选项卡上,选择“Edit Settings”(编辑设置)>“Create Tableau Table Calculation”(创建 Tableau 表计算)

    Model Manager 将生成一个脚本,其中包含要使用的预测定义的 ID、模型中使用的字段(变量),以及 Tableau 中的对应源字段。

  2. 单击“Copy to Clipboard”(复制到剪贴板)

  3. 在 Tableau 工作簿中,选择“分析”>“创建计算字段”,然后在计算编辑器中粘贴生成的脚本。

    将每个 ATTR 或 SUM 函数中的字段名称替换为 Tableau 数据中的匹配字段名称,然后保存计算字段。

    计算可以像任何其他 Tableau 计算一样使用。有关详细信息,请参见下面的SCRIPT 表达式函数

    当脚本运行时,它会向 Salesforce 中的预测定义发送预测请求(带输入数据)。Einstein Discovery 将结果返回 Tableau,该结果将显示在您的工作表或仪表板中。

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

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

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

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

可选参数

语法

描述
maxMiddleValues"maxMiddleValues": integer

指定要在响应中返回的顶级预测因子的数量。

设置为整数。

只能与回归和二元分类模型一起使用。

maxPrescriptions"maxPrescriptions": integer

指定要在响应中返回的最大改进数量。

设置为整数。

只能与回归和二元分类模型一起使用。

showMultiClassProbabilities"showMultiClassProbabilities": boolean

选择是否显示多类分类模型的概率。

设置为 true 或 false。

只能与多类分类模型一起使用。

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

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 计算中,显示了可选参数的使用

下一个示例显示了将此脚本与表扩展程序一起使用。对于表扩展程序,仅在大括号中包含脚本。不要在大括号外包含 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 预测模型的脚本示例,显示了可选参数的使用

RServe

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

实现 RServe 连接

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

注意:对于 R 集成,Tableau 已使用 R 版本 3.4.4 至 3.5.1 以及 RServe 版本 0.6-8 至 1.7.3 进行了测试。

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

注意:用户不必使用 Tableau Server 将 Tableau Desktop 连接到 RServe。

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

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

MATLAB

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

若要阅读有关在 Tableau 中使用 MATLAB 的可能性的更多信息,请参见使 MATLAB 模型和算法在 Tableau 中起作用(链接在新窗口中打开)

TabPy

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

Tableau Python Server (TabPy) 是 Tableau 的扩展选项扩展范围的一部分。若要安装 TabPy,请访问此 GitHub 页面(链接在新窗口中打开)。若要阅读有关在 Tableau 中使用 Python 的可能性的更多信息,请参见使用 TabPy 构建高级分析应用程序(链接在新窗口中打开)

SCRIPT 表达式函数

在 Tableau Desktop 中,可以使用一组四个 SCRIPT 函数将表达式传递到分析扩展程序并获取结果。这些函数包括:

SCRIPT_BOOL

SCRIPT_INT

SCRIPT_REAL

SCRIPT_STR

有关详细信息和示例,请参见SCRIPT_ 函数

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

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

直接查询外部分析模型

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

MODEL_EXTENSION_BOOL

MODEL_EXTENSION_INT

MODEL_EXTENSION_REAL

MODEL_EXTENSION_STR

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

注意:目前,只有 TabPy 模型支持 MODEL_EXTENSION 函数。

MODEL_EXTENSION 函数的一部分

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

有关详细信息和示例,请参见表计算函数

因为这些e SCRIPT 函数是表计算,所以寻址和分区概念适用。(有关这些概念的说明,请参见基础知识:寻址和分区。)Tableau 会对每个分区调用一次分析扩展程序。这意味着对于计算分区的每个维度,将为可视化项中存在的该维度的每个成员进行一次调用。因此,除非必须进行分区,否则建议将维度放在寻址上。

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

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

例如,已部署模型 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 Desktop 中使用自定义函数资源管理器

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

  1. 部署 TabPy 服务器。有关详细信息,请参见 GitHub 上的 TabPy 文档(链接在新窗口中打开)
  2. 打开分析扩展程序连接。
    1. “帮助”菜单 >“设置和性能”>“管理分析扩展程序连接…”
    2. 输入“主机名”“端口”
  3. 打开一个新工作簿并连接到数据。

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

  1. 在包含已连接数据源的工作表上,转到“分析”菜单 > “分析扩展程序自定义函数资源管理器”
  2. 选择所需函数,并单击“复制到剪贴板”按钮。
    • 只有包含 is_public=True 参数的模型才会出现在列表中。默认情况下此参数为 False。 is_public=False 的模型仍然可以用作模型扩展程序计算,只是它们不会出现在自定义函数资源管理器中。
    • 如果自定义函数资源管理器显示为空或缺少要使用的已部署模型,请验证 is_public 对于已部署模型设置为 True。有关详细信息,请参见 GitHub 上的 TabPy 文档(链接在新窗口中打开)
    • 如果已部署模型没有架构,自定义函数资源管理器就没那么有用,但仍然有“复制到剪贴板”选项。
  3. 创建一个新的计算,并为函数粘贴复制到剪贴板的语法。
  4. 将任何 InputField 占位符替换为您想要在模型中使用的数据源中的字段。
    • 请注意,对于所有表计算,您都需要汇总输入。对于字符串,MIN、MAX 和 ATTR 是可能的聚合。

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

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

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

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

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