【问题标题】:Data factory azure blob source - wildcard数据工厂 azure blob 源 - 通配符
【发布时间】:2016-05-07 16:40:08
【问题描述】:

我被引导相信您可以在 Azure Blob 表源对象中使用通配符文件名属性。

我只想从 blob 存储中提取与我不想处理的其他文件位于同一目录中的某些 csv 文件:

root/data/GUJH-01.csv

root/data/GUJH-02.csv

root/data/DFGT-01.csv

我想处理 GUJH*.csv 而不是 DFGT-01.csv

这可能吗?如果是这样,为什么我的 blob 源验证失败,通知我文件不存在(消息报告根/数据 blob 不存在。

提前致谢。

【问题讨论】:

    标签: csv azure azure-blob-storage cortana-intelligence azure-data-factory


    【解决方案1】:

    回答我自己的问题..

    没有通配符,但有一个“开始于”,可以在我的场景中使用:

    我可以在 folderPath 属性上执行 root/data/GUJH 而不是 root/data/GUJH*.csv,它会引入所有 root/data/GUJH 文件..

    :)

    【讨论】:

    • 我也花了很长时间才解决这个问题。现在我想知道您如何将其限制为仅 CSV 文件?
    • 只要确保filePath 没有被指定并且folderPath 具有包含文件名的完整路径。还要确保运行正确的 timeslice。我只是在运行一个随机时间片,它又传入了错误的参数,这意味着它找不到文件
    【解决方案2】:

    只是在这里添加更多细节,因为我发现这是一个非常困难的学习曲线,我想为我自己和其他人记录这一点。

    给定一个像这样的示例文件(在这种情况下没有扩展名)在 blob 存储中,

    ZZZZ_20170727_1324

    我们可以看到中间部分是yyyyMMdd格式。

    这是上传到容器MyContainer内的文件夹Landing

    这是我的数据集定义的一部分::

        "typeProperties": {
            "folderPath": "MyContainer/Landing/ZZZZ_{DayCode}",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": "\u0001"
            },
            "partitionedBy": [
                {
                    "name": "DayCode",
                    "value": {
                        "type": "DateTime",
                        "date": "SliceStart",
                        "format": "yyyyMMdd"
                    }
                }
            ]
        },
    

    请注意,这是一个“前缀”,如果您能找到它们,您将在日志/错误消息中看到(祝您好运)

    如果您想测试加载此特定文件,您需要按“图表”按钮,然后深入您的管道,直到找到 目标 数据集 - 正在加载文件的那个 into(我正在将它加载到 SQL Azure 中)。点击目标数据集,现在去寻找正确时间片。在我的情况下,我需要找到 开始时间片为 20170727 的时间片并运行该时间片。

    这将确保选择正确的文件并将其加载到 SQL Azure

    忘记手动运行管道或活动 - 这不是它的工作原理。您需要在时间片下运行输出数据集才能将其拉出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-02
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 2021-03-19
      • 2019-04-20
      • 1970-01-01
      相关资源
      最近更新 更多