gpt4 book ai didi

json - 如何使用数据工厂将 JSON 数据从 REST API 映射到 Azure SQL

转载 作者:行者123 更新时间:2023-12-04 11:30:56 24 4
gpt4 key购买 nike

我在 Azure 数据工厂中有一个新管道。我创建了数据集,其中一个来自其余 api(公共(public)的): https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&apikey=demo

然后我创建了一个 azure sql 表,其中包含屏幕截图中显示的列

enter image description here

问题是我不知道如何进行映射,因为这是一个复杂的 JSON 对象,我受到映射设计器的限制:

如何映射日期?

f

最佳答案

我倾向于使用 ELT 方法来处理这些问题,通过 Web 任务调用 REST API,并将 JSON 存储在 SQL 表中,然后使用 OPENJSON 等 SQL 函数分解 JSON。 。

管道示例:

Example ADF pipeline

使这种方法发挥作用的关键是存储过程参数的表达式。这将从 Web 任务中获取整个 JSON 输出并将其传递到过程中。这是一个简单的日志记录过程,它将记录插入到日志记录表中:

@string(activity('Web1').output)

我登录到一个表,然后分解 JSON,或者您可以直接在存储的过程参数上使用 OPENJSON,例如

--INSERT INTO ...
SELECT
CAST( [key] AS DATE ) AS timeSeriesDate,
JSON_VALUE ( x.[value], '$."1. open"' ) AS [open],
JSON_VALUE ( x.[value], '$."2. high"' ) AS [high],
JSON_VALUE ( x.[value], '$."3. low"' ) AS [low],
JSON_VALUE ( x.[value], '$."4. close"' ) AS [close],
JSON_VALUE ( x.[value], '$."5. volume"' ) AS [volume]

FROM dbo.myLog
CROSS APPLY OPENJSON(logDetails , '$."Time Series (Daily)"' ) x
--WHERE logId = 23333;

我的结果:

My results

关于json - 如何使用数据工厂将 JSON 数据从 REST API 映射到 Azure SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60300293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com