使用 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 天免费试用。