【问题标题】:Is there a way to process "any file" with SSIS on a Azure Data Lake Store?有没有办法在 Azure Data Lake Store 上使用 SSIS 处理“任何文件”?
【发布时间】:2019-06-10 15:09:40
【问题描述】:

我正在使用 SSIS 脚本从 Data Lake 加载 Json 文件。 但是名为“Azure Data Lake Store Source Editor”的 SSIS 组件不接受来自变量的文件名,只接受硬编码。 由于我无法控制在数据湖上创建新文件,因此每次登陆新文件时都必须更改 SSIS 脚本。

我了解 SSIS 允许您以编程方式在脚本组件内访问连接管理器组件(我用于解析 Json 文件)。

我可以使用 For Each Component 将 Data Lake 存储库的所有文件名获取到 SSIS 变量中。我可以在脚本组件中调用该变量。

我要做的是以编程方式用变量中的文件名覆盖“源编辑器”的硬编码文件名。

我也明白我可以用 USQL 做到这一点,但这是一条完全不同的开发路径。我把它留到最后。

我很感激任何在正确方向上的指导。

谢谢。

【问题讨论】:

    标签: c# ssis azure-data-lake


    【解决方案1】:

    我无法对此进行测试,但您应该能够在数据流级别而不是在组件级别参数化数据源组件。

    如果您查看包含 Azure Data Lake Store 源组件的数据流的属性,您应该会看到一个名为 Expressions 的属性值集合,您可以在其中从变量设置组件级别的属性值.

    here 提供了此过程的摘要。

    【讨论】:

    • 谢谢你!我测试了您的解决方案,然后又花了两天时间发现我还需要将 DelayValidation 属性设置为 True(我猜是因为 Data Lake)。但它现在完美运行。
    • @EnisAkin 我认为您不一定需要设置DelayValidation。如果组件中有一个在数据流中有效的查询字符串,它应该验证它并在构建期间感到高兴。如果这不可能,那么是的,您可能需要延迟验证。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多