【发布时间】:2024-05-18 14:15:01
【问题描述】:
我有一个 adf 管道来从 API 获取数据并将其作为 json 存储到 blob 存储中。接下来,我使用查找从 blob 中获取相同的 json 数据。使用 foreach 和 filter 我在过滤的 json 中得到了一些特定的内容。现在我需要将此过滤后的数据插入数据库。有没有办法将过滤后的数据复制到数据库中?
【问题讨论】:
标签: azure-data-factory azure-data-factory-2
我有一个 adf 管道来从 API 获取数据并将其作为 json 存储到 blob 存储中。接下来,我使用查找从 blob 中获取相同的 json 数据。使用 foreach 和 filter 我在过滤的 json 中得到了一些特定的内容。现在我需要将此过滤后的数据插入数据库。有没有办法将过滤后的数据复制到数据库中?
【问题讨论】:
标签: azure-data-factory azure-data-factory-2
我的输入是[{\"customerId\":100001,\"cutomerName\":\"Tom\"},{\"customerId\":100002,\"cutomerName\":\"John\"},{\"customerId\":100003,\"cutomerName\":\"Tinny\"}],我可以在我的 Azure SQL 中看到 3 条记录。
这里我使用 Lookup 活动来获取一个 json 对象并通过存储过程活动将其复制到 Azure SQL 中。
"firstRow": {
"customerId": 100001,
"cutomerName": "Tom"
}
--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
在存储过程活动设置中,我们应该通过@string(activity('Lookup1').output.firstRow)将json转换为字符串。
如果您面临更复杂的 json 对象,可以参考此doc。
【讨论】:
The specified Stored Procedure is not valid...的问题你解决了吗?您是否使用存储过程活动?或者您可以发布此问题。