Azure 数据工厂在一列中映射 2 列
Posted
技术标签:
【中文标题】Azure 数据工厂在一列中映射 2 列【英文标题】:Azure Data Factory mapping 2 columns in one column 【发布时间】:2018-12-23 11:08:25 【问题描述】:有人可以帮我解决连接两列(即我的文本文件中的first name
和last name
)并将这两列合并到我的Azure SQL 数据库中的一个名称列 时出现的错误吗作为 Azure 数据工厂 中的 sink
,另一个问题是我想为 male 选择 M
或 F
列的第一个字母和女性分别从源文本文件中,并在 Azure 数据工厂管道enter image description here的我的性别列中将其更改为一个字母 M 或 F?
我的表名是 [dbo].[Contact],在应用此过程后出现此错误,并且我在文本文件中的列名之间有空格,例如名字和姓氏,是否会产生问题也是?
enter image description here
【问题讨论】:
请参考我的更新答案并按照我的步骤在您的数据库中配置存储过程。任何问题,请告诉我。只需在我的答案中添加评论即可。 您可以投票并标记答案以供他人参考。 我已经标记了我需要更多的声誉来反映投票,我确实为你投票,感谢所有的帮助。 【参考方案1】:根据文档:复制活动中的架构映射,架构映射支持合并列。
作为解决方法,我建议在您的 sql server sink 中配置 sql server stored procedure
。它可以将正在复制的数据与现有数据合并。
请按照doc中的步骤操作:
第 1 步:配置输出数据集:
第 2 步:在复制活动中配置 Sink 部分,如下所示:
第 3 步:在您的数据库中,定义与 sqlWriterTableType 同名的表类型。请注意,表类型的架构应与输入数据返回的架构相同。
CREATE TYPE [dbo].[MarketingType] AS TABLE(
[FirstName] [varchar](256) NOT NULL,
[LastName] [varchar](256) NOT NULL,
[Gender] [varchar](256) NOT NULL
)
第 4 步:在您的数据库中,定义与 SqlWriterStoredProcedureName 同名的存储过程。它处理来自您指定源的输入数据,并合并到输出表中。请注意,存储过程的参数名称应与数据集中定义的“tableName”相同。
Create PROCEDURE spOverwriteMarketing @Marketing [dbo].[MarketingType] READONLY
AS
BEGIN
MERGE [dbo].[jay] AS target
USING @Marketing AS source
ON (1=1)
WHEN NOT MATCHED THEN
INSERT (name, gender)
VALUES (source.FirstName + ' ' + source.LastName, UPPER(left(source.Gender,1)));
END
输出截图:
希望对你有帮助。
【讨论】:
你能帮忙吗***.com/questions/66739714/…以上是关于Azure 数据工厂在一列中映射 2 列的主要内容,如果未能解决你的问题,请参考以下文章
在映射数据流(Azure 数据工厂)内的表达式函数中创建动态 Json