---
schema_version: "1"
id: 12664ce8334f4005de76d44642548d96a46b726cee146e64b82a5fca5d59efb1
title: 透過分析擴充功能傳遞運算式
collection: tableau
version: current
locale: zh-tw
portal_url: https://docs.salesforce.com/tableau/current/zh-tw/pro/desktop/r_connection_manage.md
canonical_url: https://help.tableau.com/current/pro/desktop/zh-tw/r_connection_manage.htm
source_site: help.tableau.com
content_type: documentation
content_hash: cc501ba9b644ac251bdde0cafe4f7099ab925ce7346418bd4ffa9b58e7683a5a
description: Configure analytics extensions and pass expressions using SCRIPT functions.
---
[跳至主要內容](#main-content)

# 透過分析擴充功能傳遞運算式

從版本 2021.2 開始，可以為任何站台建立多個 Analytics 擴充功能連線。2021.2 之前的版本僅限於任何站台的單個 Analytics 擴充功能。

為分析擴充建立連線後，可透過計算欄位與外部服務溝通。每個計算欄位都使用 [SCRIPT 運算式函數](#SCRIPT)，作為表計算。

## 設定分析擴充功能

Tableau 支援透過一組 SCRIPT 函數連線到分析擴充功能。在將任何 SCRIPT 函數傳遞給分析擴充功能之前，需要設定與該服務的連線。

1. 在 Tableau Desktop 中，按下「說明」 選單，然後選擇「設定與效能」 > 「管理分析擴充功能連線」。選取要連線的分析擴充功能。MATLAB 連線由分析擴充功能 API 管理。
    
    ![可能的連線類型對話方塊，包括 tabpy、Einstein Discovery、Rserve 和 Analytics Extension API](/tableau/current/zh-tw/pro/desktop/zh-tw/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-tw/Img/external_analytics_05.png" alt="對話方塊，其中包含連線到 Einstein Discovery 的訊息。"></td><td><img src="https://help.tableau.com/current/pro/desktop/zh-tw/Img/external_analytics_04.png" alt="管理分析擴充功能連線表單。"></td></tr></tbody></table>
3. 使用域或 IP 位址輸入或選取伺服器名稱。
    
    如果您的伺服器使用 SSL 加密，請選取「需要 SSL」選項。Tableau 將會讀取安裝在作業系統金鑰存放區中的憑證，以便建立安全的連線。
    
    附註：連線至 TabPy 或 Rserve 時，Tableau 僅支援 PEM 編碼憑證。
4. 指定埠。
    - 連接埠 6311 是純文字 Rserve 伺服器的預設連接埠。
    - 連接埠 4912 是 SSL 加密 Rserve 伺服器的預設連接埠。
    - 連接埠 9004 是 TabPy 的預設連接埠。
5. 按一下「測試連線」。
6. 按一下「儲存」。

如果無法建立連線，則會顯示錯誤訊息。 按一下訊息中的「顯示詳細資料」檢視伺服器返回的任何診斷資訊。

### 在 Web 製作中設定 Analytics 擴充功能

使用 Tableau Cloud Web 製作時，選取「分析 \> Analytics 擴充功能 > 管理連線...」。

選取要建立的連線類型，然後填寫所需的連線資訊。

![tabpy 的編輯連線對話方塊](/tableau/current/zh-tw/pro/desktop/zh-tw/Img/analytics-extensions-edit-connection.png)

- 有關 Tableau Server，請參閱「使用分析延伸模組設定連線」([Windows](https://help.tableau.com/current/server/zh-tw/config_r_tabpy.htm) | [Linux](https://help.tableau.com/current/server-linux/zh-tw/config_r_tabpy.htm))。

### 在 Web 製作中使用 Analytics 擴充功能

要使用 Analytics 擴充功能，請選取「分析 \> Analytics 擴充功能 > 自訂函數資源管理器...」，然後選擇要用於工作簿的 Analytics 擴充功能。每個工作簿只能使用一個 Analytics 擴充功能。

![顯示正在選取的 tabpy 連線的 Analytics 擴充功能連線對話方塊](/tableau/current/zh-tw/pro/desktop/zh-tw/Img/analytics-extensions-choose-connection.png)

## SCRIPT 運算式函數

可以使用一組四個 SCRIPT 函數將運算式傳遞到分析擴充功能並取得結果。這些函數包括：

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

有關詳情和範例，請參閱[SCRIPT\_ functions](https://help.tableau.com/current/pro/desktop/zh-tw/functions_functions_tablecalculation.htm#SCRIPTfunc)。

由於連線到分析擴充功能需要消耗網路資源，所以盡可能一次傳遞全部資料是最有效的作法，而不是以單獨列值的方式傳遞。例如，如果將地址設定為 「儲存格」（例如透過按一下檢視中的欄位並選取「計算物件」\>「儲存格」），則 Tableau 將對每列 (由視覺效果中的每個標記所創建) 單獨呼叫分析擴充功能。根據資料的大小，這可能會導致大量的個別呼叫。

**附註**：呼叫預期會傳回單一欄，其列數與傳送給函數的列數相同。

確保有效呼叫分析擴充最簡單的方法是導航至 「編輯表計算」並選擇「特定維度」，然後選擇每個維度旁邊的方塊來定址維度。這將為整個視覺效果生成一個分析擴充呼叫。任何未勾選的維度都將被分區，從而為每個視覺效果部件生成一個單獨呼叫。如果視覺效果中有許多標記，則在選取維度的同時選取「暫停自動更新」可能會更有利，避免在正確計算之前頻繁運算。

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

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

四個函數系列可以直接查詢分析擴充功能中部署的模型。這可以讓您不必將冗長的計算寫入指令碼函數。這些統稱為 `MODEL_EXTENSION` 函數，就像上面提到的指令碼函數一樣，有 4 個反覆運算：

- `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-tw/pro/desktop/zh-tw/Img/r_extentions_IMG_4.png)

**A.** 正在調用的模型。模型名稱必須與部署的模型相符。  
**B.** 模型的輸入。與您的管理員交談，以瞭解您正在使用的模型需要哪些輸入。  
**C.** 從 Tableau 傳遞到模型的值。

有關詳情和範例，請參閱[表計算函數](https://help.tableau.com/current/pro/desktop/zh-tw/functions_functions_tablecalculation.htm)。

因為這些 SCRIPT 函數是表計算，所以適用於定址和分區概念。（有關這些概念的說明，請參閱[基礎知識：定址和分區](https://help.tableau.com/current/pro/desktop/zh-tw/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-tw/about/blog/2017/1/building-advanced-analytics-applications-tabpy-64916)。

### 用於已部署模型的自訂函數 Explorer

部署的模型可以包含模式訊息，其中包括描述、採用的參數類型、輸出以及類似的文件。自訂函數資源管理器可以讀取該模式並為使用該模型的使用者提供時間點文件。

例如，已部署的模型 `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

自訂函數 Explorer 顯示該資訊，並向使用者準確顯示模型的用途以及需要更新哪些內容才能引入資料。

![自訂函數 Explorer 顯示已部署模型的描述、輸入、輸出和語法](/tableau/current/zh-tw/pro/desktop/zh-tw/Img/custom_function_explorer.png)

#### 使用自訂函數 Explorer

可能需要執行部分或全部這些步驟，具體取決於目前的設定：

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 中開啟 Analytics 擴充功能連線。
    - 在 Tableau Desktop 中：「說明」功能表 >「設定與效能」\>「管理 Analytics 擴充功能連線…」
    - 在網路上： 「分析」功能表 > 「Analytics 擴充功能」 > 自訂函數管理器
4. 輸入**主機名稱**和**連接埠**。

一旦進入具有資料連線且 Google Analytics (分析) 擴充功能連線到正在執行的 TabPy 執行個體的工作簿，就可以使用自訂函數 Explorer：

1. 在已連線資料來源的工作表上，移至「分析」功能表 > 「Analytics 擴充功能自訂函數管理器」（在 Web 中， 「分析」 > 「Analytics 擴充功能」 > 「自訂函數管理器...」）。
2. 選取想要的並按一下複製到剪貼簿按鈕。

- 僅限具有參數 `is_public=True` 的模型會出現在清單中。預設情況下已啟用此參數。 `is_public=False` 的模型仍然可用作模型擴充計算，只是它們不會出現在自訂函數 Explorer 中。
- 如果自訂函數 Explorer 顯示為空或缺少要使用的已部署模型，請驗證 `is_public` 對於已部署的模型設定為 True。請參閱[GitHub 上的 TabPy 文件](https://github.com/tableau/TabPy/blob/master/docs/tabpy-tools.md#deploying-a-function)了解詳情。
- 如果已部署的模型沒有結構描述，則自訂函數 Explorer 的用處不大，但仍具有**複製到剪貼簿**選項。

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-tw/einstein_discovery_predictions.htm#Requirem)。

有關 Einstein Discovery 的詳情，請參閱 Salesforce 說明中的 [Discovery 入門](http://pages.mail.salesforce.com/gettingstarted/analytics-cloud/einstein-data-discovery/)以及[使用 Einstein Discovery 進行詮釋、預測並執行動作](https://help.tableau.com/current/pro/desktop/zh-tw/%3Chttp://Explain, Predict, and Take Action with Einstein Discovery in Salesforce>)。也可以透過 [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/tw/) 提供支援。有關適用條款，請參閱與 [salesforce.com](https://www.salesforce.com/tw/) 的合約。

### 在 Tableau 中整合 Einstein Discovery 模型

透過將 Tableau 連線到 Einstein Discovery Analytics 擴充功能，可以在計算欄位及 Tableau 表格擴充功能中直接內嵌預測。在 Salesforce 中，使用模型管理器自動產生 Tableau 表計算指令碼，然後將該指令碼貼上到計算欄位中，以供 Tableau 工作簿使用。表計算指令碼可透過呼叫預測 ID 並傳遞模型所需的資料來存取在 Salesforce 中部署的預測模型。

**附註**：可以選擇在模型管理器生成的指令碼中包含其他參數，以用於表計算或 Tableau 表擴充功能。有關詳細信息，請參閱[在模型管理器生成的指令碼中新增可選參數](#OptionalParams)。

#### 在計算中使用預測

1. 開啟 Einstein Discovery Salesforce 帳戶，然後巡覽到「模型管理器」。選取一個模型以整合到 Tableau 中。在模型索引標籤上，選取編輯設定 > 建立 Tableau 表計算。
    
    ![名為「最大化按時交付」的模型的預測設定，其中內容功能表展開，以顯示「建立 Tableau 資料表計算」選項。](/tableau/current/zh-tw/pro/desktop/zh-tw/Img/EDpredictions_calcscript_modelmgr.png)
    
    模型管理器會產生一個指令碼，其中包含要使用的預測定義的 Id、模型中使用的欄位（變數）以及 Tableau 中的相應來源欄位。
    
    ![具有程式碼片段的 Tableau 資料表計算視窗。](/tableau/current/zh-tw/pro/desktop/zh-tw/Img/EDpredictions_calcscript.png)
2. 按一下複製到剪貼簿。
3. 在 Tableau 工作簿中，選取分析 > 建立計算欄位，然後將產生的指令碼貼上到「計算編輯器」中。
    
    將每個 ATTR 或 SUM 函數中的欄位名稱取代為 Tableau 資料中相符欄位的名稱，然後儲存計算欄位。
    
    ![程式碼片段，顯示定義按時交付預測模型的指令碼。](/tableau/current/zh-tw/pro/desktop/zh-tw/Img/EDpredictions_calcfieldscript.png)
    
    可以像其他任何 Tableau 計算一樣使用該計算。有關詳情，請參閱下方[SCRIPT 運算式函數](#SCRIPT)。
    
    指令碼執行時，會將預測請求（具有輸入資料）傳送到 Salesforce 中的預測定義。Einstein Discovery 會將結果傳回到 Tableau，結果會出現在工作表或儀表板中。

#### 在 Tableau 表擴充功能中嵌入預測

模型管理器產生的指令碼也可用於建立 Tableau 表延伸功能。要將模型過濾器生成的指令碼用於表擴充功能，請移除指令碼的 SCRIPT\_REAL 部分，僅包括花括號中包含的請求主體。

#### 在模型管理器生成的指令碼中新增可選參數

可以選擇在模型管理器生成的指令碼中包含其他參數。這些參數是完全選用的；該指令碼可以使用或不使用它們。這些可選參數可以與計算字段或表擴充功能一起使用。

<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-tw/pro/desktop/zh-tw/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-tw/pro/desktop/zh-tw/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-tw/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-tw/config_r_tabpy.htm) | [Linux](https://help.tableau.com/current/server-linux/zh-tw/config_r_tabpy.htm))。

成功發佈後，必須選取要與工作簿關聯的已設定 Analytics 擴充功能。

![未為工作簿選擇連接器時的快顯警告訊息。](/tableau/current/zh-tw/pro/desktop/zh-tw/Img/R_extentions_IMG_2_500x430.png)

## 此區段的其他文章