通过


Microsoft Fabric 数据工厂中的 JSON 格式

本文概述了如何在 Microsoft Fabric 中的数据工厂管道中配置 JSON 格式。

支持的功能

以下活动和连接器支持使用 JSON 格式作为源和目标。

类别 连接器/活动
支持的连接器 Amazon S3
Amazon S3 兼容
Azure Blob 存储
Azure Data Lake Storage Gen2
Azure 文件
文件系统
FTP
Google 云存储
HTTP
Lakehouse 文件
Oracle 云存储
SFTP
支持的活动 复制活动(源/目标)
查找操作
GetMetadata 活动
删除活动

复制活动中的 JSON 格式

若要配置 JSON 格式,请在管道复制活动的源或目标中选择连接,然后在文件格式的下拉列表中选择 JSON。 选择“设置”以进一步配置此格式。

屏幕截图显示文件格式设置。

JSON 格式作为源

在“文件格式”部分选择“设置”后,弹出的“文件格式设置”对话框中将显示以下属性。

该屏幕截图显示了 JSON 文件格式源。

  • 压缩类型:在下拉列表中选择用于读取 JSON 文件的压缩编解码器。 可以选择“无”、“bzip2”、“gzip”、“deflate”、“ZipDeflate”、“TarGzip”或“tar”。

    如果选择“ZipDeflate”作为压缩类型,则“将 zip 文件名保留为文件夹”将显示在“”选项卡的“高级”设置”下。

    • 将 zip 文件名保留为文件夹:指示是否在复制过程中以文件夹结构形式保留源 zip 文件名。
      • 如果选中此框(默认),则服务会将解压缩的文件写入 <specified file path>/<folder named as source zip file>/
      • 如果未选中此框,则服务会将解压缩的文件直接写入 <specified file path>。 请确保不同的源 zip 文件中没有重复的文件名,以避免产生冲突或出现意外行为。

    如果选择“TarGzip/tar”作为压缩类型,则“将压缩文件名保留为文件夹”将显示在“”选项卡的“高级”设置”下。

    • 将压缩文件名保留为文件夹:指示是否在复制过程中以文件夹结构形式保留源压缩文件名。
      • 如果选中此框(默认),则服务会将解压缩的文件写入 <specified file path>/<folder named as source compressed file>/
      • 如果未选中此框,则服务会将解压缩的文件直接写入 <specified file path>。 请确保不同的源文件中没有重复的文件名,以避免产生冲突或出现意外行为。
  • 压缩级别:压缩比。 可以选择“最快”或“最佳”。

    • 最快:压缩操作应尽可能快速完成,即使生成的文件未经过最佳压缩。

    • 最佳:压缩操作应进行最佳压缩,即使这将耗费更长的时间来完成。 有关详细信息,请转到压缩级别文章。

  • 编码:指定用于读取测试文件的编码类型。 从下拉列表中选择一种类型。 默认值为 UTF-8

将 JSON 格式设为目标

选择“设置”后,弹出的“文件格式设置”对话框中将显示以下属性。

该屏幕截图显示了 JSON 文件格式目标。

  • 压缩类型:在下拉列表中选择用于写入 JSON 文件的压缩编解码器。 可以选择“无”、“bzip2”、“gzip”、“deflate”、“ZipDeflate”、“TarGzip”或“tar”。

  • 压缩级别:压缩比。 可以从“最佳”或“最快”中进行选择。

    • 最快:压缩操作应尽可能快速完成,即使生成的文件未经过最佳压缩。

    • 最佳:压缩操作应进行最佳压缩,即使这将耗费更长的时间来完成。 有关详细信息,请转到压缩级别文章。

  • 编码:指定用于写入测试文件的编码类型。 从下拉列表中选择一种类型。 默认值为 UTF-8

在“目标”选项卡中的“高级”设置下,将显示以下 JSON 格式相关属性。

  • 文件模式:指定每个 JSON 文件中存储的数据的模式。 允许的值为:“对象集”(JSON 行)和“对象数组”。 默认值为“对象集”。 请参阅 JSON 文件模式部分,详细了解这些模式。

JSON 文件模式

从 JSON 文件复制数据时,复制活动可自动检测并分析以下 JSON 文件模式。 将数据写入 JSON 文件时,可以在复制活动目标上配置文件模式。

  • 类型 I:setOfObjects

    每个文件都包含单一对象、JSON Lines 或串联的对象。

    • 单一对象 JSON 示例

      {
          "time": "2015-04-29T07:12:20.9100000Z",
          "callingimsi": "466920403025604",
          "callingnum1": "678948008",
          "callingnum2": "567834760",
          "switch1": "China",
          "switch2": "Germany"
      }
      
    • JSON 行(目标的默认值)

      {"time":"2015-04-29T07:12:20.9100000Z","callingimsi":"466920403025604","callingnum1":"678948008","callingnum2":"567834760","switch1":"China","switch2":"Germany"}
      {"time":"2015-04-29T07:13:21.0220000Z","callingimsi":"466922202613463","callingnum1":"123436380","callingnum2":"789037573","switch1":"US","switch2":"UK"}
      {"time":"2015-04-29T07:13:21.4370000Z","callingimsi":"466923101048691","callingnum1":"678901578","callingnum2":"345626404","switch1":"Germany","switch2":"UK"}
      
    • 串连的 JSON 示例

      {
          "time": "2015-04-29T07:12:20.9100000Z",
          "callingimsi": "466920403025604",
          "callingnum1": "678948008",
          "callingnum2": "567834760",
          "switch1": "China",
          "switch2": "Germany"
      }
      {
          "time": "2015-04-29T07:13:21.0220000Z",
          "callingimsi": "466922202613463",
          "callingnum1": "123436380",
          "callingnum2": "789037573",
          "switch1": "US",
          "switch2": "UK"
      }
      {
          "time": "2015-04-29T07:13:21.4370000Z",
          "callingimsi": "466923101048691",
          "callingnum1": "678901578",
          "callingnum2": "345626404",
          "switch1": "Germany",
          "switch2": "UK"
      }
      
  • 类型 II:arrayOfObjects

    每个文件包含对象的数组。

    [
        {
            "time": "2015-04-29T07:12:20.9100000Z",
            "callingimsi": "466920403025604",
            "callingnum1": "678948008",
            "callingnum2": "567834760",
            "switch1": "China",
            "switch2": "Germany"
        },
        {
            "time": "2015-04-29T07:13:21.0220000Z",
            "callingimsi": "466922202613463",
            "callingnum1": "123436380",
            "callingnum2": "789037573",
            "switch1": "US",
            "switch2": "UK"
        },
        {
            "time": "2015-04-29T07:13:21.4370000Z",
            "callingimsi": "466923101048691",
            "callingnum1": "678901578",
            "callingnum2": "345626404",
            "switch1": "Germany",
            "switch2": "UK"
        }
    ]
    

表摘要

以 JSON 作为源

使用 JSON 格式时,复制活动“源”部分支持以下属性。

名称 描述 必选 JSON 脚本属性
文件格式 要使用的文件格式。 JSON 类型(datasetSettings):
Json
压缩类型 用来读取 JSON 文件的压缩编解码器。 从下列项中进行选择:

bzip2
gzip
deflate
ZipDeflate
TarGzip
tar
类型(compression 下):

bzip2
gzip
压缩
ZipDeflate
TarGzip
tar
压缩级别 压缩率。 最快
最佳
级别(compression 下):
最快
最佳
编码 用于读取测试文件的编码类型。 “UTF-8”(默认)、“不带 BOM 的 UTF-8”、“UTF-16LE”、“UTF-16BE”、“UTF-32LE”、“UTF-32BE”、“US-ASCII”、“UTF-7”、“BIG5”、“EUC-JP”、“EUC-KR”、“GB2312”、“GB18030”、“JOHAB”、“SHIFT-JIS”、“CP875”、“CP866”、“IBM00858”、“IBM037”、“IBM273”、“IBM437”、“IBM500”、“IBM737”、“IBM775”、“IBM850”、“IBM852”、“IBM855”、“IBM857”、“IBM860”、“IBM861”、“IBM863”、“IBM864”、“IBM865”、“IBM869”、“IBM870”、“IBM01140”、“IBM01141”、“IBM01142”、“IBM01143”、“IBM01144”、“IBM01145”、“IBM01146”、“IBM01147”、“IBM01148”、“IBM01149”、“ISO-2022-JP”、“ISO-2022-KR”、“ISO-8859-1”、“ISO-8859-2”、“ISO-8859-3”、“ISO-8859-4”、“ISO-8859-5”、“ISO-8859-6”、“ISO-8859-7”、“ISO-8859-8”、“ISO-8859-9”、“ISO-8859-13”、“ISO-8859-15”、“WINDOWS-874”、“WINDOWS-1250”、“WINDOWS-1251”、“WINDOWS-1252”、“WINDOWS-1253”、“WINDOWS-1254”、“WINDOWS-1255”、“WINDOWS-1256”、“WINDOWS-1257”、“WINDOWS-1258” encodingName
将 zip 文件名保留为文件夹 指示是否在复制过程中以文件夹结构形式保留源 zip 文件名。 已选择(默认)或未选择 preserveZipFileNameAsFolder
(在 compressionProperties->type 下为 ZipDeflateReadSettings):
true(默认)或 false
将压缩文件名保留为文件夹 指示是否在复制过程中以文件夹结构形式保留源压缩文件名。 已选择(默认)或未选择 保持压缩文件名为文件夹
(在 compressionProperties->type 下为 TarGZipReadSettingsTarReadSettings):
true(默认)或 false

JSON 作为目标

使用 JSON 格式时,复制活动“目标”部分支持以下属性。

名称 描述 必选 JSON 脚本属性
文件格式 要使用的文件格式。 JSON 类型(datasetSettings):
Json
压缩类型 用于写入 JSON 文件的压缩编解码器。 从下列项中进行选择:

bzip2
gzip
deflate
ZipDeflate
TarGzip
tar
类型(compression 下):

bzip2
gzip
压缩
ZipDeflate
TarGzip
tar
压缩级别 压缩率。 最快
最佳
级别(compression 下):
最快
最佳
编码 用于写入测试文件的编码类型。 “UTF-8”(默认)、“不带 BOM 的 UTF-8”、“UTF-16LE”、“UTF-16BE”、“UTF-32LE”、“UTF-32BE”、“US-ASCII”、“UTF-7”、“BIG5”、“EUC-JP”、“EUC-KR”、“GB2312”、“GB18030”、“JOHAB”、“SHIFT-JIS”、“CP875”、“CP866”、“IBM00858”、“IBM037”、“IBM273”、“IBM437”、“IBM500”、“IBM737”、“IBM775”、“IBM850”、“IBM852”、“IBM855”、“IBM857”、“IBM860”、“IBM861”、“IBM863”、“IBM864”、“IBM865”、“IBM869”、“IBM870”、“IBM01140”、“IBM01141”、“IBM01142”、“IBM01143”、“IBM01144”、“IBM01145”、“IBM01146”、“IBM01147”、“IBM01148”、“IBM01149”、“ISO-2022-JP”、“ISO-2022-KR”、“ISO-8859-1”、“ISO-8859-2”、“ISO-8859-3”、“ISO-8859-4”、“ISO-8859-5”、“ISO-8859-6”、“ISO-8859-7”、“ISO-8859-8”、“ISO-8859-9”、“ISO-8859-13”、“ISO-8859-15”、“WINDOWS-874”、“WINDOWS-1250”、“WINDOWS-1251”、“WINDOWS-1252”、“WINDOWS-1253”、“WINDOWS-1254”、“WINDOWS-1255”、“WINDOWS-1256”、“WINDOWS-1257”、“WINDOWS-1258” encodingName
文件模式 指示每个 JSON 文件中存储的数据模式。 对象集
对象数组
filePattern:
setOfObjects
对象数组 (arrayOfObjects)