# MinIO Sink 组件使用说明
# 组件说明
MinIO Sink 用于将数据写入到 MinIO(兼容 S3 API 的对象存储)。
# 配置项说明
| 配置名称 | 数据类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
| 节点名称 | String | 是 | MinIO | 当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。确保唯一性。 |
| 节点编码 | String | 是 | 自动生成 | 当前创建的节点编码,以此标识此组件,由用户自定义且不可为空。命名可包含字母、数字、下划线。确保唯一性。 |
| 自定义文件名 | Boolean | 否 | - | 否:使用系统默认文件名; 是:需要设置“文件表达式”、“文件名时间格式”。 |
| 文件表达式 | String | 是 | ${transactionId} | 设置文件名的表达式。 |
| 文件名时间格式 | String | 是 | yyyy.MM.dd | 设置文件名的带时间的格式。 |
| 选择数据源 | String | 是 | - | 从下拉选项中选择列出的当前项目已经关联的数据源。 |
| 选择文件 | String | 是 | - | 从列表中选择对象/文件。 |
| 文件路径 | String | 是 | - | 源文件路径。可以是完整路径,比如:/home/dws/infile/orderinfo.xls,也可以是不带具体文件名的路径,比如:/home/dws/infile/,然后通过"文件过滤正则表达式"进行过滤。 |
| 文件类型 | String | 是 | json | 支持:text、csv、parquet、orc、json、excel、xml、binary 八种文件类型。 注意:选择 excel 文件时,请务必删除表头,只保留数据。 |
| 压缩算法 | String | 否 | none | lzo 适用于 txt、json、csv; orc 和 parquet 会自动识别压缩类型,无需设置; none 为不需要压缩/解压缩。 |
| 字段分隔符 | String | 否 | - | 设置数据字段分隔符。 |
| 行分隔符 | String | 否 | - | 设置数据行分隔符。 |
| 跳过文件 | Int | 否 | 0 | 当选择文件类型为text/csv时,需要配置,用于跳过文件前多少行。 |
| sheet名称 | String | 否 | - | 当选择文件类型为excel时,选择 sheet 名称。 |
| excel读取引擎 | String | 否 | POI | 当选择文件类型为excel时,选择 excel 读取引擎名称。 |
| XML根标签 | String | 否 | RECORDS | 当选择文件类型为xml时,指定XML根标签名称。 |
| XML行标签 | String | 否 | RECORD | 当选择文件类型为xml时,指定XML文件中数据行的标记名称。 |
| 是否使用属性格式 | Boolean | 否 | 否 | 当选择文件类型为xml时,指定是否使用标记属性格式处理数据。 |
| 写入字段 | String | 是 | - | 获取的上游字段的信息。可以点击【获取字段】按钮自动获取全部字段名称及类型,也可以点击【增加字段】手工输入字段名称及类型。 |
| 是否分区 | Boolean | 否 | - | 是否启用分区。 |
| 批次大小 | Int | 否 | 1000000 | 批次大小。 |
| 目录处理方法 | String | 否 | 目录不存在时创建 | 对于目录的情况,处理方式有四种: - 重新创建目录 - 目录不存在时创建 - 目录不存在时报告错误 - 忽略对目录的处理 。 |
| 数据处理方法 | String | 否 | 追加数据 | 支持三种模式: 1、追加数据:数据统一追加到目标表中; 2、同步前删除数据:先清空目标表数据,然后再给目标表添加数据; 3、当存在数据时,报告错误:当目标表存在相同数据时,报告错误,不会添加数据。 |
| 可选参数 | - | 否 | - | 其他参数,用户可以根据需求进行配置。 |
# FAQ
Q1: 写入时出现 UnknownHostException 或连接超时 原因: 网络不通或 Endpoint 填写错误。 解决:
- 确保 SeaTunnel 所在容器/服务器能 ping 通 MinIO 域名/IP。
- 使用 MinIO 的内部 K8s Service 名称或完整 IP。
- 如果 MinIO 开启 HTTPS,需要设置 fs.s3a.connection.ssl.enabled = "true"。
Q2: 报错 The bucket you are attempting to access must be addressed using the specified endpoint 原因: 没有设置 path_style_access = true。
解决:
path_style_access: true
并且在 hadoop_s3_properties 中同时设置:
"fs.s3a.path.style.access" = "true"
Q3: 权限错误 Access Denied
原因: Access Key/Secret Key 错误,或该用户没有对 Bucket 的读写权限。
解决:
- 检查密钥。
- 在 MinIO Console 中为该 Access Key 设置 Bucket 的 ReadWrite 策略。
Q4: SeaTunnel 找不到 S3File 插件
原因: 缺少插件包。
解决:
# 确认 $SEATUNNEL_HOME/connectors/ 目录下有 seatunnel-connector-xxx-s3file.jar
# 如果没有,从官方下载或执行:
wget https://repo.maven.apache.org/.../seatunnel-connector-xxx-s3file-2.3.x.jar