Skip to content

S3 Reader

S3 Reader 插件用于读取 Amazon AWS S3 存储上的数据。在实现上,本插件基于 S3 官方的 SDK 2.0 编写。

同时本插件也支持读取兼容 S3 协议的存储服务,比如 MinIO

配置样例

以下样例配置用于从 S3 存储上读取两个文件,并打印出来

json
{
  "job": {
    "setting": {
      "speed": {
        "channel": 1,
        "bytes": -1
      },
      "errorLimit": {
        "record": 0,
        "percentage": 0.02
      }
    },
    "content": {
      "reader": {
        "name": "s3reader",
        "parameter": {
          "endpoint": "https://s3.amazonaws.com",
          "accessId": "xxxxxxxxxxxx",
          "accessKey": "xxxxxxxxxxxxxxxxxxxxxxx",
          "bucket": "test",
          "object": [
            "1.csv",
            "aa.csv",
            "upload_*.csv",
            "bb_??.csv"
          ],
          "column": [
            "*"
          ],
          "region": "ap-northeast-1",
          "fileFormat": "csv",
          "fieldDelimiter": ","
        }
      },
      "writer": {
        "name": "streamwriter",
        "parameter": {
          "print": true
        }
      }
    }
  }
}

参数说明

配置项是否必须数据类型默认值描述
endpointstringS3 Server的 EndPoint地址,例如 s3.xx.amazonaws.com
regionstringS3 Server的 Region 地址,例如 ap-southeast-1
accessIdstring访问 ID
accessKeystring访问 Key
bucketstring要读取的 bucket
objectlist要读取的 object,可以填写多个以及通配符方式,详见下面说明
columnlist读取的 object 的列信息,填写方式见RDBMS Readercolumn 描述
fieldDelimiterstring,读取的字段分隔符,仅支持单字符
compressstring文件压缩格式,默认不压缩
encodingstringutf8文件编码格式
writeModestringnonConflict
pathStyleAccessEnabledbooleanfalse是否启用路径访问模式

object

当指定单个 object,插件暂时只能使用单线程进行数据抽取。

当指定多个 object,插件支持使用多线程进行数据抽取。线程并发数通过通道数指定。

当指定通配符,插件尝试遍历出多个 object 信息。

例如: 指定 /* 代表读取 bucket 下所有的 object,指定 /foo/* 代表读取 foo 目录下所有的 object。

pathStyleAccessEnabled

是否启用路径访问模式,如果启用,则访问 bucket 的路径为 example.com/bucket-name,否则为 bucket-name.example.com ,详细情况可以参观 path vs virtual access

类型转换

Addax 内部类型S3 数据类型
Longint, tinyint, smallint, mediumint, int, bigint
Doublefloat, double, decimal
Stringvarchar, char, tinytext, text, mediumtext, longtext, year,xml
Datedate, datetime, timestamp, time
Booleanbit, bool
Bytestinyblob, mediumblob, blob, longblob, varbinary

限制说明

  1. 仅支持读取文本文件