在复制活动中配置 Azure Data Lake Storage Gen2
本文概述了如何使用数据管道中的复制活动从/向 Azure Data Lake Storage Gen2 复制数据。
支持的格式
Azure Data Lake Storage Gen2 支持以下文件格式。 请参阅每一篇介绍基于格式的设置的文章。
支持的配置
有关复制活动下每个选项卡的配置,请分别转到以下各部分。
常规
若要配置“常规”设置选项卡,请参阅“常规”设置指导。
源
复制活动的“源”选项卡下的 Azure Data Lake Storage Gen2 支持以下属性。
需要以下属性:
数据存储类型:选择“外部”。
连接:从连接列表中选择 Azure Data Lake Storage Gen2 连接。 如果不存在连接,则选择“新建”来创建新的 Azure Data Lake Storage Gen2 连接。
连接类型:选择“Azure Data Lake Storage Gen2”。
文件路径类型:可以选择“文件路径”、“通配符文件路径”或“文件列表”作为文件路径类型。 其中每个设置的配置为:
文件路径:如果选择此类型,则可以从前面指定的文件系统或文件夹/文件路径复制数据。
通配符文件路径:如果选择此类型,请指定文件系统和通配符路径。
文件系统:Azure Data Lake Storage Gen2 文件系统名称。
通配符路径:在指定的文件系统下指定包含通配符的文件夹或文件路径,以筛选源文件夹或文件。
允许的通配符为:
*
(匹配零个或更多字符)和?
(匹配零个或单个字符)。 如果文件夹名内包含通配符或此转义字符,请使用^
进行转义。 如需更多示例,请转到文件夹和文件筛选器示例。通配符文件夹路径:在指定的文件系统下指定包含通配符的文件夹路径,以筛选源文件夹。
通配符文件名:在指定的文件系统和文件夹路径(或通配符文件夹路径)下指定包含通配符的文件名,用于筛选源文件。
文件列表:指示你想要复制给定的文件集。 将“文件夹路径”和“文件列表路径”指定为指向包含要复制的文件列表的文本文件,每行一个文件,即路径的相对路径。 如需更多示例,请转到文件列表示例。
文件夹路径:指定指定文件系统下文件夹的路径。 它是必需的。
文件列表路径:指定包含要复制的文件列表的文本文件的路径。
递归:指定是要从子文件夹中以递归方式读取数据,还是只从指定的文件夹中读取数据。 请注意,选中“以递归方式”,并且目标是基于文件的存储时,不会在目标上复制或创建空的文件夹或子文件夹。 默认会选中此属性,但在配置“文件列表的路径”时不会应用此属性。
文件格式:从下拉列表中选择适用的文件格式。 选择“设置”以配置文件格式。 有关不同文件格式的设置,请参阅支持格式的文章了解详细信息。
在“高级”下,可以指定以下字段:
按上次修改日期筛选:根据上次修改日期筛选文件。 将文件路径类型配置为文件列表时,此属性不适用。
开始时间(UTC):如果文件的上次修改时间不早于配置的时间,则会选择这些文件。
结束时间(UTC):如果文件的上次修改时间早于配置的时间,则选择这些文件。
如果“开始时间(UTC)”具有日期/时间值,但“结束时间(UTC)”为 NULL,意味着将选中“上次修改时间”属性不早于该日期/时间值的文件。 如果“结束时间(UTC)”具有日期/时间值,但“开始时间(UTC)”为 NULL,则意味着将选中“上次修改时间”属性早于该日期/时间值的文件。 属性可以为 NULL,这意味着不会向数据应用任何文件属性筛选器。
启用分区发现:指定是否从文件路径分析分区,并将它们添加为附加的源列。 默认情况下,它处于未选中状态,而且在使用二进制文件格式时不受支持。
分区根路径:当启用了分区发现时,请指定绝对根路径,以便将已分区文件夹读取为数据列。
如果未指定,默认情况下,
- 在源上使用文件路径或文件列表时,分区根路径是你已配置的路径。
- 使用通配符文件夹筛选器时,分区根路径是第一个通配符前的子路径。
例如,假设将路径配置为
root/folder/year=2020/month=08/day=27
:- 如果将分区根路径指定为
root/folder/year=2020
,则除了文件内的列外,复制活动还会生成另外两列 month 和 day,其值分别为“08”和“27”。 - 如果未指定分区根路径,则不会生成额外的列。
最大并发连接数:此属性指示活动运行期间与数据存储建立的并发连接的上限。 仅在要限制并发连接时指定一个值。
其他列:添加其他数据列以存储源文件的相对路径或静态值。 后者支持表达式。
目标
复制活动的“目标”选项卡下的 Azure Data Lake Storage Gen2 支持以下属性。
需要以下属性:
- 数据存储类型:选择“外部”。
- 连接:从连接列表中选择 Azure Data Lake Storage Gen2 连接。 如果不存在连接,则选择“新建”来创建新的 Azure Data Lake Storage Gen2 连接。
- 连接类型:选择“Azure Data Lake Storage Gen2”。
- 文件路径:选择“浏览”以选择要复制的文件,或手动填写路径。
- 文件格式:从下拉列表中选择适用的文件格式。 选择“设置”以配置文件格式。 有关不同文件格式的设置,请参阅支持格式的文章了解详细信息。
在“高级”下,可以指定以下字段:
复制活动:定义以基于文件的数据存储中的文件为源时的复制行为。 可以从下拉列表中选择行为。
- 平展层次结构:源文件夹中的所有文件都位于目标文件夹的第一级别。 目标文件具有自动生成的名称。
- 合并文件:将源文件夹中的所有文件合并到一个文件中。 如果指定了文件名,则合并文件的名称为指定名称。 否则,它是自动生成的文件名。
- 保留层次结构:将文件层次结构保留到目标文件夹中。 从源文件到源文件夹的相对路径与从目标文件到目标文件夹的相对路径相同。
最大并发连接:活动运行期间与数据存储建立的并发连接的上限。 仅在要限制并发连接时指定一个值。
块大小 (MB):指定写入 Azure Data Lake Storage Gen2 的数据块大小 (MB)。 有关详细信息,请参阅块 blob。 允许的值介于 4 MB 到 100 MB 之间。
默认情况下,块大小由源存储类型和数据自动确定。 以非二进制格式复制到 Azure Data Lake Storage Gen2 时,默认块大小为 100 MB,这样最多能容纳大约 4.75 TB 数据。 数据不大时,块大小可能并非最佳。 可以显式指定块大小,同时确保块大小 (MB)*50000 足以存储数据,否则复制活动运行将失败。
元数据:在复制到目标时设置自定义元数据。
metadata
数组下的每个对象都表示一个额外的列。name
定义元数据键名称,value
表示该键的数据值。 如果使用了保留属性功能,则指定的元数据会与源文件元数据联合,或者会被其覆盖。允许的数据值为:
$$LASTMODIFIED
:保留的变量指示存储源文件的上次修改时间。 仅适用于二进制格式的基于文件的源。- 表达式
- 静态值
映射
对于“映射 ”选项卡配置,请转到“映射”选项卡下的“配置映射”。如果选择“二进制”作为文件格式,则不支持映射。
设置
对于“设置”选项卡配置,请转到“设置”选项卡下的“配置其他设置”。
表摘要
下表包含有关 Azure Data Lake Storage Gen2 中复制活动的详细信息。
源信息
名称 | 描述 | 值 | 必选 | JSON 脚本属性 |
---|---|---|---|---|
数据存储类型 | 你的数据存储类型。 | 外部 | 是 | / |
Connection | 与源数据存储的连接。 | < Azure Data Lake Storage Gen2 连接> | 是 | 连接 |
连接类型 | 你的连接类型。 选择 Azure Data Lake Storage Gen2。 | Azure Data Lake Storage Gen2 | 是 | / |
文件路径类型 | 要使用的文件路径类型。 | • 文件路径 • 通配符文件夹路径、通配符文件名 • 文件列表 |
是 | • folderPath、fileName、fileSystem • wildcardFolderPath、wildcardFileName • folderPath、fileName、fileListPath |
Recursively | 指示是要从子文件夹中以递归方式读取数据,还是只从指定的文件夹中读取数据。 请注意,选中“以递归方式”,并且目标是基于文件的存储时,不会在目标上复制或创建空的文件夹或子文件夹。 配置“文件列表的路径”时,此属性不适用。 | 已选择(默认)或未选择 | 否 | recursive |
按上次修改时间筛选 | 将筛选在 [开始时间、结束时间) 范围内具有上次修改时间的文件,以便进一步处理。 该时间将以 yyyy-mm-ddThh:mm:ss.fffZ 格式应用于 UTC 时区。 可以跳过此属性,这意味着不会应用任何文件属性筛选器。 将文件路径类型配置为文件列表时,此属性不适用。 |
datetime | 否 | modifiedDatetimeStart modifiedDatetimeEnd |
启用分区发现 | 指示是否从文件路径分析分区,并将它们添加为附加的源列。 | 选中或未选中(默认) | 否 | enablePartitionDiscovery: true 或 false(默认) |
分区根路径 | 启用分区发现时,请指定绝对根路径,以便将已分区文件夹读取为数据列。 | <你的分区根路径> | 否 | partitionRootPath |
最大并发连接数 | 活动运行期间与数据存储建立的并发连接的上限。 仅在要限制并发连接时指定一个值。 | <最大并发连接数> | 否 | maxConcurrentConnections |
其他列 | 添加其他数据列以存储源文件的相对路径或静态值。 后者支持表达式。 | • 姓名 • 值 |
否 | additionalColumns: • 名称 • 值 |
目标信息
名称 | 描述 | 值 | 必选 | JSON 脚本属性 |
---|---|---|---|---|
数据存储类型 | 你的数据存储类型。 | 外部 | 是 | / |
Connection | 与目标数据存储的连接。 | < Azure Data Lake Storage Gen2 连接> | 是 | 连接 |
连接类型 | 你的连接类型。 选择 Azure Data Lake Storage Gen2。 | Azure Data Lake Storage Gen2 | 是 | / |
文件路径 | 目标数据的文件路径。 | < 文件路径 > | 是 | folderPath、fileName、fileSystem |
复制行为 | 定义以基于文件的数据存储中的文件为源时的复制行为。 | • 平展层次结构 • 合并文件 • 保留层次结构 |
否 | copyBehavior - FlattenHierarchy - MergeFiles - PreserveHierarchy |
最大并发连接数 | 活动运行期间与数据存储建立的并发连接的上限。 仅在要限制并发连接时指定一个值。 | <最大并发连接数> | 否 | maxConcurrentConnections |
块大小 (MB) | 将数据写入 Azure Data Lake Storage Gen2 时,指定块大小(以 MB 为单位)。 允许的值介于 4 MB 到 100 MB 之间。 | <块大小> | 否 | blockSizeInMB |
元数据 | 在复制到目标时设置自定义元数据。 | • $$LASTMODIFIED • 表达式 • 静态值 |
否 | metadata |