你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:
Azure Data Factory
Azure Synapse Analytics
提示
Microsoft Fabric 中的 Data Factory 是下一代 Azure Data Factory,具有更加简化的架构、内置人工智能和新功能。 如果不熟悉数据集成,请从Fabric数据工厂开始。 现有 ADF 工作负载可以升级到 Fabric,以跨数据科学、实时分析和报告访问新功能。
本文介绍了如何在管道运行中使用触发器元数据(如触发器开始时间)。
管道有时需要理解并从调用它的触发器读取元数据。 例如,通过翻转窗口触发器运行,管道可根据时段开始时间和结束时间处理不同的数据切片或文件夹。 在Azure Data Factory中,我们使用参数化和系统变量将元数据从触发器传递到管道。
这种模式对于翻转窗口触发器和自定义事件触发器特别有用,前者提供时段开始时间和结束时间,后者分析和处理自定义数据字段中的值。
注意
不同类型的触发器提供不同的元数据信息。 有关详细信息,请参阅系统变量。
数据工厂 UI
此部分介绍了如何在数据工厂用户界面 (UI) 中将元数据信息从触发器传递到管道。
转到“创作画布”并编辑管道。
选择空白画布,以显示管道设置。 不要选择任何活动。 可能需要从画布底部拉取设置窗格,因为它可能已折叠。
依次选择“参数”选项卡和“+ 新建”来添加参数。
通过选择“+ 触发器”将触发器添加到管道。
创建触发器或将触发器附加到管道,然后选择“确定”。
选择“确定”后,随即显示另一个“新建触发器”页,其中包含为管道指定的参数列表,如以下屏幕截图所示。 在此页面上,为每个参数填写触发器元数据。 使用系统变量中定义的格式来检索触发器信息。 无需填写所有参数的信息。 只需填写假定触发器元数据值的内容即可。 例如,在此示例中,我们将触发器运行开始时间分配给
parameter_1。
若要在管道中使用值,请在管道定义中使用
@pipeline().parameters.parameterName等参数,而不是系统变量。 例如,在此示例中,为了读取触发器开始时间,我们引用@pipeline().parameters.parameter_1。
JSON 架构
若要将触发器信息传递到管道运行中,需要使用parameters部分来更新触发器和管道的 JSON。
管道定义
在 properties 部分下,将参数定义添加到 parameters 部分。
{
"name": "demo_pipeline",
"properties": {
"activities": [
{
"name": "demo_activity",
"type": "WebActivity",
"dependsOn": [],
"policy": {
"timeout": "7.00:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false,
"secureInput": false
},
"userProperties": [],
"typeProperties": {
"url": {
"value": "@pipeline().parameters.parameter_1",
"type": "Expression"
},
"method": "GET"
}
}
],
"parameters": {
"parameter_1": {
"type": "string"
},
"parameter_2": {
"type": "string"
},
"parameter_3": {
"type": "string"
},
"parameter_4": {
"type": "string"
},
"parameter_5": {
"type": "string"
}
},
"annotations": [],
"lastPublishTime": "2021-02-24T03:06:23Z"
},
"type": "Microsoft.DataFactory/factories/pipelines"
}
触发器定义
在 pipelines 部分下,在 parameters 部分中分配参数值。 无需填写所有参数的信息。 只需填写假定触发器元数据值的内容即可。
{
"name": "trigger1",
"properties": {
"annotations": [],
"runtimeState": "Started",
"pipelines": [
{
"pipelineReference": {
"referenceName": "demo_pipeline",
"type": "PipelineReference"
},
"parameters": {
"parameter_1": "@trigger().startTime"
}
}
],
"type": "ScheduleTrigger",
"typeProperties": {
"recurrence": {
"frequency": "Minute",
"interval": 15,
"startTime": "2021-03-03T04:38:00Z",
"timeZone": "UTC"
}
}
}
}
在管道中使用触发器信息
若要在管道中使用值,请在管道定义中使用 @pipeline().parameters.parameterName 等参数,而不是系统变量。
相关内容
有关触发器的详细信息,请参阅管道执行和触发器。