This is an automated email from the ASF dual-hosted git repository.
wanghailin 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 87b77d4ffb [Doc][Improve] support chinese (#6349)
87b77d4ffb is described below
commit 87b77d4ffba752f77d3ea7705635ee53d0078b25
Author: zhiwei liu <[email protected]>
AuthorDate: Wed Feb 21 14:23:12 2024 +0800
[Doc][Improve] support chinese (#6349)
---
docs/zh/Connector-v2-release-state.md | 15 ++
docs/zh/about.md | 70 ++++++
docs/zh/connector-v2/sink.md | 0
docs/zh/connector-v2/source.md | 0
docs/zh/faq.md | 354 ++++++++++++++++++++++++++++++
docs/zh/images/architecture_diagram.png | Bin 0 -> 77929 bytes
docs/zh/images/azkaban.png | Bin 0 -> 732486 bytes
docs/zh/images/checkstyle.png | Bin 0 -> 479660 bytes
docs/zh/images/kafka.png | Bin 0 -> 32151 bytes
docs/zh/images/seatunnel-workflow.svg | 4 +
docs/zh/images/seatunnel_architecture.png | Bin 0 -> 778394 bytes
docs/zh/images/seatunnel_starter.png | Bin 0 -> 423840 bytes
docs/zh/images/workflow.png | Bin 0 -> 258921 bytes
docs/zh/seatunnel-engine/about.md | 0
14 files changed, 443 insertions(+)
diff --git a/docs/zh/Connector-v2-release-state.md
b/docs/zh/Connector-v2-release-state.md
new file mode 100644
index 0000000000..71728d513d
--- /dev/null
+++ b/docs/zh/Connector-v2-release-state.md
@@ -0,0 +1,15 @@
+# 连接器发布状态
+
+SeaTunnel 使用连接器分级系统来帮助您了解连接器的期望:
+
+| | Alpha
| Beta
| General Availability (GA)
|
+|----------------------|------------------------------------------------------------------------------|----------------------------------------------------------------------------|--------------------------------------------------------------|
+| Expectations | alpha 连接器表示正在开发的连接器,可帮助 SeaTunnel 收集早期采用者报告的早期反馈和问题。
我们强烈反对在生产用例中使用 alpha 版本 | Beta 连接器被认为稳定可靠,没有向后不兼容的更改,但尚未得到更广泛的用户群体的验证。
我们希望在正式发布之前找到并修复该版本中的一些问题和错误。 | 普遍可用的连接器已被认为可以在生产环境中使用,并得到 SeaTunnel 的正式支持。
它的文档被认为足以支持广泛采用。 |
+| |
|
|
|
+| Production Readiness | No
| Yes
| Yes
|
+
+## Connector V2 Health
+
+| Connector Name | Type | Status | Support Version |
+|----------------|------|--------|-----------------|
+
diff --git a/docs/zh/about.md b/docs/zh/about.md
new file mode 100644
index 0000000000..055823dfb8
--- /dev/null
+++ b/docs/zh/about.md
@@ -0,0 +1,70 @@
+# 关于 SeaTunnel
+
+<img src="https://seatunnel.apache.org/image/logo.png" alt="seatunnel logo"
width="200px" height="200px" align="right" />
+
+[](https://s.apache.org/seatunnel-slack)
+[](https://twitter.com/ASFSeaTunnel)
+
+SeaTunnel是一个非常易用、超高性能的分布式数据集成平台,支持实时海量数据同步。 每天可稳定高效同步数百亿数据,已被近百家企业应用于生产。
+
+## 我们为什么需要 SeaTunnel
+
+SeaTunnel专注于数据集成和数据同步,主要旨在解决数据集成领域的常见问题:
+
+- 数据源多样:常用数据源有数百种,版本不兼容。 随着新技术的出现,更多的数据源不断出现。 用户很难找到一个能够全面、快速支持这些数据源的工具。
+- 同步场景复杂:数据同步需要支持离线全量同步、离线增量同步、CDC、实时同步、全库同步等多种同步场景。
+- 资源需求高:现有的数据集成和数据同步工具往往需要大量的计算资源或JDBC连接资源来完成海量小表的实时同步。 这增加了企业的负担。
+- 缺乏质量和监控:数据集成和同步过程经常会出现数据丢失或重复的情况。 同步过程缺乏监控,无法直观了解任务过程中数据的真实情况。
+- 技术栈复杂:企业使用的技术组件不同,用户需要针对不同组件开发相应的同步程序来完成数据集成。
+- 管理和维护困难:受限于底层技术组件(Flink/Spark)不同,离线同步和实时同步往往需要分开开发和管理,增加了管理和维护的难度。
+
+## Features of SeaTunnel
+
+- 丰富且可扩展的Connector:SeaTunnel提供了不依赖于特定执行引擎的Connector API。
基于该API开发的Connector(Source、Transform、Sink)可以运行在很多不同的引擎上,例如目前支持的SeaTunnel
Engine、Flink、Spark等。
+- Connector插件:插件式设计让用户可以轻松开发自己的Connector并将其集成到SeaTunnel项目中。 目前,SeaTunnel 支持超过
100 个连接器,并且数量正在激增。 这是[当前支持的连接器]的列表(Connector-v2-release-state.md)
+- 批流集成:基于SeaTunnel Connector API开发的Connector完美兼容离线同步、实时同步、全量同步、增量同步等场景。
它们大大降低了管理数据集成任务的难度。
+- 支持分布式快照算法,保证数据一致性。
+- 多引擎支持:SeaTunnel默认使用SeaTunnel引擎进行数据同步。
SeaTunnel还支持使用Flink或Spark作为Connector的执行引擎,以适应企业现有的技术组件。 SeaTunnel 支持 Spark 和
Flink 的多个版本。
+- JDBC复用、数据库日志多表解析:SeaTunnel支持多表或全库同步,解决了过度JDBC连接的问题;
支持多表或全库日志读取解析,解决了CDC多表同步场景下需要处理日志重复读取解析的问题。
+- 高吞吐量、低延迟:SeaTunnel支持并行读写,提供稳定可靠、高吞吐量、低延迟的数据同步能力。
+- 完善的实时监控:SeaTunnel支持数据同步过程中每一步的详细监控信息,让用户轻松了解同步任务读写的数据数量、数据大小、QPS等信息。
+- 支持两种作业开发方法:编码和画布设计。 SeaTunnel Web 项目 https://github.com/apache/seatunnel-web
提供作业、调度、运行和监控功能的可视化管理。
+
+## SeaTunnel work flowchart
+
+
+
+SeaTunnel的运行流程如上图所示。
+
+用户配置作业信息并选择提交作业的执行引擎。
+
+Source Connector负责并行读取数据并将数据发送到下游Transform或直接发送到Sink,Sink将数据写入目的地。
值得注意的是,Source、Transform 和 Sink 可以很容易地自行开发和扩展。
+
+SeaTunnel 是一个 EL(T) 数据集成平台。
因此,在SeaTunnel中,Transform只能用于对数据进行一些简单的转换,例如将一列的数据转换为大写或小写,更改列名,或者将一列拆分为多列。
+
+SeaTunnel 使用的默认引擎是 [SeaTunnel Engine](seatunnel-engine/about.md)。
如果您选择使用Flink或Spark引擎,SeaTunnel会将Connector打包成Flink或Spark程序并提交给Flink或Spark运行。
+
+## 连接器
+
+- **源连接器** SeaTunnel 支持从各种关系、图形、NoSQL、文档和内存数据库读取数据; 分布式文件系统,例如HDFS;
以及各种云存储解决方案,例如S3和OSS。 我们还支持很多常见SaaS服务的数据读取。 您可以在[此处] 访问详细列表。
如果您愿意,您可以开发自己的源连接器并将其轻松集成到 SeaTunnel 中。
+
+- **转换连接器** 如果源和接收器之间的架构不同,您可以使用转换连接器更改从源读取的架构,使其与接收器架构相同。
+
+- **Sink Connector** SeaTunnel 支持将数据写入各种关系型、图形、NoSQL、文档和内存数据库; 分布式文件系统,例如HDFS;
以及各种云存储解决方案,例如S3和OSS。 我们还支持将数据写入许多常见的 SaaS 服务。 您可以在[此处]访问详细列表。 如果您愿意,您可以开发自己的
Sink 连接器并轻松将其集成到 SeaTunnel 中。
+
+## Who uses SeaTunnel
+
+SeaTunnel 拥有大量用户。 您可以在[用户](https://seatunnel.apache.org/user)中找到有关他们的更多信息.
+
+## Landscapes
+
+<p align="center">
+<br/><br/>
+<img src="https://landscape.cncf.io/images/left-logo.svg" width="150"
alt=""/> <img src="https://landscape.cncf.io/images/right-logo.svg"
width="200" alt=""/>
+<br/><br/>
+SeaTunnel 丰富了<a
href="https://landscape.cncf.io/card-mode?category=streaming-messaging&license=apache-license-2-0&grouping=category&selected=sea-tunnal">CNCF
云原生景观</a >。
+</p >
+
+## Learn more
+
+您可以参阅[快速入门](/docs/category/start-v2) 了解后续步骤。
diff --git a/docs/zh/connector-v2/sink.md b/docs/zh/connector-v2/sink.md
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/docs/zh/connector-v2/source.md b/docs/zh/connector-v2/source.md
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/docs/zh/faq.md b/docs/zh/faq.md
new file mode 100644
index 0000000000..7451d81b9b
--- /dev/null
+++ b/docs/zh/faq.md
@@ -0,0 +1,354 @@
+# 常见问题解答
+
+## 为什么要安装Spark或者Flink这样的计算引擎?
+
+SeaTunnel现在使用Spark、Flink等计算引擎来完成资源调度和节点通信,因此我们可以专注于数据同步的易用性和高性能组件的开发。 但这只是暂时的。
+
+## 我有一个问题,我自己无法解决
+
+我在使用SeaTunnel时遇到了问题,无法自行解决。 我应该怎么办?
首先,在[问题列表](https://github.com/apache/seatunnel/issues)或[邮件列表](https://lists.apache.org/[email protected])中搜索
)看看是否有人已经问过同样的问题并得到答案。
如果您找不到问题的答案,您可以通过[这些方式](https://github.com/apache/seatunnel#contact-us)联系社区成员寻求帮助。
+
+## 如何声明变量?
+
+您想知道如何在 SeaTunnel 的配置中声明一个变量,然后在运行时动态替换该变量的值吗?
+
+从“v1.2.4”开始,SeaTunnel 支持配置中的变量替换。 该功能常用于定时或非定时离线处理,以替代时间、日期等变量。 用法如下:
+
+在配置中配置变量名称。 下面是一个sql转换的例子(实际上,配置文件中任何地方“key = value”中的值都可以使用变量替换):
+
+```
+...
+transform {
+ sql {
+ query = "select * from user_view where city ='"${city}"' and dt =
'"${date}"'"
+ }
+}
+...
+```
+
+以Spark Local模式为例,启动命令如下:
+
+```bash
+./bin/start-seatunnel-spark.sh \
+-c ./config/your_app.conf \
+-e client \
+-m local[2] \
+-i city=shanghai \
+-i date=20190319
+```
+
+您可以使用参数“-i”或“--variable”后跟“key=value”来指定变量的值,其中key需要与配置中的变量名称相同。
+
+## 如何在配置文件中写入多行文本的配置项?
+
+当配置的文本很长并且想要将其换行时,可以使用三个双引号来指示其开始和结束:
+
+```
+var = """
+ whatever you want
+"""
+```
+
+## 如何实现多行文本的变量替换?
+
+在多行文本中进行变量替换有点麻烦,因为变量不能包含在三个双引号中:
+
+```
+var = """
+your string 1
+"""${you_var}""" your string 2"""
+```
+
+请参阅:[lightbend/config#456](https://github.com/lightbend/config/issues/456)。
+
+## Azkaban、Oozie、DolphinScheduler 是否支持 SeaTunnel?
+
+当然! 请参阅下面的屏幕截图:
+
+
+
+
+
+## SeaTunnel是否有配置多个源的情况,例如同时在源中配置elasticsearch和hdfs?
+
+```
+env {
+ ...
+}
+
+source {
+ hdfs { ... }
+ elasticsearch { ... }
+ jdbc {...}
+}
+
+transform {
+ ...
+}
+
+sink {
+ elasticsearch { ... }
+}
+```
+
+## 有 HBase 插件吗?
+
+有一个 hbase 输入插件。 您可以从这里下载:https://github.com/garyelephant/waterdrop-input-hbase
+
+## 如何使用SeaTunnel将数据写入Hive?
+
+```
+env {
+ spark.sql.catalogImplementation = "hive"
+ spark.hadoop.hive.exec.dynamic.partition = "true"
+ spark.hadoop.hive.exec.dynamic.partition.mode = "nonstrict"
+}
+
+source {
+ sql = "insert into ..."
+}
+
+sink {
+ // The data has been written to hive through the sql source. This is just
a placeholder, it does not actually work.
+ stdout {
+ limit = 1
+ }
+}
+```
+
+此外,SeaTunnel 在 `1.5.7` 版本之后在 `1.x` 分支中实现了 `Hive` 输出插件; 在“2.x”分支中。 Spark 引擎的
Hive 插件已从版本“2.0.5”开始支持:https://github.com/apache/seatunnel/issues/910。
+
+## SeaTunnel如何编写ClickHouse的多个实例来实现负载均衡?
+
+1.直接写分布式表(不推荐)
+
+2.在ClickHouse的多个实例前面添加代理或域名(DNS):
+
+```
+{
+ output {
+ clickhouse {
+ host = "ck-proxy.xx.xx:8123"
+ # Local table
+ table = "table_name"
+ }
+ }
+}
+```
+
+3. Configure multiple instances in the configuration:
+
+ ```
+ {
+ output {
+ clickhouse {
+ host = "ck1:8123,ck2:8123,ck3:8123"
+ # Local table
+ table = "table_name"
+ }
+ }
+ }
+ ```
+4. Use cluster mode:
+
+ ```
+ {
+ output {
+ clickhouse {
+ # Configure only one host
+ host = "ck1:8123"
+ cluster = "clickhouse_cluster_name"
+ # Local table
+ table = "table_name"
+ }
+ }
+ }
+ ```
+
+## SeaTunnel 消费 Kafka 时如何解决 OOM?
+
+大多数情况下,OOM是由于没有对消费进行速率限制而导致的。 解决方法如下:
+
+对于目前Kafka的Spark消费限制:
+
+1. 假设您使用 KafkaStream 消费的 Kafka `Topic 1` 的分区数量 = N。
+
+2. 假设“Topic 1”的消息生产者(Producer)的生产速度为K条消息/秒,则向分区写入消息的速度必须一致。
+
+3、假设经过测试发现Spark Executor每核每秒的处理能力为M。
+
+可以得出以下结论:
+
+1、如果想让Spark对`Topic 1`的消耗跟上它的生产速度,那么需要 `spark.executor.cores` *
`spark.executor.instances` >= K / M
+
+2、当出现数据延迟时,如果希望消耗速度不要太快,导致spark执行器OOM,那么需要配置
`spark.streaming.kafka.maxRatePerPartition` <= (`spark.executor.cores` *
`spark.executor.instances`) * M / N
+
+3、一般来说,M和N都确定了,从2可以得出结论:`spark.streaming.kafka.maxRatePerPartition`的大小与`spark.executor.cores`
* `spark的大小正相关 .executor.instances`,可以在增加资源`maxRatePerPartition`的同时增加,以加快消耗。
+
+
+
+## 如何解决错误 `Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE`?
+
+原因是Spark的CDH版本自带的httpclient.jar版本较低,而ClickHouse
JDBC基于的httpclient版本是4.5.2,包版本冲突。 解决办法是将CDH自带的jar包替换为httpclient-4.5.2版本。
+
+## 我的Spark集群默认的JDK是JDK7。 安装JDK8后,如何指定SeaTunnel以JDK8启动?
+
+在 SeaTunnel 的配置文件中,指定以下配置:
+
+```shell
+spark {
+ ...
+ spark.executorEnv.JAVA_HOME="/your/java_8_home/directory"
+ spark.yarn.appMasterEnv.JAVA_HOME="/your/java_8_home/directory"
+ ...
+}
+```
+
+## 如何为 Yarn 上的 SeaTunnel 指定不同的 JDK 版本?
+
+例如要设置JDK版本为JDK8,有两种情况:
+
+- Yarn集群已部署JDK8,但默认JDK不是JDK8。 在 SeaTunnel 配置文件中添加两个配置:
+
+ ```
+ env {
+ ...
+ spark.executorEnv.JAVA_HOME="/your/java_8_home/directory"
+ spark.yarn.appMasterEnv.JAVA_HOME="/your/java_8_home/directory"
+ ...
+ }
+ ```
+- Yarn集群未部署JDK8。 此时,启动附带JDK8的SeaTunnel。 详细操作参见:
+ https://www.cnblogs.com/jasondan/p/spark-specific-jdk-version.html
+
+## Spark local[*]模式运行SeaTunnel时总是出现OOM怎么办?
+
+如果以本地模式运行,则需要修改`start-seatunnel.sh`启动脚本。 在 `spark-submit` 之后添加参数
`--driver-memory 4g` 。 一般情况下,生产环境中不使用本地模式。 因此,On Yarn时一般不需要设置该参数。
有关详细信息,请参阅:[应用程序属性](https://spark.apache.org/docs/latest/configuration.html#application-properties)。
+
+## 我可以在哪里放置自己编写的插件或第三方 jdbc.jar 以供 SeaTunnel 加载?
+
+将Jar包放置在plugins目录指定结构下:
+
+```bash
+cd SeaTunnel
+mkdir -p plugins/my_plugins/lib
+cp third-part.jar plugins/my_plugins/lib
+```
+
+`my_plugins` 可以是任何字符串。
+
+## 如何在 SeaTunnel-v1(Spark) 中配置日志记录相关参数?
+
+可以通过三种方式配置日志相关参数(例如日志级别):
+
+- [不推荐] 更改默认的`$SPARK_HOME/conf/log4j.properties`。
+ - 这将影响通过 `$SPARK_HOME/bin/spark-submit` 提交的所有程序。
+- [不推荐]直接在SeaTunnel的Spark代码中修改日志相关参数。
+ - 这相当于写死了,每次改变都需要重新编译。
+- [推荐] 使用以下方法更改 SeaTunnel 配置文件中的日志记录配置(更改仅在 SeaTunnel >= 1.5.5 时生效):
+
+ ```
+ env {
+ spark.driver.extraJavaOptions = "-Dlog4j.configuration=file:<file
path>/log4j.properties"
+ spark.executor.extraJavaOptions = "-Dlog4j.configuration=file:<file
path>/log4j.properties"
+ }
+ source {
+ ...
+ }
+ transform {
+ ...
+ }
+ sink {
+ ...
+ }
+ ```
+
+可供参考的log4j配置文件内容如下:
+
+```
+$ cat log4j.properties
+log4j.rootLogger=ERROR, console
+
+# set the log level for these components
+log4j.logger.org=ERROR
+log4j.logger.org.apache.spark=ERROR
+log4j.logger.org.spark-project=ERROR
+log4j.logger.org.apache.hadoop=ERROR
+log4j.logger.io.netty=ERROR
+log4j.logger.org.apache.zookeeper=ERROR
+
+# add a ConsoleAppender to the logger stdout to write to the console
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+# use a simple message format
+log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p
%c{1}:%L - %m%n
+```
+
+## 如何在 SeaTunnel-v2(Spark、Flink) 中配置日志记录相关参数?
+
+目前,无法直接设置它们。 您需要修改SeaTunnel启动脚本。 相关参数在任务提交命令中指定。 具体参数请参考官方文档:
+
+-
Spark官方文档:http://spark.apache.org/docs/latest/configuration.html#configuring-logging
+- Flink
官方文档:https://ci.apache.org/projects/flink/flink-docs-stable/monitoring/logging.html
+
+参考:
+
+https://stackoverflow.com/questions/27781187how-to-stop-info-messages-displaying-on-spark-console
+
+http://spark.apache.org/docs/latest/configuration.html#configuring-logging
+
+https://medium.com/@iacomini.riccardo/spark-logging-configuration-in-yarn-faf5ba5fdb01
+
+## 如何配置SeaTunnel-E2E Test的日志记录相关参数?
+
+`seatunnel-e2e` 的 log4j 配置文件位于
`seatunnel-e2e/seatunnel-e2e-common/src/test/resources/log4j2.properties` 中。
您可以直接在配置文件中修改日志记录相关参数。
+
+例如,如果您想输出更详细的E2E Test日志,只需将配置文件中的“rootLogger.level”降级即可。
+
+## 写入 ClickHouse 时出错:ClassCastException
+
+在SeaTunnel中,不会主动转换数据类型。 Input读取数据后,对应的
+架构。 编写ClickHouse时,需要严格匹配字段类型,不匹配的情况需要解决。
+
+数据转换可以通过以下两个插件实现:
+
+1.过滤器转换插件
+2.过滤Sql插件
+
+详细数据类型转换参考:[ClickHouse数据类型检查列表](https://interestinglab.github.io/seatunnel-docs/#/en/configuration/output-plugins/Clickhouse?id=clickhouse-data-type-check-list)
+
+请参阅问题:[#488](https://github.com/apache/seatunnel/issues/488)[#382](https://github.com/apache/seatunnel/issues/382)。
+
+## SeaTunnel 如何访问经过 kerberos 验证的 HDFS、YARN、Hive 等资源?
+
+请参考:[#590](https://github.com/apache/seatunnel/issues/590)。
+
+## 如何排查 NoClassDefFoundError、ClassNotFoundException 等问题?
+
+有很大概率是Java类路径中加载了多个不同版本的对应Jar包类,是因为加载顺序冲突,而不是因为Jar确实丢失了。
修改这条SeaTunnel启动命令,在spark-submit提交部分添加如下参数,通过输出日志进行详细调试。
+
+```
+spark-submit --verbose
+ ...
+ --conf 'spark.driver.extraJavaOptions=-verbose:class'
+ --conf 'spark.executor.extraJavaOptions=-verbose:class'
+ ...
+```
+
+## 如何使用SeaTunnel跨HDFS集群同步数据?
+
+只需正确配置 hdfs-site.xml 即可。 参考:https://www.cnblogs.com/suanec/p/7828139.html。
+
+## 我想学习SeaTunnel的源代码。 我应该从哪里开始?
+
+SeaTunnel 拥有完全抽象、结构化的代码实现,很多人都选择 SeaTunnel 作为学习 Spark 的方式。
您可以从主程序入口了解源代码:SeaTunnel.java
+
+## SeaTunnel开发者开发自己的插件时,是否需要了解SeaTunnel代码? 这些插件是否应该集成到 SeaTunnel 项目中?
+
+开发者开发的插件与SeaTunnel项目无关,不需要包含您的插件代码。
+
+该插件可以完全独立于 SeaTunnel 项目,因此您可以使用 Java、Scala、Maven、sbt、Gradle 或任何您想要的方式编写它。
这也是我们推荐开发者开发插件的方式。
+
+## 当我导入项目时,编译器出现异常“找不到类`org.apache.seatunnel.shade.com.typesafe.config.Config`”
+
+首先运行“mvn install”。 在 `seatunnel-config/seatunnel-config-base` 子项目中,包
`com.typesafe.config` 已重新定位到 `org.apache.seatunnel.shade.com.typesafe.config`
并安装到 maven 本地存储库 在子项目 `seatunnel-config/seatunnel-config-shade` 中。
diff --git a/docs/zh/images/architecture_diagram.png
b/docs/zh/images/architecture_diagram.png
new file mode 100644
index 0000000000..ce72254694
Binary files /dev/null and b/docs/zh/images/architecture_diagram.png differ
diff --git a/docs/zh/images/azkaban.png b/docs/zh/images/azkaban.png
new file mode 100644
index 0000000000..78780dce2d
Binary files /dev/null and b/docs/zh/images/azkaban.png differ
diff --git a/docs/zh/images/checkstyle.png b/docs/zh/images/checkstyle.png
new file mode 100644
index 0000000000..4cf8303e71
Binary files /dev/null and b/docs/zh/images/checkstyle.png differ
diff --git a/docs/zh/images/kafka.png b/docs/zh/images/kafka.png
new file mode 100644
index 0000000000..14b22ebcbe
Binary files /dev/null and b/docs/zh/images/kafka.png differ
diff --git a/docs/zh/images/seatunnel-workflow.svg
b/docs/zh/images/seatunnel-workflow.svg
new file mode 100644
index 0000000000..7280e4a4c4
--- /dev/null
+++ b/docs/zh/images/seatunnel-workflow.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Do not edit this file with editors other than diagrams.net -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="622px"
height="718px" viewBox="-0.5 -0.5 622 718" content="<mxfile
host="Electron" modified="2021-12-30T15:17:57.852Z"
agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML,
like Gecko) draw.io/15.4.0 Chrome/91.0.4472.164 Electron/13.5.0
Safari/537.36" etag="y11mgoacIhryQ4lqCp5C"
version="15.4.0" type="device& [...]
\ No newline at end of file
diff --git a/docs/zh/images/seatunnel_architecture.png
b/docs/zh/images/seatunnel_architecture.png
new file mode 100644
index 0000000000..c96cb272e5
Binary files /dev/null and b/docs/zh/images/seatunnel_architecture.png differ
diff --git a/docs/zh/images/seatunnel_starter.png
b/docs/zh/images/seatunnel_starter.png
new file mode 100644
index 0000000000..4d9700899a
Binary files /dev/null and b/docs/zh/images/seatunnel_starter.png differ
diff --git a/docs/zh/images/workflow.png b/docs/zh/images/workflow.png
new file mode 100644
index 0000000000..9ce48b8bfc
Binary files /dev/null and b/docs/zh/images/workflow.png differ
diff --git a/docs/zh/seatunnel-engine/about.md
b/docs/zh/seatunnel-engine/about.md
new file mode 100644
index 0000000000..e69de29bb2