ADF 将 json 数据推送到 SQL
ADF push json data to SQL
我有一个 adf 管道从 API 获取数据并将其作为 json 存储到 blob 存储。接下来,我使用查找从 blob 中获取相同的 json 数据。使用 foreach 和 filter 我在过滤的 json 中得到了一些特定的内容。现在我需要将这个过滤后的数据插入到数据库中。有没有办法将过滤后的数据复制到数据库?
更新:
输入json数组也是一样的过程。如下所示:
我的输入是 [{\"customerId\":100001,\"cutomerName\":\"Tom\"},{\"customerId\":100002,\"cutomerName\":\"John\"},{\"customerId\":100003,\"cutomerName\":\"Tinny\"}]
,我可以在我的 Azure SQL 中看到 3 条记录。
我在这里使用 Lookup activity 获取一个 json 对象并通过存储过程 activity.
将其复制到 azure SQL
- 这是我的 json 类型查询输出 activity。
"firstRow": {
"customerId": 100001,
"cutomerName": "Tom"
}
- 在 Azure sql 中,我们可以创建一个 table 和一个存储过程。
--1. create table
create table dbo.CustomerInfo(
customerId INT,
cutomerName varchar(50)
)
--2. create stored procedure
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[uspCustomerInfo] @json NVARCHAR(MAX)
AS
begin
INSERT INTO dbo.CustomerInfo(customerId,cutomerName)
SELECT customerId,cutomerName
FROM OPENJSON(@json,N'$')
WITH (
customerId INT N'$.customerId',
cutomerName VARCHAR(255) N'$.cutomerName'
);
end
在存储过程activity设置中,我们应该通过@string(activity('Lookup1').output.firstRow)
将json转换为字符串。
这是我输入的存储过程activity。
这是我的调试结果:
如果您面对更复杂的 json 对象,您可以参考这个 doc.
我有一个 adf 管道从 API 获取数据并将其作为 json 存储到 blob 存储。接下来,我使用查找从 blob 中获取相同的 json 数据。使用 foreach 和 filter 我在过滤的 json 中得到了一些特定的内容。现在我需要将这个过滤后的数据插入到数据库中。有没有办法将过滤后的数据复制到数据库?
更新:
输入json数组也是一样的过程。如下所示:
我的输入是 [{\"customerId\":100001,\"cutomerName\":\"Tom\"},{\"customerId\":100002,\"cutomerName\":\"John\"},{\"customerId\":100003,\"cutomerName\":\"Tinny\"}]
,我可以在我的 Azure SQL 中看到 3 条记录。
我在这里使用 Lookup activity 获取一个 json 对象并通过存储过程 activity.
将其复制到 azure SQL- 这是我的 json 类型查询输出 activity。
"firstRow": {
"customerId": 100001,
"cutomerName": "Tom"
}
- 在 Azure sql 中,我们可以创建一个 table 和一个存储过程。
--1. create table
create table dbo.CustomerInfo(
customerId INT,
cutomerName varchar(50)
)
--2. create stored procedure
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[uspCustomerInfo] @json NVARCHAR(MAX)
AS
begin
INSERT INTO dbo.CustomerInfo(customerId,cutomerName)
SELECT customerId,cutomerName
FROM OPENJSON(@json,N'$')
WITH (
customerId INT N'$.customerId',
cutomerName VARCHAR(255) N'$.cutomerName'
);
end
在存储过程activity设置中,我们应该通过
@string(activity('Lookup1').output.firstRow)
将json转换为字符串。这是我输入的存储过程activity。
这是我的调试结果:
如果您面对更复杂的 json 对象,您可以参考这个 doc.