在流程中创建和使用参数
在 Tableau Prep Builder 版本 2021.4.1 及更高版本以及 Web 版 Tableau Cloud 和 Tableau Server 版本 2021.4.0 及更高版本中受支持
注意:除非特别说明,否则本主题中的内容适用于 Tableau Prep Builder 中和 Web 上的制作流程。有关在 Web 上制作流程的详细信息,请参见 Tableau Server(链接在新窗口中打开) 和 Tableau Cloud(链接在新窗口中打开) 帮助中的“Web 上的 Tableau Prep”.
如果您经常使用具有相同架构的不同数据重复使用流程,则可以创建用户参数并将其应用于流程,以轻松地在场景之间转换。参数是全局占位符值,例如可替换流程中的常量值的数字、文本值或布尔值。
您现在可以构建一个流程并使用参数来运行具有不同数据集的流程,而不是构建和维护多个流程。例如,您可以为不同的销售区域创建一个参数,然后将参数值应用于输入文件路径以仅使用该区域的数据运行流程。
从 Tableau Prep Builder 和 Tableau Cloud 版本 2023.2 开始,您还可以将系统参数添加到文件或已发布的数据源输出名称,以便在每次运行流程时自动添加时间戳。
我可以在何处应用参数?
您可以将用户参数应用于文件名、路径、表名、筛选器表达式和计算字段,具体取决于步骤类型。从版本 2022.1.1 开始,您甚至可以在使用 REST API 运行流程时包含参数覆盖值。有关详细信息,请参见 Tableau REST API 帮助中的流程方法(链接在新窗口中打开)。
您可以将系统参数(版本 2023.2 及更高版本)应用于文件和已发布数据源输出类型的输出名称。
下表列出了您可以为每个步骤类型应用参数的位置。
步骤类型 | 参数位置 |
---|---|
输入 | 用户参数:
|
输出 | 用户或系统参数:
|
清理、新建行、转置、联接、合并 | 用户参数:
|
聚合 | 用户参数:
|
脚本 | 用户参数:
|
预测 | 用户参数:
|
创建用户参数
用户参数特定于使用参数的流程。通过顶部菜单创建参数,然后定义适用于它们的值。您还可以定义接受所有值的参数,这意味着任何流程用户在运行流程时可以输入任何值。
您可以将流程参数值设为必需或可选。运行流程时,系统会提示用户输入参数值。必须先输入所需的参数值,然后用户才能运行流程。可以输入可选参数值,也可以接受当前(默认)值。然后将参数值应用于使用该参数的任何地方的流程运行。
注意:若要在 Tableau Server 或 Tableau Cloud 上运行或计划包含参数的流程,您的管理员必须在服务器上启用“流程参数”设置。有关详细信息,请参见 Tableau Server(链接在新窗口中打开) 或 Tableau Cloud(链接在新窗口中打开) 帮助中的“在 Web 上创建流程并与其进行交互”。
从顶部菜单中,单击“参数” 图标,然后单击“创建参数”。
在“创建参数”对话框中,输入名称和描述(可选)。参数名称必须唯一。这是添加参数时显示在用户界面中的值。
如果包括描述,用户可以在将鼠标悬停在参数列表中或参数使用位置中时看到此信息(从版本 2022.1.1 开始)。
选择以下数据类型之一。参数值必须与您选择的数据类型相匹配。
- 数字(整数或小数)
- 字符串
- 布尔值
指定“允许的值”。这些是用户可以在参数中输入的值。
全部:此选项允许用户为参数键入任何值,即使在运行流程时也是如此。
注意:将此选项用于可在输入和输出步骤中使用的参数可能存在安全风险。例如,允许输入任何值的自定义 SQL 查询可能会使您的数据资产遭到 SQL 注入攻击。
- 列表:输入用户可在应用参数时从中进行选择的值列表。若要输入多个值,请在每次输入后按 Enter。
- (可选)选择“运行时需要选择”(在以前的版本中为“运行时提示输入值”)。这会将参数设为必需。用户在运行或计划流程时需要输入一个值。
输入“当前值”。这是一个必需的值,用作参数的默认值。
- 全部:输入一个值。
- 列表:Tableau 使用列表中的第一个值。使用下拉选项进行更改。
- 布尔值:选择“True”或“False”。
- 单击“确定”保存参数。
更改用户参数默认值
创建用户参数时,必须指定当前(默认)值。如果流程中包含参数,则此值用于:
- 运行在输入步骤中定义的自定义 SQL 查询。
- 填写运行时未指定的可选参数。
- 将参数替换为已保存步骤中的静态值(版本 2022.1.1 及更高版本)。
- 使用打包数据集发布流程时,将参数替换为文件路径中的静态值。
可以随时更改值。您可以从顶部菜单编辑参数,或使用参数列表上的“设置”按钮。在流程中,您可以在应用参数的任何位置使用“设置”按钮。执行此操作时,它会在使用该参数的任何地方重置参数的当前(默认)值,即使在自定义 SQL 查询中也是如此。
编辑用户参数
- 从顶部菜单中,单击“参数” 图标。
- 单击“编辑参数”。
在“编辑参数”对话框中,进行任何更改,然后单击“确定”。
重置用户参数默认值
若要快速重置参数默认值,请使用“设置”按钮。该按钮向您显示一个计数,指示流程中使用该参数的位置数。
若要突出显示流程中使用参数的步骤,请单击参数对话框上的“在流程中查看”。如果只有一个地方使用了该参数,您将直接进入该步骤并打开配置窗格。
- 执行以下操作之一:
从顶部菜单中,单击“参数” 图标。使用此选项可重置流程中任何位置使用的参数值,或用于筛选器和计算字段时的参数值。
单击在流程中应用的参数。您可以将此选项用于文件名、文件路径、表名称、自定义 SQL 以及前后 SQL 脚本中使用的参数。
- 选择或输入参数值。
单击“设置”以应用更改。
将参数应用于您的流程
创建用户参数后,您可以将它们应用到整个流程中的不同位置,具体取决于步骤类型。当流程运行时,参数值将应用于该流程运行以生成适用于特定数据场景的输出。
运行流程时会自动生成系统参数(版本 2023.2 及更高版本)。只需将它们应用到您的输出步骤名称,每次运行流程时,参数都会随流程运行开始日期或时间动态更新。
将参数应用于输入步骤
在输入步骤中,您可以使用用户参数来替换文件名、文件路径部分、数据库表名,或者在使用自定义 SQL 时使用参数。
文件名或文件路径
在 Web 上编辑或制作流程时,此选项不可用。
您可以在文件路径中包含用户参数,但有一些例外。从版本 2022.1.1 开始,您还可以查看参数值的预览。
例外
- 从版本 2022.1.1 开始,您可以在 Web 上计划和运行在输入文件路径中包含参数的流程。如果使用更低版本,请在 Tableau Prep Builder 中或从命令行运行流程。
若要在将流程发布到 Web 时在文件路径中包含参数,则需要直接文件连接。否则,使用“当前值”将参数转换为静态值。
注意:直接文件连接要求文件位置包含在您组织的允许列表中。有关详细信息,请参见 Tableau Server 帮助中的允许列表输入和输出位置(链接在新窗口中打开)。
将用户参数应用于文件名或路径
- 在“设置”选项卡的文件路径中,将光标置于要添加参数的位置。
单击参数 图标,并选择您的参数。
查看参数值的预览。当前(默认)值显示在预览中。运行流程时,系统会提示您选择或输入参数值。
数据库表
在表名中使用用户参数时,整个表名必须是参数。当前不支持为部分表名使用参数。
注意:尚不支持为 Google BigQuery 输入连接中的表名使用参数。
- 在“设置”选项卡的“表”字段中,单击下拉菜单。
选择“使用参数”,然后从列表中选择参数。
自定义 SQL
- 在“连接”窗格中,单击“自定义 SQL”。
在“自定义 SQL”选项卡的文本框中键入或粘贴查询。
单击参数 图标,并选择您的参数。
单击“运行”以运行查询。在您运行流程之前,系统不会提示您输入参数值。相反,查询最初将使用参数的“当前值”运行。
注意:如果该参数在流程中的其他位置使用并且“当前值”已重置,则该更改可能会影响您的查询。
将用户参数应用于输出步骤
在输出步骤中,您可以将用户参数应用于以下位置:
- 文件名
- 文件路径的部分
- 已发布数据源名称
- 数据库表名称
- Microsoft Excel 工作表名称(版本 2022.1.1 及更高版本)
- 在将流程输出数据写入数据库之前或之后运行的自定义 SQL 脚本(版本 2022.1.1 及更高版本)
文件名或文件路径
在 Web 上创建或编辑流程时,此输出选项不可用
- 在“输出”窗格中,从“将输出保存到”下拉列表中选择“文件”。
在“名称”或“位置”字段中,单击参数 图标并选择您的参数。
对于文件路径,将光标置于要添加参数的位置。
运行流程时,系统会提示您输入参数值。
已发布数据源名称
- 在“输出”窗格的“将输出保存到”下拉列表中,选择“已发布数据源”。
在“名称”字段中,单击参数 图标并选择您的参数。
运行流程时,系统会提示您输入参数值。
数据库表和自定义 SQL 前后
- 在“输出”选项卡的“将输出保存到”下拉列表中,选择“数据库表”。
在“表”字段中,选择“使用参数”,然后从列表中选择参数。
(可选)单击“自定义 SQL”选项卡。从版本 2022.1.1 开始,您可以输入带参数的 SQL 脚本,以在数据写入表之前和之后运行。若要包含参数,请单击“插入参数”,然后选择您的参数。
有关在将输出写入数据库时使用 SQL 脚本的详细信息,请参见将流程输出数据保存到外部数据库。
注意:SQL 脚本中使用的参数必须手动删除。有关详细信息,请参见手动删除用户参数 。
运行流程时,系统会提示您输入参数值。
将系统参数应用于输出步骤
在输出步骤中,您可以将日期和时间系统参数应用于以下位置:
- 文件名
- 已发布数据源名称
文件名
在 Web 上创建或编辑流程时,此输出选项不可用
- 在“输出”窗格中,从“将输出保存到”下拉列表中选择“文件”。
在“名称”字段中,单击参数 图标并从以下运行日期或运行时间参数中进行选择。您可以组合多个系统参数来创建您需要的任何时间戳。
运行日期
- 日期:YYYY-MM-DD、YYYMMDD、DD-MM-YYYY
- 月份:月份名称、月份编号
- 周数
- 季度编号
- 年数
运行时间
- YYYY-MM-DD_HH-MM-SS(24 小时)
- YYYYMMDD_HHMMSS(24 小时)
当您运行流程时,Tableau Prep 使用您的本地时区或服务器时区应用流程开始运行时间。
已发布数据源名称
- 在“输出”窗格的“将输出保存到”下拉列表中,选择“已发布数据源”。
在“名称”字段中,单击参数 图标并从以下运行日期或运行时间参数中进行选择。您可以组合多个系统参数来创建您需要的任何时间戳。
运行日期
- 日期:YYYY-MM-DD、YYYMMDD、DD-MM-YYYY
- 月份:月份名称、月份编号
- 周数
- 季度编号
- 年数
运行时间
- YYYY-MM-DD_HH-MM-SS(24 小时)
- YYYYMMDD_HHMMSS(24 小时)
当您运行流程时,Tableau Prep 使用您的本地时区或服务器时区应用流程开始运行时间。
将用户参数应用于筛选器计算
使用用户参数来筛选整个流程中的数据。在输入步骤中筛选数据集或在步骤或字段值级别应用筛选器参数。例如,使用筛选器参数以便只为特定区域输入数据,或将步骤中的数据筛选到特定部门。
注意:从版本 2022.1 开始,当存在具有相同名称和数据类型的相同参数时,您可以使用复制和粘贴在其他流程中重用带有参数的筛选器计算。
- 从配置窗格上的输入步骤或工具栏中,选择“筛选值”。若要将参数筛选器添加到字段,请从“更多选项”菜单中选择“筛选器”>“计算”。
在“添加筛选器”计算编辑器中,输入参数名称以从列表中选择它(参数显示为紫色),然后单击“保存”以保存您的筛选器。
运行流程时,系统会提示您输入参数值。
将用户参数应用于计算字段
使用用户参数替换您在整个流程中使用的计算中的常量值。您可以在步骤或字段值级别应用计算参数。
注意:从版本 2022.1 开始,当存在具有相同名称和数据类型的相同参数时,您可以使用复制和粘贴在其他流程中重用带有参数的计算。
- 从配置窗格的工具栏中,单击“创建计算字段”。若要将参数添加到字段的计算中,请从“更多选项”菜单中选择“创建计算字段”>“自定义计算”。
在“添加字段”计算编辑器中,输入您的计算,键入参数的名称以从列表中选择它,然后单击“保存”以保存您的计算。
运行流程时,系统会提示您输入参数值。
删除用户参数
若要删除不再需要的用户参数,请单击“编辑参数”对话框中的“删除参数”。这将删除整个流程中使用的参数的任何实例,并将其替换为参数的“当前值”。此操作无法撤消。
注意:用于删除渡海中中参数的选项因版本而异。对于 2022.1 及更高版本,请使用以下说明。对于以前的版本,或者若要删除将输出写入数据库之前或之后运行的自定义 SQL 脚本中使用的参数,请使用手动删除用户参数。
- 从顶部菜单中,单击参数 图标下拉菜单,然后为要删除的参数单击“编辑参数”。
在“编辑参数”对话框中,单击“删除参数”。
在确认对话框中,再次单击“删除参数”。您可以单击“在流程中查看”以突出显示步骤并调查删除参数之前参数的使用位置。
适用于版本 2021.4.4 及更早版本以及自定义 SQl 脚本前后使用的参数
在您可以从参数列表中删除用户参数之前,您必须首先从流程中找到并删除所有参数实例,甚至必须从“更改”窗格中执行此操作。
- 从顶部菜单中,单击参数 图标下拉菜单。
对于要删除的参数,单击“在流程中查看”以查找流程中使用该参数的所有实例。
如果该参数未在流程中的任何地方使用,请跳至步骤 4。
- 对于使用参数的每个步骤,移除参数,包括删除“更改”窗格中列出的任何更改。
- 从顶部菜单中,单击参数 图标下拉菜单,对于要删除的参数,单击“编辑参数”。
在“编辑参数”对话框中,单击“删除参数”。
该参数将替换为参数的当前值。
运行包含参数的流程
运行包含参数的流程与运行不包含参数的流程相同,只是在运行时或在 Tableau Server 或 Tableau Cloud.中将流程添加到计划时,会提示用户输入用户参数值。
流程运行时会自动应用系统参数。
如果用户参数被标记为必需,用户必须输入一个值才能运行流程。如果参数是可选的,用户可以输入一个值或默认接受参数的当前值。
必需参数是指选中了“运行时需要选择”(在以前的版本中为“运行时提示输入值”)复选框的参数。
如果您使用命令行界面运行流程并希望覆盖当前(默认)参数值,请创建参数覆盖 .json 文件,并在命令行中包含 -p --parameters 语法。有关详细信息,请参见通过命令行刷新流程输出文件。
手动运行流程
当您从 Tableau Prep Builder 中运行流程,或者在 Tableau Server 或 Tableau Cloud 中手动运行流程时,“参数”对话框会在您单击“运行”时打开。
- 输入或选择用户参数值。如果流程中有可选参数,您可以在此时输入值或接受当前(默认)参数值。
- 单击“运行流程”以运行流程。
有关运行流程的详细信息,请参见将流程发布到 Tableau Server 或 Tableau Cloud。
按计划运行流程
当您计划流程以在 Tableau Server 或 Tableau Cloud 上运行时,您需要在计划流程时输入任何必需的用户参数值。
在“新建任务”或“链接任务”选项卡上的“设置参数”部分,输入或选择参数值。如果流程中有可选参数,您可以在此时输入值,或将该字段留空以使用当前(默认)参数值。
- 单击“创建任务”以计划您的流程。