SSIS 灵活文件目标文件夹路径包含反斜杠

问题描述 投票:0回答:1

我们正在尝试让现有的 SSIS 包与 Azure Blob 存储一起使用。问题是我们动态生成的FolderPath。

我们的文件夹路径是在一个变量中定义的,如下所示:

@[$Package::BlobFolder] + "CATEGORY/" + @[User::FileDate] + "/SUBCATEGORY"

然后我们尝试上传的文件是镶木地板文件,因此在灵活文件目标编辑器中我们有这样的内容:

文件夹路径:(从变量生成)

ourfolderpath/category/08152023/subcategory

文件名称:

ourfilename.parquet

但是,当它运行时,系统会像这样连接两个值:

ourfolderpath/category/08152023/subcategory\ourfilename.parquet

这当然行不通。 有什么想法吗?

注意,这里列出了我们已经尝试过但不起作用的方法。

  1. 在FolderPath末尾添加一个正斜杠,结果:它只是这样做/\
  2. 在FolderPath末尾添加反斜杠(这会出错并且无法保存)
  3. 加两个反斜杠= \(仍然会爆炸)
  4. 用反斜杠替换所有正斜杠 = 不起作用。

太平洋标准时间下午 2:30 更新:

首先我想指出,我上面发布的变量表达式只是它们的示例。 真正的要复杂得多(我不知道为什么)

其次,我还想指出,这整件事实际上在生产中是有效的。 我们正在尝试做的是建立一个开发版本,但显然从未完成过。

第三,我们怀疑我们看到的错误可能是错误的,并且不受反斜杠的任何影响。 理论是这样的:

A) 使用哪个斜杠进行串联取决于运行时检测到的环境。 如果它检测到与 Azure Blob 的连接,则使用正斜杠,如果没有,则使用反斜杠(因为这是在 Windows 服务器上)

B) 我们怀疑系统无法连接,因此当错误被写入时,它会用反斜杠写入,因为从未与 Azure 建立过连接,这使得反斜杠看起来像是问题所在,而实际上它完全是另一回事。

这就是我们现在的处境。 不知道为什么连接失败(或者这是否是问题所在)

ssis azure-blob-storage blobstorage
1个回答
0
投票

距离我发布这篇文章已经过去一年零三个月了。 我今天在开会,其他人也遇到了同样的问题。 我用谷歌搜索并在这里找到了我自己的帖子。 我想我现在明白了这个问题。

在 SSIS 中,您可以在多个位置为同一事物设置变量。 例如,您可以创建一个连接管理器(例如到 Azure Blob 存储),然后可以在此处设置连接字符串/密码。

您还可以拥有该连接的应用程序级版本,如果您应该从应用程序级别执行包,这可以覆盖您在本地连接管理器中放置的任何内容。

您还可以拥有更高级别的连接字符串,这些连接字符串仅在生产环境中可用。 事实上,我们拥有所有这些东西。

所以。 当我转到连接管理器并单击“测试”时,它就可以工作。 但是,如果我实际上在本地执行整个应用程序,它会失败,因为它使用下一个最高级别的连接信息,而这些信息恰好在我们的系统中被破坏。

在生产服务器的更高层,这些连接实际上可以工作,这就是为什么该问题不会在生产中崩溃。

无论如何,这是我的理论。还没有人要求我解决这个问题,所以这只是一个理论,但这是我目前能给出的最好解释,我想把它写在这里,以防有人要求我在一年后解决这个问题,我又忘记了。

© www.soinside.com 2019 - 2024. All rights reserved.