在复制活动中配置 SFTP

本文概述了如何使用数据管道中的复制活动从 SFTP 复制数据。

支持的格式

SFTP 支持以下文件格式。 有关基于格式的设置,请参阅每篇文章。

支持的配置

有关复制活动下每个选项卡的配置,请分别转到以下部分。

常规

请参阅 常规 设置 指南,以配置 常规 设置选项卡。

转到“源”选项卡以配置复制活动源。 有关详细配置,请参阅以下内容。

显示源选项卡和属性列表的屏幕截图。

需要以下三个属性

  • 数据存储类型:选择“外部”

  • 连接:从连接列表中选择 SFTP 连接。 如果不存在连接,则通过选择 “新建”创建新的 SFTP 连接。

  • 文件路径类型:根据您希望读取文件的方式,从 文件路径通配符文件路径文件列表 中选择。

    • 文件路径:如果选择此类型,请指定源文件路径。 可以选择 浏览 以选择源文件或手动输入文件路径。

    • 通配文件路径:如果选择此类型,请指定 通配符路径 来筛选源文件夹或文件。

      允许的通配符为:*(匹配零个或多个字符)和 ?(匹配零个或一个字符)。 如果文件夹名内包含通配符或此转义字符,请使用 ^ 进行转义。 有关更多示例,请转到 文件夹和文件筛选器示例

      显示通配符文件路径的 屏幕截图。

      通配符文件夹路径:指定包含通配符的文件夹路径以筛选源文件夹。

      通配符文件名:在给定的文件夹路径/通配符文件夹路径下使用通配符来指定文件名,以便筛选源文件。

    • 文件列表:如果选择此类型,请指定 文件夹路径文件列表路径 以指示复制给定文件集。 指向包含要复制的文件列表的文本文件,每行一个文件。 如需更多示例,请转到文件列表示例

      • 文件夹路径:指定源文件夹的路径。 它是必需的。

      • 文件列表路径:指定包含要复制的文件列表的文本文件的路径

        显示文件列表的屏幕截图。

  • 文件格式:从下拉列表中选择应用的文件格式。 选择“设置”以配置文件格式。 有关不同文件格式的设置,请参阅支持的格式中的文章了解详细信息。

在“高级”下,可以指定以下字段:

  • 按上次修改进行筛选:根据指定的上次修改日期筛选文件。 将文件路径类型配置为 文件列表时,此属性不适用。

    • 开始时间(UTC):文件会被选中,如果其上次修改时间大于或等于配置的时间。
    • 结束时间(UTC):若文件的上次修改时间小于配置的时间,则将其选中。

    开始时间(UTC) 具有日期/时间值,而 结束时间(UTC) 为 NULL 时,这意味着选择了那些上次修改属性大于或等于该日期/时间值的文件。 当 结束时间(UTC) 具有日期/时间值,但 开始时间(UTC) 为 NULL 时,表示上次修改的属性小于所选日期时间值的文件。 属性可以为 NULL,这意味着不会对数据应用任何文件属性筛选器。

  • 禁用分块:分块旨在优化性能,并在底层进行处理。 此选项允许禁用每个文件中的分块。 从 SFTP 复制数据时,服务会先尝试获取文件长度,然后将文件划分为多个部分,并并行读取它们。 指定 FTP 服务器是支持获取文件长度还是要从某个偏移量读取。 默认情况下,它处于未选中状态。

  • 启用分区发现:指定是否从文件路径分析分区并将其添加为额外的源列。 默认情况下,它未选中,在使用二进制文件格式时不受支持。

    • 分区根路径:启用分区发现后,请指定绝对根路径,以便将分区文件夹读取为数据列。
      如果未指定,则默认情况下,

      • 使用源上的文件路径或文件列表时,分区根路径是你配置的路径。
      • 使用通配符文件夹筛选器时,分区根路径是第一个通配符之前的子路径。

      例如,假设将路径配置为 root/folder/year=2020/month=08/day=27

      • 如果将分区根路径指定为 root/folder/year=2020,复制活动将在文件内的列之外,另外生成两个名为“月”和“日”的列,并分别赋值为“08”和“27”。
      • 如果未指定分区根路径,则不会生成额外的列。

      显示“启用分区发现”的屏幕截图。

  • 最大并发连接:此属性指示活动运行期间与数据存储建立的并发连接上限。 仅当想要限制并发连接时,才指定一个值。

  • 其他列:添加额外的数据列来存储源文件的相对路径或静态值。 后者支持表达式。 有关详细信息,请转到在复制期间添加其他列

目的地

转到“目标”选项卡,配置复制活动目标。 有关详细配置,请参阅以下内容。

显示目标选项卡和属性列表的屏幕截图。

  • 数据存储类型选择 外部
  • 连接:从连接列表中选择 SFTP 连接。 如果不存在连接,则通过选择 “新建”创建新的 SFTP 连接。
  • 文件路径:指定要将数据写入的文件路径。 可以选择 浏览 以选择源文件或手动输入文件路径。
  • 文件格式:从下拉列表中选择应用的文件格式。 选择“设置”以配置文件格式。 有关不同文件格式的设置,请参阅支持的格式中的文章了解详细信息。

在“高级”下,可以指定以下字段:

  • 复制行为:当源为文件存储中的文件时,指定复制行为。 从以下属性中进行选择。

    • 平展层次结构:源文件夹中的所有文件都位于目标文件夹的第一级。 目标文件具有自动生成的名称。
    • 合并文件:将所有文件从源文件夹合并到一个文件。 如果指定了文件名,则合并的文件名为指定名称。 否则,它是自动生成的文件名。
    • 保留层次结构(默认值):保留目标文件夹中的文件层次结构。 源文件到源文件夹的相对路径与目标文件夹的相对路径相同。
    • 添加动态内容:选择此选项以使用动态内容指定复制行为。
  • 最大并发连接:活动运行期间与数据存储建立的并发连接上限。 仅当想要限制并发连接时,才指定一个值。

  • 操作超时(分钟):指定将每个区块写入 SFTP 服务器的超时时间。 默认值为 60 分钟。

  • 使用临时文件上传:指定是上传到临时文件还是重命名临时文件,还是直接写入目标文件夹或文件位置。 默认情况下,它处于选中状态,服务会先写入临时文件,然后在上传完成后对其进行重命名。

    此序列有助于(1)避免在其他进程也写入同一文件时可能导致文件损坏的冲突,并且(2)确保在传输过程中文件的原始版本依然存在。 如果 SFTP 服务器不支持重命名操作,请禁用此选项,并确保对目标文件没有并发写入。

    提示

    如果在将数据写入 SFTP 时收到错误“UserErrorSftpPathNotFound”、“UserErrorSftpPermissionDenied”或“SftpOperationFail”错误,并且所使用的 SFTP 用户确实具有适当的权限,请检查 SFTP 服务器是否支持文件重命名操作是否正常工作。 如果不支持,请禁用“使用临时文件上传”选项,然后重试

映射

有关 映射 选项卡配置,请参阅 映射选项卡下配置映射。如果选择“二进制”作为文件格式,则不支持映射。

设置

对于“设置”选项卡配置,请转到“设置”选项卡下的“配置其他设置”

表摘要

下表包含有关 SFTP 中复制活动的详细信息。

名字 描述 必需 JSON 脚本属性
数据存储类型 你的数据存储类型。 外部 是的 /
连接 SFTP 与源数据存储的连接。 <SFTP 连接> 是的 connection
文件路径类型 用于获取源数据的文件路径类型。 文件路径
通配符文件路径
文件列表
是的 /
文件路径 源文件的路径。 < 文件路径> 是的 文件名
folderPath
通配符路径 源文件的通配符路径。 <通配符文件路径> 对于通配符文件名称为“是” wildcardFolderPath
wildcardFileName
文件夹路径 源文件夹的路径。 <文件夹路径> 是的 folderPath
文件列表的路径 指示复制给定的文件集。 指向包含要复制的文件列表的文本文件,每行一个文件。 <文件列表路径> fileListPath
文件格式 源数据的文件格式。 有关不同文件格式的信息,请参阅支持的格式中的文章了解详细信息。 / 是的 /
按上次修改时间筛选 筛选了在 [开始时间, 结束时间] 范围内具有上次修改时间的文件,以便进一步处理。 该时间将以 yyyy-mm-ddThh:mm:ss.fffZ 格式应用于 UTC 时区。 可以跳过这些属性,这意味着没有应用文件属性筛选器。 将文件路径类型配置为文件列表时,此属性不适用。 datetime modifiedDatetimeStart
modifiedDatetimeEnd
禁用分块 分块旨在优化性能,并在底层进行处理。 此选项允许禁用每个文件中的分块。 从 SFTP 复制数据时,服务会先尝试获取文件长度,然后将文件划分为多个部分,并并行读取它们。 指定 FTP 服务器是支持获取文件长度还是要从某个偏移量读取。 选中或未选中(默认) disableChunking:
true 或 false (默认值)
启用分区发现 指示是否从文件路径分析分区,并将其添加为额外的源列。 选中或未选中(默认) enablePartitionDiscovery:
true 或 false (默认值)
分区根路径 绝对分区根路径,以便将分区文件夹读取为数据列。 在启用分区发现时指定它。 < 分区根路径 > partitionRootPath
最大并发连接数 活动运行期间与数据存储建立的并发连接的上限。 仅当想要限制并发连接时,才指定一个值。 < 并发连接上限 >
(整数)
maxConcurrentConnections
其他列 添加额外的数据列来存储源文件的相对路径或静态值。 后者支持表达式。 有关详细信息,请转到在复制期间添加其他列 •名字
•价值
additionalColumns:
•名字
•价值

目的地

名字 描述 必需 JSON 脚本属性
数据存储类型 你的数据存储类型。 外部 是的 /
连接 与源 SFTP 的连接。 <你的连接> 是的 connection
文件路径 目标数据的文件路径。 目标的文件路径 是的 folderPath
文件名
文件格式 源数据的文件格式。 关于不同文件格式的信息,请参阅 支持格式 中的文章,以获取详细信息。 / 是的 /
复制行为 定义以基于文件的数据存储中的文件为源时的复制行为。 • 扁平化层级结构
• 合并文件
• 保留层次结构
copyBehavior
- FlattenHierarchy
- MergeFiles
- 保持层级结构
最大并发连接数 活动运行期间与数据存储建立的并发连接的上限。 仅当想要限制并发连接时,才指定一个值。 < 最大并发连接数 > maxConcurrentConnections
操作超时时间(分钟) 将每个区块写入 SFTP 服务器的超时时间。 <操作超时>
默认值为 60
operationTimeout
使用临时文件上传 指示是否上传临时文件并重命名。 如果 SFTP 服务器不支持重命名操作,请禁用此选项。 已选择(默认)或未选择 useTempFileRename:
true (默认值) 或 false