是否可以使用Azure Data Factory从Rest API端点并行下载一百万个文件到Blob中?

是否可以使用Azure Data Factory从Rest API端点并行下载一百万个文件到Blob中?,azure,azure-data-factory,azure-data-factory-2,azure-blob-storage,azure-data-factory-pipeline,Azure,Azure Data Factory,Azure Data Factory 2,Azure Blob Storage,Azure Data Factory Pipeline,我是Azure的新手,我手头有一项任务,就是利用任何Azure服务(或集成在一起的一组Azure服务)从第三方Rest API端点并行下载一百万个文件,该端点使用Azure Data Factory将一个文件一次返回到Blob存储中 我研究的内容: 根据我的研究,我的任务概括起来有三个要求: 并行运行数以百万计-我推断Azure批处理将是一个不错的选择,因为它允许在VM上并行运行大量任务(它将该概念用于图形渲染过程或机器学习任务) 将Rest API的响应保存到Blob存储:我发现Azure

我是Azure的新手,我手头有一项任务,就是利用任何Azure服务(或集成在一起的一组Azure服务)从第三方Rest API端点并行下载一百万个文件,该端点使用Azure Data Factory将一个文件一次返回到Blob存储中

我研究的内容:

根据我的研究,我的任务概括起来有三个要求:

  • 并行运行数以百万计-我推断Azure批处理将是一个不错的选择,因为它允许在VM上并行运行大量任务(它将该概念用于图形渲染过程或机器学习任务)
  • 将Rest API的响应保存到Blob存储:我发现Azure Data Factory能够从源/接收器样式处理此类ETL类型的操作,我可以将Rest API设置为源,将目标设置为Blob
我尝试过的:

以下是一些需要注意的事项:

  • 我添加了restapi和Blob作为链接服务
  • API端点接收名为:fileName的查询字符串param
  • 我用查询字符串传递整个URL
  • RESTAPI由承载令牌保护,我正试图使用附加的头传递该令牌
主要问题:

  • 我在发布管道上收到一条错误消息,即模型不合适,只有那一行,它没有给出错误的细节
其他查询:

  • 可以从sql表中动态传递查询字符串值,这样每个文件名都可以从存储过程/内联查询中的单列数据行中选择一行/列项
  • 是否有可能以某种方式使用Azure批处理使此管道并行运行?我们如何整合这一过程
  • 仅仅使用批处理就可以在没有数据工厂的情况下实现百万并行吗

很难帮助您解决主要问题-您需要提供更多代码示例

关于您的其他查询:

  • 您可以使用“查找活动”从数据库中获取文件列表(使用存储过程或内联查询)。下一步将是ForEach活动,该活动迭代阵列并将文件从REST端点复制到存储帐户。您可以调整ForEach活动的并行性以满足您的需求,但通常会看到大约20个并发执行

  • 使用Azure批处理下载文件似乎有点过分,因为它应该是一个相当快的操作。如果您想看到用C编写的Azure批处理作业示例,我可以推荐此示例=>`https://github.com/Azure-Samples/batch-dotnet-quickstart/blob/master/BatchDotnetQuickstart. 在并行性方面,我认为与Azure Data Factory相比,您将能够在Azure Batch上实现更高的级别

  • 实际上,你需要并行下载1M个文件,我认为除了Azure Batch之外,你没有任何其他选择来接近这些数字。但如果API能够在一两秒钟内处理一百万个请求,那么大多数API都非常强大


很难帮助您解决主要问题-您需要提供更多代码示例

关于您的其他查询:

  • 您可以使用“查找活动”从数据库中获取文件列表(使用存储过程或内联查询)。下一步将是ForEach活动,该活动迭代阵列并将文件从REST端点复制到存储帐户。您可以调整ForEach活动的并行性以满足您的需求,但通常会看到大约20个并发执行

  • 使用Azure批处理下载文件似乎有点过分,因为它应该是一个相当快的操作。如果您想看到用C编写的Azure批处理作业示例,我可以推荐此示例=>`https://github.com/Azure-Samples/batch-dotnet-quickstart/blob/master/BatchDotnetQuickstart. 在并行性方面,我认为与Azure Data Factory相比,您将能够在Azure Batch上实现更高的级别

  • 实际上,你需要并行下载1M个文件,我认为除了Azure Batch之外,你没有任何其他选择来接近这些数字。但如果API能够在一两秒钟内处理一百万个请求,那么大多数API都非常强大