gpt4 book ai didi

azure - SSIS:如何枚举 Azure 存储中的文件并将每个文件加载到 SQL Server 中

转载 作者:行者123 更新时间:2023-12-04 09:23:42 25 4
gpt4 key购买 nike

我想做一些看似简单的事情,但我并没有太多的快乐。我想使用为 Foreach Azure Blob 枚举器配置的 For Each 循环容器来构建 SSIS 包,以循环访问存储容器中的文件。我可以让循环确实循环遍历所有文件。当我尝试使用“Azure Blob Source”数据流组件加载每个文件时,问题就出现了。似乎无法为“Azure Blob Source”数据流组件提供应来自 Foreach Azure Blob 枚举器的 Blob 名称。当枚举器循环访问容器中的所有文件时,这会导致“Azure Blob 源”数据流组件不断加载设置为其“Blob 名称”的同一文件。当然,应该可以提供一个变量作为“Blob 名称”,以便包可以为容器中的每个文件调用数据流任务。

最佳答案

我通过执行以下操作解决了这个问题。首先,您必须从存储在包范围变量中的 Azure Blob 枚举器获取 Blob 名称。 The foreach loop enumerator

我创建了一个名为 FilePath 的用户变量,当循环访问 Blob 容器中的每个 Blob 名称时,会加载该变量。在 foreach 循环容器中,我放置了一个数据流任务,其中包含“Azure Blob Source”组件。 Azure Blob 源组件将从指定的文本文件加载数据。当您设置组件时,您可以指定一个示例文本文件的名称(采用您正在加载的格式),以便定义它的导入方式。当“Azure Blob 源”组件位于 Azure Blob 枚举器中时,您可能希望在枚举容器中的每个 Blob 时为其提供名称。

the data flow task within the enumerator

您可以通过在数据流组件级别设置表达式来实现这一点。即使枚举器未运行,您也需要设置一个条件公式来为“Blob 名称”提供值,否则您将收到错误消息,提示 Blob 名称没有值。

enter image description here

@[User::FilePath] == "" ? "example.dat" : @[User::FilePath]

逻辑表明,如果用户变量 FilePath 没有分配值,则只需使用假文件名来避免 Azure Blob 源中没有 Blob 名称的错误,但是如果枚举器提供名称,则使用提供的名称在用户::文件路径

关于azure - SSIS:如何枚举 Azure 存储中的文件并将每个文件加载到 SQL Server 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63056748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com