这是我的情况
我有 Azure 表作为源,我的目标是 Azure SQL 数据库。 源表看起来像这样:
目标表应该如下所示:
这意味着我需要解析该字符串中的数据以获取新的列值,并根据源中的 file_name 列使用质量值。
我做的第一件事是创建一个复制管道,将数据从 Azure 表 1 对 1 传输到 Azure Data Lake Store 上的 parquet 文件,以便我可以将其用作数据流中的源。 接下来,想法是使用派生列并使用一些表达式来获取数据,但据我所知,没有表达式将此字符串视为 JSON 对象。
因此,下一个想法可能是在此过程之前添加一个步骤,我将元数据列的内容提取到 ADLS 上的单独文件中,并使用该文件作为源或查找并将其定义为 JSON 文件以开始和。这意味着我需要将 id 值添加到 JSON 文件,以便我能够将数据绑定(bind)回记录。
第一个解决方案看起来更有希望,但如果这不是一个选择,我会研究其他可能的解决方案。
谢谢
最佳答案
- 我认为您可以使用 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
关于json - 使用 Azure 数据工厂解析列中的 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66437383/