---
schema_version: "1"
id: 3f16869cb6e28534bf7168c2f646e354d4854e4a8e528a9d5ecbc2ac6ac4feda
title: 資料表擴充功能
collection: tableau
version: next
locale: zh-tw
portal_url: https://docs.salesforce.com/tableau/next/zh-tw/online/tc_table_extensions.md
canonical_url: https://help.tableau.com/v0.0/online/zh-tw/tc_table_extensions.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 4425b81611dfc5480941d2654649dca4b5db714a4ae99a5736d8d4cabf3d4094
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-tw/data_guide.htm)和[「資料詮釋」](https://help.tableau.com/current/server/zh-tw/explain_data_basics.htm)整合
- 與 TabPy、Rserve 和其他分析擴充功能集成
- 結果可用於組建儀表板或視覺效果

## 必要條件

在可以使用資料表擴充功能之前，您必須完成以下清單。

- 在桌面或網頁製作中開啟資料來源。
- 設定分析擴充功能
    - 有關設定分析擴充功能連線的步驟，請參閱[使用分析擴充功能連線傳送運算式](https://help.tableau.com/current/pro/desktop/zh-tw/r_connection_manage.htm)。

## 建立表計算

要建立資料表擴充功能，請完成以下步驟。

1. 開啟已發佈的工作簿。
2. 開啟一個資料來源或建立一個資料來源。
3. 在**「連線」**下，選擇**「新增資料表擴充功能」**。
    
    ![連線功能表](/tableau/next/zh-tw/online/zh-tw/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-tw/online/zh-tw/Img/table_ext_2.png)
6. 在「指令碼」部分輸入您的指令碼或函數呼叫。該指令碼必須返回字典或清單的清單，本質上是一個 JSON 物件。RServe 的指令碼必須返回一個 data.frame 或命名清單的清單，而 Python 的指令碼必須返回一個字典。
    
    Python **範例：** 我們使用以下顯式返回命令。
    
    `return df.to_dict(orient='list')`

**附註：** 如果在 TabPy 中禁用了 TABPY\_EVALUATE\_ENABLE，則表擴充功能不支援呼叫 TabPy 端點。

8. 選取「**套用**」執行指令碼。
9. （可選）如果將資料表擴充功能與資料模型中的另一個表相關聯，請在每個表中至少定義一個欄位之間的關係。如果欄位有相同的名稱，這可能會自動發生。
10. 選擇**「立即更新」**，結果將出現在**「輸出資料表」**索引標籤中。
    
    ![輸出結果表](/tableau/next/zh-tw/online/zh-tw/Img/table_ext_3.png)

**附註：**如果沒有在資料模型中定義與表關聯性，則「輸入資料表」索引標籤為空，並將顯示訊息「資料預覽無法使用」。

1. （選用）在**「名稱」**欄位中，為新的資料表擴充功能輸入唯一的名稱。
2. 前往「工作表」索引標籤，以開始探索和視覺化資料。來自資料表擴充功能結果的作用與 Tableau 中從一般檔案或關聯資源查詢的任何其他資料一樣。
3. 發佈工作簿進行分享。發佈目的地，包括伺服器或 Tableau Cloud，必須啟並設定適當類型的分析擴充功能。

> [!TIP]
> 
> **疑難排解提示：**如果執行指令碼時出現問題，將在 Tableau 錯誤消息中顯示來自分析擴充功能的錯誤。如果資料表擴充功能出現錯誤，請確保所有代碼和格式正確，並嘗試使用位於「儲存」按鈕旁邊的圓形「重新整理資料來源」按鈕，或再次按一下「套用」。

### **資料表擴充功能與分析擴充功能**

雖然其中一些產品不相關，但資料表擴充功能和分析擴充功能共用數個功能。分析擴充功能連線後方可才能使用資料表擴充功能功能。讓我們分解每個功能。

#### 儀表板擴充功能

[儀表板擴充功能](https://help.tableau.com/current/pro/desktop/zh-tw/dashboard_extensions.htm) 允許使用「儀表板擴充功能 SDK」在儀表板中新增自訂 Web 應用程式，但此擴充功能類型與資料表擴充功能擴展無關。

#### 資料表擴充功能

資料表擴充功能允許您在資料來源中建立一個資料表，該資料表可以將資料和指令碼傳送到您的分析擴充功能，並返回一個任意形狀的完整資料表作為結果。傳回的結果在「資料來源」索引標籤中的資料模型中顯示為資料表，在工作簿中顯示為度量和維度。

#### Analytics 擴充

[分析擴充](https://www.tableau.com/zh-tw/developer/learning/getting-started-analytics-extensions-api)功能允許您使用 Python、外部工具和外部平台等程式設計語言擴充 Tableau 動態計算。建立與分析擴充功能的連線後，就可以透過名為 SCRIPT\_X 或 MODEL\_EXTERNAL\_X 的計算欄位與外部伺服器通訊，其中 X 是預期傳回值的資料類型。有關詳情，請參閱[透過分析擴充功能傳遞運算式](https://help.tableau.com/current/pro/desktop/zh-tw/r_connection_manage.htm)。