gpt4 book ai didi

json - 使用 Azure 数据工厂解析列中的 JSON 字符串

转载 作者:行者123 更新时间:2023-12-05 01:31:21 27 4
gpt4 key购买 nike

这是我的情况

我有 Azure 表作为源,我的目标是 Azure SQL 数据库。源表看起来像这样:

<表类=“s-表”><标题>id文件名元数据 <正文>1file_1.txt{"公司": { "id": 555, "名称": "A公司"}, "quality": [{"quality": 3, "file_name": "file_1.txt"}, {"质量": 4, "file_name": "未知"}]}2file_2.txt{"公司": { "id": 231, "名称": "公司 B"}, "quality": [{"quality": 4, "file_name": "file_2.txt"}, {"质量": 3, "file_name": "未知"}]}3file_3.txt{"公司": { "id": 111, "姓名": "C公司"}, "质量": [{"质量": 5, "文件名": "未知"}, {"质量": 4, "file_name": "file_3.txt"}]}

目标表应该如下所示:

<表类=“s-表”><标题>id文件名公司质量 <正文>1file_1.txt公司A32file_2.txtB公司43file_3.txtC公司4

这意味着我需要解析该字符串中的数据以获取新的列值,并根据源中的 file_name 列使用质量值。

我做的第一件事是创建一个复制管道,将数据从 Azure 表 1 对 1 传输到 Azure Data Lake Store 上的 parquet 文件,以便我可以将其用作数据流中的源。接下来,想法是使用派生列并使用一些表达式来获取数据,但据我所知,没有表达式将此字符串视为 JSON 对象。

因此,下一个想法可能是在此过程之前添加一个步骤,我将元数据列的内容提取到 ADLS 上的单独文件中,并使用该文件作为源或查找并将其定义为 JSON 文件以开始和。这意味着我需要将 id 值添加到 JSON 文件,以便我能够将数据绑定(bind)回记录。

第一个解决方案看起来更有希望,但如果这不是一个选择,我会研究其他可能的解决方案。

谢谢

最佳答案

我的调试结果如下: enter image description here

  1. 我认为您可以使用 OPENJASON 来解析 JSON 字符串。
    select t.id, A.Company,A.quality,A.file_name,A.quality_s,A.file_name_s
from dbo.test t
CROSS APPLY OPENJSON(t.metadata)
WITH (
company varchar(255) '$.Company.Name',
quality varchar(255) '$.quality[0].quality',
file_name varchar(255) '$.quality[0].file_name',
quality_s varchar(255) '$.quality[1].quality',
file_name_s varchar(255) '$.quality[1].file_name'
) A

查询结果如下:
enter image description here
然后利用数据流再做进一步的处理。当我回到我的电脑时,我会向你展示详细信息。

  • 使用 ADF 中的复制事件,将查询结果复制到 csv 中。 enter image description here

  • 使用数据流处理此 csv 文件。设置Copy事件生成的csv文件为源,数据预览如下: enter image description here

  • 使用DerivedColumn1生成新列,
    文件名:case(equalsIgnoreCase(file_name,'unknown'),file_name_s,file_name),
    QualityS:case(equalsIgnoreCase(file_name,'unknown'),quality_s,quality) enter image description here数据预览如下: enter image description here

  • 使用Select1事件来过滤我们想要的列。 enter image description here数据预览如下: enter image description here

  • 然后我们可以将结果存入 SQL 表。

  • 关于json - 使用 Azure 数据工厂解析列中的 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66437383/

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