Microsoft Fabric 数据工厂中的 JSON 格式

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

支持的功能

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

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

复制活动中的 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
deflate
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
将压缩文件名保留为文件夹 指示是否在复制过程中以文件夹结构形式保留源压缩文件名。 已选择(默认)或未选择 preserveCompressionFileNameAsFolder
(在 compressionProperties->type 下为 TarGZipReadSettingsTarReadSettings):
true(默认)或 false

JSON 作为目标

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

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

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

bzip2
gzip
deflate
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