我有一个有效的ADF工作流,它使用For Each循环从GET API调用中复制数据,每次都基于查找JSON文件更改查询字符串,并将单独的文件另存为JSON文件到BLOB存储中。我有一个问题-是否可以使用(id,timestamp,filename,json)结构将该数据加载到SQL表中,这意味着将每个API调用结果存储在该表中的新的单独行中?我无法将字段映射到SQL最终表,因为我无法使用简单的item()。File或获取现在存储在容器中的JSON文件的内容。
答案 0 :(得分:0)
您可以使用“存储过程”活动将json对象沉入一列。
我在这里做了一个简单的测试:
1。我使用Lookup活动从rest api获取json数组。
create table dbo.Logs (
_id bigint primary key IDENTITY(1,1),
log nvarchar(max)
);
--Strored procedure
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[spUpsertLogs]
@logs nvarchar(max)
AS
BEGIN
INSERT INTO dbo.Logs (log) values(@logs)
END
3。然后,我设置Stroed过程活动,指定Stroed过程的名称和导入参数,使用表达式@string(activity('Lookup1').output.value)
将json数组转换为String类型。
4。运行debug,将json数组复制到sql表的一列中。结果显示:
希望我的回答对您有所帮助。将JSON文档存储在SQL Server中,您可以引用here。