你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建翻转窗口触发器依赖项

适用于:Azure 数据工厂 Azure Synapse Analytics

提示

试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用

本文提供创建翻转窗口触发器上的依赖项的步骤。 有关翻转窗口触发器的一般信息,请参阅创建翻转窗口触发器

要生成依赖关系链,并确保某个触发器只在成功执行此服务中的另一个触发器之后才执行,请使用此高级功能创建翻转窗口依赖项。

有关如何使用翻转窗口触发器创建依赖管道的演示,请观看以下视频:

在 UI 中创建依赖项

要创建对触发器的依赖项,请选择触发器>高级>新建。 然后,选择要依赖的具有适当偏移和大小的触发器。 选择“完成”并发布更改,使依赖项生效。

显示依赖项创建窗口的屏幕截图。

翻转窗口依赖项属性

带有依赖项的翻转窗口触发器具有以下属性:

{
    "name": "MyTriggerName",
    "properties": {
        "type": "TumblingWindowTrigger",
        "runtimeState": <<Started/Stopped/Disabled - readonly>>,
        "typeProperties": {
            "frequency": <<Minute/Hour>>,
            "interval": <<int>>,
            "startTime": <<datetime>>,
            "endTime": <<datetime - optional>>,
            "delay": <<timespan - optional>>,
            "maxConcurrency": <<int>> (required, max allowed: 50),
            "retryPolicy": {
                "count": <<int - optional, default: 0>>,
                "intervalInSeconds": <<int>>,
            },
            "dependsOn": [
                {
                    "type": "TumblingWindowTriggerDependencyReference",
                    "size": <<timespan - optional>>,
                    "offset": <<timespan - optional>>,
                    "referenceTrigger": {
                        "referenceName": "MyTumblingWindowDependency1",
                        "type": "TriggerReference"
                    }
                },
                {
                    "type": "SelfDependencyTumblingWindowTriggerReference",
                    "size": <<timespan - optional>>,
                    "offset": <<timespan>>
                }
            ]
        }
    }
}

下表提供了定义翻转窗口依赖项所需的属性列表。

属性名称 说明 类型 必需
type 所有现有翻转窗口触发器将显示在此下拉列表中。 选择要依赖的触发器。 TumblingWindowTriggerDependencyReferenceSelfDependencyTumblingWindowTriggerReference
offset 依赖项触发器的偏移量。 以时间跨度格式提供值。 允许使用负偏移和正偏移。 如果触发器依赖于自身,则此属性是必需的。 对于其他所有情况,此属性是可选的。 自我依赖项应始终为负偏移量。 如果未指定任何值,则该窗口与触发器本身相同。 时间跨度
(hh:mm:ss)
自我依赖项:是
其他:否
size 依赖项翻转窗口的大小。 提供正的 timespan 值。 此属性是可选的。 时间跨度
(hh:mm:ss)

注意

翻转窗口触发器最多可以依赖其他五个触发器。

翻转窗口自我依赖项属性

对于在上一个窗口成功完成之前触发器不应转到下一个窗口的情况,请生成自我依赖项。 依赖于前一小时内自身运行是否成功的自我依赖项触发器具有以下代码中所示的属性。

注意

如果触发的管道依赖于先前触发的窗口中管道的输出,则建议仅使用翻转窗口触发器自我依赖项。 要限制并行触发器运行,请设置最大触发器并发。

{
    "name": "DemoSelfDependency",
    "properties": {
        "runtimeState": "Started",
        "pipeline": {
            "pipelineReference": {
                "referenceName": "Demo",
                "type": "PipelineReference"
            }
        },
        "type": "TumblingWindowTrigger",
        "typeProperties": {
            "frequency": "Hour",
            "interval": 1,
            "startTime": "2018-10-04T00:00:00Z",
            "delay": "00:01:00",
            "maxConcurrency": 50,
            "retryPolicy": {
                "intervalInSeconds": 30
            },
            "dependsOn": [
                {
                    "type": "SelfDependencyTumblingWindowTriggerReference",
                    "size": "01:00:00",
                    "offset": "-01:00:00"
                }
            ]
        }
    }
}

使用方案和示例

以下场景显示了翻转窗口依赖项属性的使用。 在这些示例中,黄色窗口必须成功完成后,下一个触发器才能触发,虚线将它们连接到一旦完成就会触发的窗口。

依赖项偏移量

显示偏移示例的关系图。

在这些示例中,触发器 A 的 10-11 运行取决于触发器 B 的运行(以黄色突出显示)。触发器 B 成功完成后,触发器 A 将启动。

这种依赖关系可以是并发的(触发器可以同时运行),也可以是不同步的或有时间间隔(触发器 B 在与触发器 A 不同的时间运行)。

在第一个示例中,10-11 时间范围触发器 A 对 10-11 触发器 B 具有并发依赖性,因此偏移量为 0。

第二个示例中,10-11 时间范围触发器 A 的偏移量取决于 9-10 触发器 B,因此偏移量为 -1 小时。

依赖项大小

显示大小示例的关系图。

在这些示例中,触发器 A 的 10-11 运行取决于触发器 B 的运行(以黄色突出显示)。触发器 B 成功完成后,触发器 A 将启动。

依赖窗口的大小可以不同于被依赖窗口的大小。

在第一个示例中,10-11 时间范围触发器 A 对 9-10 触发器 B 具有偏移量。偏移量 -1 小时,并且大小 未指定 ,因为依赖窗口的大小与触发器窗口的大小相同。

第二个示例中,10-11 时间范围触发器 A 的偏移量取决于 9-11 触发器 B,因此偏移量为 -1 小时,大小为 2 小时。

自我依赖项

显示自我依赖项示例的关系图。

在这些示例中,触发器 A 的 10-11 运行取决于触发器 A 的先前运行。当触发器 A 中的指定窗口成功完成时,下一个 A 触发器将开始。

在第一个示例中,10-11 时间范围触发器 A 的偏移量取决于 9-10 触发器 A,因此偏移量为 -1 小时且大小 未指定 ,因为依赖窗口的大小与触发器窗口的大小相同。

第二个示例中,10-11 时间范围触发器 A 的偏移量取决于 8-10 触发器 A,因此偏移量为 -1 小时,大小为 2 小时。

显示在输出流中不存在间隙的自我依赖项示例的关系图。

第三个示例演示了一个每日作业(而不是每小时作业),该作业的输出流中没有差距。

10/2-10/3 时间范围触发器依赖于 10/1-10/2 窗口,并且仅在 10/1-10/2 成功完成时才触发。 偏移量为 -1 天,并且大小 未指定,因为依赖窗口的大小与触发器窗口的大小相同。

依赖于另一个翻转窗口触发器

以下示例显示一个每日遥测数据处理作业,它依赖于另一个每日作业(该作业聚合过去七天的输出,并生成七天滚动窗口流)。

显示依赖项示例的关系图。

当触发器 B 的 10/1-10/8 窗口成功完成时,触发器 A 的 10/7-10/8 触发器将启动。 触发器 A 的依赖性具有 -6 天的偏移量,且大小为 7 天。

监视依赖项

可以从“触发器运行监视”页面监视依赖链和相应的窗口。 转到监视>触发器运行。 如果翻转窗口触发器具有依赖项,则触发器名称包含指向依赖项监视视图的超链接。

显示“监视触发器运行”的屏幕截图。

单击触发器名称以查看触发器依赖项。 右侧窗格显示触发器运行信息,例如运行 ID、窗口时间和状态。

显示“监视依赖项”列表视图的屏幕截图。

可查看依赖项的状态,以及每个依赖触发器的窗口。 如果某个依赖项触发器失败,则必须成功重新运行它才能使依赖触发器运行。

翻转窗口触发器在超时前等待依赖项七天。七天后,触发器运行失败。

注意

在翻转窗口触发器处于“等待依赖项”状态时,无法取消它。 依赖活动必须在翻转窗口触发器被取消之前完成。 此限制旨在确保依赖活动在启动后就能完成的。 这也有助于减少意外结果的可能性。

要以更直观的方式查看触发器依赖项计划,请选择甘特图视图。

显示“监视依赖项”甘特图的屏幕截图。

透明框显示每个下游依赖触发器的依赖项窗口。 上图中显示的纯色框显示各个窗口运行。 以下是理解甘特图视图的一些技巧:

  • 依赖窗口处于“挂起”或“正在运行”状态时,透明框呈蓝色
  • 在所有窗口上成功创建依赖触发器后,透明框变为绿色。
  • 某个依赖窗口出现故障时,透明框呈红色。 查找红色的纯色框,以标识失败的窗口运行。

要在甘特图视图中重新运行某个窗口,请选择该窗口的纯色框。 随即弹出一个操作窗格,其中包含信息和重新运行选项。