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 <910108...@qq.com>
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 <885519...@qq.com>
    Co-authored-by: David Zollo <davidzollo...@gmail.com>
---
 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))

Reply via email to