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