Amazon S3 连接器 (DataStage)

使用 DataStage®中的 Amazon S3 连接器连接到 Amazon Simple Storage Service (S3) 并执行各种读写功能。

先决条件

创建连接。 有关指示信息,请参阅 连接到 DataStage 中的数据源以及 Amazon S3 连接

DataStage 属性

Stage 选项卡的 Properties 部分中,选择 Use DataStage properties 以访问 DataStage 特有的属性。 这些属性提供了更多的功能和对流执行的精细控制,类似于 "优化" 连接器。

如果选择 使用 DataStage 属性 和 .CSV 文件,列值周围必须有双引号。 如果需要任何定制,请使用连接器 文件格式属性 将文件格式更改为 定界。 然后,选择字段定界符,行定界符,引号字符和转义字符。

清除 使用 DataStage 属性 以访问 表格式 属性选择。

如果您选择使用 DataStage 属性 ,则在访问存储桶时使用正确的端点 URL。 如果您想访问不同区域的存储桶,请不要提供终端 URL。 提供终端时不支持跨区域访问。

Amazon S3 连接器配置为源

读取方式 的可用属性取决于您是否选择 使用 DataStage 属性

当选择使用 DataStage 属性 (默认)时,配置 Amazon S3 连接器的读取过程。
表 1. 正在从 已选中 "使用 DataStage 属性" 的 Amazon S3 读取数据
读方式 过程
读取单个文件 指定包含该文件的存储区名称,然后指定要读取的文件的名称。
读取多个文件
  1. 指定包含文件的存储区名称。
  2. 文件名 字段中,指定要读取的文件在其文件路径中必须具有的前缀。

    例如,如果输入 transactions 作为前缀,那么连接器将读取 transactions 文件夹中的所有文件 (例如 transactions/january/day1.txt) 和名为 transactions.txt的文件。

列出存储区 无需其他配置。
列表文件
  1. 指定包含文件的存储区名称。
  2. 可选:文件名 字段中,指定要读取的文件在其文件路径中必须具有的前缀。

    例如,如果输入 transactions 作为前缀,那么连接器会列出 transactions 文件夹中的所有文件 (例如 transactions/january/day1.txt) 以及名为 transactions.txt的文件。

    如果未指定文件名前缀,那么将列出存储区容器中的所有文件。

当您清除 “使用 DataStage 属性” 时,配置 Amazon S3 连接器的读取过程。

表 2. 正在从 未选中 "使用 DataStage 属性" 的 Amazon S3 读取数据
读方式 过程
读取单个文件 指定包含该文件的存储区名称,然后指定要读取的文件的名称。
读取二进制数据 指定包含该文件的存储区名称,然后指定要读取的文件的名称。
使用通配符从多个文件中读取二进制数据 在二进制数据的文件名中指定通配符。 例如,在 文件名 write test.*.gz中。

如果使用此选项,那么可以逐个读取多个二进制文件,并且每个文件都将被读取为记录。

如果选择 将文件读取到行,那么必须在 source 阶段的 输出 选项卡中提供两个列名:

  • 第一列必须是字符串数据类型。 此列用于文件名。
  • 第二列必须是二进制数据类型。 此列用于文件。 二进制列精度值必须大于或等于最大文件大小。
使用正则表达式读取多个文件 指定包含文件的存储区名称。 可以将 Java 正则表达式用于文件名。

示例:

  • ^csv_write_datatypes_h.[0-9]$
  • csv_write_datatypes_h.[^12]
使用通配符读取多个文件 指定星号 (*) 以匹配零个或多个字符。 例如,指定 *.txt 以匹配具有 .txt 扩展名的所有文件。

指定一个问号 (?) 以匹配一个字符。

示例:

  • csv_write_datatypes.*
  • ?_abc_test*

Amazon S3 连接器配置为目标

写方式 的可用属性取决于您是否选择 使用 DataStage 属性

当选择使用 DataStage 属性 (默认)时,配置 Amazon S3 连接器的写入过程。
表 3. 将数据写入 已选中 "使用 DataStage 属性" 的 Amazon S3
写方式 过程
删除文件
  1. 指定包含文件的存储区名称,或者选择 创建存储区
  2. 文件名 字段中,指定要删除的文件名。
写入文件
  1. 指定包含文件的存储区名称。
  2. 如果要创建包含要写入的文件的存储区,请将 创建存储区 选项设置为 "是"。 然后,您可以选择 Append unique ID 选项,在创建的水桶名称中附加一组唯一的字符。
  3. 文件名 字段中,指定要写入的文件名。
  4. 如果文件存在中选择三个选项之一: 不覆盖文件,失败或覆盖文件。
  5. 等待处理 部分中,可以选择 附加唯一标识 选项。 使用它来选择是否将唯一标识追加到文件名中。 设置为 "是" 时:
    • 文件名将附加唯一标识,并且将针对流入阶段的每波数据写入一个新文件。
    • 文件大小阈值 选项已启用。 指定文件大小阈值,以兆字节为单位。 每次大小超过指定值时,处理节点将启动新文件。
    设置为 "否" 时,将在每个波次上覆盖该文件。
  6. 文件属性 中,可以执行下列操作:
    • 在名称/值对列表中指定 用户元数据 ,例如 Topic=News。 使用分号分隔每个 "名称/值" 对,例如 Topic=Music;SubTopic=Pop
    • 选择 服务器端加密中的三个选项之一: 无, AES-256或 AWS KMS。
    • 选择文件的 存储类 : 减少的冗余或标准。
    • 指定要写入的文件的 内容类型 。 例如, text/xmlcharset=utf-8
    • 定义生命周期规则 选项设置为 "是"。 然后,您可以选择仅针对文件或文件夹中的文件的 规则作用域 设备以及 时间段格式 ,以指定生命周期规则是基于天数 (从创建日期开始的天数) 还是基于特定日期。 您可以将 到期 选项设置为 "是" ,并指定该文件将存在的天数。 您可以将 归档 选项设置为 "是" ,以指定是否在 Amazon Glacier 中归档该文件,并指定归档日期。
    • 进度消息的时间间隔中,指定连接器在将进度消息写入作业日志之前写入 Amazon S3 的数据量 (以 MB 为单位)。
    • 指定 并行写程序数
    • 指定最大 Java 虚拟机 堆大小 (以兆字节为单位)。

配置 Amazon S3 连接器时,请清除使用 DataStage 属性

表 4. 将数据写入 未选中 "使用 DataStage 属性" 的 Amazon S3
写方式 过程
删除文件
  1. 指定包含文件的存储区名称。
  2. 表操作 中,选择以下三个选项之一: "追加" , "替换" 或 "截断"。
  3. 文件名 字段中,指定要删除的文件名。
写入文件
  1. 指定包含文件的存储区名称,或者选择 创建存储区
  2. 表操作 中,选择以下三个选项之一: "追加" , "替换" 或 "截断"。
  3. 表格式 中,选择以下三个选项之一 :Deltalake , Flat file 或 Iceberg。 如果选择 Flat 文件,Partitioned(分区)选项可用,它可以写入具有多个分区的文件。
  4. 文件名 字段中,指定要写入的文件名。
写入二进制数据
  1. 指定包含文件的存储区名称,或者选择 创建存储区
  2. 表操作 中,选择以下三个选项之一: "追加" , "替换" 或 "截断"。
  3. 文件名 字段中,指定要写入的文件名。