【问题标题】:Azure Data flow taking mins to trigger next pipelineAzure 数据流需要几分钟才能触发下一个管道
【发布时间】:2019-09-07 04:31:01
【问题描述】:

Azure 数据工厂在 10 毫秒内在 Db 中传输数据,但我遇到的问题是它等待几分钟来触发下一个管道,最终需要 40 分钟,所有管道传输数据的时间不到 20 毫秒。但不知何故,它正在等待几分钟来触发下一个。

我使用调试模式以及使用 Logic App 触发 ADF 而没有调试情绪。有什么办法可以优化它,我们想从 SSIS 转移到数据流,但是在下一步中有 40 分钟的时间问题,我们有数百万条记录

因此将数据传输到数据库需要 7 秒,但等待了 6 分钟 :( 请查看下图

【问题讨论】:

  • 而且我们仍在使用 500DTU :(
  • 数据流活动在后台启动 Azure Data Bricks 环境以供执行,这说明了您所看到的时间。 DTU 不会真正产生影响,数据流运行后上载的速度就证明了这一点。您可能需要重新设计解决方案以在更少的数据流中完成更多工作,而不是尝试运行许多数据流。

标签: azure azure-data-factory azure-data-lake azure-data-factory-2


【解决方案1】:

这篇文档Monitor data flow performance提到:

请注意,您可以在整体性能计算中假设 1 分钟的集群作业执行设置时间,如果您使用默认的 Azure 集成运行时,您可能还需要添加 5 分钟的集群启动时间。

这也许是一个原因。你可以先按照这个教程Mapping data flows performance and tuning guide.

这个文档Execute data flow activity in Azure Data Factory也可以帮助我们提高性能。

为此数据流的执行选择计算环境。默认值为 Azure 自动解析默认集成运行时。此选择将在与您的数据工厂位于同一区域的 Spark 环境中执行数据流。计算类型将是作业集群,这意味着计算环境将需要几分钟才能启动。

您可以控制数据流活动的 Spark 执行环境。 Azure 集成运行时中的设置用于设置计算类型(通用、内存优化和计算优化)、工作核心数和生存时间,以使执行引擎与您的数据流计算要求相匹配。此外,设置 TTL 将允许您维护一个可立即用于作业执行的暖集群。

注意:

数据流活动中的集成运行时选择仅适用于管道的触发执行。使用带有 Debug 的 Data Flows 调试您的管道将针对 8 核默认 Spark 集群执行。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    您将在作业(触发)执行期间达到 Databricks 集群启动时间。

    只要您处于调试模式,当调试会话仍为绿色时,您总是会遇到预热的集群。

    我们已在数据流配置部分的 Azure IR 中添加了 TTL,这样您就可以在下一次数据流活动时保持集群处于活动状态,并且您不会在下次执行时受到启动损失。

    请注意,该选项此时显示为灰色,但很快就会启用。

    【讨论】:

    • 我的集成运行时中的 TTL 选项(以及所有其他选项)显示为灰色。我是否需要从头开始重新创建 IR 才能修改此设置?我可以在代码隐藏中编辑吗?
    • 创建另一个 IR
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 2017-05-28
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多