【问题标题】:How to load multiple files from azure blob to azure synapse(Dw) by using azuredatafactory?如何使用 azuredatafactory 将多个文件从 azure blob 加载到 azure synapse(Dw)?
【发布时间】:2020-06-10 16:14:49
【问题描述】:

我正在尝试使用 azure 数据工厂将多个文件从 azure blob 加载到 azure sql dw。下面是我的代码。我正面临突出显示的错误。任何人都可以建议。 我在这里粘贴我的 adf 代码 json。

我在复制活动阶段低于突出显示。

{
    "name": "DelimitedText11",
    "properties": {
        "linkedServiceName": {
            "referenceName": "AzureBlobStorage2",
            "type": "LinkedServiceReference"
        },
        "parameters": {
            "FileName": {
                "type": "string"
            }
        },
        "annotations": [],
        "type": "DelimitedText",
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "fileName": {
                    "value": "@dataset().FileName",
                    "type": "Expression"
                },
                "container": "input"
            },
            "columnDelimiter": ",",
            "escapeChar": "",
            "firstRowAsHeader": true,
            "quoteChar": ""
        },
        "schema": []
    },
    "type": "Microsoft.DataFactory/factories/datasets"
}

错误:

{
        "errorCode": "2200",
        "message": "ErrorCode=UserErrorMissingPropertyInPayload,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Required property 'fileName' is missing in payload.,Source=Microsoft.DataTransfer.ClientLibrary,'",
        "failureType": "UserError",
        "target": "Copy data1",
        "details": []
    }

【问题讨论】:

  • 嗨,Imran,您能发布更多信息吗?数据工厂主要是一个视觉环境,所以一些屏幕截图可能很有用。最好的猜测是在此活动之前未正确设置 DataSet 的文件名。
  • 嗨乔尔,我希望添加屏幕截图,但社区不允许粘贴我的整个代码的屏幕截图,如果您知道其他方式,请告诉我,我很乐意分享屏幕截图

标签: azure-data-factory azure-container-service azure-synapse


【解决方案1】:

如果要将多个文件从 azure blob 加载到 Azure SQL 数据仓库,请必须在 Source dataset 中设置Wildcard file path。否则你总是会得到错误 2200:

{
        "errorCode": "2200",
        "message": "ErrorCode=UserErrorMissingPropertyInPayload,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Required property 'fileName' is missing in payload.,Source=Microsoft.DataTransfer.ClientLibrary,'",
        "failureType": "UserError",
        "target": "Copy data1",
        "details": []
    }

例如,我有两个具有相同架构的 csv 文件,并将它们加载到我的 Azure SQL 数据仓库表 test

CSV 文件:

源数据集:

源设置:选择源容器中的所有csv文件:

.

接收器数据集:

接收器设置:

映射:

设置:

执行管道并检查 ADW 中的数据:

希望这会有所帮助。

【讨论】:

  • 嗨 Leon Yue,您能否提供将数据从 azure blob 加载到 azure dw 的完整信息。例如:emp.csv 必须加载到 emp 表中,dept.csv 必须加载到 dept.table.by 数据工厂
  • @Imran 我只是想知道如何将多个文件加载到一个 ADW 表中。现在仍在测试 foreach active 以创建表。
  • 完成后告诉我,兄弟,我也会试试。
  • @Imran 好的。但是请下次更清楚地问问题。你能发布另一个问题吗?我回答了如何将多个 csv 文件加载到一个 ADW 表中。仍然不知道如何回答你下一个问题。您应该告诉我们您想要哪一个,加载 csv 文件以创建表或映射到 ADW 中的现有表。
  • 嗨悦,以下是我的要求..在我的 blob emp.csv、dept.csv 和 sales.csv 文件中。我正在尝试将 sql dw 加载为 emp.csv- --->dbo.emp(table),, dept.csv---->dbo.dept(table) sales.csv---->dbo.sales(table)。我希望这能给你清晰的信息。我在这里尝试的是:emp1.csv-----> dbo.emp1 table dept.csv---->dbo.dept table sales.csv---->dbo.sales 以上是虚拟名称,但是要求是一样的
猜你喜欢
  • 2020-06-12
  • 2021-03-13
  • 1970-01-01
  • 2020-08-21
  • 2021-04-19
  • 2023-03-07
  • 2020-12-27
  • 2019-06-06
  • 2017-08-05
相关资源
最近更新 更多