This is an automated email from the ASF dual-hosted git repository.
fanjia pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new 0b90998143 [Doc][Improve] support chinese
[docs/zh/connector-v2/source/FtpFile.md] (#8848)
0b90998143 is described below
commit 0b90998143a4fc7f4b378b17d61cfa31b336a469
Author: Scorpio777888 <[email protected]>
AuthorDate: Thu Feb 27 10:03:12 2025 +0800
[Doc][Improve] support chinese [docs/zh/connector-v2/source/FtpFile.md]
(#8848)
Co-authored-by: Gemini147258 <[email protected]>
Co-authored-by: David Zollo <[email protected]>
---
docs/zh/connector-v2/source/FtpFile.md | 505 +++++++++++++++++++++++++++++++++
1 file changed, 505 insertions(+)
diff --git a/docs/zh/connector-v2/source/FtpFile.md
b/docs/zh/connector-v2/source/FtpFile.md
new file mode 100644
index 0000000000..5e5f24c4cb
--- /dev/null
+++ b/docs/zh/connector-v2/source/FtpFile.md
@@ -0,0 +1,505 @@
+# FtpFile
+
+> Ftp 文件 Source 连接器
+
+## 支持的引擎
+
+> Spark<br/>
+> Flink<br/>
+> SeaTunnel Zeta<br/>
+
+## 关键特性
+
+- [x] [批处理](../../concept/connector-v2-features.md)
+- [ ] [流处理](../../concept/connector-v2-features.md)
+- [ ] [精确一次处理](../../concept/connector-v2-features.md)
+- [x] [列投影](../../concept/connector-v2-features.md)
+- [x] [并行度](../../concept/connector-v2-features.md)
+- [ ] [支持用户自定义分片](../../concept/connector-v2-features.md)
+- [x] 文件格式类型
+ - [x] 文本
+ - [x] CSV
+ - [x] JSON
+ - [x] Excel
+ - [x] XML
+ - [x] 二进制
+
+## 描述
+
+从 FTP 文件服务器读取数据。
+
+:::提示
+
+如果您使用 Spark/Flink,为了使用此连接器,您必须确保您的 Spark/Flink 集群已经集成了 Hadoop。测试的 Hadoop 版本为
2.x。
+如果您使用 SeaTunnel Engine,当您下载并安装 SeaTunnel Engine 时,它会自动集成 Hadoop 的 jar 包。您可以在
`${SEATUNNEL_HOME}/lib` 目录下检查 jar 包以确认这一点。
+
+:::
+
+## 配置项
+
+| 名称 | 类型 | 是否必填 | 默认值 |
+|---------------------------|---------|----------|---------------------|
+| host | string | 是 | - |
+| port | int | 是 | - |
+| user | string | 是 | - |
+| password | string | 是 | - |
+| path | string | 是 | - |
+| file_format_type | string | 是 | - |
+| connection_mode | string | 否 | active_local |
+| delimiter/field_delimiter | string | 否 | \001 |
+| read_columns | list | 否 | - |
+| parse_partition_from_path | boolean | 否 | true |
+| date_format | string | 否 | yyyy-MM-dd |
+| datetime_format | string | 否 | yyyy-MM-dd HH:mm:ss |
+| time_format | string | 否 | HH:mm:ss |
+| skip_header_row_number | long | 否 | 0 |
+| schema | config | 否 | - |
+| sheet_name | string | 否 | - |
+| xml_row_tag | string | 否 | - |
+| xml_use_attr_format | boolean | 否 | - |
+| file_filter_pattern | string | 否 | - |
+| compress_codec | string | 否 | none |
+| archive_compress_codec | string | 否 | none |
+| encoding | string | 否 | UTF-8 |
+| null_format | string | 否 | - |
+| common-options | | 否 | - |
+
+### host [string]
+
+目标 FTP 主机地址,必填项。
+
+### port [int]
+
+目标 FTP 端口,必填项。
+
+### user [string]
+
+目标 FTP 用户名,必填项。
+
+### password [string]
+
+目标 FTP 密码,必填项。
+
+### path [string]
+
+源文件路径。
+
+### file_filter_pattern [string]
+
+文件过滤模式,用于过滤文件。
+
+该模式遵循标准正则表达式。详情请参考:https://en.wikipedia.org/wiki/Regular_expression。
+以下是一些示例。
+
+文件结构示例:
+
+```
+/data/seatunnel/20241001/report.txt
+/data/seatunnel/20241007/abch202410.csv
+/data/seatunnel/20241002/abcg202410.csv
+/data/seatunnel/20241005/old_data.csv
+/data/seatunnel/20241012/logo.png
+
+```
+匹配规则示例:
+
+**示例 1**:*匹配所有 .txt 文件*,正则表达式:
+```
+/data/seatunnel/20241001/.*\.txt
+```
+该示例匹配结果为:
+```
+/data/seatunnel/20241001/report.txt
+```
+**示例 2**:*匹配所有以 abc 开头的文件*,正则表达式:
+```
+/data/seatunnel/20241002/abc.*
+```
+该示例匹配结果为:
+```
+/data/seatunnel/20241007/abch202410.csv
+/data/seatunnel/20241002/abcg202410.csv
+```
+**示例 3**:*匹配所有以 abc 开头的文件,且第四个字符为 h 或 g*,正则表达式:
+```
+/data/seatunnel/20241007/abc[h,g].*
+```
+该示例匹配结果为:
+```
+/data/seatunnel/20241007/abch202410.csv
+```
+**示例 4**:*匹配第三级文件夹以 202410 开头且文件以 .csv 结尾的文件*,正则表达式:
+```
+/data/seatunnel/202410\d*/.*\.csv
+```
+该示例匹配结果为:
+```
+/data/seatunnel/20241007/abch202410.csv
+/data/seatunnel/20241002/abcg202410.csv
+/data/seatunnel/20241005/old_data.csv
+```
+
+### file_format_type [string]
+
+文件类型,支持以下文件类型:
+
+`text` `csv` `parquet` `orc` `json` `excel` `xml` `binary`
+
+如果您将文件类型指定为 `json`,您还需要指定 schema 选项以告诉连接器如何将数据解析为您所需的行。
+
+例如:
+
+上游数据如下:
+
+```json
+
+{"code": 200, "data": "get success", "success": true}
+
+```
+
+您应按如下方式指定 schema:
+
+```hocon
+
+schema {
+ fields {
+ code = int
+ data = string
+ success = boolean
+ }
+}
+
+```
+
+连接器将生成如下数据:
+
+| code | data | success |
+|------|-------------|---------|
+| 200 | get success | true |
+
+如果您将文件类型指定为 `text` 或 `csv`,您可以选择是否指定 schema 信息。
+
+例如,上游数据如下:
+
+```text
+
+tyrantlucifer#26#male
+
+```
+
+如果您不指定数据 schema,连接器将按如下方式处理上游数据:
+
+| content |
+|-----------------------|
+| tyrantlucifer#26#male |
+
+如果您指定数据 schema,您还需要指定 `field_delimiter` 选项(CSV 文件类型除外)。
+
+您应按如下方式指定 schema 和分隔符:
+
+```hocon
+
+field_delimiter = "#"
+schema {
+ fields {
+ name = string
+ age = int
+ gender = string
+ }
+}
+
+```
+
+连接器将生成如下数据:
+
+| name | age | gender |
+|---------------|-----|--------|
+| tyrantlucifer | 26 | male |
+
+如果您将文件类型指定为 `binary`,SeaTunnel 可以同步任何格式的文件,
+例如压缩包、图片等。简而言之,任何文件都可以同步到目标位置。
+在这种情况下,您需要确保源和接收端同时使用 `binary` 格式进行文件同步。
+您可以在下面的示例中找到具体用法。
+
+### connection_mode [string]
+
+目标 FTP 连接模式,默认为主动模式,支持以下模式:
+
+`active_local` `passive_local`
+
+### delimiter/field_delimiter [string]
+
+**delimiter** 参数将在 2.3.5 版本后弃用,请使用 **field_delimiter** 代替。
+
+仅在文件格式为 text 时需要配置。
+
+字段分隔符,用于告诉连接器如何切分字段。
+
+默认值为 `\001`,与 Hive 的默认分隔符相同。
+
+### parse_partition_from_path [boolean]
+
+控制是否从文件路径中解析分区键和值。
+
+例如,如果您从路径
`ftp://hadoop-cluster/tmp/seatunnel/parquet/name=tyrantlucifer/age=26` 读取文件,
+
+文件中的每条记录数据将添加以下两个字段:
+
+| name | age |
+|---------------|-----|
+| tyrantlucifer | 26 |
+
+提示:**不要在 schema 选项中定义分区字段**
+
+### date_format [string]
+
+日期类型格式,用于告诉连接器如何将字符串转换为日期,支持以下格式:
+
+`yyyy-MM-dd` `yyyy.MM.dd` `yyyy/MM/dd`
+
+默认值为 `yyyy-MM-dd`
+
+### datetime_format [string]
+
+日期时间类型格式,用于告诉连接器如何将字符串转换为日期时间,支持以下格式:
+
+`yyyy-MM-dd HH:mm:ss` `yyyy.MM.dd HH:mm:ss` `yyyy/MM/dd HH:mm:ss`
`yyyyMMddHHmmss`
+
+默认值为 `yyyy-MM-dd HH:mm:ss`
+
+### time_format [string]
+
+时间类型格式,用于告诉连接器如何将字符串转换为时间,支持以下格式:
+
+`HH:mm:ss` `HH:mm:ss.SSS`
+
+默认值为 `HH:mm:ss`
+
+### skip_header_row_number [long]
+
+跳过前几行,仅适用于 txt 和 csv 文件。
+
+例如,设置如下:
+
+`skip_header_row_number = 2`
+
+SeaTunnel 将从源文件中跳过前 2 行。
+
+### schema [config]
+
+仅在文件格式类型为 text、json、excel、xml 或 csv(或其他无法从元数据中读取 schema 的格式)时需要配置。
+
+上游数据的 schema 信息。
+
+### read_columns [list]
+
+数据源的读取列列表,用户可以使用它来实现字段投影。
+
+### sheet_name [string]
+
+读取工作簿中的工作表,仅在文件格式类型为 excel 时使用。
+
+### xml_row_tag [string]
+
+仅在文件格式为 xml 时需要配置。
+
+指定 XML 文件中数据行的标签名称。
+
+### xml_use_attr_format [boolean]
+
+仅在文件格式为 xml 时需要配置。
+
+指定是否使用标签属性格式处理数据。
+
+### compress_codec [string]
+
+文件的压缩编解码器,支持的详细信息如下:
+
+- txt: `lzo` `none`
+- json: `lzo` `none`
+- csv: `lzo` `none`
+- orc/parquet:
+ 自动识别压缩类型,无需额外设置。
+
+### archive_compress_codec [string]
+
+归档文件的压缩编解码器,支持的详细信息如下:
+
+| archive_compress_codec | 文件格式 | 归档压缩后缀 |
+|------------------------|--------------------|-------------------------|
+| ZIP | txt,json,excel,xml | .zip |
+| TAR | txt,json,excel,xml | .tar |
+| TAR_GZ | txt,json,excel,xml | .tar.gz |
+| GZ | txt,json,excel,xml | .gz |
+| NONE | all | .* |
+
+注意:gz 压缩的 excel 文件需要压缩原始文件或指定文件后缀,例如 e2e.xls ->e2e_test.xls.gz
+
+### encoding [string]
+
+仅在文件格式类型为 json、text、csv、xml 时使用。
+读取文件的编码。此参数将通过 `Charset.forName(encoding)` 解析。
+
+### null_format [string]
+
+仅在文件格式类型为 text 时使用。
+用于定义哪些字符串可以表示为 null。
+
+例如:`\N`
+
+### 通用选项
+
+源插件的通用参数,详情请参考 [源通用选项](../source-common-options.md)。
+
+## 示例
+
+```hocon
+
+ FtpFile {
+ path = "/tmp/seatunnel/sink/text"
+ host = "192.168.31.48"
+ port = 21
+ user = tyrantlucifer
+ password = tianchao
+ file_format_type = "text"
+ schema = {
+ name = string
+ age = int
+ }
+ field_delimiter = "#"
+ }
+
+```
+
+### 多表配置
+
+```hocon
+
+FtpFile {
+ tables_configs = [
+ {
+ schema {
+ table = "student"
+ }
+ path = "/tmp/seatunnel/sink/text"
+ host = "192.168.31.48"
+ port = 21
+ user = tyrantlucifer
+ password = tianchao
+ file_format_type = "parquet"
+ },
+ {
+ schema {
+ table = "teacher"
+ }
+ path = "/tmp/seatunnel/sink/text"
+ host = "192.168.31.48"
+ port = 21
+ user = tyrantlucifer
+ password = tianchao
+ file_format_type = "parquet"
+ }
+ ]
+}
+
+```
+
+```hocon
+
+FtpFile {
+ tables_configs = [
+ {
+ schema {
+ fields {
+ name = string
+ age = int
+ }
+ }
+ path = "/apps/hive/demo/student"
+ file_format_type = "json"
+ },
+ {
+ schema {
+ fields {
+ name = string
+ age = int
+ }
+ }
+ path = "/apps/hive/demo/teacher"
+ file_format_type = "json"
+ }
+}
+
+```
+
+### 传输二进制文件
+
+```hocon
+
+env {
+ parallelism = 1
+ job.mode = "BATCH"
+}
+
+source {
+ FtpFile {
+ host = "192.168.31.48"
+ port = 21
+ user = tyrantlucifer
+ password = tianchao
+ path = "/seatunnel/read/binary/"
+ file_format_type = "binary"
+ }
+}
+sink {
+ // 您可以将本地文件传输到 s3/hdfs/oss 等。
+ FtpFile {
+ host = "192.168.31.48"
+ port = 21
+ user = tyrantlucifer
+ password = tianchao
+ path = "/seatunnel/read/binary2/"
+ file_format_type = "binary"
+ }
+}
+
+```
+
+### 过滤文件
+
+```hocon
+env {
+ parallelism = 1
+ job.mode = "BATCH"
+}
+
+source {
+ FtpFile {
+ host = "192.168.31.48"
+ port = 21
+ user = tyrantlucifer
+ password = tianchao
+ path = "/seatunnel/read/binary/"
+ file_format_type = "binary"
+ // 文件示例 abcD2024.csv
+ file_filter_pattern = "abc[DX]*.*"
+ }
+}
+
+sink {
+ Console {
+ }
+}
+```
+
+## 更新日志
+
+### 2.2.0-beta 2022-09-26
+
+- 新增 Ftp Source 连接器
+
+### 2.3.0-beta 2022-10-20
+
+- [Bug修复] 修复 Windows 环境下路径错误的 bug
([2980](https://github.com/apache/seatunnel/pull/2980))
+- [改进] 支持从 SeaTunnelRow 字段中提取分区
([3085](https://github.com/apache/seatunnel/pull/3085))
+- [改进] 支持从文件路径中解析字段 ([2985](https://github.com/apache/seatunnel/pull/2985))