Azure数据工厂映射ADFv2

时间:2020-09-29 15:42:14

标签: azure-data-factory

ADFv2的“复制活动”中95%的映射都是直接一对一映射。但是,在某些情况下,我需要将源“ MIDDLE_INIT”列映射到必须为“字符串”的接收器列 SUBSTR(PS_NAMES.MIDDLE_NAME,1,1)。可以在ADFv2复制活动中完成此操作吗? (政府云没有数据流,因此我必须使用复制活动)。 谢谢 迈克

2 个答案:

答案 0 :(得分:1)

不,复制活动无法做到这一点。

正如wBob的评论一样,您可以将数据从源复制到表类型,并在存储过程中转换SUBSTR(PS_NAMES.MIDDLE_NAME,1,1)。然后将此表用作源,复制到您的接收器。

答案 1 :(得分:1)

如果您的体系结构中具有Azure SQL数据库,则可以使用它的内置功能TKTID=000 SITEID=NYL01101 VIPPASS=123456 TKTSOW=TEST OPENROWSET将其直接用于从数据湖中分解JSON。这是一个简单的示例:

OPENJSON

详细了解OPENJSON here

这是另一个简单的将JSON分解的示例,我想与您的相似。注意,在此我创建了JSON,但是您需要使用上述技术将其导入:

SELECT *
FROM OPENROWSET (
    BULK 'raw/parliament/2020/09/25/members.json',
    DATA_SOURCE = 'somejsonstore',
    SINGLE_CLOB
) x
CROSS APPLY OPENJSON ( BulkColumn, '$.result.items' )
WITH (
    fullName            NVARCHAR(MAX)       '$.fullName._value',
    gender              NVARCHAR(100)       '$.gender._value',
    party               NVARCHAR(100)       '$.party._value'
)

如果您的体系结构中没有Azure SQL DB,则使用您拥有的内容进行回写,例如,您是否具有Databricks,ADLA,Azure Synapse工作区,Azure Functions,Logic Apps等?