你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Data Factory 和 Synapse Analytics 中的二进制格式

适用于: Azure Data Factory Azure Synapse Analytics

提示

Microsoft Fabric 中的 Data Factory 是下一代 Azure Data Factory,具有更加简化的架构、内置人工智能和新功能。 如果不熟悉数据集成,请从Fabric数据工厂开始。 现有 ADF 工作负载可以升级到 Fabric,以跨数据科学、实时分析和报告访问新功能。

以下连接器支持二进制格式:Amazon S3Amazon S3 兼容存储Azure blobAzure Data Lake Storage Gen1Azure Data Lake Storage Gen2Azure FilesFile SystemFTP HDFSHTTP/c11> 和 SFTP

可以在 Copy activityGetMetadata 活动Delete 活动中使用二进制数据集。 使用二进制数据集时,服务不会分析文件内容,而是将其视为 as-is。

注意

在复制活动中使用二进制数据集时,只能从二进制数据集复制到二进制数据集。

数据集属性

有关可用于定义数据集的各部分和属性的完整列表,请参阅数据集一文。 本部分提供二进制数据集支持的属性列表。

属性 描述 必需
类型 数据集的 type 属性必须设置为 Binary
位置 文件的位置设置。 每个基于文件的连接器在 location 下都有其自己的位置类型和支持的属性。 请在连接器文章 -> 数据集属性部分中查看详细信息。
压缩 用来配置文件压缩的属性组。 如果需要在活动执行期间进行压缩/解压缩,请配置此部分。
类型 用于读取/写入二进制文件的压缩编解码器。
允许的值为 bzip2、gzip、deflate、ZipDeflate、Tar 或 TarGzip 。
注意:当使用“复制”操作来解压 ZipDeflate/TarGzip/Tar 文件并写入基于文件的数据存储时,默认情况下文件将解压到以下文件夹:<path specified in dataset>/<folder named as source compressed file>/,请在 preserveZipFileNameAsFolder/preserveCompressionFileNameAsFolder 上的复制操作源中设置,以控制是否保留压缩文件的名称作为文件夹结构。
水平仪 压缩率。 在 Copy 活动接收器中使用数据集时应用。
允许的值为 OptimalFastest
- 最快:压缩操作应尽可能快地完成,即使生成的文件未能达到最佳压缩效果。
- 最佳:压缩操作应达到最佳效果,即使这需要更长时间才能完成。 有关详细信息,请参阅 Compression Level(压缩级别)主题。

下面是Azure Blob Storage上的二进制数据集示例:

{
    "name": "BinaryDataset",
    "properties": {
        "type": "Binary",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder",
            },
            "compression": {
                "type": "ZipDeflate"
            }
        }
    }
}

复制活动属性

有关可用于定义活动的各部分和属性的完整列表,请参阅管道一文。 本部分提供二进制源和接收器支持的属性列表。

注意

在复制活动中使用二进制数据集时,只能从二进制数据集复制到二进制数据集。

二进制文件作为源

复制活动 *source* 节中支持以下属性。

属性 描述 必需
类型 复制活动源的 type 属性必须设置为 BinarySource
格式设置 一组属性。 请参阅下方的“二进制读取设置”表。
存储设置 有关如何从数据存储读取数据的一组属性。 每个基于文件的连接器在 storeSettings 下都有其自己支持的读取设置。 有关详细信息,请参阅连接器文章中的“复制活动属性”部分>。

下支持的formatSettings

属性 描述 必需
类型 formatSettings 的类型必须设置为“BinaryReadSettings”。
压缩属性 一组属性,指示如何为给定的压缩编解码器解压缩数据。
preserveZipFileNameAsFolder
(在 compressionProperties->type 下为 ZipDeflateReadSettings
当输入数据集配置了 ZipDeflate 压缩时适用。 指示是否在复制过程中以文件夹结构形式保留源 zip 文件名。
- 如果设置为“true(默认)”,服务会将解压缩的文件写入
- 如果设置为“false”,服务会将解压缩的文件直接写入 。 请确保不同的源 zip 文件中没有重复的文件名,以避免产生冲突或出现意外行为。
保留压缩文件名作为文件夹
(在 compressionProperties->type 下为 TarGZipReadSettingsTarReadSettings
当输入数据集配置了 TarGzip 和 / 压缩时,适用 。 指示是否在复制过程中以文件夹结构形式保留源压缩文件名。
- 如果设置为“true(默认)”,服务会将解压缩后的文件写入
- 将其设置为false时,服务会把解压缩的文件直接写入<path specified in dataset>。 请确保不同的源文件中没有重复的文件名,以避免产生冲突或出现意外行为。
"activities": [
    {
        "name": "CopyFromBinary",
        "type": "Copy",
        "typeProperties": {
            "source": {
                "type": "BinarySource",
                "storeSettings": {
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true,
                    "deleteFilesAfterCompletion": true
                },
                "formatSettings": {
                    "type": "BinaryReadSettings",
                    "compressionProperties": {
                        "type": "ZipDeflateReadSettings",
                        "preserveZipFileNameAsFolder": false
                    }
                }
            },
            ...
        }
        ...
    }
]

二进制文件作为接收器

复制活动的 *sink* 部分支持以下属性。

属性 描述 必需
类型 复制活动源的 type 属性必须设置为 BinarySink
存储设置 有关如何将数据写入到数据存储的一组属性。 每个基于文件的连接器在 storeSettings 下都有其自身支持的写入设置。 有关详细信息,请参阅连接器文章中的“复制活动属性”部分>。