使用 ADF 将 cosmos json 文档读取到表中的 1 列中

问题描述 投票:0回答:1

我想阅读 ADF 中带有副本数据的 cosmos-documents。 我知道如何映射到不同的列。 我想将整个文档放入 1 栏。 通过映射将嵌套数组读入 1 列很容易,但是是否可以将整个文档映射到 1 列?

azure-data-factory azure-cosmosdb
1个回答
0
投票

是否可以将整个文档映射到 1 列?

您无法直接将整个文档映射到单列中,您需要使用

openjson
表值函数按照以下方法解析 JSON 文本。

  • 进行 Lookup 活动,并将 cosmosdb 添加为活动中的数据集。

enter image description here

  • 然后使用 set 变量将查找活动的输出存储在名为
    json
    的字符串类型变量中。
@string(activity('Lookup1').output.value)

enter image description here

  • 在脚本活动中添加 Azure SQL 数据库的链接服务并添加以下脚本:
declare @json nvarchar(4000)=N'@{variables('Json')}';
INSERT INTO test_tgt
SELECT * FROM OPENJSON(@json)
WITH (
col1 nvarchar(max) '$' AS JSON
);

此脚本会将数据插入到已创建的表test_tgt中。

enter image description here

SQL表输出

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.