【发布时间】:2021-02-25 16:13:10
【问题描述】:
我想用azure数据工厂调用一个api,解析一些json数据,然后保存到一个azure sql数据库中。
没有一次性返回所有客户数据的 API,因此一次只能为一位客户完成此操作。这是无法改变的。我有一个客户 api,它返回客户编号的基本列表,例如:
{
"customerId": 100001,
"customerId": 100002,
"customerId": 100003,
"customerId": 100004,
"customerId": 100005,
"customerId": 100006,
"customerId": 100007,
}
我在数据工厂中使用 http api 连接来检索此列表,然后使用 for each 循环逐个遍历它们并触发另一个管道。另一个管道将去获取客户数据,如下所示:
{
"customerId": 125488,
"firstName": "John",
"lastName": "Smith",
"age": 25,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021"
},
"phoneNumber": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "fax",
"number": "646 555-4567"
}
],
"history": [
{
"description": "registered",
"date": "2021-01-011T01:45:53.5736067Z"
},
{
"description": "verificationRequired",
"date": "2021-01-011T01:49:53.5736067Z"
},
{
"description": "verified",
"date": "2021-01-011T01:56:53.5736067Z"
}
]
}
我的目标是将客户 ID、名字、姓氏和年龄放入客户表中,如下所示。
create table customer (
customerId int,
firstName varchar(255),
lastName varchar(255),
age int
)
这部分我已经使用复制数据(api to sql)完成了。我的下一个目标是将电话号码放入电话号码表中,如下所示。
create table phonenumber (
customerId int,
phoneNumber varchar(255)
phoneType varchar(255)
)
我也想对客户历史重复这一点。
我在管道中使用复制数据任务将客户数据移动到客户表中,但我无法将多个输出写入不同的表。我能想到的唯一方法是为三个不同的表设置三个不同的管道,但这意味着为相同的数据调用 api 三个不同的时间。一定有更好的办法吗?
重视您的帮助 和平,阿姆吉德
【问题讨论】:
-
嗨@jxlg4 如果您需要更多信息,请告诉我。
-
嗨@jxlg4,如果我的回答对你有帮助,请接受(标记)它作为答案。这可能对其他社区成员有益。
标签: azure azure-data-factory azure-data-factory-2