如何将XML文件导入SQL Server?Azure Data Factory映射问题求助
解决Azure Data Factory导入JSON多条记录到SQL Server的问题
方案一:直接在ADF中解析嵌套JSON(无需修改Blob文件)
这是最简洁的处理方式,无需改动已存储的JSON文件,直接在复制活动中配置解析规则:
- 在复制活动的源设置里,选择JSON格式,找到JSON路径选项,填入
$.counts.count,指定解析数组内的单条记录。 - 进入映射界面,ADF会自动识别数组内的字段结构,直接将
id、direction、count、date映射到SQL Server表的对应列。 - 运行复制活动,即可将数组中所有记录批量导入SQL Server。
方案二:将Blob中的JSON转换为JSON Lines格式(单行对象)
如果需要将JSON改成你期望的单行对象格式(JSON Lines),可通过两种方式实现:
方式1:XML转JSON时直接生成JSON Lines
在XML转JSON的环节直接生成每行一个对象的格式,示例PowerShell脚本:
# 读取本地XML文件 $xmlContent = [xml](Get-Content -Path "input.xml" -Encoding UTF8) # 遍历每个<count>节点,转换为压缩JSON字符串 $jsonLines = $xmlContent.counts.count | ForEach-Object { $_ | ConvertTo-Json -Compress } # 写入JSON Lines文件 $jsonLines | Out-File -Path "output.jsonl" -Encoding UTF8 # 上传到Azure Blob容器(需提前安装Az模块) Connect-AzAccount $storageAccount = Get-AzStorageAccount -ResourceGroupName "你的资源组名" -Name "你的存储账户名" Set-AzStorageBlobContent -ContainerName "你的容器名" -File "output.jsonl" -Blob "output.jsonl" -Context $storageAccount.Context
方式2:用ADF数据流转换现有JSON文件
如果已有嵌套格式的JSON文件,用ADF数据流批量转换:
- 源:连接Blob存储,选择目标JSON文件,格式设为JSON。
- Flatten活动:添加Flatten转换,选择
counts.count作为要展开的数组列,将数组中的每个元素拆分为单独记录。 - Sink:连接Blob存储,格式选择JSON,勾选JSON Lines选项,设置目标Blob路径,运行数据流即可生成单行对象格式的JSON文件。
转换完成后,再用复制活动将JSON Lines文件导入SQL Server,ADF会自动识别每行作为一条记录。
内容的提问来源于stack exchange,提问作者tony
相关产品推荐
相关产品推荐

