【问题标题】:Is there something in Azure Data Factory akin to FOR/FOREACH loops in SSIS?Azure 数据工厂中是否有类似于 SSIS 中的 FOR/FOREACH 循环的东西?
【发布时间】:2017-05-03 17:47:06
【问题描述】:

我在本地数据库中有 200 多个表中的数据,我需要将这些数据移动到 Azure Data Lake。我对在 Azure 数据工厂中为每个表拥有 200 多个单独的管道(或一个具有 200 多个活动或管道/活动的其他分区)的想法感到不高兴。是否有更好/更具可扩展性的方法来做到这一点?在 SSIS 中,我可能会创建一个模板包并将其包装在一个 for-loop 容器中,以遍历表列表来完成工作,或者更进一步,有一些列表,每个包都可以独立工作独立列出以获得更大的并行性。有没有办法在数据工厂中做同样的事情?

【问题讨论】:

    标签: azure ssis azure-data-factory


    【解决方案1】:

    真的吗?就动态模式而言,SSIS 很糟糕。根据this question,Azure 数据工厂 (ADF) 是一种 ELT 工具而不是 ETL 工具,并且在这方面有着根本的不同。但是,使用复制向导执行此操作不会花费很长时间。

    或者,您将不得不学习将 .net SDK 和/或 Powershell 与 ADF 一起使用,以便更动态地使用它。理论上,您需要为每个可以在一个管道下运行的表提供输入和输出数据集。

    最后,我认为这不是一个很好的模式(主要是因为您需要一些 IaaS 来托管它),但作为最后的手段,SSIS 现在确实在 2016 功能包中与 Azure Data Lake 集成。

    【讨论】:

    • 我主要指的是任务的可管理性方面。 200 多个表在单个项目下管理太多,无法将 200 多个输入/输出数据集和管道相互连接。 SSIS 功能包没那么有用。我确实尝试过...
    • @YuGagarin 为我运行 SSIS 方法。您如何建议与动态模式一起使用?您始终可以使用 SSIS 将文件输出到文件共享,然后使用 ADF 拾取和移动文件。复制活动可以移动目录中的所有文件,只需要一个管道、输入数据集(源目录)和输出数据集(输出目录)。您还可以尝试使用存储过程任务,运行数据库中的所有表,将文件输出到文件共享,然后复制活动等。关键是 ADF 仅编排,循环将在您选择的计算上发生。
    猜你喜欢
    • 1970-01-01
    • 2012-06-06
    • 2011-12-04
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多