使用 Supermetrics API 將數據連接到 Tableau Prep Builder [分步教程]
已發表: 2022-01-11為了在 Tableau 中構建可操作且富有洞察力的報告,您需要準備好且乾淨的數據。
但是,由於企業擁有許多不同位置和格式的數據,因此清理數據以進行分析可能會成為一個繁重的過程。
直到 Tableau 推出了 Tableau Prep Builder,以使數據用戶(包括可能不具備深厚分析技能的分析師和營銷人員)能夠轉換他們的數據。
在本文中,我將向您展示如何使用 Supermetrics API 將您的數據連接到 Tableau Prep Builder,並分享一些您可以在那裡利用數據的方法。
以下是我們將要執行的步驟:
- 安裝 Tableau Prep Builder
- 安裝和設置 TabPy
- 創建一個包含 Supermetrics API 調用的小型 Python 腳本
- 在 Tableau Prep Builder 中創建流程,這將為我們創建 Tableau 提取文件

完成後,您將能夠通過 Union 將 Supermetrics API 查詢的輸出與其他數據源相結合,並使用來自我們 API 的數據安排 Tableau 數據提取的增量刷新。
聽起來不錯? 讓我們開始吧!
查看 Supermetrics API 的實際應用
探索將營銷數據輸入 Tableau 或任何其他支持 JSON 或 CSV 輸入的 BI 工具、數據庫或數據倉庫的最簡單方法。
步驟 1:安裝 Tableau Prep Builder
Tableau Prep Builder 是 Tableau 於 2018 年發布的一款數據轉換工具,旨在幫助其用戶清理和準備數據以進行分析。
Tableau Prep Builder 的最佳之處在於它可以讓您可視化所有數據轉換操作。 這樣,您將能夠跟踪數據發生的情況并快速識別錯誤。 結果是 Tableau Hyper Extract 中數據集的輸出,該數據集針對在 Tableau 中構建報告進行了優化。
由於 Tableau 套件中提供了 Tableau Prep Builder,因此您可能已經可以訪問它。
設置它也很容易。 您需要做的就是從 Tableau 網站下載它,將其安裝到您的計算機上,最後輸入您的許可證密鑰或開始免費試用。
第 2 步:安裝 TabPy
TabPy 是此解決方案所需的第二個組件。
TabPy 是 Tableau 的 Python 擴展。 它使您可以直接在 Tableau 儀表板中運行 Python 腳本,或者,對於我們的案例來說,最重要的是,在 Tableau Prep Builder 中運行。
您可以在包的 Github 上找到安裝說明。 當然,您需要最新版本的 Python 才能正常工作。 安裝完成後,您可以通過在終端窗口中運行後台進程來開始使用 TabPy。 它會告訴您它正在運行並在端口 9004 上偵聽來自 Tableau 的傳入請求。
TabPy 的最後準備工作是在 Tableau Prep Builder 中配置與其的連接。
您可以在 Tableau Prep 的“幫助”菜單中的“幫助”>“設置和性能”>“管理分析擴展連接”下找到所需的選項。
對於本指南,我們假設您在本地計算機上進行設置,因此您需要做的就是確保 TabPy 仍在運行,並且您在窗口中看到的端口與 TabPy 正在偵聽的端口匹配。

點擊“登錄”按鈕,您就完成了!
第 3 步:設置 Python 腳本
是時候設置 Python 腳本了。
如果您擔心這一步,請不要擔心。 這很簡單。 我們需要的腳本只有幾行代碼,其中大部分是來自 Supermetrics 的 API 鏈接。
您甚至可以將其複制並粘貼到文本文件中,然後用您自己的鏈接替換“[PLACEHOLDER FOR YOUR API LINK]” :
import requests import pandas as pd def get_data_to_flow(input): response = requests.get("[PLACEHOLDER FOR YOUR API LINK]") results = response.json() return pd.DataFrame(results['data'][1:], columns=results['data'][0])
將此文件另存為擴展名為 .py 的文件,您可以輕鬆地再次找到它。 我們將在以下步驟中使用它。
接下來讓我們在 Supermetrics Query Manager 中生成一個 API 鏈接,在此期間,我們還將下載 CSV 格式的數據樣本。
為此,請登錄團隊網站。
請注意,您可以使用有效的 Supermetrics API 許可證訪問 Supermetrics 查詢管理器。 如果您還沒有許可證,請開始14 天免費試用。
然後,選擇“集成”>“查詢管理器”。 您會在屏幕左側看到一個側邊欄。 開始在那裡構建您的查詢。 在此示例中,我將使用 Google Ads 作為數據源。 通過填寫以下字段繼續構建您的查詢:
- 選擇日期
- 選擇指標
- 按維度拆分
- 過濾器和選項
完成後,單擊“運行”。 您將在預覽表和原始 JSON 格式中看到您的數據。

這是有關如何開始使用 Supermetrics API 的教程。
Tableau Prep 將需要此示例來了解 API 響應中的數據結構。
請注意,格式選擇設置為“JSON”而不是“Tableau”,因為我們將讓 Python 腳本(編寫用於處理 JSON 格式的響應)處理該 API 調用。 然後我將結果導出為 CSV 文件 (1) 並將 API URL 複製到準備好的 Python 腳本文件 (2)。
粘貼 Supermetrics API 鏈接後不要忘記保存腳本文件!
第 4 步:在 Tableau Prep Builder 中整合所有內容
我們快要到了!
為了讓數據從 Supermetrics API 流入您的 Tableau Prep 流程,我們現在必須連接從上一步下載的 CSV 文件。
由於 Tableau Prep Builder 對數據類型非常挑剔,因此如果沒有這一步,它將不會接受我們 Python 腳本的輸出。 CSV 文件與 Supermetrics API 中的數據具有相同的結構,告知 Tableau Prep Builder 如何解釋它。

選擇文件後,Tableau Prep Builder 將啟動一個新流程並讀入 CSV 的內容。 您可以在信息框中看到它已將字段類型分別正確解析為日期、字符串和數字。 這正是我們想要的。

我們需要添加一個腳本作為流程的下一步。 通過單擊代表 CSV 文件的框旁邊的加號並選擇“腳本”來執行此操作。


這就是我們使用 TabPy 的地方。 因此,請確保“Tableau Python (TabPy) Server”的單選按鈕已激活,並且 TabPy 仍在您的計算機上運行。 然後瀏覽到您在上一步中創建的腳本文件。
我們還需要告訴 Tableau Prep Builder 我們要在此處使用該文件中的哪些函數。 我們的小腳本只有一個函數,因此如果您按照本指南進行操作,請在字段中輸入函數名稱“get_data_to_flow”。

完成這些設置後,Tableau Prep 應立即開始執行 Supermetrics API 查詢,並且數據將出現在預覽窗口中。
恭喜! 您剛剛成功地將數據從 Supermetrics API 加載到 Tableau Prep 流程中。
在 Tableau Prep Builder 中利用您的數據
您可以通過編輯 API 鏈接輕鬆控制通過 Supermetrics API 加載哪些數據。 否則,您可以根據需要在 Tableau 流程中使用此數據輸入元素。
如果您使用我們的短 URL,您可以在此文檔文章中了解如何編輯參數。
只要您不通過添加或刪除列來更改數據的形狀,您就可以玩弄結果。 如果您需要更改數據的形狀,請記住相應地更改 CSV 文件,以便 Tableau Prep 可以解釋 API 響應。
現在,讓我們探索 Tableau Prep Builder 中可用於利用數據進行分析的一些功能。
將 Supermetrics 中的數據附加到 CSV 數據集 (UNION)
我們可以做的第一件事是執行 UNION 操作。 為此,我們不僅為 Tableau Prep Builder 提供示例 CSV 文件來解釋 API 輸出,還將使用它作為導入靜態數據的一種方式。
想像一下,有一組不會再改變的歷史數據。 一個常見的用例是導出去年的指標數據,您希望在 Tableau 報表中使用該指標,但還會將每日更新的數據集附加到該指標以使其保持最新狀態。
例如,我在查詢管理器中配置了一個查詢以獲取 2020 年的 Google Ads 數據,並將結果下載為 CSV。

然後,我將日期選擇器從“去年”更改為“年初至今”,並將此查詢的 API 鏈接複製到 Python 腳本文件中。 這是腳本文件的樣子。 請注意,我的唯一 API 密鑰已被編輯。


現在我們執行與以前相同的步驟。 我們需要在流程中添加一個 UNION 操作和一個“輸出”:
- 首先連接到 CSV 文件,在 Tableau Prep 中啟動新流程。
- 在 CSV 之後添加一個“腳本”步驟,TabPy 提供 API 調用功能。
- 在腳本之後添加一個“聯合”步驟,然後單擊並將 CSV 步驟拖動到它上面,形成一個三角形。
- 在 UNION 之後添加一個“輸出”步驟。

現在運行流程將為我們提供可用作 Tableau 項目的數據源的超數據提取。 由於 API 調用具有相對日期範圍(年初至今),您可以簡單地繼續重新運行流程以更新數據提取!
您還可以選擇將輸出文件保存到本地硬盤驅動器或直接將其發佈到 Tableau Server 或 Tableau Online 以與組織中的其他 Tableau 用戶共享。
使用來自 Supermetrics 的數據進行增量數據提取刷新
上述方法適用於中小型數據量。 但是,一旦您對 API 的查詢變得更大且要求更高(就運行時資源而言),最好執行數據集的增量刷新,而不是在每次流運行時請求全時範圍並覆蓋先前的提取.
幸運的是,Tableau Prep 附帶一個用於增量更新現有提取文件的內置選項。 您只需指定應使用數據表中的哪一列來確定來自刷新的新數據行。 然後,流程將為您處理其餘的事情。
但是,Tableau Prep Builder 不支持通過腳本執行來處理數據。
以下是如何解決這些限制並為增量數據刷新創建可行的解決方案。
我們將這個過程分為兩部分:
首先,我們創建一個包含更新的 Tableau Hyper Extract。 然後將其應用於第二步中的實際數據源。 這很重要,因為當另一個數據提取文件是刷新數據的源時,確實支持增量更新數據提取。

為此,我們再次創建一個包含腳本的流程。 我們在 API 調用中使用相對時間範圍,以保持我們請求的數據量輕量級。 在此示例中,我使用“過去 10 天”。

要創建將作為我們的“刷新器”的提取文件,我們必須使用我們迄今為止所了解的有關 Tableau Prep Builder 中的腳本的知識。
在這裡,我使用現有的提取文件作為腳本步驟之前的輸入,以證明它也可以工作,並且我們使用的初始 CSV 文件只是運行腳本的必要步驟。
如果沒有 UNION 操作,此流程的輸出將只是我們的腳本步驟通過 Supermetrics API 提取的任何內容。

在我的驅動器上將此輸出文件保存為“increment.hyper”後,我現在可以設置最終流程,該流程將更新用於多個報告的已發布摘錄。

這可能看起來有悖常理——這對我來說肯定是。
我們正在連接到 Tableau Prep Builder 中的增量文件,我們所做的只是添加一個“輸出”,它指向我們已經擁有並想要更新的文件。
在這裡,我在將兩者分開的流程中有一個可選的清潔步驟。 這裡重要的一點是在“輸入”上啟用增量刷新,我們的“increment.hyper”文件。 我們需要設置將用於檢測進入流的新行的字段。 在我們的例子中,這就是“日期”。
然後,我們將選擇指向我們希望更新的目的地的“輸出”,並將“輸入”中的“日期”字段與“輸出”中相應的“日期”字段匹配。
此設置為我們提供了將流程作為增量刷新運行的新選項。 偉大的!

此方法保留我們在輸出文件中已有的任何數據。 它可能是一個包含數百萬行的巨大提取物——我們只是在此過程中向其中添加新行。 創建這些流後,只需幾秒鐘即可運行它們並更新數據。 畢竟,我們現在只在 Supermetrics API 中查詢 10 天的數據。
就是這樣!
在 Tableau Prep Builder 中使用 Supermetrics API 作為數據源可幫助您執行通常需要數據倉庫的複雜數據建模任務。
如果您想增強您的 Tableau 報告的能力,請與我們的銷售團隊預訂演示或開始 Supermetrics API 的 14 天免費試用。