Lui*_*cia 5 json azure azure-data-factory
我在 azure 数据工厂中有一条新管道。我创建了数据集,一个来自其余 api(公共的):https : //www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&apikey=demo
然后我创建了一个 azure sql 表,其中的列显示在屏幕截图中
问题是我不知道如何进行映射,因为这是一个复杂的 JSON 对象,我对 Mapping Designer 的限制:
我如何映射日期?
我倾向于使用 ELT 方法来处理这些问题,通过 Web 任务调用 REST API,并将 JSON 存储在 SQL 表中,然后使用OPENJSON等 SQL 函数分解 JSON 。
管道示例:
让这种方法发挥作用的关键是存储过程参数的表达式。这将从 Web 任务中获取整个 JSON 输出并将其传递到过程中。这是一个简单的日志记录过程,它将记录插入日志表中:
@string(activity('Web1').output)
Run Code Online (Sandbox Code Playgroud)
我登录到一个表,然后粉碎 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;
Run Code Online (Sandbox Code Playgroud)
我的结果:
归档时间: |
|
查看次数: |
1352 次 |
最近记录: |