【问题标题】:How to append a string value in the column value in Copy Activity in ADF如何在 ADF 中复制活动的列值中附加字符串值
【发布时间】:2021-07-20 05:32:57
【问题描述】:

在下面的复制活动屏幕截图中,我正在尝试创建一个新列(PartitionKey),其值与 DocType 列相同。我还想插入一个字符串值和 Doctype 值。像 concat("recoding",$.Doctype) 作为 PartitionKey 的值。我无法这样做,我想知道是否可以这样做。

我想要这个,因为我在某些不存在 DocType 键的项目上出现错误。我想避免这种情况。

我收到的错误消息如下,我不确定该错误发生在哪个项目上,因为有数千个项目被复制。

ErrorCode=DuplicateColumnNotFound,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=,Source=,''Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Column 在源数据中找不到要复制的名称“$.DocType”。 请检查源列名

【问题讨论】:

    标签: azure-data-factory-2


    【解决方案1】:

    抱歉,这不能通过复制数据活动来完成。除非您使用数据库作为源。如果您使用数据库作为源,那么您可以使用自定义 SQL 来派生字段。

    另一种选择是使用数据流,您可以创建派生字段。

    解释见此链接:

    https://docs.microsoft.com/en-us/azure/data-factory/data-flow-derived-column

    【讨论】:

    • 什么数据库?数据库?我不能使用映射数据流,因为在数据流中架构不匹配,而且如果值没有出现在示例文档中,它也不会采用所有值
    • 是 DB= 数据库。如果你有一个 Azure SQL 数据库或任何其他数据库,你可以定义你想要的任何字段,但似乎你没有使用数据库......如果你愿意,你可以将文件/数据加载到 Azure SQLDB作为一种暂存区,然后从 Azure SQLDB 复制活动到您想要的任何接收器,这样做您可以在 SQL 中定义派生列。如果您想查看此示例,我可以编辑我的答案,但前提是您有兴趣。告诉我。
    • 我使用 Cosmos Db SQL API 作为我的源数据库,在复制活动中,您可以基于另一个现有列添加额外的列,但您不能向其附加任何 concat 任何字符串值。另一种解决方案是使用映射数据流,在那里我可以使用派生列,但在这种情况下,我不会在接收器中获取所有列,因为数据流只采用第一个示例列表中的列。如果您有任何其他方法,请告诉我
    • 除非您使用数据库源,否则无法在 Copy Activity 中完成(不是 DB API...除非您在那里派生列,不确定是否可行)
    猜你喜欢
    • 1970-01-01
    • 2022-09-02
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 2022-06-29
    • 1970-01-01
    • 2021-09-05
    相关资源
    最近更新 更多