跳转至

S3 Writer

S3Writer 插件用于将数据写入 Amazon AWS S3 存储,以及兼容 S3 协议的存储,比如 MinIO。

在实现上,本插件基于 S3 官方的 SDK 2.0 编写。

配置样例

下面的配置用于从内存读取数据,并写入到指定的 S3 bucket 上。

{
  "job": {
    "setting": {
      "speed": {
        "byte": -1,
        "channel": 1
      }
    },
    "content": [
      {
        "reader": {
          "name": "streamreader",
          "parameter": {
            "column": [
              {
                "value": "DataX",
                "type": "string"
              },
              {
                "value": 19890604,
                "type": "long"
              },
              {
                "value": "1989-06-04 11:22:33",
                "type": "date"
              },
              {
                "value": true,
                "type": "bool"
              },
              {
                "value": "test",
                "type": "bytes"
              }
            ],
            "sliceRecordCount": 10
          }
        },
        "writer": {
          "name": "s3writer",
          "parameter": {
            "endpoint": "https://s3.amazonaws.com",
            "accessId": "xxxxxxxxxxxx",
            "accessKey": "xxxxxxxxxxxxxxxxxxxxxxx",
            "bucket": "test",
            "object": "upload.csv",
            "region": "ap-northeast-1",
            "encoding": "",
            "fieldDelimiter": ",",
            "writeMode": "truncate"
          }
        }
      }
    ]
  }
}

参数说明

配置项 是否必须 数据类型 默认值 描述
endpoint 是 string 无 S3 Server的 EndPoint地址,例如 s3.xx.amazonaws.com
region 是 string 无 S3 Server的 Region 地址,例如 ap-southeast-1
accessId 是 string 无 访问 ID
accessKey 是 string 无 访问 Key
bucket 是 string 无 要写入的 bucket
object 是 string 无 要写入的 object,注意事项见下
fieldDelimiter 否 char ',' 字段的分隔符
nullFormat 否 char \N 当值为空时,用什么字符表示
header 否 list 无 写入文件头信息,比如 ["id","title","url"]
maxFileSize 否 int 10000*10 单个 object 的大小,单位为 MB
encoding 否 string utf-8 文件编码格式
writeMode 否 string append 写入模式,详见 hdfswriter 中相关描述

object

上述配置中的 object 配置的虽然是 upload.csv 文件,实际上在 S3 写入的文件名会在指定的文件名后面加上 uuid 后缀, 类似 upload.csv_c0d2ca7df0444933a6f18ea76718b569。 这是用于在多通道写入的情况下,确保文件名不会重名。

类型转换

Addax 内部类型 S3 数据类型
Long int, tinyint, smallint, mediumint, int, bigint
Double float, double, decimal
String varchar, char, tinytext, text, mediumtext, longtext, year,xml
Date date, datetime, timestamp, time
Boolean bit, bool
Bytes tinyblob, mediumblob, blob, longblob, varbinary

限制说明

  1. 仅支持写入文本文件格式
  2. 暂不支持压缩