【问题标题】:Import CSV with variable columns into Sql Database using Azure Data Factory使用 Azure 数据工厂将具有可变列的 CSV 导入 Sql 数据库
【发布时间】:2020-02-27 00:41:02
【问题描述】:

我正在尝试使用 Azure 数据工厂将 csv 文件从 blob 存储导入到 sql server 数据库。这些 csv 文件没有一致的格式。并非所有 csv 文件都具有相同的列数。

如何检查 csv 文件中是否存在列,以及它是否不只是将该列的 NULL 值插入 SQL Server 数据库?

【问题讨论】:

    标签: azure-data-factory


    【解决方案1】:

    我假设您使用的是 ADF v2。

    您可以通过单击 ADF 活动然后转到“映射”选项卡来查看列的存在,它使您能够将 CSV 文件中存在的列与输入数据集进行映射,并且从那里您将能够知道是否存在任何缺少的列,因为映射将无法满足输入文件中的列。

    如果您还没有看到任何映射,那么您需要单击导入模式以将文件列与输入数据集映射。

    要在数据库中插入 NULL 值,您可以编写一个存储过程并通过 ADF 调用它,或者您可以将数据库列的默认值保留为 NULL,因此如果该列的文件中不存在数据,然后自动将值设为 NULL。

    如果您还有其他问题,请告诉我。

    感谢和问候,

    普拉提克·索迈亚

    【讨论】:

    • 让我澄清一下。有时我的 csv 文件根本没有该列。所以,ADF 给了我一个 UserErrorInvalidColumnMappingColumnNotFound 错误。
    • 好的,但问题是 ADF 遵循数据集格式,因此您必须指定输入数据集中的列数,您的文件应该与该数字匹配。如我所见,该文件本质上是动态的,没有固定数量的列,您可以使用 ADF 的动态功能。您必须在复制活动的“翻译器”部分尝试以下表达式,您可以根据您的用例对其进行调整:@json(activity('FetchingColumnMapping').output.firstRow.ColumnMapping)
    猜你喜欢
    • 2023-03-23
    • 2020-06-25
    • 2016-10-02
    • 2017-11-02
    • 2021-06-15
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2019-05-18
    相关资源
    最近更新 更多