使用 DataStage®中的 Amazon S3 连接器连接到 Amazon Simple Storage Service (S3) 并执行各种读写功能。
DataStage 属性
在 Stage 选项卡的 Properties 部分中,选择 Use DataStage properties 以访问 DataStage 特有的属性。 这些属性提供了更多的功能和对流执行的精细控制,类似于 "优化" 连接器。
如果选择 使用 DataStage 属性 和 .CSV 文件,列值周围必须有双引号。 如果需要任何定制,请使用连接器 文件格式属性 将文件格式更改为 定界。 然后,选择字段定界符,行定界符,引号字符和转义字符。
清除 使用 DataStage 属性 以访问 表格式 属性选择。
如果您选择使用 DataStage 属性 ,则在访问存储桶时使用正确的端点 URL。 如果您想访问不同区域的存储桶,请不要提供终端 URL。 提供终端时不支持跨区域访问。
将 Amazon S3 连接器配置为源
读取方式 的可用属性取决于您是否选择 使用 DataStage 属性。
当选择
使用 DataStage 属性 (默认)时,配置
Amazon S3 连接器的读取过程。
表 1. 正在从 已选中 "使用 DataStage 属性" 的 Amazon S3 读取数据
| 读方式 |
过程 |
| 读取单个文件 |
指定包含该文件的存储区名称,然后指定要读取的文件的名称。 |
| 读取多个文件 |
- 指定包含文件的存储区名称。
- 在 文件名 字段中,指定要读取的文件在其文件路径中必须具有的前缀。
例如,如果输入 transactions 作为前缀,那么连接器将读取 transactions 文件夹中的所有文件 (例如 transactions/january/day1.txt) 和名为 transactions.txt的文件。
|
| 列出存储区 |
无需其他配置。 |
| 列表文件 |
- 指定包含文件的存储区名称。
可选: 在 文件名 字段中,指定要读取的文件在其文件路径中必须具有的前缀。
例如,如果输入 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
| 写方式 |
过程 |
| 删除文件 |
- 指定包含文件的存储区名称,或者选择 创建存储区。
- 在 文件名 字段中,指定要删除的文件名。
|
| 写入文件 |
- 指定包含文件的存储区名称。
- 如果要创建包含要写入的文件的存储区,请将 创建存储区 选项设置为 "是"。 然后,您可以选择 Append unique ID 选项,在创建的水桶名称中附加一组唯一的字符。
- 在 文件名 字段中,指定要写入的文件名。
- 在 如果文件存在中选择三个选项之一: 不覆盖文件,失败或覆盖文件。
- 在 等待处理 部分中,可以选择 附加唯一标识 选项。 使用它来选择是否将唯一标识追加到文件名中。 设置为 "是" 时:
- 文件名将附加唯一标识,并且将针对流入阶段的每波数据写入一个新文件。
- 文件大小阈值 选项已启用。 指定文件大小阈值,以兆字节为单位。 每次大小超过指定值时,处理节点将启动新文件。
设置为 "否" 时,将在每个波次上覆盖该文件。
- 在 文件属性 中,可以执行下列操作:
- 在名称/值对列表中指定 用户元数据 ,例如 Topic=News。 使用分号分隔每个 "名称/值" 对,例如 Topic=Music;SubTopic=Pop。
- 选择 服务器端加密中的三个选项之一: 无, AES-256或 AWS KMS。
- 选择文件的 存储类 : 减少的冗余或标准。
- 指定要写入的文件的 内容类型 。 例如, text/xml 或 charset=utf-8。
- 将 定义生命周期规则 选项设置为 "是"。 然后,您可以选择仅针对文件或文件夹中的文件的 规则作用域 设备以及 时间段格式 ,以指定生命周期规则是基于天数 (从创建日期开始的天数) 还是基于特定日期。 您可以将 到期 选项设置为 "是" ,并指定该文件将存在的天数。 您可以将 归档 选项设置为 "是" ,以指定是否在 Amazon Glacier 中归档该文件,并指定归档日期。
- 在 进度消息的时间间隔中,指定连接器在将进度消息写入作业日志之前写入 Amazon S3 的数据量 (以 MB 为单位)。
- 指定 并行写程序数。
- 指定最大 Java 虚拟机 堆大小 (以兆字节为单位)。
|
配置 Amazon S3 连接器时,请清除使用 DataStage 属性。
表 4. 将数据写入 未选中 "使用 DataStage 属性" 的 Amazon S3
| 写方式 |
过程 |
| 删除文件 |
- 指定包含文件的存储区名称。
- 在 表操作 中,选择以下三个选项之一: "追加" , "替换" 或 "截断"。
- 在 文件名 字段中,指定要删除的文件名。
|
| 写入文件 |
- 指定包含文件的存储区名称,或者选择 创建存储区。
- 在 表操作 中,选择以下三个选项之一: "追加" , "替换" 或 "截断"。
- 在 表格式 中,选择以下三个选项之一 :Deltalake , Flat file 或 Iceberg。 如果选择 Flat 文件,Partitioned(分区)选项可用,它可以写入具有多个分区的文件。
- 在 文件名 字段中,指定要写入的文件名。
|
| 写入二进制数据 |
- 指定包含文件的存储区名称,或者选择 创建存储区。
- 在 表操作 中,选择以下三个选项之一: "追加" , "替换" 或 "截断"。
- 在 文件名 字段中,指定要写入的文件名。
|