【问题标题】:Azure Data Factory appending large number of files having different schema from csv filesAzure 数据工厂附加大量与 csv 文件具有不同架构的文件
【发布时间】:2021-03-09 00:09:48
【问题描述】:

我们有 500 个 CSV 文件上传到 Azure 存储容器。这些文件使用 4 种不同的架构,这意味着它们几乎没有不同的列,而且有些列在所有文件中都是通用的。

我们正在使用 ADF 和架构漂移来映射接收器和源中的列,并能够编写文件。

但这不起作用,它只使用它为每个文件处理的第一个文件的架构,这会导致数据问题。请就这个问题提出建议。

我们针对三个场景运行了管道,但问题仍未解决。在所有三种情况下都会出现与下面提到的相同的问题:

1.不正确的映射,即 A 类型的 Description 和 PayClass 映射到 WBSname 和 Activity Name 2. 如果文件之一中少一列(缺失列)也会干扰映射,即一个文件没有将 Group 错误地映射到另一列的资源类型。

案例 1 源和汇没有架构漂移 在源中创建和上传所有列的空虚拟文件 带有列模式的派生表

案例 2: 源和汇的模式漂移 包含在源中创建和上传的所有列的虚拟文件 带有列模式的派生表

Case 3 : Schema Drift at Source /No Schema Drift at Sink 包含在源中创建和上传的所有列的虚拟文件 带有列模式的派生表

【问题讨论】:

    标签: azure azure-sql-database azure-data-factory azure-databricks azure-synapse


    【解决方案1】:

    这是因为单源转换读取的文件中有不同的架构。

    Schema Drift 将自动处理源的架构因来自管道的不同调用而发生更改的情况。

    在您的情况下解决此问题的方法是有 4 个来源:每个 CSV 架构类型有 1 个。您始终可以将结果重新合并到一个流中,并在最后将它们汇集在一起​​。

    如果您在此场景中使用架构漂移和 4 种不同的源类型,则数据流将自动处理发现更多列并且每次执行此数据流的管道都会更改列的情况。

    顺便说一句,您要求的这个 schemaMerge 功能今天可用于 ADF 数据流中的 Parquet 源。我们正在努力将本机 schemaMerge 添加到 CSV 源。在那之前,您需要使用我上面描述的方法。

    【讨论】:

    • 如何添加 4 个来源?
    • 在数据流设计画布上单击“源”转换块 4 次
    猜你喜欢
    • 2021-08-13
    • 1970-01-01
    • 2022-08-18
    • 2020-12-04
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 2022-08-22
    • 1970-01-01
    相关资源
    最近更新 更多