You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@seatunnel.apache.org by gi...@apache.org on 2022/02/18 08:37:48 UTC

[incubator-seatunnel-website] branch asf-site updated: deploy: e03a9be9b20bf9fd9121425f480551b633f5bcd3

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 5ad6959  deploy: e03a9be9b20bf9fd9121425f480551b633f5bcd3
5ad6959 is described below

commit 5ad6959bdea5f3741939bcef2cf058a57aa6ced5
Author: CalvinKirs <Ca...@users.noreply.github.com>
AuthorDate: Fri Feb 18 08:37:25 2022 +0000

    deploy: e03a9be9b20bf9fd9121425f480551b633f5bcd3
---
 404.html                                           |   8 +--
 .../1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png       | Bin 0 -> 998705 bytes
 .../images/10-15459320d13177fafe0fd49a06f92e03.png | Bin 0 -> 580632 bytes
 .../images/11-8f601d01cedafe8901b091b5ddcefd59.png | Bin 0 -> 397760 bytes
 .../images/12-9a03852b4e4065b3f9f909da1bb4b672.png | Bin 0 -> 460187 bytes
 .../images/13-c93b070b1abe679688f557f3b6bcfc52.png | Bin 0 -> 650030 bytes
 .../images/14-654566bbfb5ed478b1a9dcd28f2dba72.png | Bin 0 -> 944028 bytes
 .../images/15-798a1029db30ff228befcc333645c3e4.png | Bin 0 -> 575940 bytes
 .../images/16-8947f00847b3a55a537124964206e1b2.png | Bin 0 -> 436784 bytes
 .../images/2-0b1a1413f99ac6195aefc2146ba07c4b.png  | Bin 0 -> 906672 bytes
 .../images/3-a762d5f3914268cbc2b478215d8da72d.png  | Bin 0 -> 990108 bytes
 .../images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png  | Bin 0 -> 580310 bytes
 .../images/5-e5c4ff850add4f0334c2f9a0de839c53.png  | Bin 0 -> 1254258 bytes
 .../images/6-e37187a14e8316f82074f78b8a250a58.png  | Bin 0 -> 478809 bytes
 .../images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png  | Bin 0 -> 760019 bytes
 .../images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png  | Bin 0 -> 613983 bytes
 .../images/9-f08855ea40230b4f16d6c04408063346.png  | Bin 0 -> 977703 bytes
 assets/js/08dd1cb1.1c548215.js                     |   1 +
 assets/js/14354f1c.681801a8.js                     |   1 +
 assets/js/814f3328.03cd79bb.js                     |   1 +
 assets/js/814f3328.4fb126fa.js                     |   1 -
 assets/js/88a3f98d.4979de12.js                     |   1 -
 assets/js/88a3f98d.fc9285e8.js                     |   1 +
 assets/js/8d5db32b.0b9219fd.js                     |   1 +
 assets/js/a281a1a5.01c237ba.js                     |   1 +
 assets/js/a281a1a5.4f25b5bf.js                     |   1 -
 assets/js/a7023ddc.40766f95.js                     |   1 +
 assets/js/a7023ddc.d602aa85.js                     |   1 -
 .../{b2b675dd.a346757c.js => b2b675dd.426316cf.js} |   2 +-
 assets/js/b2f554cd.0b504882.js                     |   1 -
 assets/js/b2f554cd.3c79cc9f.js                     |   1 +
 .../{bd981e29.2fe64999.js => bd981e29.7c5634e4.js} |   2 +-
 assets/js/f820265a.0e216b63.js                     |   1 -
 assets/js/f820265a.ac85e0c2.js                     |   1 +
 assets/js/main.2802538f.js                         |   2 -
 assets/js/main.4602ec29.js                         |   2 +
 .../js/main.4602ec29.js.LICENSE.txt                |   0
 assets/js/runtime~main.14c1e774.js                 |   1 +
 assets/js/runtime~main.8f77721d.js                 |   1 -
 .../index.html"                                    |  59 +++++++++++++++++++++
 blog/archive/index.html                            |  10 ++--
 blog/atom.xml                                      |  42 ++++++++++++++-
 blog/hdfs-to-clickhouse/index.html                 |  10 ++--
 blog/hive-to-clickhouse/index.html                 |  10 ++--
 blog/index.html                                    |  40 ++++++++++++--
 blog/rss.xml                                       |  42 ++++++++++++++-
 blog/spark-execute-elasticsearch/index.html        |  10 ++--
 blog/spark-execute-tidb/index.html                 |  10 ++--
 blog/spark-structured-streaming/index.html         |  10 ++--
 blog/tags/click-house/index.html                   |  42 ++++++++++++---
 blog/tags/elasticsearch/index.html                 |  10 ++--
 blog/tags/hdfs/index.html                          |  10 ++--
 blog/tags/hive/index.html                          |  10 ++--
 blog/tags/index.html                               |  10 ++--
 blog/tags/kafka/index.html                         |  10 ++--
 blog/tags/spark/index.html                         |  10 ++--
 blog/tags/structured-streaming/index.html          |  10 ++--
 blog/tags/ti-db/index.html                         |  10 ++--
 .../index.html"                                    |  59 +++++++++++++++++++++
 community/contribution_guide/committer/index.html  |   8 +--
 community/contribution_guide/contribute/index.html |   8 +--
 community/contribution_guide/subscribe/index.html  |   8 +--
 community/submit_guide/document/index.html         |   8 +--
 community/submit_guide/license/index.html          |   8 +--
 community/submit_guide/submit-code/index.html      |   8 +--
 doc/image_zh/2022-2-18-Meetup-vip/1-1.png          | Bin 0 -> 998705 bytes
 doc/image_zh/2022-2-18-Meetup-vip/1.png            | Bin 0 -> 8820522 bytes
 doc/image_zh/2022-2-18-Meetup-vip/10.png           | Bin 0 -> 580632 bytes
 doc/image_zh/2022-2-18-Meetup-vip/11.png           | Bin 0 -> 397760 bytes
 doc/image_zh/2022-2-18-Meetup-vip/12.png           | Bin 0 -> 460187 bytes
 doc/image_zh/2022-2-18-Meetup-vip/13.png           | Bin 0 -> 650030 bytes
 doc/image_zh/2022-2-18-Meetup-vip/14.png           | Bin 0 -> 944028 bytes
 doc/image_zh/2022-2-18-Meetup-vip/15.png           | Bin 0 -> 575940 bytes
 doc/image_zh/2022-2-18-Meetup-vip/16.png           | Bin 0 -> 436784 bytes
 doc/image_zh/2022-2-18-Meetup-vip/2.png            | Bin 0 -> 906672 bytes
 doc/image_zh/2022-2-18-Meetup-vip/3.png            | Bin 0 -> 990108 bytes
 doc/image_zh/2022-2-18-Meetup-vip/4.png            | Bin 0 -> 580310 bytes
 doc/image_zh/2022-2-18-Meetup-vip/5.png            | Bin 0 -> 1254258 bytes
 doc/image_zh/2022-2-18-Meetup-vip/6.png            | Bin 0 -> 478809 bytes
 doc/image_zh/2022-2-18-Meetup-vip/7.png            | Bin 0 -> 760019 bytes
 doc/image_zh/2022-2-18-Meetup-vip/8.png            | Bin 0 -> 613983 bytes
 doc/image_zh/2022-2-18-Meetup-vip/9.png            | Bin 0 -> 977703 bytes
 docs/developement/NewLicenseGuide/index.html       |   8 +--
 .../commands/start-seatunnel-flink.sh/index.html   |   8 +--
 docs/flink/configuration/ConfigExamples/index.html |   8 +--
 .../configuration/sink-plugins/Console/index.html  |   8 +--
 .../configuration/sink-plugins/Doris/index.html    |   8 +--
 .../configuration/sink-plugins/Druid/index.html    |   8 +--
 .../sink-plugins/Elasticsearch/index.html          |   8 +--
 .../configuration/sink-plugins/File/index.html     |   8 +--
 .../configuration/sink-plugins/InfluxDb/index.html |   8 +--
 .../configuration/sink-plugins/Jdbc/index.html     |   8 +--
 .../configuration/sink-plugins/Kafka/index.html    |   8 +--
 .../sink-plugins/sink-plugin/index.html            |   8 +--
 .../configuration/source-plugins/Druid/index.html  |   8 +--
 .../configuration/source-plugins/Fake/index.html   |   8 +--
 .../configuration/source-plugins/File/index.html   |   8 +--
 .../source-plugins/InfluxDb/index.html             |   8 +--
 .../configuration/source-plugins/Jdbc/index.html   |   8 +--
 .../configuration/source-plugins/Kafka/index.html  |   8 +--
 .../configuration/source-plugins/Socket/index.html |   8 +--
 .../source-plugins/source-plugin/index.html        |   8 +--
 .../transform-plugins/Split/index.html             |   8 +--
 .../configuration/transform-plugins/Sql/index.html |   8 +--
 .../transform-plugins/transform-plugin/index.html  |   8 +--
 docs/flink/deployment/index.html                   |   8 +--
 docs/flink/installation/index.html                 |   8 +--
 docs/flink/quick-start/index.html                  |   8 +--
 docs/introduction/index.html                       |   8 +--
 .../commands/start-seatunnel-spark.sh/index.html   |   8 +--
 docs/spark/configuration/ConfigExamples/index.html |   8 +--
 .../sink-plugins/Clickhouse/index.html             |   8 +--
 .../configuration/sink-plugins/Console/index.html  |   8 +--
 .../configuration/sink-plugins/Doris/index.html    |   8 +--
 .../sink-plugins/Elasticsearch/index.html          |   8 +--
 .../configuration/sink-plugins/Email/index.html    |   8 +--
 .../configuration/sink-plugins/File/index.html     |   8 +--
 .../configuration/sink-plugins/Hbase/index.html    |   8 +--
 .../configuration/sink-plugins/Hdfs/index.html     |   8 +--
 .../configuration/sink-plugins/Hive/index.html     |   8 +--
 .../configuration/sink-plugins/Hudi/index.html     |   8 +--
 .../configuration/sink-plugins/Jdbc/index.html     |   8 +--
 .../configuration/sink-plugins/Kafka/index.html    |   8 +--
 .../configuration/sink-plugins/Kudu/index.html     |   8 +--
 .../configuration/sink-plugins/MongoDB/index.html  |   8 +--
 .../configuration/sink-plugins/Mysql/index.html    |   8 +--
 .../configuration/sink-plugins/Phoenix/index.html  |   8 +--
 .../configuration/sink-plugins/Redis/index.html    |   8 +--
 .../configuration/sink-plugins/Tidb/index.html     |   8 +--
 .../sink-plugins/sink-plugin/index.html            |   8 +--
 .../source-plugins/Elasticsearch/index.html        |   8 +--
 .../configuration/source-plugins/Fake/index.html   |   8 +--
 .../source-plugins/FakeStream/index.html           |   8 +--
 .../configuration/source-plugins/Hive/index.html   |   8 +--
 .../configuration/source-plugins/Hudi/index.html   |   8 +--
 .../configuration/source-plugins/Jdbc/index.html   |   8 +--
 .../source-plugins/KafkaStream/index.html          |   8 +--
 .../configuration/source-plugins/Kudu/index.html   |   8 +--
 .../source-plugins/MongoDB/index.html              |   8 +--
 .../source-plugins/Phoenix/index.html              |   8 +--
 .../configuration/source-plugins/Redis/index.html  |   8 +--
 .../source-plugins/SocketStream/index.html         |   8 +--
 .../configuration/source-plugins/Tidb/index.html   |   8 +--
 .../configuration/source-plugins/neo4j/index.html  |   8 +--
 .../source-plugins/source-plugin/index.html        |   8 +--
 .../transform-plugins/Json/index.html              |   8 +--
 .../transform-plugins/Split/index.html             |   8 +--
 .../configuration/transform-plugins/Sql/index.html |   8 +--
 .../transform-plugins/transform-plugin/index.html  |   8 +--
 docs/spark/deployment/index.html                   |   8 +--
 docs/spark/installation/index.html                 |   8 +--
 docs/spark/quick-start/index.html                  |   8 +--
 faq/faq/index.html                                 |   8 +--
 home/index.html                                    |   8 +--
 index.html                                         |   8 +--
 sitemap.xml                                        |   2 +-
 team/index.html                                    |   8 +--
 user/index.html                                    |   8 +--
 zh-CN/404.html                                     |   8 +--
 .../1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png       | Bin 0 -> 998705 bytes
 .../images/10-15459320d13177fafe0fd49a06f92e03.png | Bin 0 -> 580632 bytes
 .../images/11-8f601d01cedafe8901b091b5ddcefd59.png | Bin 0 -> 397760 bytes
 .../images/12-9a03852b4e4065b3f9f909da1bb4b672.png | Bin 0 -> 460187 bytes
 .../images/13-c93b070b1abe679688f557f3b6bcfc52.png | Bin 0 -> 650030 bytes
 .../images/14-654566bbfb5ed478b1a9dcd28f2dba72.png | Bin 0 -> 944028 bytes
 .../images/15-798a1029db30ff228befcc333645c3e4.png | Bin 0 -> 575940 bytes
 .../images/16-8947f00847b3a55a537124964206e1b2.png | Bin 0 -> 436784 bytes
 .../images/2-0b1a1413f99ac6195aefc2146ba07c4b.png  | Bin 0 -> 906672 bytes
 .../images/3-a762d5f3914268cbc2b478215d8da72d.png  | Bin 0 -> 990108 bytes
 .../images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png  | Bin 0 -> 580310 bytes
 .../images/5-e5c4ff850add4f0334c2f9a0de839c53.png  | Bin 0 -> 1254258 bytes
 .../images/6-e37187a14e8316f82074f78b8a250a58.png  | Bin 0 -> 478809 bytes
 .../images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png  | Bin 0 -> 760019 bytes
 .../images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png  | Bin 0 -> 613983 bytes
 .../images/9-f08855ea40230b4f16d6c04408063346.png  | Bin 0 -> 977703 bytes
 zh-CN/assets/js/08dd1cb1.d2c9f3b6.js               |   1 +
 zh-CN/assets/js/14354f1c.d4c35905.js               |   1 +
 zh-CN/assets/js/15ad2644.5521991c.js               |   1 -
 zh-CN/assets/js/15ad2644.6f5d3265.js               |   1 +
 .../{231cb6d2.3481d4c3.js => 231cb6d2.9f722f53.js} |   2 +-
 zh-CN/assets/js/50bc71d4.378204ee.js               |   1 -
 zh-CN/assets/js/50bc71d4.6719e4ec.js               |   1 +
 zh-CN/assets/js/814f3328.37a6b8a8.js               |   1 -
 zh-CN/assets/js/814f3328.84823219.js               |   1 +
 zh-CN/assets/js/88a3f98d.13cc2dfb.js               |   1 -
 zh-CN/assets/js/88a3f98d.8246bc0b.js               |   1 +
 .../{8d998be3.b56d2f78.js => 8d998be3.8e521fa9.js} |   2 +-
 zh-CN/assets/js/971aa1e1.f3c30a7a.js               |   1 +
 zh-CN/assets/js/a281a1a5.0cb475df.js               |   1 +
 zh-CN/assets/js/a281a1a5.c7f8035a.js               |   1 -
 zh-CN/assets/js/f820265a.187e16e6.js               |   1 -
 zh-CN/assets/js/f820265a.5c8b50d1.js               |   1 +
 zh-CN/assets/js/main.25a063ee.js                   |   2 +
 .../assets/js/main.25a063ee.js.LICENSE.txt         |   0
 zh-CN/assets/js/main.56b4736e.js                   |   2 -
 zh-CN/assets/js/runtime~main.6b9fee27.js           |   1 -
 zh-CN/assets/js/runtime~main.e4d362a8.js           |   1 +
 .../index.html"                                    |  58 ++++++++++++++++++++
 zh-CN/blog/archive/index.html                      |  10 ++--
 zh-CN/blog/atom.xml                                |  42 ++++++++++++++-
 zh-CN/blog/hdfs-to-clickhouse/index.html           |  10 ++--
 zh-CN/blog/hive-to-clickhouse/index.html           |  10 ++--
 zh-CN/blog/index.html                              |  40 ++++++++++++--
 zh-CN/blog/rss.xml                                 |  42 ++++++++++++++-
 zh-CN/blog/spark-execute-elasticsearch/index.html  |  10 ++--
 zh-CN/blog/spark-execute-tidb/index.html           |  10 ++--
 zh-CN/blog/spark-structured-streaming/index.html   |  10 ++--
 zh-CN/blog/tags/click-house/index.html             |  40 ++++++++++++--
 zh-CN/blog/tags/elasticsearch/index.html           |  10 ++--
 zh-CN/blog/tags/hdfs/index.html                    |  10 ++--
 zh-CN/blog/tags/hive/index.html                    |  10 ++--
 zh-CN/blog/tags/index.html                         |  10 ++--
 zh-CN/blog/tags/kafka/index.html                   |  10 ++--
 zh-CN/blog/tags/spark/index.html                   |  10 ++--
 zh-CN/blog/tags/structured-streaming/index.html    |  10 ++--
 zh-CN/blog/tags/ti-db/index.html                   |  10 ++--
 .../index.html"                                    |  58 ++++++++++++++++++++
 .../contribution_guide/committer/index.html        |   8 +--
 .../contribution_guide/contribute/index.html       |   8 +--
 .../contribution_guide/subscribe/index.html        |   8 +--
 zh-CN/community/submit_guide/document/index.html   |   8 +--
 zh-CN/community/submit_guide/license/index.html    |   8 +--
 .../community/submit_guide/submit-code/index.html  |   8 +--
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/1-1.png    | Bin 0 -> 998705 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/1.png      | Bin 0 -> 8820522 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/10.png     | Bin 0 -> 580632 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/11.png     | Bin 0 -> 397760 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/12.png     | Bin 0 -> 460187 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/13.png     | Bin 0 -> 650030 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/14.png     | Bin 0 -> 944028 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/15.png     | Bin 0 -> 575940 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/16.png     | Bin 0 -> 436784 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/2.png      | Bin 0 -> 906672 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/3.png      | Bin 0 -> 990108 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/4.png      | Bin 0 -> 580310 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/5.png      | Bin 0 -> 1254258 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/6.png      | Bin 0 -> 478809 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/7.png      | Bin 0 -> 760019 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/8.png      | Bin 0 -> 613983 bytes
 zh-CN/doc/image_zh/2022-2-18-Meetup-vip/9.png      | Bin 0 -> 977703 bytes
 zh-CN/docs/developement/NewLicenseGuide/index.html |   8 +--
 .../commands/start-seatunnel-flink.sh/index.html   |   8 +--
 .../flink/configuration/ConfigExamples/index.html  |   8 +--
 .../configuration/sink-plugins/Console/index.html  |   8 +--
 .../configuration/sink-plugins/Doris/index.html    |   8 +--
 .../configuration/sink-plugins/Druid/index.html    |   8 +--
 .../sink-plugins/Elasticsearch/index.html          |   8 +--
 .../configuration/sink-plugins/File/index.html     |   8 +--
 .../configuration/sink-plugins/InfluxDb/index.html |   8 +--
 .../configuration/sink-plugins/Jdbc/index.html     |   8 +--
 .../configuration/sink-plugins/Kafka/index.html    |   8 +--
 .../sink-plugins/sink-plugin/index.html            |   8 +--
 .../configuration/source-plugins/Druid/index.html  |   8 +--
 .../configuration/source-plugins/Fake/index.html   |   8 +--
 .../configuration/source-plugins/File/index.html   |   8 +--
 .../source-plugins/InfluxDb/index.html             |   8 +--
 .../configuration/source-plugins/Jdbc/index.html   |   8 +--
 .../configuration/source-plugins/Kafka/index.html  |   8 +--
 .../configuration/source-plugins/Socket/index.html |   8 +--
 .../source-plugins/source-plugin/index.html        |   8 +--
 .../transform-plugins/Split/index.html             |   8 +--
 .../configuration/transform-plugins/Sql/index.html |   8 +--
 .../transform-plugins/transform-plugin/index.html  |   8 +--
 zh-CN/docs/flink/deployment/index.html             |   8 +--
 zh-CN/docs/flink/installation/index.html           |   8 +--
 zh-CN/docs/flink/quick-start/index.html            |   8 +--
 zh-CN/docs/introduction/index.html                 |   8 +--
 .../commands/start-seatunnel-spark.sh/index.html   |   8 +--
 .../spark/configuration/ConfigExamples/index.html  |   8 +--
 .../sink-plugins/Clickhouse/index.html             |   8 +--
 .../configuration/sink-plugins/Console/index.html  |   8 +--
 .../configuration/sink-plugins/Doris/index.html    |   8 +--
 .../sink-plugins/Elasticsearch/index.html          |   8 +--
 .../configuration/sink-plugins/Email/index.html    |   8 +--
 .../configuration/sink-plugins/File/index.html     |   8 +--
 .../configuration/sink-plugins/Hbase/index.html    |   8 +--
 .../configuration/sink-plugins/Hdfs/index.html     |   8 +--
 .../configuration/sink-plugins/Hive/index.html     |   8 +--
 .../configuration/sink-plugins/Hudi/index.html     |   8 +--
 .../configuration/sink-plugins/Jdbc/index.html     |   8 +--
 .../configuration/sink-plugins/Kafka/index.html    |   8 +--
 .../configuration/sink-plugins/Kudu/index.html     |   8 +--
 .../configuration/sink-plugins/MongoDB/index.html  |   8 +--
 .../configuration/sink-plugins/Mysql/index.html    |   8 +--
 .../configuration/sink-plugins/Phoenix/index.html  |   8 +--
 .../configuration/sink-plugins/Redis/index.html    |   8 +--
 .../configuration/sink-plugins/Tidb/index.html     |   8 +--
 .../sink-plugins/sink-plugin/index.html            |   8 +--
 .../source-plugins/Elasticsearch/index.html        |   8 +--
 .../configuration/source-plugins/Fake/index.html   |   8 +--
 .../source-plugins/FakeStream/index.html           |   8 +--
 .../configuration/source-plugins/Hive/index.html   |   8 +--
 .../configuration/source-plugins/Hudi/index.html   |   8 +--
 .../configuration/source-plugins/Jdbc/index.html   |   8 +--
 .../source-plugins/KafkaStream/index.html          |   8 +--
 .../configuration/source-plugins/Kudu/index.html   |   8 +--
 .../source-plugins/MongoDB/index.html              |   8 +--
 .../source-plugins/Phoenix/index.html              |   8 +--
 .../configuration/source-plugins/Redis/index.html  |   8 +--
 .../source-plugins/SocketStream/index.html         |   8 +--
 .../configuration/source-plugins/Tidb/index.html   |   8 +--
 .../configuration/source-plugins/neo4j/index.html  |   8 +--
 .../source-plugins/source-plugin/index.html        |   8 +--
 .../transform-plugins/Json/index.html              |   8 +--
 .../transform-plugins/Split/index.html             |   8 +--
 .../configuration/transform-plugins/Sql/index.html |   8 +--
 .../transform-plugins/transform-plugin/index.html  |   8 +--
 zh-CN/docs/spark/deployment/index.html             |   8 +--
 zh-CN/docs/spark/installation/index.html           |   8 +--
 zh-CN/docs/spark/quick-start/index.html            |   8 +--
 zh-CN/faq/faq/index.html                           |   8 +--
 zh-CN/home/index.html                              |   8 +--
 zh-CN/index.html                                   |   8 +--
 zh-CN/sitemap.xml                                  |   2 +-
 zh-CN/team/index.html                              |   8 +--
 zh-CN/user/index.html                              |   8 +--
 316 files changed, 1365 insertions(+), 845 deletions(-)

diff --git a/404.html b/404.html
index 6548060..a05e671 100644
--- a/404.html
+++ b/404.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Page Not Found | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="Page Not Found | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/404.html"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png b/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png
new file mode 100644
index 0000000..8bcbfe6
Binary files /dev/null and b/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png differ
diff --git a/assets/images/10-15459320d13177fafe0fd49a06f92e03.png b/assets/images/10-15459320d13177fafe0fd49a06f92e03.png
new file mode 100644
index 0000000..6a72bdd
Binary files /dev/null and b/assets/images/10-15459320d13177fafe0fd49a06f92e03.png differ
diff --git a/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png b/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png
new file mode 100644
index 0000000..957a5ca
Binary files /dev/null and b/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png differ
diff --git a/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png b/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png
new file mode 100644
index 0000000..98a67d1
Binary files /dev/null and b/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png differ
diff --git a/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png b/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png
new file mode 100644
index 0000000..3650037
Binary files /dev/null and b/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png differ
diff --git a/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png b/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png
new file mode 100644
index 0000000..3c0b20b
Binary files /dev/null and b/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png differ
diff --git a/assets/images/15-798a1029db30ff228befcc333645c3e4.png b/assets/images/15-798a1029db30ff228befcc333645c3e4.png
new file mode 100644
index 0000000..fa79211
Binary files /dev/null and b/assets/images/15-798a1029db30ff228befcc333645c3e4.png differ
diff --git a/assets/images/16-8947f00847b3a55a537124964206e1b2.png b/assets/images/16-8947f00847b3a55a537124964206e1b2.png
new file mode 100644
index 0000000..76b2f20
Binary files /dev/null and b/assets/images/16-8947f00847b3a55a537124964206e1b2.png differ
diff --git a/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png b/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png
new file mode 100644
index 0000000..24e7122
Binary files /dev/null and b/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png differ
diff --git a/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png b/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png
new file mode 100644
index 0000000..17599bb
Binary files /dev/null and b/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png differ
diff --git a/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png b/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png
new file mode 100644
index 0000000..9909ac5
Binary files /dev/null and b/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png differ
diff --git a/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png b/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png
new file mode 100644
index 0000000..52d3bda
Binary files /dev/null and b/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png differ
diff --git a/assets/images/6-e37187a14e8316f82074f78b8a250a58.png b/assets/images/6-e37187a14e8316f82074f78b8a250a58.png
new file mode 100644
index 0000000..4b7bd59
Binary files /dev/null and b/assets/images/6-e37187a14e8316f82074f78b8a250a58.png differ
diff --git a/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png b/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png
new file mode 100644
index 0000000..86619ce
Binary files /dev/null and b/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png differ
diff --git a/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png b/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png
new file mode 100644
index 0000000..2a5d8ef
Binary files /dev/null and b/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png differ
diff --git a/assets/images/9-f08855ea40230b4f16d6c04408063346.png b/assets/images/9-f08855ea40230b4f16d6c04408063346.png
new file mode 100644
index 0000000..f06f2bf
Binary files /dev/null and b/assets/images/9-f08855ea40230b4f16d6c04408063346.png differ
diff --git a/assets/js/08dd1cb1.1c548215.js b/assets/js/08dd1cb1.1c548215.js
new file mode 100644
index 0000000..f27906e
--- /dev/null
+++ b/assets/js/08dd1cb1.1c548215.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6138],{3905:function(e,n,t){t.d(n,{Zo:function(){return o},kt:function(){return h}});var i=t(7294);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/14354f1c.681801a8.js b/assets/js/14354f1c.681801a8.js
new file mode 100644
index 0000000..b5eb25b
--- /dev/null
+++ b/assets/js/14354f1c.681801a8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9971],{3905:function(e,n,t){t.d(n,{Zo:function(){return o},kt:function(){return h}});var i=t(7294);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/814f3328.03cd79bb.js b/assets/js/814f3328.03cd79bb.js
new file mode 100644
index 0000000..97cfb7b
--- /dev/null
+++ b/assets/js/814f3328.03cd79bb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2535],{5641:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"SeaTunnel \u5728\u552f\u54c1\u4f1a\u7684\u5b9e\u8df5","permalink":"/blog/SeaTunnel \u5728\u552f\u54c1\u4f1a\u7684\u5b9e\u8df5"},{"title":"\u5982\u4f55\u5feb\u901f\u5730\u628a HDFS \u4e2d\u7684\u6570\u636e\u5bfc\u5165 ClickHouse","permalink":"/blog/hdfs-to-clickhouse"},{"title":"\u5982\u4f55\u5feb\u901f\u57 [...]
\ No newline at end of file
diff --git a/assets/js/814f3328.4fb126fa.js b/assets/js/814f3328.4fb126fa.js
deleted file mode 100644
index 5a92a34..0000000
--- a/assets/js/814f3328.4fb126fa.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2535],{5641:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"\u5982\u4f55\u5feb\u901f\u5730\u628a HDFS \u4e2d\u7684\u6570\u636e\u5bfc\u5165 ClickHouse","permalink":"/blog/hdfs-to-clickhouse"},{"title":"\u5982\u4f55\u5feb\u901f\u5730\u628a Hive \u4e2d\u7684\u6570\u636e\u5bfc\u5165 ClickHouse","permalink":"/blog/hive-to-clickhouse"},{"title":"\u5982\u4f55\u4f7f\u7528  [...]
\ No newline at end of file
diff --git a/assets/js/88a3f98d.4979de12.js b/assets/js/88a3f98d.4979de12.js
deleted file mode 100644
index 28aec4c..0000000
--- a/assets/js/88a3f98d.4979de12.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3064],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/88a3f98d.fc9285e8.js b/assets/js/88a3f98d.fc9285e8.js
new file mode 100644
index 0000000..d145000
--- /dev/null
+++ b/assets/js/88a3f98d.fc9285e8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3064],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/8d5db32b.0b9219fd.js b/assets/js/8d5db32b.0b9219fd.js
new file mode 100644
index 0000000..892971c
--- /dev/null
+++ b/assets/js/8d5db32b.0b9219fd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4164],{2485:function(e){e.exports=JSON.parse('{"allTagsPath":"/blog/tags","slug":"/blog/tags/\u552f\u54c1\u4f1a","name":"\u552f\u54c1\u4f1a","count":1,"permalink":"/blog/tags/\u552f\u54c1\u4f1a"}')}}]);
\ No newline at end of file
diff --git a/assets/js/a281a1a5.01c237ba.js b/assets/js/a281a1a5.01c237ba.js
new file mode 100644
index 0000000..3b0ec4d
--- /dev/null
+++ b/assets/js/a281a1a5.01c237ba.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3229],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return d}});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/a281a1a5.4f25b5bf.js b/assets/js/a281a1a5.4f25b5bf.js
deleted file mode 100644
index c2d5b73..0000000
--- a/assets/js/a281a1a5.4f25b5bf.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3229],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return d}});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/a7023ddc.40766f95.js b/assets/js/a7023ddc.40766f95.js
new file mode 100644
index 0000000..afa42f0
--- /dev/null
+++ b/assets/js/a7023ddc.40766f95.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1713],{3457:function(a){a.exports=JSON.parse('{"/blog/tags/\u552f\u54c1\u4f1a":{"allTagsPath":"/blog/tags","slug":"/blog/tags/\u552f\u54c1\u4f1a","name":"\u552f\u54c1\u4f1a","count":1,"permalink":"/blog/tags/\u552f\u54c1\u4f1a"},"/blog/tags/click-house":{"allTagsPath":"/blog/tags","slug":"/blog/tags/click-house","name":"ClickHouse","count":3,"permalink":"/blog/tags/click-house"},"/blog/tags/hd [...]
\ No newline at end of file
diff --git a/assets/js/a7023ddc.d602aa85.js b/assets/js/a7023ddc.d602aa85.js
deleted file mode 100644
index b1907bd..0000000
--- a/assets/js/a7023ddc.d602aa85.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1713],{3457:function(a){a.exports=JSON.parse('{"/blog/tags/hdfs":{"allTagsPath":"/blog/tags","slug":"/blog/tags/hdfs","name":"HDFS","count":1,"permalink":"/blog/tags/hdfs"},"/blog/tags/click-house":{"allTagsPath":"/blog/tags","slug":"/blog/tags/click-house","name":"ClickHouse","count":2,"permalink":"/blog/tags/click-house"},"/blog/tags/hive":{"allTagsPath":"/blog/tags","slug":"/blog/tags/hive" [...]
\ No newline at end of file
diff --git a/assets/js/b2b675dd.a346757c.js b/assets/js/b2b675dd.426316cf.js
similarity index 62%
rename from assets/js/b2b675dd.a346757c.js
rename to assets/js/b2b675dd.426316cf.js
index e440a55..6a0bae7 100644
--- a/assets/js/b2b675dd.a346757c.js
+++ b/assets/js/b2b675dd.426316cf.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[533],{8017:function(e){e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[533],{8017:function(e){e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":6,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/b2f554cd.0b504882.js b/assets/js/b2f554cd.0b504882.js
deleted file mode 100644
index 79409da..0000000
--- a/assets/js/b2f554cd.0b504882.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1477],{10:function(n){n.exports=JSON.parse('{"blogPosts":[{"id":"hdfs-to-clickhouse","metadata":{"permalink":"/blog/hdfs-to-clickhouse","editUrl":"https://github.com/apache/incubator-seatunnel-website/edit/main/blog/2021-12-30-hdfs-to-clickhouse.md","source":"@site/blog/2021-12-30-hdfs-to-clickhouse.md","title":"\u5982\u4f55\u5feb\u901f\u5730\u628a HDFS \u4e2d\u7684\u6570\u636e\u5bfc\u5165 Cli [...]
\ No newline at end of file
diff --git a/assets/js/b2f554cd.3c79cc9f.js b/assets/js/b2f554cd.3c79cc9f.js
new file mode 100644
index 0000000..6a1d13e
--- /dev/null
+++ b/assets/js/b2f554cd.3c79cc9f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1477],{10:function(n){n.exports=JSON.parse('{"blogPosts":[{"id":"SeaTunnel \u5728\u552f\u54c1\u4f1a\u7684\u5b9e\u8df5","metadata":{"permalink":"/blog/SeaTunnel \u5728\u552f\u54c1\u4f1a\u7684\u5b9e\u8df5","editUrl":"https://github.com/apache/incubator-seatunnel-website/edit/main/blog/2022-2-18-Meetup-vip.md","source":"@site/blog/2022-2-18-Meetup-vip.md","title":"SeaTunnel \u5728\u552f\u54c1\u4f [...]
\ No newline at end of file
diff --git a/assets/js/bd981e29.2fe64999.js b/assets/js/bd981e29.7c5634e4.js
similarity index 69%
rename from assets/js/bd981e29.2fe64999.js
rename to assets/js/bd981e29.7c5634e4.js
index 82a0058..4168944 100644
--- a/assets/js/bd981e29.2fe64999.js
+++ b/assets/js/bd981e29.7c5634e4.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5244],{1368:function(e){e.exports=JSON.parse('{"allTagsPath":"/blog/tags","slug":"/blog/tags/click-house","name":"ClickHouse","count":2,"permalink":"/blog/tags/click-house"}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5244],{1368:function(e){e.exports=JSON.parse('{"allTagsPath":"/blog/tags","slug":"/blog/tags/click-house","name":"ClickHouse","count":3,"permalink":"/blog/tags/click-house"}')}}]);
\ No newline at end of file
diff --git a/assets/js/f820265a.0e216b63.js b/assets/js/f820265a.0e216b63.js
deleted file mode 100644
index 03dd325..0000000
--- a/assets/js/f820265a.0e216b63.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7297],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/f820265a.ac85e0c2.js b/assets/js/f820265a.ac85e0c2.js
new file mode 100644
index 0000000..a47206e
--- /dev/null
+++ b/assets/js/f820265a.ac85e0c2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7297],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/main.2802538f.js b/assets/js/main.2802538f.js
deleted file mode 100644
index acae6cc..0000000
--- a/assets/js/main.2802538f.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.2802538f.js.LICENSE.txt */
-(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[179],{9782:function(e,t,n){"use strict";n.r(t),t.default={title:"Apache SeaTunnel",tagline:"Dinosaurs are cool",url:"https://seatunnel.apache.org",baseUrl:"/",onBrokenLinks:"ignore",onBrokenMarkdownLinks:"warn",favicon:"image/favicon.ico",organizationName:"Apache SeaTunnel",projectName:"Apache SeaTunnel",i18n:{defaultLocale:"en",locales:["en","zh-CN"],localeConfigs:{en:{label:"English",direction:"ltr"},"zh [...]
\ No newline at end of file
diff --git a/assets/js/main.4602ec29.js b/assets/js/main.4602ec29.js
new file mode 100644
index 0000000..c910fb5
--- /dev/null
+++ b/assets/js/main.4602ec29.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.4602ec29.js.LICENSE.txt */
+(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[179],{9782:function(e,t,n){"use strict";n.r(t),t.default={title:"Apache SeaTunnel",tagline:"Dinosaurs are cool",url:"https://seatunnel.apache.org",baseUrl:"/",onBrokenLinks:"ignore",onBrokenMarkdownLinks:"warn",favicon:"image/favicon.ico",organizationName:"Apache SeaTunnel",projectName:"Apache SeaTunnel",i18n:{defaultLocale:"en",locales:["en","zh-CN"],localeConfigs:{en:{label:"English",direction:"ltr"},"zh [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/main.56b4736e.js.LICENSE.txt b/assets/js/main.4602ec29.js.LICENSE.txt
similarity index 100%
rename from zh-CN/assets/js/main.56b4736e.js.LICENSE.txt
rename to assets/js/main.4602ec29.js.LICENSE.txt
diff --git a/assets/js/runtime~main.14c1e774.js b/assets/js/runtime~main.14c1e774.js
new file mode 100644
index 0000000..24307cd
--- /dev/null
+++ b/assets/js/runtime~main.14c1e774.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,c,a,f,d,b={},t={};function n(e){var c=t[e];if(void 0!==c)return c.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.m=b,n.c=t,e=[],n.O=function(c,a,f,d){if(!a){var b=1/0;for(u=0;u<e.length;u++){a=e[u][0],f=e[u][1],d=e[u][2];for(var t=!0,r=0;r<a.length;r++)(!1&d||b>=d)&&Object.keys(n.O).every((function(e){return n.O[e](a[r])}))?a.splice(r--,1):(t=!1,d<b&&(b=d));if(t){e.splice(u--,1);var o=f();voi [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.8f77721d.js b/assets/js/runtime~main.8f77721d.js
deleted file mode 100644
index 6043193..0000000
--- a/assets/js/runtime~main.8f77721d.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){"use strict";var e,a,c,f,d,b={},t={};function n(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(c.exports,c,c.exports,n),c.loaded=!0,c.exports}n.m=b,n.c=t,e=[],n.O=function(a,c,f,d){if(!c){var b=1/0;for(u=0;u<e.length;u++){c=e[u][0],f=e[u][1],d=e[u][2];for(var t=!0,r=0;r<c.length;r++)(!1&d||b>=d)&&Object.keys(n.O).every((function(e){return n.O[e](c[r])}))?c.splice(r--,1):(t=!1,d<b&&(b=d));if(t){e.splice(u--,1);var o=f();voi [...]
\ No newline at end of file
diff --git "a/blog/SeaTunnel \345\234\250\345\224\257\345\223\201\344\274\232\347\232\204\345\256\236\350\267\265/index.html" "b/blog/SeaTunnel \345\234\250\345\224\257\345\223\201\344\274\232\347\232\204\345\256\236\350\267\265/index.html"
new file mode 100644
index 0000000..c53b1d8
--- /dev/null
+++ "b/blog/SeaTunnel \345\234\250\345\224\257\345\223\201\344\274\232\347\232\204\345\256\236\350\267\265/index.html"	
@@ -0,0 +1,59 @@
+<!doctype html>
+<html lang="en" dir="ltr">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-beta.15">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">SeaTunnel 在唯品会的实践 | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/blog/SeaTunnel 在唯品会的实践"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusaurus_ [...]
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+讲稿整理:张德通</p><p>导读: 唯品会早在1.0版本时就引用了SeaTunnel,我们使用SeaTunnel进行一些Hive到ClickHouse之间数据交互的工作。
+今天的介绍会围绕下面几点展开:</p><ul><li>ClickHouse数据导入的需求和痛点;</li><li>ClickHouse出仓入仓工具选型;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>SeaTunnel与唯品会数据平台的集成;</li><li>未来展望;</li></ul><h1>ClickHouse数据导入的需求和痛点</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1唯品会数据olap架构">1.唯品会数据OLAP架构<a class="hash-link" href="#1唯品会数据olap架构" title="Direct link to heading">​</a></h2><p>图中是唯品会OLAP架构,我们负责的模块是图中的数据服务和计算引擎两大部分。底层依赖的数据仓库分为离线数仓、实时数仓和湖仓。计算引擎方面,我们使用Presto、Kylin和Clickhouse。虽然Clickhouse是一个存 [...]
+<img alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2需求">2.需求<a class="hash-link" href="#2需求" title="Direct link to heading">​</a></h2><p>我们通过Presto Connector和Spark组件,把底层的Hive、Kudu、Alluxio组件打通。大数据组件之间可以互相导入导出数据,可以根据数据分析的需求和场景任意利用合适的组件分析数据。但我们引入Clickhouse时,它是一个数据孤岛,数据的导入和导出比较困难。Hive和Clickhouse之间需要做很多工作才能实现导入导出。我们的第一个数据导入导出需求就是提升导入导出效率,把Clickhouse纳入大数据体系中。
+<img alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>第二个需求是Presto跑SQL比较慢,图中是一个慢SQL的例子。图中的SQL where条件设置了日期、时间范围和具体过滤条件,这类SQL使用由于Presto使用分区粒度下推,运行比较慢。即使用Hive的Bucket表和分桶等其他方式优化后也是几秒的返回时间、不能满足业务要求。这种情况下,我们需要利用Clickhouse做离线的OLAP计算加速。
+<img alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>我们的实时数据是通过Kafka、Flink SQL方式写入到Clickhouse中。但分析时只用实时数据是不够的,需要用Hive维度表和已经ETL计算号的T+1实时表一起在Clickhouse中做加速运输。这需要把Hive的数据导入到Clickhouse中,这就是我们的第三个需求。
+<img alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3痛点">3.痛点<a class="hash-link" href="#3痛点" title="Direct link to heading">​</a></h2><p>首先,我们引入一项数据组件时要考虑其性能。Hive表粒度是五分钟,是否有组件可以支撑五分钟内完成一个短小ETL流程并把ETL结果导入到Clickhouse中?第二,我们需要保证数据质量,数据的准确性需要有保障。Hive和Clickhouse的数据条数需要保障一致性,如果数据质量出问题能否通过重跑等机制修复数据?第三,数据导入需要支持的数据类型是否完备?不同数据库之间的数据类型和一些机制不同,我们有HiperLogLog和BitMap这类在某一存储引擎中利用得比较多得数据类型,是否可以正确传输和识别 [...]
+SeaTunnel和Spark依赖唯品会自己的Yarn集群,可以直接实现分布式读取和写入。DataX是非分布式的,且Reader、Writer之间的启动过程耗时时间长,性能普通,SeaTunnel和Spark处理数据的性能可以达到DataX的数倍。
+十亿以上的数据可以平稳地在SeaTunnel和Spark中运行,DataX在数据量大以后性能压力大,处理十亿以上数据吃力。
+在读写插件扩展性方面,SeaTunnel支持了多种数据源,支持用户开发插件。SeaTunnel支持了数据导入Redis。
+稳定性上,SeaTunnel和DataX由于是自成体系的工具,稳定性会更好。Spark的稳定性方面需要关注代码质量。
+<img alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>我们的曝光表数据量每天在几十亿级,我们有5min内完成数据处理的性能要求,我们我们存在数据导入导出到Redis的需求,我们需要导入导出工具可以接入到数据平台上进行任务调度。 出于数据量级、性能、可扩展性、平台兼容性几方面的考虑,我们选择了SeaTunnel作为我们的数仓导入导出工具。</p><h1>Hive数据导入到ClickHouse</h1><p>下面将介绍我们对SeaTunnel的使用。
+图中是一张Hive表,它是我们三级的商品维度表,包含品类商品、维度品类和用户人群信息。表的主键是一个三级品类ct_third_id,下面的value是两个uid的位图,是用户id的bitmap类型,我们要把这个Hive表导入到Clickhouse。
+<img alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel安装简单,官网文档有介绍如何安装。下图中是SeaTunnel的配置,配置中env、source和sink是必不可少的。env部分,图中的例子是Spark配置,配置了包括并发度等,可以调整这些参数。source部分是数据来源,这里配置了Hive数据源,包括一条Hive Select语句,Spark运行source配置中的SQL把数据读出,此处支持UDF进行简单ETL;sink部分配置了Clickhouse,可以看到output_type=rowbinary,rowbinary是唯品会自研加速方案;pre_sql和check_sql是自研的用于数据校验的功能,后面也会详细介绍;clickhouse.socket_timeout和bulk_size都是可以根据实际情况进行调整的。
+<img alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+运行过程中会产生Spark日志,运行成功和运行中错误都可以在日志中查看。
+<img alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>为了更贴合业务,唯品会对SeaTunnel做了一些改进。我们的ETL任务都是需要重跑的,我们支持了pre_sql和check_sql实现数据的重跑和对数。主要流程是在数据准备好后,执行pre_sql进行预处理,在Clickhouse中执行删除旧分区数据、存放到某一目录下在失败时恢复该分区、rename这类操作。check_sql会检验,校验通过后整个流程结束;如果检验不通过,根据配置进行重跑,重跑不通过则报警到对应负责人。
+<img alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>唯品会基于1.0版本SeaTunnel增加了RowBinary做加速,也让HuperLogLog和BinaryBitmap的二进制文件能更容易地从Hive导入到Clickhouse。我们在ClickHouse-jdbc、bulk_size、Hive-source几处进行了修改。使用CK-jdbc的extended api,以rowbinary方式将数据写入CK,bulk_size引入了以rowbinary方式写入CK的控制逻辑,Hive-source
+RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>我们还让SeaTunnel支持了多类型,为了圈人群的功能,需要在Clickhouse、Preso、Spark中实现对应的方法。我们在Clickhouse-jdbc中增加支持Batch特性的Callback、HttpEntity、RowBinaryStream,在Clickhouse-jdbc和Clickhouse-sink代码中增加了bitmap类型映射,在Presto和Spark中实现了Clickhouse的Hyperloglog和Bitmap的function的UDF。
+前面的配置中,Clickhouse-sink部分可以指定表名,这里有写入本地表和分布式表的差异。写入分布式表的性能比写入本地表差对Clickhouse集群的压力会更大,但在计算曝光表、流量表,ABTest等场景中需要两表Join,两张表量级均在几十亿。这时我们希望Join key落在本机,Join成本更小。我们建表时在Clickhouse的分布式表分布规则中配置murmurHash64规则,然后在Seatunnel的sink里直接配置分布式表,把写入规则交给Clickhouse,利用了分布式表的特性进行写入。写入本地表对Clickhouse的压力会更小,写入的性能也会更好。我们在Seatunnel里,根据sink的本地表,去Clickhouse的System.cluster表里获取表的分布信息和机器分布host。然后根据均分规则写入这些host。把数据分布式写入的事情放到Seatunnel里来做。
+针对本地表和分布式表的写入,我们未来的改造方向是在Seatunnel实现一致性哈希,直接按照一定规则写如Clickhouse、不依赖Clickhouse自身做数据分发,改善Clickhouse高CPU负载问题。</p><h1>ClickHouse数据导入到Hive</h1><p>我们有圈人群的需求,每天唯品会为供应商圈20万个人群,比如80后、高富帅、白富美的人群集合。这些在Clickhouse中的Bitmap人群信息需要导出到Hive表,在Hive中与其他ETL任务进行配合,最后推到PIKA交给外部媒体使用。我们使SeaTunnel将Clickhouse Bitmap人群数据反推到Hive。
+<img alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>由于我们接入SeaTunnel较早,我们对一些模块间进行了加工,包括新增plugin-spark-sink-hive模块、plugin-spark-source-ClickHouse模块,重写Spark Row相关方法,使其能封装经过Schem映射后的Clickhouse数据,重新构造StructField并生成最终需要落地Hive的DataFrame。最新版本已经有了很多source和sink组件,在SeaTunnel使用上更方便。现在也可以在SeaTunnel中直接集成Flink connector。</p><h1>SeaTunnel与唯品会数据平台的集成</h1><p>各个公司都有自己的调度系统,例如白鲸、宙斯。唯品会的调度工具是数坊,调度工具中集成了数据传输工具。下面是调度系统架构图,其中包含各类数据的出入仓。
+<img alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>我们把SeaTunnel集成到了调度系统中,数坊调度Master会根据任务类型把任务分配到对应的Agent上,根据Agent负载情况分配到合适的机器上运行,管控器把前台的任务调度配置和信息拉取到后生成SeaTunnel cluster,在类似于k8s pod、cgroup隔离的虚拟环境内进行执行。运行结果会由调度平台的数据质量监控判断任务是否完成、是否运行成功,失败时进行重跑和告警。
+<img alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel本身是一个工具化的组件,是为了进行数据血缘,数据质量,历史记录,高警监控,还包括资源分配这些信息的管控。我们把SeaTunnel集成到平台中,可以利用平台优势利用好SeaTunnel。
+圈存人群中利用了SeaTunnel进行处理。我们通过打点数据,把圈存人群按照路径和使用情况分为不同的人,或称千人千面,把用户打上标签,圈出的某一类人群推送给用户、分析师和供应商。
+<img alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>流量进入Kafka,通过Flink入仓,再通过ETL形成用户标签表,用户标签表生成后,我们通过Presto实现了的BitMap方法,把数据打成Hive中的宽表。用户通过在人群系统页面中框选词条创建任务,提交腾群,生成SQL查询Clickhouse BitMap。Clickhouse的BitMap查询速度非常快,由天生优势,我们需要把Hive的BitMap表通过SeaTunnel导入到Clickhouse中。圈完人群后我们需要把表落地,形成Clickhouse的一个分区或一条记录,再把生成的结果BitMap表通过SeaTunnel存储到Hive中去。最后同步工具会将Hive的BitMap人群结果同步给外部媒体仓库Pika。每天圈20w个人群左右。
+整个过程中SeaTunnel负责把数据从Hive导出到Clickhouse,Clickhouse的ETL流程完成后SeaTunnel把数据从Clickhouse导出到Hive。
+为了完成这样的需求,我们在Presto和Spark端现ClickHouse的Hyperloglog和BitMap的function的UDF;我们还开发Seatunnel接口,使得用户在ClickHouse里使用Bitmap方法圈出来的人群,可以直接通过Seatunnel写入Hive表,无需中间落地步骤。用户也可以在Hive里通过spark圈人群或者反解人群bitmap,调用SeaTunnel接口,使数据直接传输到ClickHouse的结果表,而无需中间落地。</p><h1>后续工作</h1><p>后续我们会进一步改善Clickhouse写入数据时CPU负载高的问题,下一步会在SeaTunnel中实现Clickhouse数据源和读取端的CK-local模式,读写分离,减轻Clickhouse压力。未来我们也会增加更多sink支持,如数据推送到Pika和相应的数据检查。</p></div><footer class="row docusaurus-mt-lg blogPostDetailsFull_h6_j"><div class="col"><b>Tags:</b><ul [...]
+            <div style="margin-top: 20px;background: #f4f8fa">
+                <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
+                <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
+                <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
+                <div style="text-align: center;">
+                    <a href="https://twitter.com/asfseatunnel?s=21" target="_blank" title="Twitter"><svg t="1644553365083" class="icon" viewBox="0 0 1260 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7015" width="25" height="25"><path d="M1259.846921 121.148242c-46.524504 20.728739-96.273478 34.547899-148.325646 40.536201 53.434084-31.784067 94.430924-82.454319 113.777747-142.797982-50.209613 29.480874-105.486251 51.13089-164.447999 62.646857A257.584528 257.584528 0 0 0 87 [...]
+                    <a href="https://apacheseatunnel.slack.com" target="_blank" title="Slack" style="margin-left: 20px;"><svg t="1644553076784" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3088" width="23" height="23"><path d="M215.125333 647.04a107.861333 107.861333 0 0 1-107.52 107.648A107.861333 107.861333 0 0 1 0 647.04a107.818667 107.818667 0 0 1 107.605333-107.52h107.52v107.52z m54.229334 0a107.818667 107.818667 0 0 1 107.562666-107.52 [...]
+                    <a href="https://lists.apache.org/list.html?dev@seatunnel.apache.org" target="_blank" title="Mailing list" style="margin-left: 20px;"><svg t="1644553175467" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5304" width="26" height="26"><path d="M853.333333 170.666667H170.666667c-46.933333 0-85.333333 38.4-85.333334 85.333333v512c0 46.933333 38.4 85.333333 85.333334 85.333333h682.666666c46.933333 0 85.333333-38.4 85.333334-85.3 [...]
+                    <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
+                </div>
+            <div></div></div></div></div></div></footer></div>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/blog/archive/index.html b/blog/archive/index.html
index 77040c9..16fe694 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Archive | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="Archive | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="description" content="Archive"><meta data-react-helmet="true" property="og:description" content="Archive"><meta d [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/atom.xml b/blog/atom.xml
index 46a6cd8..1d81639 100644
--- a/blog/atom.xml
+++ b/blog/atom.xml
@@ -2,12 +2,52 @@
 <feed xmlns="http://www.w3.org/2005/Atom">
     <id>https://seatunnel.apache.org/blog</id>
     <title>Apache SeaTunnel Blog</title>
-    <updated>2021-12-30T00:00:00.000Z</updated>
+    <updated>2022-02-18T00:00:00.000Z</updated>
     <generator>https://github.com/jpmonette/feed</generator>
     <link rel="alternate" href="https://seatunnel.apache.org/blog"/>
     <subtitle>Apache SeaTunnel Blog</subtitle>
     <icon>https://seatunnel.apache.org/image/favicon.ico</icon>
     <entry>
+        <title type="html"><![CDATA[SeaTunnel 在唯品会的实践]]></title>
+        <id>SeaTunnel 在唯品会的实践</id>
+        <link href="https://seatunnel.apache.org/blog/SeaTunnel 在唯品会的实践"/>
+        <updated>2022-02-18T00:00:00.000Z</updated>
+        <summary type="html"><![CDATA[分享嘉宾:唯品会 资深大数据工程师 王玉]]></summary>
+        <content type="html"><![CDATA[<p>分享嘉宾:唯品会 资深大数据工程师 王玉
+讲稿整理:张德通</p><p>导读: 唯品会早在1.0版本时就引用了SeaTunnel,我们使用SeaTunnel进行一些Hive到ClickHouse之间数据交互的工作。
+今天的介绍会围绕下面几点展开:</p><ul><li>ClickHouse数据导入的需求和痛点;</li><li>ClickHouse出仓入仓工具选型;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>SeaTunnel与唯品会数据平台的集成;</li><li>未来展望;</li></ul><h1>ClickHouse数据导入的需求和痛点</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1唯品会数据olap架构">1.唯品会数据OLAP架构<a class="hash-link" href="#1唯品会数据olap架构" title="Direct link to heading">​</a></h2><p>图中是唯品会OLAP架构,我们负责的模块是图中的数据服务和计算引擎两大部分。底层依赖的数据仓库分为离线数仓、实时数仓和湖仓。计算引擎方面,我们使用Presto、Kylin和Clickhouse。虽然Clickhouse是一个存 [...]
+<img alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2需求">2.需求<a class="hash-link" href="#2需求" title="Direct link to heading">​</a></h2><p>我们通过Presto Connector和Spark组件,把底层的Hive、Kudu、Alluxio组件打通。大数据组件之间可以互相导入导出数据,可以根据数据分析的需求和场景任意利用合适的组件分析数据。但我们引入Clickhouse时,它是一个数据孤岛,数据的导入和导出比较困难。Hive和Clickhouse之间需要做很多工作才能实现导入导出。我们的第一个数据导入导出需求就是提升导入导出效率,把Clickhouse纳入大数据体系中。
+<img alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>第二个需求是Presto跑SQL比较慢,图中是一个慢SQL的例子。图中的SQL where条件设置了日期、时间范围和具体过滤条件,这类SQL使用由于Presto使用分区粒度下推,运行比较慢。即使用Hive的Bucket表和分桶等其他方式优化后也是几秒的返回时间、不能满足业务要求。这种情况下,我们需要利用Clickhouse做离线的OLAP计算加速。
+<img alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>我们的实时数据是通过Kafka、Flink SQL方式写入到Clickhouse中。但分析时只用实时数据是不够的,需要用Hive维度表和已经ETL计算号的T+1实时表一起在Clickhouse中做加速运输。这需要把Hive的数据导入到Clickhouse中,这就是我们的第三个需求。
+<img alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3痛点">3.痛点<a class="hash-link" href="#3痛点" title="Direct link to heading">​</a></h2><p>首先,我们引入一项数据组件时要考虑其性能。Hive表粒度是五分钟,是否有组件可以支撑五分钟内完成一个短小ETL流程并把ETL结果导入到Clickhouse中?第二,我们需要保证数据质量,数据的准确性需要有保障。Hive和Clickhouse的数据条数需要保障一致性,如果数据质量出问题能否通过重跑等机制修复数据?第三,数据导入需要支持的数据类型是否完备?不同数据库之间的数据类型和一些机制不同,我们有HiperLogLog和BitMap这类在某一存储引擎中利用得比较多得数据类型,是否可以正确传输和识别 [...]
+SeaTunnel和Spark依赖唯品会自己的Yarn集群,可以直接实现分布式读取和写入。DataX是非分布式的,且Reader、Writer之间的启动过程耗时时间长,性能普通,SeaTunnel和Spark处理数据的性能可以达到DataX的数倍。
+十亿以上的数据可以平稳地在SeaTunnel和Spark中运行,DataX在数据量大以后性能压力大,处理十亿以上数据吃力。
+在读写插件扩展性方面,SeaTunnel支持了多种数据源,支持用户开发插件。SeaTunnel支持了数据导入Redis。
+稳定性上,SeaTunnel和DataX由于是自成体系的工具,稳定性会更好。Spark的稳定性方面需要关注代码质量。
+<img alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>我们的曝光表数据量每天在几十亿级,我们有5min内完成数据处理的性能要求,我们我们存在数据导入导出到Redis的需求,我们需要导入导出工具可以接入到数据平台上进行任务调度。 出于数据量级、性能、可扩展性、平台兼容性几方面的考虑,我们选择了SeaTunnel作为我们的数仓导入导出工具。</p><h1>Hive数据导入到ClickHouse</h1><p>下面将介绍我们对SeaTunnel的使用。
+图中是一张Hive表,它是我们三级的商品维度表,包含品类商品、维度品类和用户人群信息。表的主键是一个三级品类ct_third_id,下面的value是两个uid的位图,是用户id的bitmap类型,我们要把这个Hive表导入到Clickhouse。
+<img alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel安装简单,官网文档有介绍如何安装。下图中是SeaTunnel的配置,配置中env、source和sink是必不可少的。env部分,图中的例子是Spark配置,配置了包括并发度等,可以调整这些参数。source部分是数据来源,这里配置了Hive数据源,包括一条Hive Select语句,Spark运行source配置中的SQL把数据读出,此处支持UDF进行简单ETL;sink部分配置了Clickhouse,可以看到output_type=rowbinary,rowbinary是唯品会自研加速方案;pre_sql和check_sql是自研的用于数据校验的功能,后面也会详细介绍;clickhouse.socket_timeout和bulk_size都是可以根据实际情况进行调整的。
+<img alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+运行过程中会产生Spark日志,运行成功和运行中错误都可以在日志中查看。
+<img alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>为了更贴合业务,唯品会对SeaTunnel做了一些改进。我们的ETL任务都是需要重跑的,我们支持了pre_sql和check_sql实现数据的重跑和对数。主要流程是在数据准备好后,执行pre_sql进行预处理,在Clickhouse中执行删除旧分区数据、存放到某一目录下在失败时恢复该分区、rename这类操作。check_sql会检验,校验通过后整个流程结束;如果检验不通过,根据配置进行重跑,重跑不通过则报警到对应负责人。
+<img alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>唯品会基于1.0版本SeaTunnel增加了RowBinary做加速,也让HuperLogLog和BinaryBitmap的二进制文件能更容易地从Hive导入到Clickhouse。我们在ClickHouse-jdbc、bulk_size、Hive-source几处进行了修改。使用CK-jdbc的extended api,以rowbinary方式将数据写入CK,bulk_size引入了以rowbinary方式写入CK的控制逻辑,Hive-source
+RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>我们还让SeaTunnel支持了多类型,为了圈人群的功能,需要在Clickhouse、Preso、Spark中实现对应的方法。我们在Clickhouse-jdbc中增加支持Batch特性的Callback、HttpEntity、RowBinaryStream,在Clickhouse-jdbc和Clickhouse-sink代码中增加了bitmap类型映射,在Presto和Spark中实现了Clickhouse的Hyperloglog和Bitmap的function的UDF。
+前面的配置中,Clickhouse-sink部分可以指定表名,这里有写入本地表和分布式表的差异。写入分布式表的性能比写入本地表差对Clickhouse集群的压力会更大,但在计算曝光表、流量表,ABTest等场景中需要两表Join,两张表量级均在几十亿。这时我们希望Join key落在本机,Join成本更小。我们建表时在Clickhouse的分布式表分布规则中配置murmurHash64规则,然后在Seatunnel的sink里直接配置分布式表,把写入规则交给Clickhouse,利用了分布式表的特性进行写入。写入本地表对Clickhouse的压力会更小,写入的性能也会更好。我们在Seatunnel里,根据sink的本地表,去Clickhouse的System.cluster表里获取表的分布信息和机器分布host。然后根据均分规则写入这些host。把数据分布式写入的事情放到Seatunnel里来做。
+针对本地表和分布式表的写入,我们未来的改造方向是在Seatunnel实现一致性哈希,直接按照一定规则写如Clickhouse、不依赖Clickhouse自身做数据分发,改善Clickhouse高CPU负载问题。</p><h1>ClickHouse数据导入到Hive</h1><p>我们有圈人群的需求,每天唯品会为供应商圈20万个人群,比如80后、高富帅、白富美的人群集合。这些在Clickhouse中的Bitmap人群信息需要导出到Hive表,在Hive中与其他ETL任务进行配合,最后推到PIKA交给外部媒体使用。我们使SeaTunnel将Clickhouse Bitmap人群数据反推到Hive。
+<img alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>由于我们接入SeaTunnel较早,我们对一些模块间进行了加工,包括新增plugin-spark-sink-hive模块、plugin-spark-source-ClickHouse模块,重写Spark Row相关方法,使其能封装经过Schem映射后的Clickhouse数据,重新构造StructField并生成最终需要落地Hive的DataFrame。最新版本已经有了很多source和sink组件,在SeaTunnel使用上更方便。现在也可以在SeaTunnel中直接集成Flink connector。</p><h1>SeaTunnel与唯品会数据平台的集成</h1><p>各个公司都有自己的调度系统,例如白鲸、宙斯。唯品会的调度工具是数坊,调度工具中集成了数据传输工具。下面是调度系统架构图,其中包含各类数据的出入仓。
+<img alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>我们把SeaTunnel集成到了调度系统中,数坊调度Master会根据任务类型把任务分配到对应的Agent上,根据Agent负载情况分配到合适的机器上运行,管控器把前台的任务调度配置和信息拉取到后生成SeaTunnel cluster,在类似于k8s pod、cgroup隔离的虚拟环境内进行执行。运行结果会由调度平台的数据质量监控判断任务是否完成、是否运行成功,失败时进行重跑和告警。
+<img alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel本身是一个工具化的组件,是为了进行数据血缘,数据质量,历史记录,高警监控,还包括资源分配这些信息的管控。我们把SeaTunnel集成到平台中,可以利用平台优势利用好SeaTunnel。
+圈存人群中利用了SeaTunnel进行处理。我们通过打点数据,把圈存人群按照路径和使用情况分为不同的人,或称千人千面,把用户打上标签,圈出的某一类人群推送给用户、分析师和供应商。
+<img alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>流量进入Kafka,通过Flink入仓,再通过ETL形成用户标签表,用户标签表生成后,我们通过Presto实现了的BitMap方法,把数据打成Hive中的宽表。用户通过在人群系统页面中框选词条创建任务,提交腾群,生成SQL查询Clickhouse BitMap。Clickhouse的BitMap查询速度非常快,由天生优势,我们需要把Hive的BitMap表通过SeaTunnel导入到Clickhouse中。圈完人群后我们需要把表落地,形成Clickhouse的一个分区或一条记录,再把生成的结果BitMap表通过SeaTunnel存储到Hive中去。最后同步工具会将Hive的BitMap人群结果同步给外部媒体仓库Pika。每天圈20w个人群左右。
+整个过程中SeaTunnel负责把数据从Hive导出到Clickhouse,Clickhouse的ETL流程完成后SeaTunnel把数据从Clickhouse导出到Hive。
+为了完成这样的需求,我们在Presto和Spark端现ClickHouse的Hyperloglog和BitMap的function的UDF;我们还开发Seatunnel接口,使得用户在ClickHouse里使用Bitmap方法圈出来的人群,可以直接通过Seatunnel写入Hive表,无需中间落地步骤。用户也可以在Hive里通过spark圈人群或者反解人群bitmap,调用SeaTunnel接口,使数据直接传输到ClickHouse的结果表,而无需中间落地。</p><h1>后续工作</h1><p>后续我们会进一步改善Clickhouse写入数据时CPU负载高的问题,下一步会在SeaTunnel中实现Clickhouse数据源和读取端的CK-local模式,读写分离,减轻Clickhouse压力。未来我们也会增加更多sink支持,如数据推送到Pika和相应的数据检查。</p>]]></content>
+        <category label="唯品会" term="唯品会"/>
+        <category label="ClickHouse" term="ClickHouse"/>
+    </entry>
+    <entry>
         <title type="html"><![CDATA[如何快速地把 HDFS 中的数据导入 ClickHouse]]></title>
         <id>hdfs-to-clickhouse</id>
         <link href="https://seatunnel.apache.org/blog/hdfs-to-clickhouse"/>
diff --git a/blog/hdfs-to-clickhouse/index.html b/blog/hdfs-to-clickhouse/index.html
index ffc8b94..e59101a 100644
--- a/blog/hdfs-to-clickhouse/index.html
+++ b/blog/hdfs-to-clickhouse/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">如何快速地把 HDFS 中的数据导入 ClickHouse | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/blog/hdfs-to-clickhouse"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/hive-to-clickhouse/index.html b/blog/hive-to-clickhouse/index.html
index f83246e..b0b5782 100644
--- a/blog/hive-to-clickhouse/index.html
+++ b/blog/hive-to-clickhouse/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">如何快速地把 Hive 中的数据导入 ClickHouse | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/blog/hive-to-clickhouse"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
index f188c9a..6a19561 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -6,12 +6,42 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Blog | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="Blog | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="description" content="Blog"><meta data-react-helmet="true" property="og:description" content="Blog"><meta data-react-he [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+讲稿整理:张德通</p><p>导读: 唯品会早在1.0版本时就引用了SeaTunnel,我们使用SeaTunnel进行一些Hive到ClickHouse之间数据交互的工作。
+今天的介绍会围绕下面几点展开:</p><ul><li>ClickHouse数据导入的需求和痛点;</li><li>ClickHouse出仓入仓工具选型;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>SeaTunnel与唯品会数据平台的集成;</li><li>未来展望;</li></ul><h1>ClickHouse数据导入的需求和痛点</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1唯品会数据olap架构">1.唯品会数据OLAP架构<a class="hash-link" href="#1唯品会数据olap架构" title="Direct link to heading">​</a></h2><p>图中是唯品会OLAP架构,我们负责的模块是图中的数据服务和计算引擎两大部分。底层依赖的数据仓库分为离线数仓、实时数仓和湖仓。计算引擎方面,我们使用Presto、Kylin和Clickhouse。虽然Clickhouse是一个存 [...]
+<img alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2需求">2.需求<a class="hash-link" href="#2需求" title="Direct link to heading">​</a></h2><p>我们通过Presto Connector和Spark组件,把底层的Hive、Kudu、Alluxio组件打通。大数据组件之间可以互相导入导出数据,可以根据数据分析的需求和场景任意利用合适的组件分析数据。但我们引入Clickhouse时,它是一个数据孤岛,数据的导入和导出比较困难。Hive和Clickhouse之间需要做很多工作才能实现导入导出。我们的第一个数据导入导出需求就是提升导入导出效率,把Clickhouse纳入大数据体系中。
+<img alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>第二个需求是Presto跑SQL比较慢,图中是一个慢SQL的例子。图中的SQL where条件设置了日期、时间范围和具体过滤条件,这类SQL使用由于Presto使用分区粒度下推,运行比较慢。即使用Hive的Bucket表和分桶等其他方式优化后也是几秒的返回时间、不能满足业务要求。这种情况下,我们需要利用Clickhouse做离线的OLAP计算加速。
+<img alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>我们的实时数据是通过Kafka、Flink SQL方式写入到Clickhouse中。但分析时只用实时数据是不够的,需要用Hive维度表和已经ETL计算号的T+1实时表一起在Clickhouse中做加速运输。这需要把Hive的数据导入到Clickhouse中,这就是我们的第三个需求。
+<img alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3痛点">3.痛点<a class="hash-link" href="#3痛点" title="Direct link to heading">​</a></h2><p>首先,我们引入一项数据组件时要考虑其性能。Hive表粒度是五分钟,是否有组件可以支撑五分钟内完成一个短小ETL流程并把ETL结果导入到Clickhouse中?第二,我们需要保证数据质量,数据的准确性需要有保障。Hive和Clickhouse的数据条数需要保障一致性,如果数据质量出问题能否通过重跑等机制修复数据?第三,数据导入需要支持的数据类型是否完备?不同数据库之间的数据类型和一些机制不同,我们有HiperLogLog和BitMap这类在某一存储引擎中利用得比较多得数据类型,是否可以正确传输和识别 [...]
+SeaTunnel和Spark依赖唯品会自己的Yarn集群,可以直接实现分布式读取和写入。DataX是非分布式的,且Reader、Writer之间的启动过程耗时时间长,性能普通,SeaTunnel和Spark处理数据的性能可以达到DataX的数倍。
+十亿以上的数据可以平稳地在SeaTunnel和Spark中运行,DataX在数据量大以后性能压力大,处理十亿以上数据吃力。
+在读写插件扩展性方面,SeaTunnel支持了多种数据源,支持用户开发插件。SeaTunnel支持了数据导入Redis。
+稳定性上,SeaTunnel和DataX由于是自成体系的工具,稳定性会更好。Spark的稳定性方面需要关注代码质量。
+<img alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>我们的曝光表数据量每天在几十亿级,我们有5min内完成数据处理的性能要求,我们我们存在数据导入导出到Redis的需求,我们需要导入导出工具可以接入到数据平台上进行任务调度。 出于数据量级、性能、可扩展性、平台兼容性几方面的考虑,我们选择了SeaTunnel作为我们的数仓导入导出工具。</p><h1>Hive数据导入到ClickHouse</h1><p>下面将介绍我们对SeaTunnel的使用。
+图中是一张Hive表,它是我们三级的商品维度表,包含品类商品、维度品类和用户人群信息。表的主键是一个三级品类ct_third_id,下面的value是两个uid的位图,是用户id的bitmap类型,我们要把这个Hive表导入到Clickhouse。
+<img alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel安装简单,官网文档有介绍如何安装。下图中是SeaTunnel的配置,配置中env、source和sink是必不可少的。env部分,图中的例子是Spark配置,配置了包括并发度等,可以调整这些参数。source部分是数据来源,这里配置了Hive数据源,包括一条Hive Select语句,Spark运行source配置中的SQL把数据读出,此处支持UDF进行简单ETL;sink部分配置了Clickhouse,可以看到output_type=rowbinary,rowbinary是唯品会自研加速方案;pre_sql和check_sql是自研的用于数据校验的功能,后面也会详细介绍;clickhouse.socket_timeout和bulk_size都是可以根据实际情况进行调整的。
+<img alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+运行过程中会产生Spark日志,运行成功和运行中错误都可以在日志中查看。
+<img alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>为了更贴合业务,唯品会对SeaTunnel做了一些改进。我们的ETL任务都是需要重跑的,我们支持了pre_sql和check_sql实现数据的重跑和对数。主要流程是在数据准备好后,执行pre_sql进行预处理,在Clickhouse中执行删除旧分区数据、存放到某一目录下在失败时恢复该分区、rename这类操作。check_sql会检验,校验通过后整个流程结束;如果检验不通过,根据配置进行重跑,重跑不通过则报警到对应负责人。
+<img alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>唯品会基于1.0版本SeaTunnel增加了RowBinary做加速,也让HuperLogLog和BinaryBitmap的二进制文件能更容易地从Hive导入到Clickhouse。我们在ClickHouse-jdbc、bulk_size、Hive-source几处进行了修改。使用CK-jdbc的extended api,以rowbinary方式将数据写入CK,bulk_size引入了以rowbinary方式写入CK的控制逻辑,Hive-source
+RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>我们还让SeaTunnel支持了多类型,为了圈人群的功能,需要在Clickhouse、Preso、Spark中实现对应的方法。我们在Clickhouse-jdbc中增加支持Batch特性的Callback、HttpEntity、RowBinaryStream,在Clickhouse-jdbc和Clickhouse-sink代码中增加了bitmap类型映射,在Presto和Spark中实现了Clickhouse的Hyperloglog和Bitmap的function的UDF。
+前面的配置中,Clickhouse-sink部分可以指定表名,这里有写入本地表和分布式表的差异。写入分布式表的性能比写入本地表差对Clickhouse集群的压力会更大,但在计算曝光表、流量表,ABTest等场景中需要两表Join,两张表量级均在几十亿。这时我们希望Join key落在本机,Join成本更小。我们建表时在Clickhouse的分布式表分布规则中配置murmurHash64规则,然后在Seatunnel的sink里直接配置分布式表,把写入规则交给Clickhouse,利用了分布式表的特性进行写入。写入本地表对Clickhouse的压力会更小,写入的性能也会更好。我们在Seatunnel里,根据sink的本地表,去Clickhouse的System.cluster表里获取表的分布信息和机器分布host。然后根据均分规则写入这些host。把数据分布式写入的事情放到Seatunnel里来做。
+针对本地表和分布式表的写入,我们未来的改造方向是在Seatunnel实现一致性哈希,直接按照一定规则写如Clickhouse、不依赖Clickhouse自身做数据分发,改善Clickhouse高CPU负载问题。</p><h1>ClickHouse数据导入到Hive</h1><p>我们有圈人群的需求,每天唯品会为供应商圈20万个人群,比如80后、高富帅、白富美的人群集合。这些在Clickhouse中的Bitmap人群信息需要导出到Hive表,在Hive中与其他ETL任务进行配合,最后推到PIKA交给外部媒体使用。我们使SeaTunnel将Clickhouse Bitmap人群数据反推到Hive。
+<img alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>由于我们接入SeaTunnel较早,我们对一些模块间进行了加工,包括新增plugin-spark-sink-hive模块、plugin-spark-source-ClickHouse模块,重写Spark Row相关方法,使其能封装经过Schem映射后的Clickhouse数据,重新构造StructField并生成最终需要落地Hive的DataFrame。最新版本已经有了很多source和sink组件,在SeaTunnel使用上更方便。现在也可以在SeaTunnel中直接集成Flink connector。</p><h1>SeaTunnel与唯品会数据平台的集成</h1><p>各个公司都有自己的调度系统,例如白鲸、宙斯。唯品会的调度工具是数坊,调度工具中集成了数据传输工具。下面是调度系统架构图,其中包含各类数据的出入仓。
+<img alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>我们把SeaTunnel集成到了调度系统中,数坊调度Master会根据任务类型把任务分配到对应的Agent上,根据Agent负载情况分配到合适的机器上运行,管控器把前台的任务调度配置和信息拉取到后生成SeaTunnel cluster,在类似于k8s pod、cgroup隔离的虚拟环境内进行执行。运行结果会由调度平台的数据质量监控判断任务是否完成、是否运行成功,失败时进行重跑和告警。
+<img alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel本身是一个工具化的组件,是为了进行数据血缘,数据质量,历史记录,高警监控,还包括资源分配这些信息的管控。我们把SeaTunnel集成到平台中,可以利用平台优势利用好SeaTunnel。
+圈存人群中利用了SeaTunnel进行处理。我们通过打点数据,把圈存人群按照路径和使用情况分为不同的人,或称千人千面,把用户打上标签,圈出的某一类人群推送给用户、分析师和供应商。
+<img alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>流量进入Kafka,通过Flink入仓,再通过ETL形成用户标签表,用户标签表生成后,我们通过Presto实现了的BitMap方法,把数据打成Hive中的宽表。用户通过在人群系统页面中框选词条创建任务,提交腾群,生成SQL查询Clickhouse BitMap。Clickhouse的BitMap查询速度非常快,由天生优势,我们需要把Hive的BitMap表通过SeaTunnel导入到Clickhouse中。圈完人群后我们需要把表落地,形成Clickhouse的一个分区或一条记录,再把生成的结果BitMap表通过SeaTunnel存储到Hive中去。最后同步工具会将Hive的BitMap人群结果同步给外部媒体仓库Pika。每天圈20w个人群左右。
+整个过程中SeaTunnel负责把数据从Hive导出到Clickhouse,Clickhouse的ETL流程完成后SeaTunnel把数据从Clickhouse导出到Hive。
+为了完成这样的需求,我们在Presto和Spark端现ClickHouse的Hyperloglog和BitMap的function的UDF;我们还开发Seatunnel接口,使得用户在ClickHouse里使用Bitmap方法圈出来的人群,可以直接通过Seatunnel写入Hive表,无需中间落地步骤。用户也可以在Hive里通过spark圈人群或者反解人群bitmap,调用SeaTunnel接口,使数据直接传输到ClickHouse的结果表,而无需中间落地。</p><h1>后续工作</h1><p>后续我们会进一步改善Clickhouse写入数据时CPU负载高的问题,下一步会在SeaTunnel中实现Clickhouse数据源和读取端的CK-local模式,读写分离,减轻Clickhouse压力。未来我们也会增加更多sink支持,如数据推送到Pika和相应的数据检查。</p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><ul class="tags_XVD_ padding [...]
 <!-- --> <!-- --> <!-- -->二、可以做实时的聚合,例如实时计算每天每个商品的销售总额;<br>
 <!-- --> <!-- --> <!-- -->三、可以做流与流之间的关联,例如计算广告的点击率,需要将广告的曝光记录和点击记录关联。<br>
 以上几点如果使用SparkStreaming来实现可能会比较麻烦或者说是很难实现,但是使用StructuredStreaming实现起来会比较轻松。</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="如何使用structuredstreaming">如何使用StructuredStreaming<a class="hash-link" href="#如何使用structuredstreaming" title="Direct link to heading">​</a></h3><p>可能你没有详细研究过StructuredStreaming,但是发现StructuredStreaming能很好的解决你的需求,如何快速利用StructuredStreaming来解决你的需求?目前社区有一款工具 <strong>Seatunnel</strong>,项目地址:<a href="https://github.com/apache/incubator-seatunnel" target="_blank" rel="no [...]
@@ -34,7 +64,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/rss.xml b/blog/rss.xml
index 37d76cd..81a0e23 100644
--- a/blog/rss.xml
+++ b/blog/rss.xml
@@ -4,10 +4,50 @@
         <title>Apache SeaTunnel Blog</title>
         <link>https://seatunnel.apache.org/blog</link>
         <description>Apache SeaTunnel Blog</description>
-        <lastBuildDate>Thu, 30 Dec 2021 00:00:00 GMT</lastBuildDate>
+        <lastBuildDate>Fri, 18 Feb 2022 00:00:00 GMT</lastBuildDate>
         <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
         <generator>https://github.com/jpmonette/feed</generator>
         <item>
+            <title><![CDATA[SeaTunnel 在唯品会的实践]]></title>
+            <link>https://seatunnel.apache.org/blog/SeaTunnel 在唯品会的实践</link>
+            <guid>SeaTunnel 在唯品会的实践</guid>
+            <pubDate>Fri, 18 Feb 2022 00:00:00 GMT</pubDate>
+            <description><![CDATA[分享嘉宾:唯品会 资深大数据工程师 王玉]]></description>
+            <content:encoded><![CDATA[<p>分享嘉宾:唯品会 资深大数据工程师 王玉
+讲稿整理:张德通</p><p>导读: 唯品会早在1.0版本时就引用了SeaTunnel,我们使用SeaTunnel进行一些Hive到ClickHouse之间数据交互的工作。
+今天的介绍会围绕下面几点展开:</p><ul><li>ClickHouse数据导入的需求和痛点;</li><li>ClickHouse出仓入仓工具选型;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>SeaTunnel与唯品会数据平台的集成;</li><li>未来展望;</li></ul><h1>ClickHouse数据导入的需求和痛点</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1唯品会数据olap架构">1.唯品会数据OLAP架构<a class="hash-link" href="#1唯品会数据olap架构" title="Direct link to heading">​</a></h2><p>图中是唯品会OLAP架构,我们负责的模块是图中的数据服务和计算引擎两大部分。底层依赖的数据仓库分为离线数仓、实时数仓和湖仓。计算引擎方面,我们使用Presto、Kylin和Clickhouse。虽然Clickhouse是一个存 [...]
+<img alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2需求">2.需求<a class="hash-link" href="#2需求" title="Direct link to heading">​</a></h2><p>我们通过Presto Connector和Spark组件,把底层的Hive、Kudu、Alluxio组件打通。大数据组件之间可以互相导入导出数据,可以根据数据分析的需求和场景任意利用合适的组件分析数据。但我们引入Clickhouse时,它是一个数据孤岛,数据的导入和导出比较困难。Hive和Clickhouse之间需要做很多工作才能实现导入导出。我们的第一个数据导入导出需求就是提升导入导出效率,把Clickhouse纳入大数据体系中。
+<img alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>第二个需求是Presto跑SQL比较慢,图中是一个慢SQL的例子。图中的SQL where条件设置了日期、时间范围和具体过滤条件,这类SQL使用由于Presto使用分区粒度下推,运行比较慢。即使用Hive的Bucket表和分桶等其他方式优化后也是几秒的返回时间、不能满足业务要求。这种情况下,我们需要利用Clickhouse做离线的OLAP计算加速。
+<img alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>我们的实时数据是通过Kafka、Flink SQL方式写入到Clickhouse中。但分析时只用实时数据是不够的,需要用Hive维度表和已经ETL计算号的T+1实时表一起在Clickhouse中做加速运输。这需要把Hive的数据导入到Clickhouse中,这就是我们的第三个需求。
+<img alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3痛点">3.痛点<a class="hash-link" href="#3痛点" title="Direct link to heading">​</a></h2><p>首先,我们引入一项数据组件时要考虑其性能。Hive表粒度是五分钟,是否有组件可以支撑五分钟内完成一个短小ETL流程并把ETL结果导入到Clickhouse中?第二,我们需要保证数据质量,数据的准确性需要有保障。Hive和Clickhouse的数据条数需要保障一致性,如果数据质量出问题能否通过重跑等机制修复数据?第三,数据导入需要支持的数据类型是否完备?不同数据库之间的数据类型和一些机制不同,我们有HiperLogLog和BitMap这类在某一存储引擎中利用得比较多得数据类型,是否可以正确传输和识别 [...]
+SeaTunnel和Spark依赖唯品会自己的Yarn集群,可以直接实现分布式读取和写入。DataX是非分布式的,且Reader、Writer之间的启动过程耗时时间长,性能普通,SeaTunnel和Spark处理数据的性能可以达到DataX的数倍。
+十亿以上的数据可以平稳地在SeaTunnel和Spark中运行,DataX在数据量大以后性能压力大,处理十亿以上数据吃力。
+在读写插件扩展性方面,SeaTunnel支持了多种数据源,支持用户开发插件。SeaTunnel支持了数据导入Redis。
+稳定性上,SeaTunnel和DataX由于是自成体系的工具,稳定性会更好。Spark的稳定性方面需要关注代码质量。
+<img alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>我们的曝光表数据量每天在几十亿级,我们有5min内完成数据处理的性能要求,我们我们存在数据导入导出到Redis的需求,我们需要导入导出工具可以接入到数据平台上进行任务调度。 出于数据量级、性能、可扩展性、平台兼容性几方面的考虑,我们选择了SeaTunnel作为我们的数仓导入导出工具。</p><h1>Hive数据导入到ClickHouse</h1><p>下面将介绍我们对SeaTunnel的使用。
+图中是一张Hive表,它是我们三级的商品维度表,包含品类商品、维度品类和用户人群信息。表的主键是一个三级品类ct_third_id,下面的value是两个uid的位图,是用户id的bitmap类型,我们要把这个Hive表导入到Clickhouse。
+<img alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel安装简单,官网文档有介绍如何安装。下图中是SeaTunnel的配置,配置中env、source和sink是必不可少的。env部分,图中的例子是Spark配置,配置了包括并发度等,可以调整这些参数。source部分是数据来源,这里配置了Hive数据源,包括一条Hive Select语句,Spark运行source配置中的SQL把数据读出,此处支持UDF进行简单ETL;sink部分配置了Clickhouse,可以看到output_type=rowbinary,rowbinary是唯品会自研加速方案;pre_sql和check_sql是自研的用于数据校验的功能,后面也会详细介绍;clickhouse.socket_timeout和bulk_size都是可以根据实际情况进行调整的。
+<img alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+运行过程中会产生Spark日志,运行成功和运行中错误都可以在日志中查看。
+<img alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>为了更贴合业务,唯品会对SeaTunnel做了一些改进。我们的ETL任务都是需要重跑的,我们支持了pre_sql和check_sql实现数据的重跑和对数。主要流程是在数据准备好后,执行pre_sql进行预处理,在Clickhouse中执行删除旧分区数据、存放到某一目录下在失败时恢复该分区、rename这类操作。check_sql会检验,校验通过后整个流程结束;如果检验不通过,根据配置进行重跑,重跑不通过则报警到对应负责人。
+<img alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>唯品会基于1.0版本SeaTunnel增加了RowBinary做加速,也让HuperLogLog和BinaryBitmap的二进制文件能更容易地从Hive导入到Clickhouse。我们在ClickHouse-jdbc、bulk_size、Hive-source几处进行了修改。使用CK-jdbc的extended api,以rowbinary方式将数据写入CK,bulk_size引入了以rowbinary方式写入CK的控制逻辑,Hive-source
+RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>我们还让SeaTunnel支持了多类型,为了圈人群的功能,需要在Clickhouse、Preso、Spark中实现对应的方法。我们在Clickhouse-jdbc中增加支持Batch特性的Callback、HttpEntity、RowBinaryStream,在Clickhouse-jdbc和Clickhouse-sink代码中增加了bitmap类型映射,在Presto和Spark中实现了Clickhouse的Hyperloglog和Bitmap的function的UDF。
+前面的配置中,Clickhouse-sink部分可以指定表名,这里有写入本地表和分布式表的差异。写入分布式表的性能比写入本地表差对Clickhouse集群的压力会更大,但在计算曝光表、流量表,ABTest等场景中需要两表Join,两张表量级均在几十亿。这时我们希望Join key落在本机,Join成本更小。我们建表时在Clickhouse的分布式表分布规则中配置murmurHash64规则,然后在Seatunnel的sink里直接配置分布式表,把写入规则交给Clickhouse,利用了分布式表的特性进行写入。写入本地表对Clickhouse的压力会更小,写入的性能也会更好。我们在Seatunnel里,根据sink的本地表,去Clickhouse的System.cluster表里获取表的分布信息和机器分布host。然后根据均分规则写入这些host。把数据分布式写入的事情放到Seatunnel里来做。
+针对本地表和分布式表的写入,我们未来的改造方向是在Seatunnel实现一致性哈希,直接按照一定规则写如Clickhouse、不依赖Clickhouse自身做数据分发,改善Clickhouse高CPU负载问题。</p><h1>ClickHouse数据导入到Hive</h1><p>我们有圈人群的需求,每天唯品会为供应商圈20万个人群,比如80后、高富帅、白富美的人群集合。这些在Clickhouse中的Bitmap人群信息需要导出到Hive表,在Hive中与其他ETL任务进行配合,最后推到PIKA交给外部媒体使用。我们使SeaTunnel将Clickhouse Bitmap人群数据反推到Hive。
+<img alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>由于我们接入SeaTunnel较早,我们对一些模块间进行了加工,包括新增plugin-spark-sink-hive模块、plugin-spark-source-ClickHouse模块,重写Spark Row相关方法,使其能封装经过Schem映射后的Clickhouse数据,重新构造StructField并生成最终需要落地Hive的DataFrame。最新版本已经有了很多source和sink组件,在SeaTunnel使用上更方便。现在也可以在SeaTunnel中直接集成Flink connector。</p><h1>SeaTunnel与唯品会数据平台的集成</h1><p>各个公司都有自己的调度系统,例如白鲸、宙斯。唯品会的调度工具是数坊,调度工具中集成了数据传输工具。下面是调度系统架构图,其中包含各类数据的出入仓。
+<img alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>我们把SeaTunnel集成到了调度系统中,数坊调度Master会根据任务类型把任务分配到对应的Agent上,根据Agent负载情况分配到合适的机器上运行,管控器把前台的任务调度配置和信息拉取到后生成SeaTunnel cluster,在类似于k8s pod、cgroup隔离的虚拟环境内进行执行。运行结果会由调度平台的数据质量监控判断任务是否完成、是否运行成功,失败时进行重跑和告警。
+<img alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel本身是一个工具化的组件,是为了进行数据血缘,数据质量,历史记录,高警监控,还包括资源分配这些信息的管控。我们把SeaTunnel集成到平台中,可以利用平台优势利用好SeaTunnel。
+圈存人群中利用了SeaTunnel进行处理。我们通过打点数据,把圈存人群按照路径和使用情况分为不同的人,或称千人千面,把用户打上标签,圈出的某一类人群推送给用户、分析师和供应商。
+<img alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>流量进入Kafka,通过Flink入仓,再通过ETL形成用户标签表,用户标签表生成后,我们通过Presto实现了的BitMap方法,把数据打成Hive中的宽表。用户通过在人群系统页面中框选词条创建任务,提交腾群,生成SQL查询Clickhouse BitMap。Clickhouse的BitMap查询速度非常快,由天生优势,我们需要把Hive的BitMap表通过SeaTunnel导入到Clickhouse中。圈完人群后我们需要把表落地,形成Clickhouse的一个分区或一条记录,再把生成的结果BitMap表通过SeaTunnel存储到Hive中去。最后同步工具会将Hive的BitMap人群结果同步给外部媒体仓库Pika。每天圈20w个人群左右。
+整个过程中SeaTunnel负责把数据从Hive导出到Clickhouse,Clickhouse的ETL流程完成后SeaTunnel把数据从Clickhouse导出到Hive。
+为了完成这样的需求,我们在Presto和Spark端现ClickHouse的Hyperloglog和BitMap的function的UDF;我们还开发Seatunnel接口,使得用户在ClickHouse里使用Bitmap方法圈出来的人群,可以直接通过Seatunnel写入Hive表,无需中间落地步骤。用户也可以在Hive里通过spark圈人群或者反解人群bitmap,调用SeaTunnel接口,使数据直接传输到ClickHouse的结果表,而无需中间落地。</p><h1>后续工作</h1><p>后续我们会进一步改善Clickhouse写入数据时CPU负载高的问题,下一步会在SeaTunnel中实现Clickhouse数据源和读取端的CK-local模式,读写分离,减轻Clickhouse压力。未来我们也会增加更多sink支持,如数据推送到Pika和相应的数据检查。</p>]]></content:encoded>
+            <category>唯品会</category>
+            <category>ClickHouse</category>
+        </item>
+        <item>
             <title><![CDATA[如何快速地把 HDFS 中的数据导入 ClickHouse]]></title>
             <link>https://seatunnel.apache.org/blog/hdfs-to-clickhouse</link>
             <guid>hdfs-to-clickhouse</guid>
diff --git a/blog/spark-execute-elasticsearch/index.html b/blog/spark-execute-elasticsearch/index.html
index 4b0f93c..4eed6c9 100644
--- a/blog/spark-execute-elasticsearch/index.html
+++ b/blog/spark-execute-elasticsearch/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">如何使用 Spark 快速将数据写入 Elasticsearch | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/blog/spark-execute-elasticsearch"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/spark-execute-tidb/index.html b/blog/spark-execute-tidb/index.html
index 294f7ab..572ad2d 100644
--- a/blog/spark-execute-tidb/index.html
+++ b/blog/spark-execute-tidb/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">怎么用 Spark 在 TiDB 上做 OLAP 分析 | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/blog/spark-execute-tidb"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/spark-structured-streaming/index.html b/blog/spark-structured-streaming/index.html
index 970c6ad..4b8461f 100644
--- a/blog/spark-structured-streaming/index.html
+++ b/blog/spark-structured-streaming/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">如何支持的 Spark StructuredStreaming | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/blog/spark-structured-streaming"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet=" [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
 <!-- --> <!-- --> <!-- -->二、可以做实时的聚合,例如实时计算每天每个商品的销售总额;<br>
 <!-- --> <!-- --> <!-- -->三、可以做流与流之间的关联,例如计算广告的点击率,需要将广告的曝光记录和点击记录关联。<br>
 以上几点如果使用SparkStreaming来实现可能会比较麻烦或者说是很难实现,但是使用StructuredStreaming实现起来会比较轻松。</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="如何使用structuredstreaming">如何使用StructuredStreaming<a class="hash-link" href="#如何使用structuredstreaming" title="Direct link to heading">​</a></h3><p>可能你没有详细研究过StructuredStreaming,但是发现StructuredStreaming能很好的解决你的需求,如何快速利用StructuredStreaming来解决你的需求?目前社区有一款工具 <strong>Seatunnel</strong>,项目地址:<a href="https://github.com/apache/incubator-seatunnel" target="_blank" rel="no [...]
@@ -34,7 +34,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/click-house/index.html b/blog/tags/click-house/index.html
index 10e025b..1a63157 100644
--- a/blog/tags/click-house/index.html
+++ b/blog/tags/click-house/index.html
@@ -5,13 +5,43 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
-<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">2 posts tagged with &quot;ClickHouse&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="2 posts tagged with &quot;ClickHouse&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apac [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">3 posts tagged with &quot;ClickHouse&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="3 posts tagged with &quot;ClickHouse&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apac [...]
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+讲稿整理:张德通</p><p>导读: 唯品会早在1.0版本时就引用了SeaTunnel,我们使用SeaTunnel进行一些Hive到ClickHouse之间数据交互的工作。
+今天的介绍会围绕下面几点展开:</p><ul><li>ClickHouse数据导入的需求和痛点;</li><li>ClickHouse出仓入仓工具选型;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>SeaTunnel与唯品会数据平台的集成;</li><li>未来展望;</li></ul><h1>ClickHouse数据导入的需求和痛点</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1唯品会数据olap架构">1.唯品会数据OLAP架构<a class="hash-link" href="#1唯品会数据olap架构" title="Direct link to heading">​</a></h2><p>图中是唯品会OLAP架构,我们负责的模块是图中的数据服务和计算引擎两大部分。底层依赖的数据仓库分为离线数仓、实时数仓和湖仓。计算引擎方面,我们使用Presto、Kylin和Clickhouse。虽然Clickhouse是一个存 [...]
+<img alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2需求">2.需求<a class="hash-link" href="#2需求" title="Direct link to heading">​</a></h2><p>我们通过Presto Connector和Spark组件,把底层的Hive、Kudu、Alluxio组件打通。大数据组件之间可以互相导入导出数据,可以根据数据分析的需求和场景任意利用合适的组件分析数据。但我们引入Clickhouse时,它是一个数据孤岛,数据的导入和导出比较困难。Hive和Clickhouse之间需要做很多工作才能实现导入导出。我们的第一个数据导入导出需求就是提升导入导出效率,把Clickhouse纳入大数据体系中。
+<img alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>第二个需求是Presto跑SQL比较慢,图中是一个慢SQL的例子。图中的SQL where条件设置了日期、时间范围和具体过滤条件,这类SQL使用由于Presto使用分区粒度下推,运行比较慢。即使用Hive的Bucket表和分桶等其他方式优化后也是几秒的返回时间、不能满足业务要求。这种情况下,我们需要利用Clickhouse做离线的OLAP计算加速。
+<img alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>我们的实时数据是通过Kafka、Flink SQL方式写入到Clickhouse中。但分析时只用实时数据是不够的,需要用Hive维度表和已经ETL计算号的T+1实时表一起在Clickhouse中做加速运输。这需要把Hive的数据导入到Clickhouse中,这就是我们的第三个需求。
+<img alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3痛点">3.痛点<a class="hash-link" href="#3痛点" title="Direct link to heading">​</a></h2><p>首先,我们引入一项数据组件时要考虑其性能。Hive表粒度是五分钟,是否有组件可以支撑五分钟内完成一个短小ETL流程并把ETL结果导入到Clickhouse中?第二,我们需要保证数据质量,数据的准确性需要有保障。Hive和Clickhouse的数据条数需要保障一致性,如果数据质量出问题能否通过重跑等机制修复数据?第三,数据导入需要支持的数据类型是否完备?不同数据库之间的数据类型和一些机制不同,我们有HiperLogLog和BitMap这类在某一存储引擎中利用得比较多得数据类型,是否可以正确传输和识别 [...]
+SeaTunnel和Spark依赖唯品会自己的Yarn集群,可以直接实现分布式读取和写入。DataX是非分布式的,且Reader、Writer之间的启动过程耗时时间长,性能普通,SeaTunnel和Spark处理数据的性能可以达到DataX的数倍。
+十亿以上的数据可以平稳地在SeaTunnel和Spark中运行,DataX在数据量大以后性能压力大,处理十亿以上数据吃力。
+在读写插件扩展性方面,SeaTunnel支持了多种数据源,支持用户开发插件。SeaTunnel支持了数据导入Redis。
+稳定性上,SeaTunnel和DataX由于是自成体系的工具,稳定性会更好。Spark的稳定性方面需要关注代码质量。
+<img alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>我们的曝光表数据量每天在几十亿级,我们有5min内完成数据处理的性能要求,我们我们存在数据导入导出到Redis的需求,我们需要导入导出工具可以接入到数据平台上进行任务调度。 出于数据量级、性能、可扩展性、平台兼容性几方面的考虑,我们选择了SeaTunnel作为我们的数仓导入导出工具。</p><h1>Hive数据导入到ClickHouse</h1><p>下面将介绍我们对SeaTunnel的使用。
+图中是一张Hive表,它是我们三级的商品维度表,包含品类商品、维度品类和用户人群信息。表的主键是一个三级品类ct_third_id,下面的value是两个uid的位图,是用户id的bitmap类型,我们要把这个Hive表导入到Clickhouse。
+<img alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel安装简单,官网文档有介绍如何安装。下图中是SeaTunnel的配置,配置中env、source和sink是必不可少的。env部分,图中的例子是Spark配置,配置了包括并发度等,可以调整这些参数。source部分是数据来源,这里配置了Hive数据源,包括一条Hive Select语句,Spark运行source配置中的SQL把数据读出,此处支持UDF进行简单ETL;sink部分配置了Clickhouse,可以看到output_type=rowbinary,rowbinary是唯品会自研加速方案;pre_sql和check_sql是自研的用于数据校验的功能,后面也会详细介绍;clickhouse.socket_timeout和bulk_size都是可以根据实际情况进行调整的。
+<img alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+运行过程中会产生Spark日志,运行成功和运行中错误都可以在日志中查看。
+<img alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>为了更贴合业务,唯品会对SeaTunnel做了一些改进。我们的ETL任务都是需要重跑的,我们支持了pre_sql和check_sql实现数据的重跑和对数。主要流程是在数据准备好后,执行pre_sql进行预处理,在Clickhouse中执行删除旧分区数据、存放到某一目录下在失败时恢复该分区、rename这类操作。check_sql会检验,校验通过后整个流程结束;如果检验不通过,根据配置进行重跑,重跑不通过则报警到对应负责人。
+<img alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>唯品会基于1.0版本SeaTunnel增加了RowBinary做加速,也让HuperLogLog和BinaryBitmap的二进制文件能更容易地从Hive导入到Clickhouse。我们在ClickHouse-jdbc、bulk_size、Hive-source几处进行了修改。使用CK-jdbc的extended api,以rowbinary方式将数据写入CK,bulk_size引入了以rowbinary方式写入CK的控制逻辑,Hive-source
+RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>我们还让SeaTunnel支持了多类型,为了圈人群的功能,需要在Clickhouse、Preso、Spark中实现对应的方法。我们在Clickhouse-jdbc中增加支持Batch特性的Callback、HttpEntity、RowBinaryStream,在Clickhouse-jdbc和Clickhouse-sink代码中增加了bitmap类型映射,在Presto和Spark中实现了Clickhouse的Hyperloglog和Bitmap的function的UDF。
+前面的配置中,Clickhouse-sink部分可以指定表名,这里有写入本地表和分布式表的差异。写入分布式表的性能比写入本地表差对Clickhouse集群的压力会更大,但在计算曝光表、流量表,ABTest等场景中需要两表Join,两张表量级均在几十亿。这时我们希望Join key落在本机,Join成本更小。我们建表时在Clickhouse的分布式表分布规则中配置murmurHash64规则,然后在Seatunnel的sink里直接配置分布式表,把写入规则交给Clickhouse,利用了分布式表的特性进行写入。写入本地表对Clickhouse的压力会更小,写入的性能也会更好。我们在Seatunnel里,根据sink的本地表,去Clickhouse的System.cluster表里获取表的分布信息和机器分布host。然后根据均分规则写入这些host。把数据分布式写入的事情放到Seatunnel里来做。
+针对本地表和分布式表的写入,我们未来的改造方向是在Seatunnel实现一致性哈希,直接按照一定规则写如Clickhouse、不依赖Clickhouse自身做数据分发,改善Clickhouse高CPU负载问题。</p><h1>ClickHouse数据导入到Hive</h1><p>我们有圈人群的需求,每天唯品会为供应商圈20万个人群,比如80后、高富帅、白富美的人群集合。这些在Clickhouse中的Bitmap人群信息需要导出到Hive表,在Hive中与其他ETL任务进行配合,最后推到PIKA交给外部媒体使用。我们使SeaTunnel将Clickhouse Bitmap人群数据反推到Hive。
+<img alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>由于我们接入SeaTunnel较早,我们对一些模块间进行了加工,包括新增plugin-spark-sink-hive模块、plugin-spark-source-ClickHouse模块,重写Spark Row相关方法,使其能封装经过Schem映射后的Clickhouse数据,重新构造StructField并生成最终需要落地Hive的DataFrame。最新版本已经有了很多source和sink组件,在SeaTunnel使用上更方便。现在也可以在SeaTunnel中直接集成Flink connector。</p><h1>SeaTunnel与唯品会数据平台的集成</h1><p>各个公司都有自己的调度系统,例如白鲸、宙斯。唯品会的调度工具是数坊,调度工具中集成了数据传输工具。下面是调度系统架构图,其中包含各类数据的出入仓。
+<img alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>我们把SeaTunnel集成到了调度系统中,数坊调度Master会根据任务类型把任务分配到对应的Agent上,根据Agent负载情况分配到合适的机器上运行,管控器把前台的任务调度配置和信息拉取到后生成SeaTunnel cluster,在类似于k8s pod、cgroup隔离的虚拟环境内进行执行。运行结果会由调度平台的数据质量监控判断任务是否完成、是否运行成功,失败时进行重跑和告警。
+<img alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel本身是一个工具化的组件,是为了进行数据血缘,数据质量,历史记录,高警监控,还包括资源分配这些信息的管控。我们把SeaTunnel集成到平台中,可以利用平台优势利用好SeaTunnel。
+圈存人群中利用了SeaTunnel进行处理。我们通过打点数据,把圈存人群按照路径和使用情况分为不同的人,或称千人千面,把用户打上标签,圈出的某一类人群推送给用户、分析师和供应商。
+<img alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>流量进入Kafka,通过Flink入仓,再通过ETL形成用户标签表,用户标签表生成后,我们通过Presto实现了的BitMap方法,把数据打成Hive中的宽表。用户通过在人群系统页面中框选词条创建任务,提交腾群,生成SQL查询Clickhouse BitMap。Clickhouse的BitMap查询速度非常快,由天生优势,我们需要把Hive的BitMap表通过SeaTunnel导入到Clickhouse中。圈完人群后我们需要把表落地,形成Clickhouse的一个分区或一条记录,再把生成的结果BitMap表通过SeaTunnel存储到Hive中去。最后同步工具会将Hive的BitMap人群结果同步给外部媒体仓库Pika。每天圈20w个人群左右。
+整个过程中SeaTunnel负责把数据从Hive导出到Clickhouse,Clickhouse的ETL流程完成后SeaTunnel把数据从Clickhouse导出到Hive。
+为了完成这样的需求,我们在Presto和Spark端现ClickHouse的Hyperloglog和BitMap的function的UDF;我们还开发Seatunnel接口,使得用户在ClickHouse里使用Bitmap方法圈出来的人群,可以直接通过Seatunnel写入Hive表,无需中间落地步骤。用户也可以在Hive里通过spark圈人群或者反解人群bitmap,调用SeaTunnel接口,使数据直接传输到ClickHouse的结果表,而无需中间落地。</p><h1>后续工作</h1><p>后续我们会进一步改善Clickhouse写入数据时CPU负载高的问题,下一步会在SeaTunnel中实现Clickhouse数据源和读取端的CK-local模式,读写分离,减轻Clickhouse压力。未来我们也会增加更多sink支持,如数据推送到Pika和相应的数据检查。</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_XVD_  [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
@@ -23,7 +53,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/elasticsearch/index.html b/blog/tags/elasticsearch/index.html
index a068197..1e0c184 100644
--- a/blog/tags/elasticsearch/index.html
+++ b/blog/tags/elasticsearch/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;Elasticsearch&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;Elasticsearch&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatun [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/hdfs/index.html b/blog/tags/hdfs/index.html
index 3033d52..ed53e12 100644
--- a/blog/tags/hdfs/index.html
+++ b/blog/tags/hdfs/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;HDFS&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;HDFS&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/blo [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/hive/index.html b/blog/tags/hive/index.html
index a4882c2..e65fc13 100644
--- a/blog/tags/hive/index.html
+++ b/blog/tags/hive/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;Hive&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;Hive&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/blo [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/index.html b/blog/tags/index.html
index 1a90dc6..aec5791 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Tags | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="Tags | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/blog/tags"><meta data-react-helmet="true" name="docusaurus_locale" co [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/kafka/index.html b/blog/tags/kafka/index.html
index 2acafbc..e28eaa4 100644
--- a/blog/tags/kafka/index.html
+++ b/blog/tags/kafka/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;Kafka&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;Kafka&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/b [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/spark/index.html b/blog/tags/spark/index.html
index dc0325e..8f7f750 100644
--- a/blog/tags/spark/index.html
+++ b/blog/tags/spark/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">3 posts tagged with &quot;Spark&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="3 posts tagged with &quot;Spark&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/blo [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
 <!-- --> <!-- --> <!-- -->二、可以做实时的聚合,例如实时计算每天每个商品的销售总额;<br>
 <!-- --> <!-- --> <!-- -->三、可以做流与流之间的关联,例如计算广告的点击率,需要将广告的曝光记录和点击记录关联。<br>
 以上几点如果使用SparkStreaming来实现可能会比较麻烦或者说是很难实现,但是使用StructuredStreaming实现起来会比较轻松。</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="如何使用structuredstreaming">如何使用StructuredStreaming<a class="hash-link" href="#如何使用structuredstreaming" title="Direct link to heading">​</a></h3><p>可能你没有详细研究过StructuredStreaming,但是发现StructuredStreaming能很好的解决你的需求,如何快速利用StructuredStreaming来解决你的需求?目前社区有一款工具 <strong>Seatunnel</strong>,项目地址:<a href="https://github.com/apache/incubator-seatunnel" target="_blank" rel="no [...]
@@ -34,7 +34,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/structured-streaming/index.html b/blog/tags/structured-streaming/index.html
index 056db21..0a0bf85 100644
--- a/blog/tags/structured-streaming/index.html
+++ b/blog/tags/structured-streaming/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;StructuredStreaming&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;StructuredStreaming&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="ht [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
 <!-- --> <!-- --> <!-- -->二、可以做实时的聚合,例如实时计算每天每个商品的销售总额;<br>
 <!-- --> <!-- --> <!-- -->三、可以做流与流之间的关联,例如计算广告的点击率,需要将广告的曝光记录和点击记录关联。<br>
 以上几点如果使用SparkStreaming来实现可能会比较麻烦或者说是很难实现,但是使用StructuredStreaming实现起来会比较轻松。</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="如何使用structuredstreaming">如何使用StructuredStreaming<a class="hash-link" href="#如何使用structuredstreaming" title="Direct link to heading">​</a></h3><p>可能你没有详细研究过StructuredStreaming,但是发现StructuredStreaming能很好的解决你的需求,如何快速利用StructuredStreaming来解决你的需求?目前社区有一款工具 <strong>Seatunnel</strong>,项目地址:<a href="https://github.com/apache/incubator-seatunnel" target="_blank" rel="no [...]
@@ -34,7 +34,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/ti-db/index.html b/blog/tags/ti-db/index.html
index 4eea7bd..98cacec 100644
--- a/blog/tags/ti-db/index.html
+++ b/blog/tags/ti-db/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;TiDB&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;TiDB&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/blo [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git "a/blog/tags/\345\224\257\345\223\201\344\274\232/index.html" "b/blog/tags/\345\224\257\345\223\201\344\274\232/index.html"
new file mode 100644
index 0000000..40574f2
--- /dev/null
+++ "b/blog/tags/\345\224\257\345\223\201\344\274\232/index.html"
@@ -0,0 +1,59 @@
+<!doctype html>
+<html lang="en" dir="ltr">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-beta.15">
+<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;唯品会&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;唯品会&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/blog/ [...]
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+讲稿整理:张德通</p><p>导读: 唯品会早在1.0版本时就引用了SeaTunnel,我们使用SeaTunnel进行一些Hive到ClickHouse之间数据交互的工作。
+今天的介绍会围绕下面几点展开:</p><ul><li>ClickHouse数据导入的需求和痛点;</li><li>ClickHouse出仓入仓工具选型;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>SeaTunnel与唯品会数据平台的集成;</li><li>未来展望;</li></ul><h1>ClickHouse数据导入的需求和痛点</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1唯品会数据olap架构">1.唯品会数据OLAP架构<a class="hash-link" href="#1唯品会数据olap架构" title="Direct link to heading">​</a></h2><p>图中是唯品会OLAP架构,我们负责的模块是图中的数据服务和计算引擎两大部分。底层依赖的数据仓库分为离线数仓、实时数仓和湖仓。计算引擎方面,我们使用Presto、Kylin和Clickhouse。虽然Clickhouse是一个存 [...]
+<img alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2需求">2.需求<a class="hash-link" href="#2需求" title="Direct link to heading">​</a></h2><p>我们通过Presto Connector和Spark组件,把底层的Hive、Kudu、Alluxio组件打通。大数据组件之间可以互相导入导出数据,可以根据数据分析的需求和场景任意利用合适的组件分析数据。但我们引入Clickhouse时,它是一个数据孤岛,数据的导入和导出比较困难。Hive和Clickhouse之间需要做很多工作才能实现导入导出。我们的第一个数据导入导出需求就是提升导入导出效率,把Clickhouse纳入大数据体系中。
+<img alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>第二个需求是Presto跑SQL比较慢,图中是一个慢SQL的例子。图中的SQL where条件设置了日期、时间范围和具体过滤条件,这类SQL使用由于Presto使用分区粒度下推,运行比较慢。即使用Hive的Bucket表和分桶等其他方式优化后也是几秒的返回时间、不能满足业务要求。这种情况下,我们需要利用Clickhouse做离线的OLAP计算加速。
+<img alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>我们的实时数据是通过Kafka、Flink SQL方式写入到Clickhouse中。但分析时只用实时数据是不够的,需要用Hive维度表和已经ETL计算号的T+1实时表一起在Clickhouse中做加速运输。这需要把Hive的数据导入到Clickhouse中,这就是我们的第三个需求。
+<img alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3痛点">3.痛点<a class="hash-link" href="#3痛点" title="Direct link to heading">​</a></h2><p>首先,我们引入一项数据组件时要考虑其性能。Hive表粒度是五分钟,是否有组件可以支撑五分钟内完成一个短小ETL流程并把ETL结果导入到Clickhouse中?第二,我们需要保证数据质量,数据的准确性需要有保障。Hive和Clickhouse的数据条数需要保障一致性,如果数据质量出问题能否通过重跑等机制修复数据?第三,数据导入需要支持的数据类型是否完备?不同数据库之间的数据类型和一些机制不同,我们有HiperLogLog和BitMap这类在某一存储引擎中利用得比较多得数据类型,是否可以正确传输和识别 [...]
+SeaTunnel和Spark依赖唯品会自己的Yarn集群,可以直接实现分布式读取和写入。DataX是非分布式的,且Reader、Writer之间的启动过程耗时时间长,性能普通,SeaTunnel和Spark处理数据的性能可以达到DataX的数倍。
+十亿以上的数据可以平稳地在SeaTunnel和Spark中运行,DataX在数据量大以后性能压力大,处理十亿以上数据吃力。
+在读写插件扩展性方面,SeaTunnel支持了多种数据源,支持用户开发插件。SeaTunnel支持了数据导入Redis。
+稳定性上,SeaTunnel和DataX由于是自成体系的工具,稳定性会更好。Spark的稳定性方面需要关注代码质量。
+<img alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>我们的曝光表数据量每天在几十亿级,我们有5min内完成数据处理的性能要求,我们我们存在数据导入导出到Redis的需求,我们需要导入导出工具可以接入到数据平台上进行任务调度。 出于数据量级、性能、可扩展性、平台兼容性几方面的考虑,我们选择了SeaTunnel作为我们的数仓导入导出工具。</p><h1>Hive数据导入到ClickHouse</h1><p>下面将介绍我们对SeaTunnel的使用。
+图中是一张Hive表,它是我们三级的商品维度表,包含品类商品、维度品类和用户人群信息。表的主键是一个三级品类ct_third_id,下面的value是两个uid的位图,是用户id的bitmap类型,我们要把这个Hive表导入到Clickhouse。
+<img alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel安装简单,官网文档有介绍如何安装。下图中是SeaTunnel的配置,配置中env、source和sink是必不可少的。env部分,图中的例子是Spark配置,配置了包括并发度等,可以调整这些参数。source部分是数据来源,这里配置了Hive数据源,包括一条Hive Select语句,Spark运行source配置中的SQL把数据读出,此处支持UDF进行简单ETL;sink部分配置了Clickhouse,可以看到output_type=rowbinary,rowbinary是唯品会自研加速方案;pre_sql和check_sql是自研的用于数据校验的功能,后面也会详细介绍;clickhouse.socket_timeout和bulk_size都是可以根据实际情况进行调整的。
+<img alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+运行过程中会产生Spark日志,运行成功和运行中错误都可以在日志中查看。
+<img alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>为了更贴合业务,唯品会对SeaTunnel做了一些改进。我们的ETL任务都是需要重跑的,我们支持了pre_sql和check_sql实现数据的重跑和对数。主要流程是在数据准备好后,执行pre_sql进行预处理,在Clickhouse中执行删除旧分区数据、存放到某一目录下在失败时恢复该分区、rename这类操作。check_sql会检验,校验通过后整个流程结束;如果检验不通过,根据配置进行重跑,重跑不通过则报警到对应负责人。
+<img alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>唯品会基于1.0版本SeaTunnel增加了RowBinary做加速,也让HuperLogLog和BinaryBitmap的二进制文件能更容易地从Hive导入到Clickhouse。我们在ClickHouse-jdbc、bulk_size、Hive-source几处进行了修改。使用CK-jdbc的extended api,以rowbinary方式将数据写入CK,bulk_size引入了以rowbinary方式写入CK的控制逻辑,Hive-source
+RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>我们还让SeaTunnel支持了多类型,为了圈人群的功能,需要在Clickhouse、Preso、Spark中实现对应的方法。我们在Clickhouse-jdbc中增加支持Batch特性的Callback、HttpEntity、RowBinaryStream,在Clickhouse-jdbc和Clickhouse-sink代码中增加了bitmap类型映射,在Presto和Spark中实现了Clickhouse的Hyperloglog和Bitmap的function的UDF。
+前面的配置中,Clickhouse-sink部分可以指定表名,这里有写入本地表和分布式表的差异。写入分布式表的性能比写入本地表差对Clickhouse集群的压力会更大,但在计算曝光表、流量表,ABTest等场景中需要两表Join,两张表量级均在几十亿。这时我们希望Join key落在本机,Join成本更小。我们建表时在Clickhouse的分布式表分布规则中配置murmurHash64规则,然后在Seatunnel的sink里直接配置分布式表,把写入规则交给Clickhouse,利用了分布式表的特性进行写入。写入本地表对Clickhouse的压力会更小,写入的性能也会更好。我们在Seatunnel里,根据sink的本地表,去Clickhouse的System.cluster表里获取表的分布信息和机器分布host。然后根据均分规则写入这些host。把数据分布式写入的事情放到Seatunnel里来做。
+针对本地表和分布式表的写入,我们未来的改造方向是在Seatunnel实现一致性哈希,直接按照一定规则写如Clickhouse、不依赖Clickhouse自身做数据分发,改善Clickhouse高CPU负载问题。</p><h1>ClickHouse数据导入到Hive</h1><p>我们有圈人群的需求,每天唯品会为供应商圈20万个人群,比如80后、高富帅、白富美的人群集合。这些在Clickhouse中的Bitmap人群信息需要导出到Hive表,在Hive中与其他ETL任务进行配合,最后推到PIKA交给外部媒体使用。我们使SeaTunnel将Clickhouse Bitmap人群数据反推到Hive。
+<img alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>由于我们接入SeaTunnel较早,我们对一些模块间进行了加工,包括新增plugin-spark-sink-hive模块、plugin-spark-source-ClickHouse模块,重写Spark Row相关方法,使其能封装经过Schem映射后的Clickhouse数据,重新构造StructField并生成最终需要落地Hive的DataFrame。最新版本已经有了很多source和sink组件,在SeaTunnel使用上更方便。现在也可以在SeaTunnel中直接集成Flink connector。</p><h1>SeaTunnel与唯品会数据平台的集成</h1><p>各个公司都有自己的调度系统,例如白鲸、宙斯。唯品会的调度工具是数坊,调度工具中集成了数据传输工具。下面是调度系统架构图,其中包含各类数据的出入仓。
+<img alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>我们把SeaTunnel集成到了调度系统中,数坊调度Master会根据任务类型把任务分配到对应的Agent上,根据Agent负载情况分配到合适的机器上运行,管控器把前台的任务调度配置和信息拉取到后生成SeaTunnel cluster,在类似于k8s pod、cgroup隔离的虚拟环境内进行执行。运行结果会由调度平台的数据质量监控判断任务是否完成、是否运行成功,失败时进行重跑和告警。
+<img alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel本身是一个工具化的组件,是为了进行数据血缘,数据质量,历史记录,高警监控,还包括资源分配这些信息的管控。我们把SeaTunnel集成到平台中,可以利用平台优势利用好SeaTunnel。
+圈存人群中利用了SeaTunnel进行处理。我们通过打点数据,把圈存人群按照路径和使用情况分为不同的人,或称千人千面,把用户打上标签,圈出的某一类人群推送给用户、分析师和供应商。
+<img alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>流量进入Kafka,通过Flink入仓,再通过ETL形成用户标签表,用户标签表生成后,我们通过Presto实现了的BitMap方法,把数据打成Hive中的宽表。用户通过在人群系统页面中框选词条创建任务,提交腾群,生成SQL查询Clickhouse BitMap。Clickhouse的BitMap查询速度非常快,由天生优势,我们需要把Hive的BitMap表通过SeaTunnel导入到Clickhouse中。圈完人群后我们需要把表落地,形成Clickhouse的一个分区或一条记录,再把生成的结果BitMap表通过SeaTunnel存储到Hive中去。最后同步工具会将Hive的BitMap人群结果同步给外部媒体仓库Pika。每天圈20w个人群左右。
+整个过程中SeaTunnel负责把数据从Hive导出到Clickhouse,Clickhouse的ETL流程完成后SeaTunnel把数据从Clickhouse导出到Hive。
+为了完成这样的需求,我们在Presto和Spark端现ClickHouse的Hyperloglog和BitMap的function的UDF;我们还开发Seatunnel接口,使得用户在ClickHouse里使用Bitmap方法圈出来的人群,可以直接通过Seatunnel写入Hive表,无需中间落地步骤。用户也可以在Hive里通过spark圈人群或者反解人群bitmap,调用SeaTunnel接口,使数据直接传输到ClickHouse的结果表,而无需中间落地。</p><h1>后续工作</h1><p>后续我们会进一步改善Clickhouse写入数据时CPU负载高的问题,下一步会在SeaTunnel中实现Clickhouse数据源和读取端的CK-local模式,读写分离,减轻Clickhouse压力。未来我们也会增加更多sink支持,如数据推送到Pika和相应的数据检查。</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_XVD_  [...]
+            <div style="margin-top: 20px;background: #f4f8fa">
+                <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
+                <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
+                <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
+                <div style="text-align: center;">
+                    <a href="https://twitter.com/asfseatunnel?s=21" target="_blank" title="Twitter"><svg t="1644553365083" class="icon" viewBox="0 0 1260 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7015" width="25" height="25"><path d="M1259.846921 121.148242c-46.524504 20.728739-96.273478 34.547899-148.325646 40.536201 53.434084-31.784067 94.430924-82.454319 113.777747-142.797982-50.209613 29.480874-105.486251 51.13089-164.447999 62.646857A257.584528 257.584528 0 0 0 87 [...]
+                    <a href="https://apacheseatunnel.slack.com" target="_blank" title="Slack" style="margin-left: 20px;"><svg t="1644553076784" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3088" width="23" height="23"><path d="M215.125333 647.04a107.861333 107.861333 0 0 1-107.52 107.648A107.861333 107.861333 0 0 1 0 647.04a107.818667 107.818667 0 0 1 107.605333-107.52h107.52v107.52z m54.229334 0a107.818667 107.818667 0 0 1 107.562666-107.52 [...]
+                    <a href="https://lists.apache.org/list.html?dev@seatunnel.apache.org" target="_blank" title="Mailing list" style="margin-left: 20px;"><svg t="1644553175467" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5304" width="26" height="26"><path d="M853.333333 170.666667H170.666667c-46.933333 0-85.333333 38.4-85.333334 85.333333v512c0 46.933333 38.4 85.333333 85.333334 85.333333h682.666666c46.933333 0 85.333333-38.4 85.333334-85.3 [...]
+                    <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
+                </div>
+            <div></div></div></div></div></div></footer></div>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/community/contribution_guide/committer/index.html b/community/contribution_guide/committer/index.html
index 4c704f8..ec62617 100644
--- a/community/contribution_guide/committer/index.html
+++ b/community/contribution_guide/committer/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Become Apache SeaTunnel Committer | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/community/contribution_guide/committer"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -36,7 +36,7 @@ Before sending the invitation, the PPMC <a href="http://www.apache.org/dev/PPMC.
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/community/contribution_guide/contribute/index.html b/community/contribution_guide/contribute/index.html
index d302433..ce0d875 100644
--- a/community/contribution_guide/contribute/index.html
+++ b/community/contribution_guide/contribute/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Participate in Contributing | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/community/contribution_guide/contribute"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helm [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -159,7 +159,7 @@ to ask on the <code>dev@seatunnel.apache.org</code> list as well and/or ask comm
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/community/contribution_guide/subscribe/index.html b/community/contribution_guide/subscribe/index.html
index 4459889..d815b81 100644
--- a/community/contribution_guide/subscribe/index.html
+++ b/community/contribution_guide/subscribe/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Subscribe Mailing Lists | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/community/contribution_guide/subscribe"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="t [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/community/submit_guide/document/index.html b/community/submit_guide/document/index.html
index 03518cd..190437d 100644
--- a/community/submit_guide/document/index.html
+++ b/community/submit_guide/document/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Documentation Notice | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/community/submit_guide/document"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name= [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -25,7 +25,7 @@ Located in <code>src/pages/team</code></p><div class="codeBlockContainer_I0IT th
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/community/submit_guide/license/index.html b/community/submit_guide/license/index.html
index 2318f27..f623839 100644
--- a/community/submit_guide/license/index.html
+++ b/community/submit_guide/license/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">License Notice | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/community/submit_guide/license"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusa [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/community/submit_guide/submit-code/index.html b/community/submit_guide/submit-code/index.html
index 12ea868..dcb60ba 100644
--- a/community/submit_guide/submit-code/index.html
+++ b/community/submit_guide/submit-code/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Submit Code | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/community/submit_guide/submit-code"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docus [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/1-1.png b/doc/image_zh/2022-2-18-Meetup-vip/1-1.png
new file mode 100644
index 0000000..8bcbfe6
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/1-1.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/1.png b/doc/image_zh/2022-2-18-Meetup-vip/1.png
new file mode 100644
index 0000000..22cb281
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/1.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/10.png b/doc/image_zh/2022-2-18-Meetup-vip/10.png
new file mode 100644
index 0000000..6a72bdd
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/10.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/11.png b/doc/image_zh/2022-2-18-Meetup-vip/11.png
new file mode 100644
index 0000000..957a5ca
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/11.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/12.png b/doc/image_zh/2022-2-18-Meetup-vip/12.png
new file mode 100644
index 0000000..98a67d1
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/12.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/13.png b/doc/image_zh/2022-2-18-Meetup-vip/13.png
new file mode 100644
index 0000000..3650037
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/13.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/14.png b/doc/image_zh/2022-2-18-Meetup-vip/14.png
new file mode 100644
index 0000000..3c0b20b
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/14.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/15.png b/doc/image_zh/2022-2-18-Meetup-vip/15.png
new file mode 100644
index 0000000..fa79211
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/15.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/16.png b/doc/image_zh/2022-2-18-Meetup-vip/16.png
new file mode 100644
index 0000000..76b2f20
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/16.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/2.png b/doc/image_zh/2022-2-18-Meetup-vip/2.png
new file mode 100644
index 0000000..24e7122
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/2.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/3.png b/doc/image_zh/2022-2-18-Meetup-vip/3.png
new file mode 100644
index 0000000..17599bb
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/3.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/4.png b/doc/image_zh/2022-2-18-Meetup-vip/4.png
new file mode 100644
index 0000000..9909ac5
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/4.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/5.png b/doc/image_zh/2022-2-18-Meetup-vip/5.png
new file mode 100644
index 0000000..52d3bda
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/5.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/6.png b/doc/image_zh/2022-2-18-Meetup-vip/6.png
new file mode 100644
index 0000000..4b7bd59
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/6.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/7.png b/doc/image_zh/2022-2-18-Meetup-vip/7.png
new file mode 100644
index 0000000..86619ce
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/7.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/8.png b/doc/image_zh/2022-2-18-Meetup-vip/8.png
new file mode 100644
index 0000000..2a5d8ef
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/8.png differ
diff --git a/doc/image_zh/2022-2-18-Meetup-vip/9.png b/doc/image_zh/2022-2-18-Meetup-vip/9.png
new file mode 100644
index 0000000..f06f2bf
Binary files /dev/null and b/doc/image_zh/2022-2-18-Meetup-vip/9.png differ
diff --git a/docs/developement/NewLicenseGuide/index.html b/docs/developement/NewLicenseGuide/index.html
index b66313e..35fa5e8 100644
--- a/docs/developement/NewLicenseGuide/index.html
+++ b/docs/developement/NewLicenseGuide/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">How to add a new License Guide | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/developement/NewLicenseGuide"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet= [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/commands/start-seatunnel-flink.sh/index.html b/docs/flink/commands/start-seatunnel-flink.sh/index.html
index 61c372d..f253925 100644
--- a/docs/flink/commands/start-seatunnel-flink.sh/index.html
+++ b/docs/flink/commands/start-seatunnel-flink.sh/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Command usage instructions | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/commands/start-seatunnel-flink.sh"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react- [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/ConfigExamples/index.html b/docs/flink/configuration/ConfigExamples/index.html
index f0df635..326c83a 100644
--- a/docs/flink/configuration/ConfigExamples/index.html
+++ b/docs/flink/configuration/ConfigExamples/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Config Examples | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/ConfigExamples"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/sink-plugins/Console/index.html b/docs/flink/configuration/sink-plugins/Console/index.html
index 091fdab..383a6dd 100644
--- a/docs/flink/configuration/sink-plugins/Console/index.html
+++ b/docs/flink/configuration/sink-plugins/Console/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Console | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Console"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/sink-plugins/Doris/index.html b/docs/flink/configuration/sink-plugins/Doris/index.html
index b9218f1..3d9704c 100644
--- a/docs/flink/configuration/sink-plugins/Doris/index.html
+++ b/docs/flink/configuration/sink-plugins/Doris/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Doris | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Doris"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/sink-plugins/Druid/index.html b/docs/flink/configuration/sink-plugins/Druid/index.html
index 147abd6..e91d01e 100644
--- a/docs/flink/configuration/sink-plugins/Druid/index.html
+++ b/docs/flink/configuration/sink-plugins/Druid/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Druid | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Druid"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/sink-plugins/Elasticsearch/index.html b/docs/flink/configuration/sink-plugins/Elasticsearch/index.html
index 610d3d0..853eebe 100644
--- a/docs/flink/configuration/sink-plugins/Elasticsearch/index.html
+++ b/docs/flink/configuration/sink-plugins/Elasticsearch/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Elasticsearch | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Elasticsearch"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/sink-plugins/File/index.html b/docs/flink/configuration/sink-plugins/File/index.html
index 239a6a7..03576f6 100644
--- a/docs/flink/configuration/sink-plugins/File/index.html
+++ b/docs/flink/configuration/sink-plugins/File/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">File | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/File"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docu [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/sink-plugins/InfluxDb/index.html b/docs/flink/configuration/sink-plugins/InfluxDb/index.html
index 737b5bb..ef867d5 100644
--- a/docs/flink/configuration/sink-plugins/InfluxDb/index.html
+++ b/docs/flink/configuration/sink-plugins/InfluxDb/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">InfluxDB | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/InfluxDb"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/sink-plugins/Jdbc/index.html b/docs/flink/configuration/sink-plugins/Jdbc/index.html
index d7b0f1d..774b001 100644
--- a/docs/flink/configuration/sink-plugins/Jdbc/index.html
+++ b/docs/flink/configuration/sink-plugins/Jdbc/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Jdbc | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Jdbc"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docu [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/sink-plugins/Kafka/index.html b/docs/flink/configuration/sink-plugins/Kafka/index.html
index eb5cfa9..bc18927 100644
--- a/docs/flink/configuration/sink-plugins/Kafka/index.html
+++ b/docs/flink/configuration/sink-plugins/Kafka/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Kafka | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Kafka"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/sink-plugins/sink-plugin/index.html b/docs/flink/configuration/sink-plugins/sink-plugin/index.html
index 78f7fa2..d41f7f3 100644
--- a/docs/flink/configuration/sink-plugins/sink-plugin/index.html
+++ b/docs/flink/configuration/sink-plugins/sink-plugin/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Common Options | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/sink-plugin"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet= [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/source-plugins/Druid/index.html b/docs/flink/configuration/source-plugins/Druid/index.html
index db00dba..ed278ac 100644
--- a/docs/flink/configuration/source-plugins/Druid/index.html
+++ b/docs/flink/configuration/source-plugins/Druid/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Druid | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Druid"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/source-plugins/Fake/index.html b/docs/flink/configuration/source-plugins/Fake/index.html
index 4f2c456..a8cf826 100644
--- a/docs/flink/configuration/source-plugins/Fake/index.html
+++ b/docs/flink/configuration/source-plugins/Fake/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Fake | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Fake"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/source-plugins/File/index.html b/docs/flink/configuration/source-plugins/File/index.html
index 1819c71..7b90bba 100644
--- a/docs/flink/configuration/source-plugins/File/index.html
+++ b/docs/flink/configuration/source-plugins/File/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">File | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/File"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/source-plugins/InfluxDb/index.html b/docs/flink/configuration/source-plugins/InfluxDb/index.html
index 98a51e6..7d9620e 100644
--- a/docs/flink/configuration/source-plugins/InfluxDb/index.html
+++ b/docs/flink/configuration/source-plugins/InfluxDb/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">InfluxDb | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/InfluxDb"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true"  [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/source-plugins/Jdbc/index.html b/docs/flink/configuration/source-plugins/Jdbc/index.html
index d986b31..5044dc9 100644
--- a/docs/flink/configuration/source-plugins/Jdbc/index.html
+++ b/docs/flink/configuration/source-plugins/Jdbc/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Jdbc | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Jdbc"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/source-plugins/Kafka/index.html b/docs/flink/configuration/source-plugins/Kafka/index.html
index 220e855..bcba6f7 100644
--- a/docs/flink/configuration/source-plugins/Kafka/index.html
+++ b/docs/flink/configuration/source-plugins/Kafka/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Kafka | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Kafka"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/source-plugins/Socket/index.html b/docs/flink/configuration/source-plugins/Socket/index.html
index e80bf19..ac04888 100644
--- a/docs/flink/configuration/source-plugins/Socket/index.html
+++ b/docs/flink/configuration/source-plugins/Socket/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Socket | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Socket"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/source-plugins/source-plugin/index.html b/docs/flink/configuration/source-plugins/source-plugin/index.html
index a4ed2d6..4d3d266 100644
--- a/docs/flink/configuration/source-plugins/source-plugin/index.html
+++ b/docs/flink/configuration/source-plugins/source-plugin/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Common Options | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/source-plugin"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-hel [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/transform-plugins/Split/index.html b/docs/flink/configuration/transform-plugins/Split/index.html
index ba0f962..547e1d4 100644
--- a/docs/flink/configuration/transform-plugins/Split/index.html
+++ b/docs/flink/configuration/transform-plugins/Split/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Split | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/transform-plugins/Split"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" nam [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/transform-plugins/Sql/index.html b/docs/flink/configuration/transform-plugins/Sql/index.html
index 9a4ce9e..e2283be 100644
--- a/docs/flink/configuration/transform-plugins/Sql/index.html
+++ b/docs/flink/configuration/transform-plugins/Sql/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Sql | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/transform-plugins/Sql"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="d [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/configuration/transform-plugins/transform-plugin/index.html b/docs/flink/configuration/transform-plugins/transform-plugin/index.html
index c7e3ea8..fd3665d 100644
--- a/docs/flink/configuration/transform-plugins/transform-plugin/index.html
+++ b/docs/flink/configuration/transform-plugins/transform-plugin/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Common Options | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/transform-plugins/transform-plugin"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-rea [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/deployment/index.html b/docs/flink/deployment/index.html
index 90512b2..d67bd57 100644
--- a/docs/flink/deployment/index.html
+++ b/docs/flink/deployment/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Deployment and run | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/deployment"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusaurus_ [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/installation/index.html b/docs/flink/installation/index.html
index 9e62c93..8d677d0 100644
--- a/docs/flink/installation/index.html
+++ b/docs/flink/installation/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Download and install | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/installation"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusau [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/flink/quick-start/index.html b/docs/flink/quick-start/index.html
index 6e8741d..1b21d4a 100644
--- a/docs/flink/quick-start/index.html
+++ b/docs/flink/quick-start/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Quick start | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/quick-start"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusaurus_versio [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/introduction/index.html b/docs/introduction/index.html
index fd10bf9..4017aca 100644
--- a/docs/introduction/index.html
+++ b/docs/introduction/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Introduction | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/introduction"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusaurus_version" c [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -42,7 +42,7 @@ unacceptable behavior.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="dev
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/commands/start-seatunnel-spark.sh/index.html b/docs/spark/commands/start-seatunnel-spark.sh/index.html
index 0b756be..63d9c48 100644
--- a/docs/spark/commands/start-seatunnel-spark.sh/index.html
+++ b/docs/spark/commands/start-seatunnel-spark.sh/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Command usage instructions | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/commands/start-seatunnel-spark.sh"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react- [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/ConfigExamples/index.html b/docs/spark/configuration/ConfigExamples/index.html
index d74d50d..db12aac 100644
--- a/docs/spark/configuration/ConfigExamples/index.html
+++ b/docs/spark/configuration/ConfigExamples/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Config Examples | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/ConfigExamples"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Clickhouse/index.html b/docs/spark/configuration/sink-plugins/Clickhouse/index.html
index 0342637..b4e36e1 100644
--- a/docs/spark/configuration/sink-plugins/Clickhouse/index.html
+++ b/docs/spark/configuration/sink-plugins/Clickhouse/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Clickhouse | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Clickhouse"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Console/index.html b/docs/spark/configuration/sink-plugins/Console/index.html
index c64cb9d..3131737 100644
--- a/docs/spark/configuration/sink-plugins/Console/index.html
+++ b/docs/spark/configuration/sink-plugins/Console/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Console | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Console"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Doris/index.html b/docs/spark/configuration/sink-plugins/Doris/index.html
index babb229..67d6675 100644
--- a/docs/spark/configuration/sink-plugins/Doris/index.html
+++ b/docs/spark/configuration/sink-plugins/Doris/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Doirs | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Doris"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Elasticsearch/index.html b/docs/spark/configuration/sink-plugins/Elasticsearch/index.html
index 9634c9f..5e2345e 100644
--- a/docs/spark/configuration/sink-plugins/Elasticsearch/index.html
+++ b/docs/spark/configuration/sink-plugins/Elasticsearch/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Elasticsearch | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Elasticsearch"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Email/index.html b/docs/spark/configuration/sink-plugins/Email/index.html
index 91dea3a..5171239 100644
--- a/docs/spark/configuration/sink-plugins/Email/index.html
+++ b/docs/spark/configuration/sink-plugins/Email/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Email | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Email"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/File/index.html b/docs/spark/configuration/sink-plugins/File/index.html
index 172c294..aa57d2e 100644
--- a/docs/spark/configuration/sink-plugins/File/index.html
+++ b/docs/spark/configuration/sink-plugins/File/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">File | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/File"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docu [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Hbase/index.html b/docs/spark/configuration/sink-plugins/Hbase/index.html
index 14b3d18..96e137f 100644
--- a/docs/spark/configuration/sink-plugins/Hbase/index.html
+++ b/docs/spark/configuration/sink-plugins/Hbase/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Hbase | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Hbase"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Hdfs/index.html b/docs/spark/configuration/sink-plugins/Hdfs/index.html
index 15d9263..17e5e8c 100644
--- a/docs/spark/configuration/sink-plugins/Hdfs/index.html
+++ b/docs/spark/configuration/sink-plugins/Hdfs/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Hdfs | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Hdfs"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docu [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Hive/index.html b/docs/spark/configuration/sink-plugins/Hive/index.html
index 34ae409..3bf4305 100644
--- a/docs/spark/configuration/sink-plugins/Hive/index.html
+++ b/docs/spark/configuration/sink-plugins/Hive/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Hive | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Hive"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docu [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Hudi/index.html b/docs/spark/configuration/sink-plugins/Hudi/index.html
index ae37c80..e4f10df 100644
--- a/docs/spark/configuration/sink-plugins/Hudi/index.html
+++ b/docs/spark/configuration/sink-plugins/Hudi/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Hudi | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Hudi"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docu [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Jdbc/index.html b/docs/spark/configuration/sink-plugins/Jdbc/index.html
index fd4154c..f16f5ca 100644
--- a/docs/spark/configuration/sink-plugins/Jdbc/index.html
+++ b/docs/spark/configuration/sink-plugins/Jdbc/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Jdbc | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Jdbc"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docu [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Kafka/index.html b/docs/spark/configuration/sink-plugins/Kafka/index.html
index a74af78..05ed454 100644
--- a/docs/spark/configuration/sink-plugins/Kafka/index.html
+++ b/docs/spark/configuration/sink-plugins/Kafka/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Kafka | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Kafka"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Kudu/index.html b/docs/spark/configuration/sink-plugins/Kudu/index.html
index 82505ad..e1b985a 100644
--- a/docs/spark/configuration/sink-plugins/Kudu/index.html
+++ b/docs/spark/configuration/sink-plugins/Kudu/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Kudu | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Kudu"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docu [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/MongoDB/index.html b/docs/spark/configuration/sink-plugins/MongoDB/index.html
index 40d62f2..627c266 100644
--- a/docs/spark/configuration/sink-plugins/MongoDB/index.html
+++ b/docs/spark/configuration/sink-plugins/MongoDB/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">MongoDB | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/MongoDB"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Mysql/index.html b/docs/spark/configuration/sink-plugins/Mysql/index.html
index a20e2f0..0739d31 100644
--- a/docs/spark/configuration/sink-plugins/Mysql/index.html
+++ b/docs/spark/configuration/sink-plugins/Mysql/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Mysql | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Mysql"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Phoenix/index.html b/docs/spark/configuration/sink-plugins/Phoenix/index.html
index 5d1485c..42eb939 100644
--- a/docs/spark/configuration/sink-plugins/Phoenix/index.html
+++ b/docs/spark/configuration/sink-plugins/Phoenix/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Phoenix | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Phoenix"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Redis/index.html b/docs/spark/configuration/sink-plugins/Redis/index.html
index 39f6baa..d13d65d 100644
--- a/docs/spark/configuration/sink-plugins/Redis/index.html
+++ b/docs/spark/configuration/sink-plugins/Redis/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Redis | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Redis"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/Tidb/index.html b/docs/spark/configuration/sink-plugins/Tidb/index.html
index 4f0f238..1039470 100644
--- a/docs/spark/configuration/sink-plugins/Tidb/index.html
+++ b/docs/spark/configuration/sink-plugins/Tidb/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">TiDb | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Tidb"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docu [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/sink-plugins/sink-plugin/index.html b/docs/spark/configuration/sink-plugins/sink-plugin/index.html
index ea96ed5..5e6a34c 100644
--- a/docs/spark/configuration/sink-plugins/sink-plugin/index.html
+++ b/docs/spark/configuration/sink-plugins/sink-plugin/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Common Options | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/sink-plugin"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet= [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/Elasticsearch/index.html b/docs/spark/configuration/source-plugins/Elasticsearch/index.html
index 8fceae1..8333675 100644
--- a/docs/spark/configuration/source-plugins/Elasticsearch/index.html
+++ b/docs/spark/configuration/source-plugins/Elasticsearch/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Elasticsearch | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Elasticsearch"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helm [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/Fake/index.html b/docs/spark/configuration/source-plugins/Fake/index.html
index 59b7688..795ccd5 100644
--- a/docs/spark/configuration/source-plugins/Fake/index.html
+++ b/docs/spark/configuration/source-plugins/Fake/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Fake | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Fake"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/FakeStream/index.html b/docs/spark/configuration/source-plugins/FakeStream/index.html
index 3ede254..b920f6b 100644
--- a/docs/spark/configuration/source-plugins/FakeStream/index.html
+++ b/docs/spark/configuration/source-plugins/FakeStream/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">FakeStream | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/FakeStream"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="tr [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/Hive/index.html b/docs/spark/configuration/source-plugins/Hive/index.html
index 9504bf3..a56ed4f 100644
--- a/docs/spark/configuration/source-plugins/Hive/index.html
+++ b/docs/spark/configuration/source-plugins/Hive/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Hive | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Hive"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/Hudi/index.html b/docs/spark/configuration/source-plugins/Hudi/index.html
index ebc7285..381732f 100644
--- a/docs/spark/configuration/source-plugins/Hudi/index.html
+++ b/docs/spark/configuration/source-plugins/Hudi/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Hudi | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Hudi"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/Jdbc/index.html b/docs/spark/configuration/source-plugins/Jdbc/index.html
index f60aab1..5643472 100644
--- a/docs/spark/configuration/source-plugins/Jdbc/index.html
+++ b/docs/spark/configuration/source-plugins/Jdbc/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Jdbc | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Jdbc"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/KafkaStream/index.html b/docs/spark/configuration/source-plugins/KafkaStream/index.html
index f25a6dc..102e451 100644
--- a/docs/spark/configuration/source-plugins/KafkaStream/index.html
+++ b/docs/spark/configuration/source-plugins/KafkaStream/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">KafkaStream | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/KafkaStream"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet=" [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/Kudu/index.html b/docs/spark/configuration/source-plugins/Kudu/index.html
index 1f2dcd1..ecc4f52 100644
--- a/docs/spark/configuration/source-plugins/Kudu/index.html
+++ b/docs/spark/configuration/source-plugins/Kudu/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Kudu | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Kudu"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/MongoDB/index.html b/docs/spark/configuration/source-plugins/MongoDB/index.html
index 30f375b..3f8b686 100644
--- a/docs/spark/configuration/source-plugins/MongoDB/index.html
+++ b/docs/spark/configuration/source-plugins/MongoDB/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">MongoDb | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/MongoDB"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/Phoenix/index.html b/docs/spark/configuration/source-plugins/Phoenix/index.html
index 6e6eb53..648cc9f 100644
--- a/docs/spark/configuration/source-plugins/Phoenix/index.html
+++ b/docs/spark/configuration/source-plugins/Phoenix/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Phoenix | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Phoenix"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/Redis/index.html b/docs/spark/configuration/source-plugins/Redis/index.html
index a618393..27ef548 100644
--- a/docs/spark/configuration/source-plugins/Redis/index.html
+++ b/docs/spark/configuration/source-plugins/Redis/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Redis | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Redis"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/SocketStream/index.html b/docs/spark/configuration/source-plugins/SocketStream/index.html
index d939c9f..4c315b3 100644
--- a/docs/spark/configuration/source-plugins/SocketStream/index.html
+++ b/docs/spark/configuration/source-plugins/SocketStream/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">SocketStream | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/SocketStream"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/Tidb/index.html b/docs/spark/configuration/source-plugins/Tidb/index.html
index 78fea8f..2e22b16 100644
--- a/docs/spark/configuration/source-plugins/Tidb/index.html
+++ b/docs/spark/configuration/source-plugins/Tidb/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Tidb | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Tidb"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/neo4j/index.html b/docs/spark/configuration/source-plugins/neo4j/index.html
index 4008027..a3448dd 100644
--- a/docs/spark/configuration/source-plugins/neo4j/index.html
+++ b/docs/spark/configuration/source-plugins/neo4j/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Neo4j | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/neo4j"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@ or a simple number that represents the amount of records returned by query. Cons
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/source-plugin/index.html b/docs/spark/configuration/source-plugins/source-plugin/index.html
index 5353dd0..8a54717 100644
--- a/docs/spark/configuration/source-plugins/source-plugin/index.html
+++ b/docs/spark/configuration/source-plugins/source-plugin/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Common Options | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/source-plugin"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-hel [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/transform-plugins/Json/index.html b/docs/spark/configuration/transform-plugins/Json/index.html
index a3fceee..489a544 100644
--- a/docs/spark/configuration/transform-plugins/Json/index.html
+++ b/docs/spark/configuration/transform-plugins/Json/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Json | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/transform-plugins/Json"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name= [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/transform-plugins/Split/index.html b/docs/spark/configuration/transform-plugins/Split/index.html
index 772dea4..ffe1f26 100644
--- a/docs/spark/configuration/transform-plugins/Split/index.html
+++ b/docs/spark/configuration/transform-plugins/Split/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Split | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/transform-plugins/Split"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" nam [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/transform-plugins/Sql/index.html b/docs/spark/configuration/transform-plugins/Sql/index.html
index e051d75..419dc0b 100644
--- a/docs/spark/configuration/transform-plugins/Sql/index.html
+++ b/docs/spark/configuration/transform-plugins/Sql/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Sql | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/transform-plugins/Sql"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="d [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/transform-plugins/transform-plugin/index.html b/docs/spark/configuration/transform-plugins/transform-plugin/index.html
index 05776ef..6931250 100644
--- a/docs/spark/configuration/transform-plugins/transform-plugin/index.html
+++ b/docs/spark/configuration/transform-plugins/transform-plugin/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Common Options | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/transform-plugins/transform-plugin"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-rea [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/deployment/index.html b/docs/spark/deployment/index.html
index 683301e..8f16d23 100644
--- a/docs/spark/deployment/index.html
+++ b/docs/spark/deployment/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">deployment | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/deployment"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusaurus_version" [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/installation/index.html b/docs/spark/installation/index.html
index a442442..2729809 100644
--- a/docs/spark/installation/index.html
+++ b/docs/spark/installation/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Download and install | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/installation"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusau [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/quick-start/index.html b/docs/spark/quick-start/index.html
index 4b165c3..6a55e0b 100644
--- a/docs/spark/quick-start/index.html
+++ b/docs/spark/quick-start/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Quick start | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/quick-start"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusaurus_versio [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/faq/faq/index.html b/faq/faq/index.html
index 276a81e..74d6af7 100644
--- a/faq/faq/index.html
+++ b/faq/faq/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">SeaTunnel FAQ | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/faq/faq"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusaurus_version" content="c [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/home/index.html b/home/index.html
index 3a8aba8..a9528f1 100644
--- a/home/index.html
+++ b/home/index.html
@@ -6,13 +6,13 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true"></title><link rel="stylesheet" href="/assets/css/styles.66709117.css">
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div><div class="main slogan"><div class="block"><div class="banner text_center"><h1 class="main_title"><span class="apache">Apache</span> <span class="seatunnel">SeaTunnel</span><span class="badge">Incubating</span></h1><p class="main_slogan">Next-generation high-performance, distributed, massive data integration framework</p><div class="button_row center"><a href="https://seatunnel.apache.org/docs/introduction#quick-start" class="corner_button blue_fill">Quick Start</a><a href="https:/ [...]
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/index.html b/index.html
index dd8e8b3..3f061dd 100644
--- a/index.html
+++ b/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Apache SeaTunnel | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="Apache SeaTunnel | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="description" content="Description will go into a meta tag in &lt;head /&gt;"><meta data-react-h [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
index ab4b604..ea6426c 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://seatunnel.apache.org/blog</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://seatunnel.apache.org/blog/archive</loc> [...]
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://seatunnel.apache.org/blog</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://seatunnel.apache.org/blog/archive</loc> [...]
\ No newline at end of file
diff --git a/team/index.html b/team/index.html
index 58697d4..74894b3 100644
--- a/team/index.html
+++ b/team/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/team/"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta d [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/user/index.html b/user/index.html
index eabc25f..2298664 100644
--- a/user/index.html
+++ b/user/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/user/"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta d [...]
-<link rel="preload" href="/assets/js/runtime~main.8f77721d.js" as="script">
-<link rel="preload" href="/assets/js/main.2802538f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.14c1e774.js" as="script">
+<link rel="preload" href="/assets/js/main.4602ec29.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.8f77721d.js"></script>
-<script src="/assets/js/main.2802538f.js"></script>
+<script src="/assets/js/runtime~main.14c1e774.js"></script>
+<script src="/assets/js/main.4602ec29.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/404.html b/zh-CN/404.html
index d2d4ee2..a43b79c 100644
--- a/zh-CN/404.html
+++ b/zh-CN/404.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Page Not Found | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="Page Not Found | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/404.html"><meta data-react-helmet="tr [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png b/zh-CN/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png
new file mode 100644
index 0000000..8bcbfe6
Binary files /dev/null and b/zh-CN/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png differ
diff --git a/zh-CN/assets/images/10-15459320d13177fafe0fd49a06f92e03.png b/zh-CN/assets/images/10-15459320d13177fafe0fd49a06f92e03.png
new file mode 100644
index 0000000..6a72bdd
Binary files /dev/null and b/zh-CN/assets/images/10-15459320d13177fafe0fd49a06f92e03.png differ
diff --git a/zh-CN/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png b/zh-CN/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png
new file mode 100644
index 0000000..957a5ca
Binary files /dev/null and b/zh-CN/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png differ
diff --git a/zh-CN/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png b/zh-CN/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png
new file mode 100644
index 0000000..98a67d1
Binary files /dev/null and b/zh-CN/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png differ
diff --git a/zh-CN/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png b/zh-CN/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png
new file mode 100644
index 0000000..3650037
Binary files /dev/null and b/zh-CN/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png differ
diff --git a/zh-CN/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png b/zh-CN/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png
new file mode 100644
index 0000000..3c0b20b
Binary files /dev/null and b/zh-CN/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png differ
diff --git a/zh-CN/assets/images/15-798a1029db30ff228befcc333645c3e4.png b/zh-CN/assets/images/15-798a1029db30ff228befcc333645c3e4.png
new file mode 100644
index 0000000..fa79211
Binary files /dev/null and b/zh-CN/assets/images/15-798a1029db30ff228befcc333645c3e4.png differ
diff --git a/zh-CN/assets/images/16-8947f00847b3a55a537124964206e1b2.png b/zh-CN/assets/images/16-8947f00847b3a55a537124964206e1b2.png
new file mode 100644
index 0000000..76b2f20
Binary files /dev/null and b/zh-CN/assets/images/16-8947f00847b3a55a537124964206e1b2.png differ
diff --git a/zh-CN/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png b/zh-CN/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png
new file mode 100644
index 0000000..24e7122
Binary files /dev/null and b/zh-CN/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png differ
diff --git a/zh-CN/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png b/zh-CN/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png
new file mode 100644
index 0000000..17599bb
Binary files /dev/null and b/zh-CN/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png differ
diff --git a/zh-CN/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png b/zh-CN/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png
new file mode 100644
index 0000000..9909ac5
Binary files /dev/null and b/zh-CN/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png differ
diff --git a/zh-CN/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png b/zh-CN/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png
new file mode 100644
index 0000000..52d3bda
Binary files /dev/null and b/zh-CN/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png differ
diff --git a/zh-CN/assets/images/6-e37187a14e8316f82074f78b8a250a58.png b/zh-CN/assets/images/6-e37187a14e8316f82074f78b8a250a58.png
new file mode 100644
index 0000000..4b7bd59
Binary files /dev/null and b/zh-CN/assets/images/6-e37187a14e8316f82074f78b8a250a58.png differ
diff --git a/zh-CN/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png b/zh-CN/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png
new file mode 100644
index 0000000..86619ce
Binary files /dev/null and b/zh-CN/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png differ
diff --git a/zh-CN/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png b/zh-CN/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png
new file mode 100644
index 0000000..2a5d8ef
Binary files /dev/null and b/zh-CN/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png differ
diff --git a/zh-CN/assets/images/9-f08855ea40230b4f16d6c04408063346.png b/zh-CN/assets/images/9-f08855ea40230b4f16d6c04408063346.png
new file mode 100644
index 0000000..f06f2bf
Binary files /dev/null and b/zh-CN/assets/images/9-f08855ea40230b4f16d6c04408063346.png differ
diff --git a/zh-CN/assets/js/08dd1cb1.d2c9f3b6.js b/zh-CN/assets/js/08dd1cb1.d2c9f3b6.js
new file mode 100644
index 0000000..6bdda42
--- /dev/null
+++ b/zh-CN/assets/js/08dd1cb1.d2c9f3b6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6138],{3905:function(e,n,t){t.d(n,{Zo:function(){return o},kt:function(){return h}});var i=t(7294);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/14354f1c.d4c35905.js b/zh-CN/assets/js/14354f1c.d4c35905.js
new file mode 100644
index 0000000..f3f73e2
--- /dev/null
+++ b/zh-CN/assets/js/14354f1c.d4c35905.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9971],{3905:function(e,n,t){t.d(n,{Zo:function(){return o},kt:function(){return h}});var i=t(7294);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/15ad2644.5521991c.js b/zh-CN/assets/js/15ad2644.5521991c.js
deleted file mode 100644
index 7ee11b7..0000000
--- a/zh-CN/assets/js/15ad2644.5521991c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1129],{6489:function(a){a.exports=JSON.parse('{"/zh-CN/blog/tags/hdfs":{"allTagsPath":"/zh-CN/blog/tags","slug":"/zh-CN/blog/tags/hdfs","name":"HDFS","count":1,"permalink":"/zh-CN/blog/tags/hdfs"},"/zh-CN/blog/tags/click-house":{"allTagsPath":"/zh-CN/blog/tags","slug":"/zh-CN/blog/tags/click-house","name":"ClickHouse","count":2,"permalink":"/zh-CN/blog/tags/click-house"},"/zh-CN/blog/tags/hive [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/15ad2644.6f5d3265.js b/zh-CN/assets/js/15ad2644.6f5d3265.js
new file mode 100644
index 0000000..e29c5d1
--- /dev/null
+++ b/zh-CN/assets/js/15ad2644.6f5d3265.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1129],{6489:function(a){a.exports=JSON.parse('{"/zh-CN/blog/tags/\u552f\u54c1\u4f1a":{"allTagsPath":"/zh-CN/blog/tags","slug":"/zh-CN/blog/tags/\u552f\u54c1\u4f1a","name":"\u552f\u54c1\u4f1a","count":1,"permalink":"/zh-CN/blog/tags/\u552f\u54c1\u4f1a"},"/zh-CN/blog/tags/click-house":{"allTagsPath":"/zh-CN/blog/tags","slug":"/zh-CN/blog/tags/click-house","name":"ClickHouse","count":3,"permalink [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/231cb6d2.3481d4c3.js b/zh-CN/assets/js/231cb6d2.9f722f53.js
similarity index 65%
rename from zh-CN/assets/js/231cb6d2.3481d4c3.js
rename to zh-CN/assets/js/231cb6d2.9f722f53.js
index 61039ea..b049154 100644
--- a/zh-CN/assets/js/231cb6d2.3481d4c3.js
+++ b/zh-CN/assets/js/231cb6d2.9f722f53.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3967],{5998:function(e){e.exports=JSON.parse('{"allTagsPath":"/zh-CN/blog/tags","slug":"/zh-CN/blog/tags/click-house","name":"ClickHouse","count":2,"permalink":"/zh-CN/blog/tags/click-house"}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3967],{5998:function(e){e.exports=JSON.parse('{"allTagsPath":"/zh-CN/blog/tags","slug":"/zh-CN/blog/tags/click-house","name":"ClickHouse","count":3,"permalink":"/zh-CN/blog/tags/click-house"}')}}]);
\ No newline at end of file
diff --git a/zh-CN/assets/js/50bc71d4.378204ee.js b/zh-CN/assets/js/50bc71d4.378204ee.js
deleted file mode 100644
index e00fec2..0000000
--- a/zh-CN/assets/js/50bc71d4.378204ee.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6406],{970:function(n){n.exports=JSON.parse('{"blogPosts":[{"id":"hdfs-to-clickhouse","metadata":{"permalink":"/zh-CN/blog/hdfs-to-clickhouse","editUrl":"https://github.com/apache/incubator-seatunnel-website/edit/main/blog/2021-12-30-hdfs-to-clickhouse.md","source":"@site/blog/2021-12-30-hdfs-to-clickhouse.md","title":"\u5982\u4f55\u5feb\u901f\u5730\u628a HDFS \u4e2d\u7684\u6570\u636e\u5bfc\u5 [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/50bc71d4.6719e4ec.js b/zh-CN/assets/js/50bc71d4.6719e4ec.js
new file mode 100644
index 0000000..338be77
--- /dev/null
+++ b/zh-CN/assets/js/50bc71d4.6719e4ec.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6406],{970:function(n){n.exports=JSON.parse('{"blogPosts":[{"id":"SeaTunnel \u5728\u552f\u54c1\u4f1a\u7684\u5b9e\u8df5","metadata":{"permalink":"/zh-CN/blog/SeaTunnel \u5728\u552f\u54c1\u4f1a\u7684\u5b9e\u8df5","editUrl":"https://github.com/apache/incubator-seatunnel-website/edit/main/blog/2022-2-18-Meetup-vip.md","source":"@site/blog/2022-2-18-Meetup-vip.md","title":"SeaTunnel \u5728\u552f\u5 [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/814f3328.37a6b8a8.js b/zh-CN/assets/js/814f3328.37a6b8a8.js
deleted file mode 100644
index 5f3970b..0000000
--- a/zh-CN/assets/js/814f3328.37a6b8a8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2535],{5641:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"\u5982\u4f55\u5feb\u901f\u5730\u628a HDFS \u4e2d\u7684\u6570\u636e\u5bfc\u5165 ClickHouse","permalink":"/zh-CN/blog/hdfs-to-clickhouse"},{"title":"\u5982\u4f55\u5feb\u901f\u5730\u628a Hive \u4e2d\u7684\u6570\u636e\u5bfc\u5165 ClickHouse","permalink":"/zh-CN/blog/hive-to-clickhouse"},{"title":"\u5982\u4f55\ [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/814f3328.84823219.js b/zh-CN/assets/js/814f3328.84823219.js
new file mode 100644
index 0000000..18f0509
--- /dev/null
+++ b/zh-CN/assets/js/814f3328.84823219.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2535],{5641:function(e){e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"SeaTunnel \u5728\u552f\u54c1\u4f1a\u7684\u5b9e\u8df5","permalink":"/zh-CN/blog/SeaTunnel \u5728\u552f\u54c1\u4f1a\u7684\u5b9e\u8df5"},{"title":"\u5982\u4f55\u5feb\u901f\u5730\u628a HDFS \u4e2d\u7684\u6570\u636e\u5bfc\u5165 ClickHouse","permalink":"/zh-CN/blog/hdfs-to-clickhouse"},{"title":"\u5982\u4f55\u5f [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/88a3f98d.13cc2dfb.js b/zh-CN/assets/js/88a3f98d.13cc2dfb.js
deleted file mode 100644
index 460e21c..0000000
--- a/zh-CN/assets/js/88a3f98d.13cc2dfb.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3064],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/88a3f98d.8246bc0b.js b/zh-CN/assets/js/88a3f98d.8246bc0b.js
new file mode 100644
index 0000000..92c3627
--- /dev/null
+++ b/zh-CN/assets/js/88a3f98d.8246bc0b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3064],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/8d998be3.b56d2f78.js b/zh-CN/assets/js/8d998be3.8e521fa9.js
similarity index 61%
rename from zh-CN/assets/js/8d998be3.b56d2f78.js
rename to zh-CN/assets/js/8d998be3.8e521fa9.js
index f2602b2..4ba1bf0 100644
--- a/zh-CN/assets/js/8d998be3.b56d2f78.js
+++ b/zh-CN/assets/js/8d998be3.8e521fa9.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5197],{3755:function(e){e.exports=JSON.parse('{"permalink":"/zh-CN/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":5,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5197],{3755:function(e){e.exports=JSON.parse('{"permalink":"/zh-CN/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":6,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/zh-CN/assets/js/971aa1e1.f3c30a7a.js b/zh-CN/assets/js/971aa1e1.f3c30a7a.js
new file mode 100644
index 0000000..51be98a
--- /dev/null
+++ b/zh-CN/assets/js/971aa1e1.f3c30a7a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3200],{5172:function(e){e.exports=JSON.parse('{"allTagsPath":"/zh-CN/blog/tags","slug":"/zh-CN/blog/tags/\u552f\u54c1\u4f1a","name":"\u552f\u54c1\u4f1a","count":1,"permalink":"/zh-CN/blog/tags/\u552f\u54c1\u4f1a"}')}}]);
\ No newline at end of file
diff --git a/zh-CN/assets/js/a281a1a5.0cb475df.js b/zh-CN/assets/js/a281a1a5.0cb475df.js
new file mode 100644
index 0000000..f3ec1ac
--- /dev/null
+++ b/zh-CN/assets/js/a281a1a5.0cb475df.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3229],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return d}});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/a281a1a5.c7f8035a.js b/zh-CN/assets/js/a281a1a5.c7f8035a.js
deleted file mode 100644
index 9f3ee00..0000000
--- a/zh-CN/assets/js/a281a1a5.c7f8035a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3229],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return d}});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/f820265a.187e16e6.js b/zh-CN/assets/js/f820265a.187e16e6.js
deleted file mode 100644
index 78bd5f7..0000000
--- a/zh-CN/assets/js/f820265a.187e16e6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7297],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/f820265a.5c8b50d1.js b/zh-CN/assets/js/f820265a.5c8b50d1.js
new file mode 100644
index 0000000..e7567db
--- /dev/null
+++ b/zh-CN/assets/js/f820265a.5c8b50d1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7297],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/main.25a063ee.js b/zh-CN/assets/js/main.25a063ee.js
new file mode 100644
index 0000000..a708929
--- /dev/null
+++ b/zh-CN/assets/js/main.25a063ee.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.25a063ee.js.LICENSE.txt */
+(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[179],{9782:function(e,t,n){"use strict";n.r(t),t.default={title:"Apache SeaTunnel",tagline:"Dinosaurs are cool",url:"https://seatunnel.apache.org",baseUrl:"/zh-CN/",onBrokenLinks:"ignore",onBrokenMarkdownLinks:"warn",favicon:"image/favicon.ico",organizationName:"Apache SeaTunnel",projectName:"Apache SeaTunnel",i18n:{defaultLocale:"en",locales:["en","zh-CN"],localeConfigs:{en:{label:"English",direction:"ltr [...]
\ No newline at end of file
diff --git a/assets/js/main.2802538f.js.LICENSE.txt b/zh-CN/assets/js/main.25a063ee.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.2802538f.js.LICENSE.txt
rename to zh-CN/assets/js/main.25a063ee.js.LICENSE.txt
diff --git a/zh-CN/assets/js/main.56b4736e.js b/zh-CN/assets/js/main.56b4736e.js
deleted file mode 100644
index a28f9ef..0000000
--- a/zh-CN/assets/js/main.56b4736e.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.56b4736e.js.LICENSE.txt */
-(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[179],{9782:function(e,t,n){"use strict";n.r(t),t.default={title:"Apache SeaTunnel",tagline:"Dinosaurs are cool",url:"https://seatunnel.apache.org",baseUrl:"/zh-CN/",onBrokenLinks:"ignore",onBrokenMarkdownLinks:"warn",favicon:"image/favicon.ico",organizationName:"Apache SeaTunnel",projectName:"Apache SeaTunnel",i18n:{defaultLocale:"en",locales:["en","zh-CN"],localeConfigs:{en:{label:"English",direction:"ltr [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/runtime~main.6b9fee27.js b/zh-CN/assets/js/runtime~main.6b9fee27.js
deleted file mode 100644
index 1bd6525..0000000
--- a/zh-CN/assets/js/runtime~main.6b9fee27.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){"use strict";var e,c,a,f,b,d={},t={};function n(e){var c=t[e];if(void 0!==c)return c.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.m=d,n.c=t,e=[],n.O=function(c,a,f,b){if(!a){var d=1/0;for(u=0;u<e.length;u++){a=e[u][0],f=e[u][1],b=e[u][2];for(var t=!0,r=0;r<a.length;r++)(!1&b||d>=b)&&Object.keys(n.O).every((function(e){return n.O[e](a[r])}))?a.splice(r--,1):(t=!1,b<d&&(d=b));if(t){e.splice(u--,1);var o=f();voi [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/runtime~main.e4d362a8.js b/zh-CN/assets/js/runtime~main.e4d362a8.js
new file mode 100644
index 0000000..33f0e51
--- /dev/null
+++ b/zh-CN/assets/js/runtime~main.e4d362a8.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,c,a,f,d,b={},t={};function n(e){var c=t[e];if(void 0!==c)return c.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.m=b,n.c=t,e=[],n.O=function(c,a,f,d){if(!a){var b=1/0;for(u=0;u<e.length;u++){a=e[u][0],f=e[u][1],d=e[u][2];for(var t=!0,r=0;r<a.length;r++)(!1&d||b>=d)&&Object.keys(n.O).every((function(e){return n.O[e](a[r])}))?a.splice(r--,1):(t=!1,d<b&&(b=d));if(t){e.splice(u--,1);var o=f();voi [...]
\ No newline at end of file
diff --git "a/zh-CN/blog/SeaTunnel \345\234\250\345\224\257\345\223\201\344\274\232\347\232\204\345\256\236\350\267\265/index.html" "b/zh-CN/blog/SeaTunnel \345\234\250\345\224\257\345\223\201\344\274\232\347\232\204\345\256\236\350\267\265/index.html"
new file mode 100644
index 0000000..4adb978
--- /dev/null
+++ "b/zh-CN/blog/SeaTunnel \345\234\250\345\224\257\345\223\201\344\274\232\347\232\204\345\256\236\350\267\265/index.html"	
@@ -0,0 +1,58 @@
+<!doctype html>
+<html lang="zh-CN" dir="ltr">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-beta.15">
+<link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">SeaTunnel 在唯品会的实践 | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/SeaTunnel 在唯品会的实践"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="true" na [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+讲稿整理:张德通</p><p>导读: 唯品会早在1.0版本时就引用了SeaTunnel,我们使用SeaTunnel进行一些Hive到ClickHouse之间数据交互的工作。
+今天的介绍会围绕下面几点展开:</p><ul><li>ClickHouse数据导入的需求和痛点;</li><li>ClickHouse出仓入仓工具选型;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>SeaTunnel与唯品会数据平台的集成;</li><li>未来展望;</li></ul><h1>ClickHouse数据导入的需求和痛点</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1唯品会数据olap架构">1.唯品会数据OLAP架构<a class="hash-link" href="#1唯品会数据olap架构" title="Direct link to heading">​</a></h2><p>图中是唯品会OLAP架构,我们负责的模块是图中的数据服务和计算引擎两大部分。底层依赖的数据仓库分为离线数仓、实时数仓和湖仓。计算引擎方面,我们使用Presto、Kylin和Clickhouse。虽然Clickhouse是一个存 [...]
+<img alt="1" src="/zh-CN/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2需求">2.需求<a class="hash-link" href="#2需求" title="Direct link to heading">​</a></h2><p>我们通过Presto Connector和Spark组件,把底层的Hive、Kudu、Alluxio组件打通。大数据组件之间可以互相导入导出数据,可以根据数据分析的需求和场景任意利用合适的组件分析数据。但我们引入Clickhouse时,它是一个数据孤岛,数据的导入和导出比较困难。Hive和Clickhouse之间需要做很多工作才能实现导入导出。我们的第一个数据导入导出需求就是提升导入导出效率,把Clickhouse纳入大数据体系中。
+<img alt="2" src="/zh-CN/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>第二个需求是Presto跑SQL比较慢,图中是一个慢SQL的例子。图中的SQL where条件设置了日期、时间范围和具体过滤条件,这类SQL使用由于Presto使用分区粒度下推,运行比较慢。即使用Hive的Bucket表和分桶等其他方式优化后也是几秒的返回时间、不能满足业务要求。这种情况下,我们需要利用Clickhouse做离线的OLAP计算加速。
+<img alt="3" src="/zh-CN/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>我们的实时数据是通过Kafka、Flink SQL方式写入到Clickhouse中。但分析时只用实时数据是不够的,需要用Hive维度表和已经ETL计算号的T+1实时表一起在Clickhouse中做加速运输。这需要把Hive的数据导入到Clickhouse中,这就是我们的第三个需求。
+<img alt="4" src="/zh-CN/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3痛点">3.痛点<a class="hash-link" href="#3痛点" title="Direct link to heading">​</a></h2><p>首先,我们引入一项数据组件时要考虑其性能。Hive表粒度是五分钟,是否有组件可以支撑五分钟内完成一个短小ETL流程并把ETL结果导入到Clickhouse中?第二,我们需要保证数据质量,数据的准确性需要有保障。Hive和Clickhouse的数据条数需要保障一致性,如果数据质量出问题能否通过重跑等机制修复数据?第三,数据导入需要支持的数据类型是否完备?不同数据库之间的数据类型和一些机制不同,我们有HiperLogLog和BitMap这类在某一存储引擎中利用得比较多得数据类型,是否可以正 [...]
+SeaTunnel和Spark依赖唯品会自己的Yarn集群,可以直接实现分布式读取和写入。DataX是非分布式的,且Reader、Writer之间的启动过程耗时时间长,性能普通,SeaTunnel和Spark处理数据的性能可以达到DataX的数倍。
+十亿以上的数据可以平稳地在SeaTunnel和Spark中运行,DataX在数据量大以后性能压力大,处理十亿以上数据吃力。
+在读写插件扩展性方面,SeaTunnel支持了多种数据源,支持用户开发插件。SeaTunnel支持了数据导入Redis。
+稳定性上,SeaTunnel和DataX由于是自成体系的工具,稳定性会更好。Spark的稳定性方面需要关注代码质量。
+<img alt="5" src="/zh-CN/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>我们的曝光表数据量每天在几十亿级,我们有5min内完成数据处理的性能要求,我们我们存在数据导入导出到Redis的需求,我们需要导入导出工具可以接入到数据平台上进行任务调度。 出于数据量级、性能、可扩展性、平台兼容性几方面的考虑,我们选择了SeaTunnel作为我们的数仓导入导出工具。</p><h1>Hive数据导入到ClickHouse</h1><p>下面将介绍我们对SeaTunnel的使用。
+图中是一张Hive表,它是我们三级的商品维度表,包含品类商品、维度品类和用户人群信息。表的主键是一个三级品类ct_third_id,下面的value是两个uid的位图,是用户id的bitmap类型,我们要把这个Hive表导入到Clickhouse。
+<img alt="6" src="/zh-CN/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel安装简单,官网文档有介绍如何安装。下图中是SeaTunnel的配置,配置中env、source和sink是必不可少的。env部分,图中的例子是Spark配置,配置了包括并发度等,可以调整这些参数。source部分是数据来源,这里配置了Hive数据源,包括一条Hive Select语句,Spark运行source配置中的SQL把数据读出,此处支持UDF进行简单ETL;sink部分配置了Clickhouse,可以看到output_type=rowbinary,rowbinary是唯品会自研加速方案;pre_sql和check_sql是自研的用于数据校验的功能,后面也会详细介绍;clickhouse.socket_timeout和bulk_size都是可以根据实际情况进行调整的。
+<img alt="7" src="/zh-CN/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img alt="8" src="/zh-CN/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+运行过程中会产生Spark日志,运行成功和运行中错误都可以在日志中查看。
+<img alt="9" src="/zh-CN/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>为了更贴合业务,唯品会对SeaTunnel做了一些改进。我们的ETL任务都是需要重跑的,我们支持了pre_sql和check_sql实现数据的重跑和对数。主要流程是在数据准备好后,执行pre_sql进行预处理,在Clickhouse中执行删除旧分区数据、存放到某一目录下在失败时恢复该分区、rename这类操作。check_sql会检验,校验通过后整个流程结束;如果检验不通过,根据配置进行重跑,重跑不通过则报警到对应负责人。
+<img alt="10" src="/zh-CN/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>唯品会基于1.0版本SeaTunnel增加了RowBinary做加速,也让HuperLogLog和BinaryBitmap的二进制文件能更容易地从Hive导入到Clickhouse。我们在ClickHouse-jdbc、bulk_size、Hive-source几处进行了修改。使用CK-jdbc的extended api,以rowbinary方式将数据写入CK,bulk_size引入了以rowbinary方式写入CK的控制逻辑,Hive-source
+RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>我们还让SeaTunnel支持了多类型,为了圈人群的功能,需要在Clickhouse、Preso、Spark中实现对应的方法。我们在Clickhouse-jdbc中增加支持Batch特性的Callback、HttpEntity、RowBinaryStream,在Clickhouse-jdbc和Clickhouse-sink代码中增加了bitmap类型映射,在Presto和Spark中实现了Clickhouse的Hyperloglog和Bitmap的function的UDF。
+前面的配置中,Clickhouse-sink部分可以指定表名,这里有写入本地表和分布式表的差异。写入分布式表的性能比写入本地表差对Clickhouse集群的压力会更大,但在计算曝光表、流量表,ABTest等场景中需要两表Join,两张表量级均在几十亿。这时我们希望Join key落在本机,Join成本更小。我们建表时在Clickhouse的分布式表分布规则中配置murmurHash64规则,然后在Seatunnel的sink里直接配置分布式表,把写入规则交给Clickhouse,利用了分布式表的特性进行写入。写入本地表对Clickhouse的压力会更小,写入的性能也会更好。我们在Seatunnel里,根据sink的本地表,去Clickhouse的System.cluster表里获取表的分布信息和机器分布host。然后根据均分规则写入这些host。把数据分布式写入的事情放到Seatunnel里来做。
+针对本地表和分布式表的写入,我们未来的改造方向是在Seatunnel实现一致性哈希,直接按照一定规则写如Clickhouse、不依赖Clickhouse自身做数据分发,改善Clickhouse高CPU负载问题。</p><h1>ClickHouse数据导入到Hive</h1><p>我们有圈人群的需求,每天唯品会为供应商圈20万个人群,比如80后、高富帅、白富美的人群集合。这些在Clickhouse中的Bitmap人群信息需要导出到Hive表,在Hive中与其他ETL任务进行配合,最后推到PIKA交给外部媒体使用。我们使SeaTunnel将Clickhouse Bitmap人群数据反推到Hive。
+<img alt="11" src="/zh-CN/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img alt="12" src="/zh-CN/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>由于我们接入SeaTunnel较早,我们对一些模块间进行了加工,包括新增plugin-spark-sink-hive模块、plugin-spark-source-ClickHouse模块,重写Spark Row相关方法,使其能封装经过Schem映射后的Clickhouse数据,重新构造StructField并生成最终需要落地Hive的DataFrame。最新版本已经有了很多source和sink组件,在SeaTunnel使用上更方便。现在也可以在SeaTunnel中直接集成Flink connector。</p><h1>SeaTunnel与唯品会数据平台的集成</h1><p>各个公司都有自己的调度系统,例如白鲸、宙斯。唯品会的调度工具是数坊,调度工具中集成了数据传输工具。下面是调度系统架构图,其中包含各类数据的出入仓。
+<img alt="13" src="/zh-CN/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img alt="14" src="/zh-CN/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>我们把SeaTunnel集成到了调度系统中,数坊调度Master会根据任务类型把任务分配到对应的Agent上,根据Agent负载情况分配到合适的机器上运行,管控器把前台的任务调度配置和信息拉取到后生成SeaTunnel cluster,在类似于k8s pod、cgroup隔离的虚拟环境内进行执行。运行结果会由调度平台的数据质量监控判断任务是否完成、是否运行成功,失败时进行重跑和告警。
+<img alt="15" src="/zh-CN/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel本身是一个工具化的组件,是为了进行数据血缘,数据质量,历史记录,高警监控,还包括资源分配这些信息的管控。我们把SeaTunnel集成到平台中,可以利用平台优势利用好SeaTunnel。
+圈存人群中利用了SeaTunnel进行处理。我们通过打点数据,把圈存人群按照路径和使用情况分为不同的人,或称千人千面,把用户打上标签,圈出的某一类人群推送给用户、分析师和供应商。
+<img alt="16" src="/zh-CN/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>流量进入Kafka,通过Flink入仓,再通过ETL形成用户标签表,用户标签表生成后,我们通过Presto实现了的BitMap方法,把数据打成Hive中的宽表。用户通过在人群系统页面中框选词条创建任务,提交腾群,生成SQL查询Clickhouse BitMap。Clickhouse的BitMap查询速度非常快,由天生优势,我们需要把Hive的BitMap表通过SeaTunnel导入到Clickhouse中。圈完人群后我们需要把表落地,形成Clickhouse的一个分区或一条记录,再把生成的结果BitMap表通过SeaTunnel存储到Hive中去。最后同步工具会将Hive的BitMap人群结果同步给外部媒体仓库Pika。每天圈20w个人群左右。
+整个过程中SeaTunnel负责把数据从Hive导出到Clickhouse,Clickhouse的ETL流程完成后SeaTunnel把数据从Clickhouse导出到Hive。
+为了完成这样的需求,我们在Presto和Spark端现ClickHouse的Hyperloglog和BitMap的function的UDF;我们还开发Seatunnel接口,使得用户在ClickHouse里使用Bitmap方法圈出来的人群,可以直接通过Seatunnel写入Hive表,无需中间落地步骤。用户也可以在Hive里通过spark圈人群或者反解人群bitmap,调用SeaTunnel接口,使数据直接传输到ClickHouse的结果表,而无需中间落地。</p><h1>后续工作</h1><p>后续我们会进一步改善Clickhouse写入数据时CPU负载高的问题,下一步会在SeaTunnel中实现Clickhouse数据源和读取端的CK-local模式,读写分离,减轻Clickhouse压力。未来我们也会增加更多sink支持,如数据推送到Pika和相应的数据检查。</p></div><footer class="row docusaurus-mt-lg blogPostDetailsFull_h6_j"><div class="col"><b>Tags:</b><ul [...]
+                <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
+                <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
+                <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
+                <div style="text-align: center;">
+                    <a href="https://twitter.com/asfseatunnel?s=21" target="_blank" title="Twitter"><svg t="1644553365083" class="icon" viewBox="0 0 1260 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7015" width="25" height="25"><path d="M1259.846921 121.148242c-46.524504 20.728739-96.273478 34.547899-148.325646 40.536201 53.434084-31.784067 94.430924-82.454319 113.777747-142.797982-50.209613 29.480874-105.486251 51.13089-164.447999 62.646857A257.584528 257.584528 0 0 0 87 [...]
+                    <a href="https://apacheseatunnel.slack.com" target="_blank" title="Slack" style="margin-left: 20px;"><svg t="1644553076784" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3088" width="23" height="23"><path d="M215.125333 647.04a107.861333 107.861333 0 0 1-107.52 107.648A107.861333 107.861333 0 0 1 0 647.04a107.818667 107.818667 0 0 1 107.605333-107.52h107.52v107.52z m54.229334 0a107.818667 107.818667 0 0 1 107.562666-107.52 [...]
+                    <a href="https://lists.apache.org/list.html?dev@seatunnel.apache.org" target="_blank" title="Mailing list" style="margin-left: 20px;"><svg t="1644553175467" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5304" width="26" height="26"><path d="M853.333333 170.666667H170.666667c-46.933333 0-85.333333 38.4-85.333334 85.333333v512c0 46.933333 38.4 85.333333 85.333334 85.333333h682.666666c46.933333 0 85.333333-38.4 85.333334-85.3 [...]
+                    <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
+                </div>
+            <div></div></div></div></div></div></footer></div>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-CN/blog/archive/index.html b/zh-CN/blog/archive/index.html
index 53846ce..15e4aa6 100644
--- a/zh-CN/blog/archive/index.html
+++ b/zh-CN/blog/archive/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Archive | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="Archive | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="description" content="Archive"><meta data-react-helmet="true" property="og:description" content="Archive">< [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
                 <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/blog/atom.xml b/zh-CN/blog/atom.xml
index 33260cb..f0bc92f 100644
--- a/zh-CN/blog/atom.xml
+++ b/zh-CN/blog/atom.xml
@@ -2,12 +2,52 @@
 <feed xmlns="http://www.w3.org/2005/Atom">
     <id>https://seatunnel.apache.org/zh-CN/blog</id>
     <title>Apache SeaTunnel Blog</title>
-    <updated>2021-12-30T00:00:00.000Z</updated>
+    <updated>2022-02-18T00:00:00.000Z</updated>
     <generator>https://github.com/jpmonette/feed</generator>
     <link rel="alternate" href="https://seatunnel.apache.org/zh-CN/blog"/>
     <subtitle>Apache SeaTunnel Blog</subtitle>
     <icon>https://seatunnel.apache.org/zh-CN/image/favicon.ico</icon>
     <entry>
+        <title type="html"><![CDATA[SeaTunnel 在唯品会的实践]]></title>
+        <id>SeaTunnel 在唯品会的实践</id>
+        <link href="https://seatunnel.apache.org/zh-CN/blog/SeaTunnel 在唯品会的实践"/>
+        <updated>2022-02-18T00:00:00.000Z</updated>
+        <summary type="html"><![CDATA[分享嘉宾:唯品会 资深大数据工程师 王玉]]></summary>
+        <content type="html"><![CDATA[<p>分享嘉宾:唯品会 资深大数据工程师 王玉
+讲稿整理:张德通</p><p>导读: 唯品会早在1.0版本时就引用了SeaTunnel,我们使用SeaTunnel进行一些Hive到ClickHouse之间数据交互的工作。
+今天的介绍会围绕下面几点展开:</p><ul><li>ClickHouse数据导入的需求和痛点;</li><li>ClickHouse出仓入仓工具选型;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>SeaTunnel与唯品会数据平台的集成;</li><li>未来展望;</li></ul><h1>ClickHouse数据导入的需求和痛点</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1唯品会数据olap架构">1.唯品会数据OLAP架构<a class="hash-link" href="#1唯品会数据olap架构" title="Direct link to heading">​</a></h2><p>图中是唯品会OLAP架构,我们负责的模块是图中的数据服务和计算引擎两大部分。底层依赖的数据仓库分为离线数仓、实时数仓和湖仓。计算引擎方面,我们使用Presto、Kylin和Clickhouse。虽然Clickhouse是一个存 [...]
+<img alt="1" src="/zh-CN/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2需求">2.需求<a class="hash-link" href="#2需求" title="Direct link to heading">​</a></h2><p>我们通过Presto Connector和Spark组件,把底层的Hive、Kudu、Alluxio组件打通。大数据组件之间可以互相导入导出数据,可以根据数据分析的需求和场景任意利用合适的组件分析数据。但我们引入Clickhouse时,它是一个数据孤岛,数据的导入和导出比较困难。Hive和Clickhouse之间需要做很多工作才能实现导入导出。我们的第一个数据导入导出需求就是提升导入导出效率,把Clickhouse纳入大数据体系中。
+<img alt="2" src="/zh-CN/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>第二个需求是Presto跑SQL比较慢,图中是一个慢SQL的例子。图中的SQL where条件设置了日期、时间范围和具体过滤条件,这类SQL使用由于Presto使用分区粒度下推,运行比较慢。即使用Hive的Bucket表和分桶等其他方式优化后也是几秒的返回时间、不能满足业务要求。这种情况下,我们需要利用Clickhouse做离线的OLAP计算加速。
+<img alt="3" src="/zh-CN/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>我们的实时数据是通过Kafka、Flink SQL方式写入到Clickhouse中。但分析时只用实时数据是不够的,需要用Hive维度表和已经ETL计算号的T+1实时表一起在Clickhouse中做加速运输。这需要把Hive的数据导入到Clickhouse中,这就是我们的第三个需求。
+<img alt="4" src="/zh-CN/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3痛点">3.痛点<a class="hash-link" href="#3痛点" title="Direct link to heading">​</a></h2><p>首先,我们引入一项数据组件时要考虑其性能。Hive表粒度是五分钟,是否有组件可以支撑五分钟内完成一个短小ETL流程并把ETL结果导入到Clickhouse中?第二,我们需要保证数据质量,数据的准确性需要有保障。Hive和Clickhouse的数据条数需要保障一致性,如果数据质量出问题能否通过重跑等机制修复数据?第三,数据导入需要支持的数据类型是否完备?不同数据库之间的数据类型和一些机制不同,我们有HiperLogLog和BitMap这类在某一存储引擎中利用得比较多得数据类型,是否可以正 [...]
+SeaTunnel和Spark依赖唯品会自己的Yarn集群,可以直接实现分布式读取和写入。DataX是非分布式的,且Reader、Writer之间的启动过程耗时时间长,性能普通,SeaTunnel和Spark处理数据的性能可以达到DataX的数倍。
+十亿以上的数据可以平稳地在SeaTunnel和Spark中运行,DataX在数据量大以后性能压力大,处理十亿以上数据吃力。
+在读写插件扩展性方面,SeaTunnel支持了多种数据源,支持用户开发插件。SeaTunnel支持了数据导入Redis。
+稳定性上,SeaTunnel和DataX由于是自成体系的工具,稳定性会更好。Spark的稳定性方面需要关注代码质量。
+<img alt="5" src="/zh-CN/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>我们的曝光表数据量每天在几十亿级,我们有5min内完成数据处理的性能要求,我们我们存在数据导入导出到Redis的需求,我们需要导入导出工具可以接入到数据平台上进行任务调度。 出于数据量级、性能、可扩展性、平台兼容性几方面的考虑,我们选择了SeaTunnel作为我们的数仓导入导出工具。</p><h1>Hive数据导入到ClickHouse</h1><p>下面将介绍我们对SeaTunnel的使用。
+图中是一张Hive表,它是我们三级的商品维度表,包含品类商品、维度品类和用户人群信息。表的主键是一个三级品类ct_third_id,下面的value是两个uid的位图,是用户id的bitmap类型,我们要把这个Hive表导入到Clickhouse。
+<img alt="6" src="/zh-CN/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel安装简单,官网文档有介绍如何安装。下图中是SeaTunnel的配置,配置中env、source和sink是必不可少的。env部分,图中的例子是Spark配置,配置了包括并发度等,可以调整这些参数。source部分是数据来源,这里配置了Hive数据源,包括一条Hive Select语句,Spark运行source配置中的SQL把数据读出,此处支持UDF进行简单ETL;sink部分配置了Clickhouse,可以看到output_type=rowbinary,rowbinary是唯品会自研加速方案;pre_sql和check_sql是自研的用于数据校验的功能,后面也会详细介绍;clickhouse.socket_timeout和bulk_size都是可以根据实际情况进行调整的。
+<img alt="7" src="/zh-CN/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img alt="8" src="/zh-CN/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+运行过程中会产生Spark日志,运行成功和运行中错误都可以在日志中查看。
+<img alt="9" src="/zh-CN/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>为了更贴合业务,唯品会对SeaTunnel做了一些改进。我们的ETL任务都是需要重跑的,我们支持了pre_sql和check_sql实现数据的重跑和对数。主要流程是在数据准备好后,执行pre_sql进行预处理,在Clickhouse中执行删除旧分区数据、存放到某一目录下在失败时恢复该分区、rename这类操作。check_sql会检验,校验通过后整个流程结束;如果检验不通过,根据配置进行重跑,重跑不通过则报警到对应负责人。
+<img alt="10" src="/zh-CN/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>唯品会基于1.0版本SeaTunnel增加了RowBinary做加速,也让HuperLogLog和BinaryBitmap的二进制文件能更容易地从Hive导入到Clickhouse。我们在ClickHouse-jdbc、bulk_size、Hive-source几处进行了修改。使用CK-jdbc的extended api,以rowbinary方式将数据写入CK,bulk_size引入了以rowbinary方式写入CK的控制逻辑,Hive-source
+RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>我们还让SeaTunnel支持了多类型,为了圈人群的功能,需要在Clickhouse、Preso、Spark中实现对应的方法。我们在Clickhouse-jdbc中增加支持Batch特性的Callback、HttpEntity、RowBinaryStream,在Clickhouse-jdbc和Clickhouse-sink代码中增加了bitmap类型映射,在Presto和Spark中实现了Clickhouse的Hyperloglog和Bitmap的function的UDF。
+前面的配置中,Clickhouse-sink部分可以指定表名,这里有写入本地表和分布式表的差异。写入分布式表的性能比写入本地表差对Clickhouse集群的压力会更大,但在计算曝光表、流量表,ABTest等场景中需要两表Join,两张表量级均在几十亿。这时我们希望Join key落在本机,Join成本更小。我们建表时在Clickhouse的分布式表分布规则中配置murmurHash64规则,然后在Seatunnel的sink里直接配置分布式表,把写入规则交给Clickhouse,利用了分布式表的特性进行写入。写入本地表对Clickhouse的压力会更小,写入的性能也会更好。我们在Seatunnel里,根据sink的本地表,去Clickhouse的System.cluster表里获取表的分布信息和机器分布host。然后根据均分规则写入这些host。把数据分布式写入的事情放到Seatunnel里来做。
+针对本地表和分布式表的写入,我们未来的改造方向是在Seatunnel实现一致性哈希,直接按照一定规则写如Clickhouse、不依赖Clickhouse自身做数据分发,改善Clickhouse高CPU负载问题。</p><h1>ClickHouse数据导入到Hive</h1><p>我们有圈人群的需求,每天唯品会为供应商圈20万个人群,比如80后、高富帅、白富美的人群集合。这些在Clickhouse中的Bitmap人群信息需要导出到Hive表,在Hive中与其他ETL任务进行配合,最后推到PIKA交给外部媒体使用。我们使SeaTunnel将Clickhouse Bitmap人群数据反推到Hive。
+<img alt="11" src="/zh-CN/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img alt="12" src="/zh-CN/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>由于我们接入SeaTunnel较早,我们对一些模块间进行了加工,包括新增plugin-spark-sink-hive模块、plugin-spark-source-ClickHouse模块,重写Spark Row相关方法,使其能封装经过Schem映射后的Clickhouse数据,重新构造StructField并生成最终需要落地Hive的DataFrame。最新版本已经有了很多source和sink组件,在SeaTunnel使用上更方便。现在也可以在SeaTunnel中直接集成Flink connector。</p><h1>SeaTunnel与唯品会数据平台的集成</h1><p>各个公司都有自己的调度系统,例如白鲸、宙斯。唯品会的调度工具是数坊,调度工具中集成了数据传输工具。下面是调度系统架构图,其中包含各类数据的出入仓。
+<img alt="13" src="/zh-CN/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img alt="14" src="/zh-CN/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>我们把SeaTunnel集成到了调度系统中,数坊调度Master会根据任务类型把任务分配到对应的Agent上,根据Agent负载情况分配到合适的机器上运行,管控器把前台的任务调度配置和信息拉取到后生成SeaTunnel cluster,在类似于k8s pod、cgroup隔离的虚拟环境内进行执行。运行结果会由调度平台的数据质量监控判断任务是否完成、是否运行成功,失败时进行重跑和告警。
+<img alt="15" src="/zh-CN/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel本身是一个工具化的组件,是为了进行数据血缘,数据质量,历史记录,高警监控,还包括资源分配这些信息的管控。我们把SeaTunnel集成到平台中,可以利用平台优势利用好SeaTunnel。
+圈存人群中利用了SeaTunnel进行处理。我们通过打点数据,把圈存人群按照路径和使用情况分为不同的人,或称千人千面,把用户打上标签,圈出的某一类人群推送给用户、分析师和供应商。
+<img alt="16" src="/zh-CN/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>流量进入Kafka,通过Flink入仓,再通过ETL形成用户标签表,用户标签表生成后,我们通过Presto实现了的BitMap方法,把数据打成Hive中的宽表。用户通过在人群系统页面中框选词条创建任务,提交腾群,生成SQL查询Clickhouse BitMap。Clickhouse的BitMap查询速度非常快,由天生优势,我们需要把Hive的BitMap表通过SeaTunnel导入到Clickhouse中。圈完人群后我们需要把表落地,形成Clickhouse的一个分区或一条记录,再把生成的结果BitMap表通过SeaTunnel存储到Hive中去。最后同步工具会将Hive的BitMap人群结果同步给外部媒体仓库Pika。每天圈20w个人群左右。
+整个过程中SeaTunnel负责把数据从Hive导出到Clickhouse,Clickhouse的ETL流程完成后SeaTunnel把数据从Clickhouse导出到Hive。
+为了完成这样的需求,我们在Presto和Spark端现ClickHouse的Hyperloglog和BitMap的function的UDF;我们还开发Seatunnel接口,使得用户在ClickHouse里使用Bitmap方法圈出来的人群,可以直接通过Seatunnel写入Hive表,无需中间落地步骤。用户也可以在Hive里通过spark圈人群或者反解人群bitmap,调用SeaTunnel接口,使数据直接传输到ClickHouse的结果表,而无需中间落地。</p><h1>后续工作</h1><p>后续我们会进一步改善Clickhouse写入数据时CPU负载高的问题,下一步会在SeaTunnel中实现Clickhouse数据源和读取端的CK-local模式,读写分离,减轻Clickhouse压力。未来我们也会增加更多sink支持,如数据推送到Pika和相应的数据检查。</p>]]></content>
+        <category label="唯品会" term="唯品会"/>
+        <category label="ClickHouse" term="ClickHouse"/>
+    </entry>
+    <entry>
         <title type="html"><![CDATA[如何快速地把 HDFS 中的数据导入 ClickHouse]]></title>
         <id>hdfs-to-clickhouse</id>
         <link href="https://seatunnel.apache.org/zh-CN/blog/hdfs-to-clickhouse"/>
diff --git a/zh-CN/blog/hdfs-to-clickhouse/index.html b/zh-CN/blog/hdfs-to-clickhouse/index.html
index 8165ddf..627c26f 100644
--- a/zh-CN/blog/hdfs-to-clickhouse/index.html
+++ b/zh-CN/blog/hdfs-to-clickhouse/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">如何快速地把 HDFS 中的数据导入 ClickHouse | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/hdfs-to-clickhouse"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-hel [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
                 <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/blog/hive-to-clickhouse/index.html b/zh-CN/blog/hive-to-clickhouse/index.html
index 76148f8..fde6823 100644
--- a/zh-CN/blog/hive-to-clickhouse/index.html
+++ b/zh-CN/blog/hive-to-clickhouse/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">如何快速地把 Hive 中的数据导入 ClickHouse | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/hive-to-clickhouse"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-hel [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
                 <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/blog/index.html b/zh-CN/blog/index.html
index 1113fe9..e729e4e 100644
--- a/zh-CN/blog/index.html
+++ b/zh-CN/blog/index.html
@@ -6,12 +6,42 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Blog | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="Blog | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="description" content="Blog"><meta data-react-helmet="true" property="og:description" content="Blog"><meta data-re [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+讲稿整理:张德通</p><p>导读: 唯品会早在1.0版本时就引用了SeaTunnel,我们使用SeaTunnel进行一些Hive到ClickHouse之间数据交互的工作。
+今天的介绍会围绕下面几点展开:</p><ul><li>ClickHouse数据导入的需求和痛点;</li><li>ClickHouse出仓入仓工具选型;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>SeaTunnel与唯品会数据平台的集成;</li><li>未来展望;</li></ul><h1>ClickHouse数据导入的需求和痛点</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1唯品会数据olap架构">1.唯品会数据OLAP架构<a class="hash-link" href="#1唯品会数据olap架构" title="Direct link to heading">​</a></h2><p>图中是唯品会OLAP架构,我们负责的模块是图中的数据服务和计算引擎两大部分。底层依赖的数据仓库分为离线数仓、实时数仓和湖仓。计算引擎方面,我们使用Presto、Kylin和Clickhouse。虽然Clickhouse是一个存 [...]
+<img alt="1" src="/zh-CN/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2需求">2.需求<a class="hash-link" href="#2需求" title="Direct link to heading">​</a></h2><p>我们通过Presto Connector和Spark组件,把底层的Hive、Kudu、Alluxio组件打通。大数据组件之间可以互相导入导出数据,可以根据数据分析的需求和场景任意利用合适的组件分析数据。但我们引入Clickhouse时,它是一个数据孤岛,数据的导入和导出比较困难。Hive和Clickhouse之间需要做很多工作才能实现导入导出。我们的第一个数据导入导出需求就是提升导入导出效率,把Clickhouse纳入大数据体系中。
+<img alt="2" src="/zh-CN/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>第二个需求是Presto跑SQL比较慢,图中是一个慢SQL的例子。图中的SQL where条件设置了日期、时间范围和具体过滤条件,这类SQL使用由于Presto使用分区粒度下推,运行比较慢。即使用Hive的Bucket表和分桶等其他方式优化后也是几秒的返回时间、不能满足业务要求。这种情况下,我们需要利用Clickhouse做离线的OLAP计算加速。
+<img alt="3" src="/zh-CN/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>我们的实时数据是通过Kafka、Flink SQL方式写入到Clickhouse中。但分析时只用实时数据是不够的,需要用Hive维度表和已经ETL计算号的T+1实时表一起在Clickhouse中做加速运输。这需要把Hive的数据导入到Clickhouse中,这就是我们的第三个需求。
+<img alt="4" src="/zh-CN/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3痛点">3.痛点<a class="hash-link" href="#3痛点" title="Direct link to heading">​</a></h2><p>首先,我们引入一项数据组件时要考虑其性能。Hive表粒度是五分钟,是否有组件可以支撑五分钟内完成一个短小ETL流程并把ETL结果导入到Clickhouse中?第二,我们需要保证数据质量,数据的准确性需要有保障。Hive和Clickhouse的数据条数需要保障一致性,如果数据质量出问题能否通过重跑等机制修复数据?第三,数据导入需要支持的数据类型是否完备?不同数据库之间的数据类型和一些机制不同,我们有HiperLogLog和BitMap这类在某一存储引擎中利用得比较多得数据类型,是否可以正 [...]
+SeaTunnel和Spark依赖唯品会自己的Yarn集群,可以直接实现分布式读取和写入。DataX是非分布式的,且Reader、Writer之间的启动过程耗时时间长,性能普通,SeaTunnel和Spark处理数据的性能可以达到DataX的数倍。
+十亿以上的数据可以平稳地在SeaTunnel和Spark中运行,DataX在数据量大以后性能压力大,处理十亿以上数据吃力。
+在读写插件扩展性方面,SeaTunnel支持了多种数据源,支持用户开发插件。SeaTunnel支持了数据导入Redis。
+稳定性上,SeaTunnel和DataX由于是自成体系的工具,稳定性会更好。Spark的稳定性方面需要关注代码质量。
+<img alt="5" src="/zh-CN/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>我们的曝光表数据量每天在几十亿级,我们有5min内完成数据处理的性能要求,我们我们存在数据导入导出到Redis的需求,我们需要导入导出工具可以接入到数据平台上进行任务调度。 出于数据量级、性能、可扩展性、平台兼容性几方面的考虑,我们选择了SeaTunnel作为我们的数仓导入导出工具。</p><h1>Hive数据导入到ClickHouse</h1><p>下面将介绍我们对SeaTunnel的使用。
+图中是一张Hive表,它是我们三级的商品维度表,包含品类商品、维度品类和用户人群信息。表的主键是一个三级品类ct_third_id,下面的value是两个uid的位图,是用户id的bitmap类型,我们要把这个Hive表导入到Clickhouse。
+<img alt="6" src="/zh-CN/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel安装简单,官网文档有介绍如何安装。下图中是SeaTunnel的配置,配置中env、source和sink是必不可少的。env部分,图中的例子是Spark配置,配置了包括并发度等,可以调整这些参数。source部分是数据来源,这里配置了Hive数据源,包括一条Hive Select语句,Spark运行source配置中的SQL把数据读出,此处支持UDF进行简单ETL;sink部分配置了Clickhouse,可以看到output_type=rowbinary,rowbinary是唯品会自研加速方案;pre_sql和check_sql是自研的用于数据校验的功能,后面也会详细介绍;clickhouse.socket_timeout和bulk_size都是可以根据实际情况进行调整的。
+<img alt="7" src="/zh-CN/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img alt="8" src="/zh-CN/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+运行过程中会产生Spark日志,运行成功和运行中错误都可以在日志中查看。
+<img alt="9" src="/zh-CN/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>为了更贴合业务,唯品会对SeaTunnel做了一些改进。我们的ETL任务都是需要重跑的,我们支持了pre_sql和check_sql实现数据的重跑和对数。主要流程是在数据准备好后,执行pre_sql进行预处理,在Clickhouse中执行删除旧分区数据、存放到某一目录下在失败时恢复该分区、rename这类操作。check_sql会检验,校验通过后整个流程结束;如果检验不通过,根据配置进行重跑,重跑不通过则报警到对应负责人。
+<img alt="10" src="/zh-CN/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>唯品会基于1.0版本SeaTunnel增加了RowBinary做加速,也让HuperLogLog和BinaryBitmap的二进制文件能更容易地从Hive导入到Clickhouse。我们在ClickHouse-jdbc、bulk_size、Hive-source几处进行了修改。使用CK-jdbc的extended api,以rowbinary方式将数据写入CK,bulk_size引入了以rowbinary方式写入CK的控制逻辑,Hive-source
+RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>我们还让SeaTunnel支持了多类型,为了圈人群的功能,需要在Clickhouse、Preso、Spark中实现对应的方法。我们在Clickhouse-jdbc中增加支持Batch特性的Callback、HttpEntity、RowBinaryStream,在Clickhouse-jdbc和Clickhouse-sink代码中增加了bitmap类型映射,在Presto和Spark中实现了Clickhouse的Hyperloglog和Bitmap的function的UDF。
+前面的配置中,Clickhouse-sink部分可以指定表名,这里有写入本地表和分布式表的差异。写入分布式表的性能比写入本地表差对Clickhouse集群的压力会更大,但在计算曝光表、流量表,ABTest等场景中需要两表Join,两张表量级均在几十亿。这时我们希望Join key落在本机,Join成本更小。我们建表时在Clickhouse的分布式表分布规则中配置murmurHash64规则,然后在Seatunnel的sink里直接配置分布式表,把写入规则交给Clickhouse,利用了分布式表的特性进行写入。写入本地表对Clickhouse的压力会更小,写入的性能也会更好。我们在Seatunnel里,根据sink的本地表,去Clickhouse的System.cluster表里获取表的分布信息和机器分布host。然后根据均分规则写入这些host。把数据分布式写入的事情放到Seatunnel里来做。
+针对本地表和分布式表的写入,我们未来的改造方向是在Seatunnel实现一致性哈希,直接按照一定规则写如Clickhouse、不依赖Clickhouse自身做数据分发,改善Clickhouse高CPU负载问题。</p><h1>ClickHouse数据导入到Hive</h1><p>我们有圈人群的需求,每天唯品会为供应商圈20万个人群,比如80后、高富帅、白富美的人群集合。这些在Clickhouse中的Bitmap人群信息需要导出到Hive表,在Hive中与其他ETL任务进行配合,最后推到PIKA交给外部媒体使用。我们使SeaTunnel将Clickhouse Bitmap人群数据反推到Hive。
+<img alt="11" src="/zh-CN/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img alt="12" src="/zh-CN/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>由于我们接入SeaTunnel较早,我们对一些模块间进行了加工,包括新增plugin-spark-sink-hive模块、plugin-spark-source-ClickHouse模块,重写Spark Row相关方法,使其能封装经过Schem映射后的Clickhouse数据,重新构造StructField并生成最终需要落地Hive的DataFrame。最新版本已经有了很多source和sink组件,在SeaTunnel使用上更方便。现在也可以在SeaTunnel中直接集成Flink connector。</p><h1>SeaTunnel与唯品会数据平台的集成</h1><p>各个公司都有自己的调度系统,例如白鲸、宙斯。唯品会的调度工具是数坊,调度工具中集成了数据传输工具。下面是调度系统架构图,其中包含各类数据的出入仓。
+<img alt="13" src="/zh-CN/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img alt="14" src="/zh-CN/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>我们把SeaTunnel集成到了调度系统中,数坊调度Master会根据任务类型把任务分配到对应的Agent上,根据Agent负载情况分配到合适的机器上运行,管控器把前台的任务调度配置和信息拉取到后生成SeaTunnel cluster,在类似于k8s pod、cgroup隔离的虚拟环境内进行执行。运行结果会由调度平台的数据质量监控判断任务是否完成、是否运行成功,失败时进行重跑和告警。
+<img alt="15" src="/zh-CN/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel本身是一个工具化的组件,是为了进行数据血缘,数据质量,历史记录,高警监控,还包括资源分配这些信息的管控。我们把SeaTunnel集成到平台中,可以利用平台优势利用好SeaTunnel。
+圈存人群中利用了SeaTunnel进行处理。我们通过打点数据,把圈存人群按照路径和使用情况分为不同的人,或称千人千面,把用户打上标签,圈出的某一类人群推送给用户、分析师和供应商。
+<img alt="16" src="/zh-CN/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>流量进入Kafka,通过Flink入仓,再通过ETL形成用户标签表,用户标签表生成后,我们通过Presto实现了的BitMap方法,把数据打成Hive中的宽表。用户通过在人群系统页面中框选词条创建任务,提交腾群,生成SQL查询Clickhouse BitMap。Clickhouse的BitMap查询速度非常快,由天生优势,我们需要把Hive的BitMap表通过SeaTunnel导入到Clickhouse中。圈完人群后我们需要把表落地,形成Clickhouse的一个分区或一条记录,再把生成的结果BitMap表通过SeaTunnel存储到Hive中去。最后同步工具会将Hive的BitMap人群结果同步给外部媒体仓库Pika。每天圈20w个人群左右。
+整个过程中SeaTunnel负责把数据从Hive导出到Clickhouse,Clickhouse的ETL流程完成后SeaTunnel把数据从Clickhouse导出到Hive。
+为了完成这样的需求,我们在Presto和Spark端现ClickHouse的Hyperloglog和BitMap的function的UDF;我们还开发Seatunnel接口,使得用户在ClickHouse里使用Bitmap方法圈出来的人群,可以直接通过Seatunnel写入Hive表,无需中间落地步骤。用户也可以在Hive里通过spark圈人群或者反解人群bitmap,调用SeaTunnel接口,使数据直接传输到ClickHouse的结果表,而无需中间落地。</p><h1>后续工作</h1><p>后续我们会进一步改善Clickhouse写入数据时CPU负载高的问题,下一步会在SeaTunnel中实现Clickhouse数据源和读取端的CK-local模式,读写分离,减轻Clickhouse压力。未来我们也会增加更多sink支持,如数据推送到Pika和相应的数据检查。</p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><ul class="tags_XVD_ padding [...]
 <!-- --> <!-- --> <!-- -->二、可以做实时的聚合,例如实时计算每天每个商品的销售总额;<br>
 <!-- --> <!-- --> <!-- -->三、可以做流与流之间的关联,例如计算广告的点击率,需要将广告的曝光记录和点击记录关联。<br>
 以上几点如果使用SparkStreaming来实现可能会比较麻烦或者说是很难实现,但是使用StructuredStreaming实现起来会比较轻松。</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="如何使用structuredstreaming">如何使用StructuredStreaming<a class="hash-link" href="#如何使用structuredstreaming" title="Direct link to heading">​</a></h3><p>可能你没有详细研究过StructuredStreaming,但是发现StructuredStreaming能很好的解决你的需求,如何快速利用StructuredStreaming来解决你的需求?目前社区有一款工具 <strong>Seatunnel</strong>,项目地址:<a href="https://github.com/apache/incubator-seatunnel" target="_blank" rel="no [...]
@@ -33,7 +63,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/blog/rss.xml b/zh-CN/blog/rss.xml
index 443040f..a82ae15 100644
--- a/zh-CN/blog/rss.xml
+++ b/zh-CN/blog/rss.xml
@@ -4,10 +4,50 @@
         <title>Apache SeaTunnel Blog</title>
         <link>https://seatunnel.apache.org/zh-CN/blog</link>
         <description>Apache SeaTunnel Blog</description>
-        <lastBuildDate>Thu, 30 Dec 2021 00:00:00 GMT</lastBuildDate>
+        <lastBuildDate>Fri, 18 Feb 2022 00:00:00 GMT</lastBuildDate>
         <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
         <generator>https://github.com/jpmonette/feed</generator>
         <item>
+            <title><![CDATA[SeaTunnel 在唯品会的实践]]></title>
+            <link>https://seatunnel.apache.org/zh-CN/blog/SeaTunnel 在唯品会的实践</link>
+            <guid>SeaTunnel 在唯品会的实践</guid>
+            <pubDate>Fri, 18 Feb 2022 00:00:00 GMT</pubDate>
+            <description><![CDATA[分享嘉宾:唯品会 资深大数据工程师 王玉]]></description>
+            <content:encoded><![CDATA[<p>分享嘉宾:唯品会 资深大数据工程师 王玉
+讲稿整理:张德通</p><p>导读: 唯品会早在1.0版本时就引用了SeaTunnel,我们使用SeaTunnel进行一些Hive到ClickHouse之间数据交互的工作。
+今天的介绍会围绕下面几点展开:</p><ul><li>ClickHouse数据导入的需求和痛点;</li><li>ClickHouse出仓入仓工具选型;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>SeaTunnel与唯品会数据平台的集成;</li><li>未来展望;</li></ul><h1>ClickHouse数据导入的需求和痛点</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1唯品会数据olap架构">1.唯品会数据OLAP架构<a class="hash-link" href="#1唯品会数据olap架构" title="Direct link to heading">​</a></h2><p>图中是唯品会OLAP架构,我们负责的模块是图中的数据服务和计算引擎两大部分。底层依赖的数据仓库分为离线数仓、实时数仓和湖仓。计算引擎方面,我们使用Presto、Kylin和Clickhouse。虽然Clickhouse是一个存 [...]
+<img alt="1" src="/zh-CN/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2需求">2.需求<a class="hash-link" href="#2需求" title="Direct link to heading">​</a></h2><p>我们通过Presto Connector和Spark组件,把底层的Hive、Kudu、Alluxio组件打通。大数据组件之间可以互相导入导出数据,可以根据数据分析的需求和场景任意利用合适的组件分析数据。但我们引入Clickhouse时,它是一个数据孤岛,数据的导入和导出比较困难。Hive和Clickhouse之间需要做很多工作才能实现导入导出。我们的第一个数据导入导出需求就是提升导入导出效率,把Clickhouse纳入大数据体系中。
+<img alt="2" src="/zh-CN/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>第二个需求是Presto跑SQL比较慢,图中是一个慢SQL的例子。图中的SQL where条件设置了日期、时间范围和具体过滤条件,这类SQL使用由于Presto使用分区粒度下推,运行比较慢。即使用Hive的Bucket表和分桶等其他方式优化后也是几秒的返回时间、不能满足业务要求。这种情况下,我们需要利用Clickhouse做离线的OLAP计算加速。
+<img alt="3" src="/zh-CN/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>我们的实时数据是通过Kafka、Flink SQL方式写入到Clickhouse中。但分析时只用实时数据是不够的,需要用Hive维度表和已经ETL计算号的T+1实时表一起在Clickhouse中做加速运输。这需要把Hive的数据导入到Clickhouse中,这就是我们的第三个需求。
+<img alt="4" src="/zh-CN/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3痛点">3.痛点<a class="hash-link" href="#3痛点" title="Direct link to heading">​</a></h2><p>首先,我们引入一项数据组件时要考虑其性能。Hive表粒度是五分钟,是否有组件可以支撑五分钟内完成一个短小ETL流程并把ETL结果导入到Clickhouse中?第二,我们需要保证数据质量,数据的准确性需要有保障。Hive和Clickhouse的数据条数需要保障一致性,如果数据质量出问题能否通过重跑等机制修复数据?第三,数据导入需要支持的数据类型是否完备?不同数据库之间的数据类型和一些机制不同,我们有HiperLogLog和BitMap这类在某一存储引擎中利用得比较多得数据类型,是否可以正 [...]
+SeaTunnel和Spark依赖唯品会自己的Yarn集群,可以直接实现分布式读取和写入。DataX是非分布式的,且Reader、Writer之间的启动过程耗时时间长,性能普通,SeaTunnel和Spark处理数据的性能可以达到DataX的数倍。
+十亿以上的数据可以平稳地在SeaTunnel和Spark中运行,DataX在数据量大以后性能压力大,处理十亿以上数据吃力。
+在读写插件扩展性方面,SeaTunnel支持了多种数据源,支持用户开发插件。SeaTunnel支持了数据导入Redis。
+稳定性上,SeaTunnel和DataX由于是自成体系的工具,稳定性会更好。Spark的稳定性方面需要关注代码质量。
+<img alt="5" src="/zh-CN/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>我们的曝光表数据量每天在几十亿级,我们有5min内完成数据处理的性能要求,我们我们存在数据导入导出到Redis的需求,我们需要导入导出工具可以接入到数据平台上进行任务调度。 出于数据量级、性能、可扩展性、平台兼容性几方面的考虑,我们选择了SeaTunnel作为我们的数仓导入导出工具。</p><h1>Hive数据导入到ClickHouse</h1><p>下面将介绍我们对SeaTunnel的使用。
+图中是一张Hive表,它是我们三级的商品维度表,包含品类商品、维度品类和用户人群信息。表的主键是一个三级品类ct_third_id,下面的value是两个uid的位图,是用户id的bitmap类型,我们要把这个Hive表导入到Clickhouse。
+<img alt="6" src="/zh-CN/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel安装简单,官网文档有介绍如何安装。下图中是SeaTunnel的配置,配置中env、source和sink是必不可少的。env部分,图中的例子是Spark配置,配置了包括并发度等,可以调整这些参数。source部分是数据来源,这里配置了Hive数据源,包括一条Hive Select语句,Spark运行source配置中的SQL把数据读出,此处支持UDF进行简单ETL;sink部分配置了Clickhouse,可以看到output_type=rowbinary,rowbinary是唯品会自研加速方案;pre_sql和check_sql是自研的用于数据校验的功能,后面也会详细介绍;clickhouse.socket_timeout和bulk_size都是可以根据实际情况进行调整的。
+<img alt="7" src="/zh-CN/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img alt="8" src="/zh-CN/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+运行过程中会产生Spark日志,运行成功和运行中错误都可以在日志中查看。
+<img alt="9" src="/zh-CN/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>为了更贴合业务,唯品会对SeaTunnel做了一些改进。我们的ETL任务都是需要重跑的,我们支持了pre_sql和check_sql实现数据的重跑和对数。主要流程是在数据准备好后,执行pre_sql进行预处理,在Clickhouse中执行删除旧分区数据、存放到某一目录下在失败时恢复该分区、rename这类操作。check_sql会检验,校验通过后整个流程结束;如果检验不通过,根据配置进行重跑,重跑不通过则报警到对应负责人。
+<img alt="10" src="/zh-CN/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>唯品会基于1.0版本SeaTunnel增加了RowBinary做加速,也让HuperLogLog和BinaryBitmap的二进制文件能更容易地从Hive导入到Clickhouse。我们在ClickHouse-jdbc、bulk_size、Hive-source几处进行了修改。使用CK-jdbc的extended api,以rowbinary方式将数据写入CK,bulk_size引入了以rowbinary方式写入CK的控制逻辑,Hive-source
+RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>我们还让SeaTunnel支持了多类型,为了圈人群的功能,需要在Clickhouse、Preso、Spark中实现对应的方法。我们在Clickhouse-jdbc中增加支持Batch特性的Callback、HttpEntity、RowBinaryStream,在Clickhouse-jdbc和Clickhouse-sink代码中增加了bitmap类型映射,在Presto和Spark中实现了Clickhouse的Hyperloglog和Bitmap的function的UDF。
+前面的配置中,Clickhouse-sink部分可以指定表名,这里有写入本地表和分布式表的差异。写入分布式表的性能比写入本地表差对Clickhouse集群的压力会更大,但在计算曝光表、流量表,ABTest等场景中需要两表Join,两张表量级均在几十亿。这时我们希望Join key落在本机,Join成本更小。我们建表时在Clickhouse的分布式表分布规则中配置murmurHash64规则,然后在Seatunnel的sink里直接配置分布式表,把写入规则交给Clickhouse,利用了分布式表的特性进行写入。写入本地表对Clickhouse的压力会更小,写入的性能也会更好。我们在Seatunnel里,根据sink的本地表,去Clickhouse的System.cluster表里获取表的分布信息和机器分布host。然后根据均分规则写入这些host。把数据分布式写入的事情放到Seatunnel里来做。
+针对本地表和分布式表的写入,我们未来的改造方向是在Seatunnel实现一致性哈希,直接按照一定规则写如Clickhouse、不依赖Clickhouse自身做数据分发,改善Clickhouse高CPU负载问题。</p><h1>ClickHouse数据导入到Hive</h1><p>我们有圈人群的需求,每天唯品会为供应商圈20万个人群,比如80后、高富帅、白富美的人群集合。这些在Clickhouse中的Bitmap人群信息需要导出到Hive表,在Hive中与其他ETL任务进行配合,最后推到PIKA交给外部媒体使用。我们使SeaTunnel将Clickhouse Bitmap人群数据反推到Hive。
+<img alt="11" src="/zh-CN/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img alt="12" src="/zh-CN/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>由于我们接入SeaTunnel较早,我们对一些模块间进行了加工,包括新增plugin-spark-sink-hive模块、plugin-spark-source-ClickHouse模块,重写Spark Row相关方法,使其能封装经过Schem映射后的Clickhouse数据,重新构造StructField并生成最终需要落地Hive的DataFrame。最新版本已经有了很多source和sink组件,在SeaTunnel使用上更方便。现在也可以在SeaTunnel中直接集成Flink connector。</p><h1>SeaTunnel与唯品会数据平台的集成</h1><p>各个公司都有自己的调度系统,例如白鲸、宙斯。唯品会的调度工具是数坊,调度工具中集成了数据传输工具。下面是调度系统架构图,其中包含各类数据的出入仓。
+<img alt="13" src="/zh-CN/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img alt="14" src="/zh-CN/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>我们把SeaTunnel集成到了调度系统中,数坊调度Master会根据任务类型把任务分配到对应的Agent上,根据Agent负载情况分配到合适的机器上运行,管控器把前台的任务调度配置和信息拉取到后生成SeaTunnel cluster,在类似于k8s pod、cgroup隔离的虚拟环境内进行执行。运行结果会由调度平台的数据质量监控判断任务是否完成、是否运行成功,失败时进行重跑和告警。
+<img alt="15" src="/zh-CN/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel本身是一个工具化的组件,是为了进行数据血缘,数据质量,历史记录,高警监控,还包括资源分配这些信息的管控。我们把SeaTunnel集成到平台中,可以利用平台优势利用好SeaTunnel。
+圈存人群中利用了SeaTunnel进行处理。我们通过打点数据,把圈存人群按照路径和使用情况分为不同的人,或称千人千面,把用户打上标签,圈出的某一类人群推送给用户、分析师和供应商。
+<img alt="16" src="/zh-CN/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>流量进入Kafka,通过Flink入仓,再通过ETL形成用户标签表,用户标签表生成后,我们通过Presto实现了的BitMap方法,把数据打成Hive中的宽表。用户通过在人群系统页面中框选词条创建任务,提交腾群,生成SQL查询Clickhouse BitMap。Clickhouse的BitMap查询速度非常快,由天生优势,我们需要把Hive的BitMap表通过SeaTunnel导入到Clickhouse中。圈完人群后我们需要把表落地,形成Clickhouse的一个分区或一条记录,再把生成的结果BitMap表通过SeaTunnel存储到Hive中去。最后同步工具会将Hive的BitMap人群结果同步给外部媒体仓库Pika。每天圈20w个人群左右。
+整个过程中SeaTunnel负责把数据从Hive导出到Clickhouse,Clickhouse的ETL流程完成后SeaTunnel把数据从Clickhouse导出到Hive。
+为了完成这样的需求,我们在Presto和Spark端现ClickHouse的Hyperloglog和BitMap的function的UDF;我们还开发Seatunnel接口,使得用户在ClickHouse里使用Bitmap方法圈出来的人群,可以直接通过Seatunnel写入Hive表,无需中间落地步骤。用户也可以在Hive里通过spark圈人群或者反解人群bitmap,调用SeaTunnel接口,使数据直接传输到ClickHouse的结果表,而无需中间落地。</p><h1>后续工作</h1><p>后续我们会进一步改善Clickhouse写入数据时CPU负载高的问题,下一步会在SeaTunnel中实现Clickhouse数据源和读取端的CK-local模式,读写分离,减轻Clickhouse压力。未来我们也会增加更多sink支持,如数据推送到Pika和相应的数据检查。</p>]]></content:encoded>
+            <category>唯品会</category>
+            <category>ClickHouse</category>
+        </item>
+        <item>
             <title><![CDATA[如何快速地把 HDFS 中的数据导入 ClickHouse]]></title>
             <link>https://seatunnel.apache.org/zh-CN/blog/hdfs-to-clickhouse</link>
             <guid>hdfs-to-clickhouse</guid>
diff --git a/zh-CN/blog/spark-execute-elasticsearch/index.html b/zh-CN/blog/spark-execute-elasticsearch/index.html
index b148cf0..2ddd899 100644
--- a/zh-CN/blog/spark-execute-elasticsearch/index.html
+++ b/zh-CN/blog/spark-execute-elasticsearch/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">如何使用 Spark 快速将数据写入 Elasticsearch | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/spark-execute-elasticsearch"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta da [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
                 <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/blog/spark-execute-tidb/index.html b/zh-CN/blog/spark-execute-tidb/index.html
index 65e6b13..f666afe 100644
--- a/zh-CN/blog/spark-execute-tidb/index.html
+++ b/zh-CN/blog/spark-execute-tidb/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">怎么用 Spark 在 TiDB 上做 OLAP 分析 | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/spark-execute-tidb"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helme [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
                 <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/blog/spark-structured-streaming/index.html b/zh-CN/blog/spark-structured-streaming/index.html
index 1eb297a..69045eb 100644
--- a/zh-CN/blog/spark-structured-streaming/index.html
+++ b/zh-CN/blog/spark-structured-streaming/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">如何支持的 Spark StructuredStreaming | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/spark-structured-streaming"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
 <!-- --> <!-- --> <!-- -->二、可以做实时的聚合,例如实时计算每天每个商品的销售总额;<br>
 <!-- --> <!-- --> <!-- -->三、可以做流与流之间的关联,例如计算广告的点击率,需要将广告的曝光记录和点击记录关联。<br>
 以上几点如果使用SparkStreaming来实现可能会比较麻烦或者说是很难实现,但是使用StructuredStreaming实现起来会比较轻松。</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="如何使用structuredstreaming">如何使用StructuredStreaming<a class="hash-link" href="#如何使用structuredstreaming" title="Direct link to heading">​</a></h3><p>可能你没有详细研究过StructuredStreaming,但是发现StructuredStreaming能很好的解决你的需求,如何快速利用StructuredStreaming来解决你的需求?目前社区有一款工具 <strong>Seatunnel</strong>,项目地址:<a href="https://github.com/apache/incubator-seatunnel" target="_blank" rel="no [...]
@@ -33,7 +33,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/blog/tags/click-house/index.html b/zh-CN/blog/tags/click-house/index.html
index fb487ed..ebe35f3 100644
--- a/zh-CN/blog/tags/click-house/index.html
+++ b/zh-CN/blog/tags/click-house/index.html
@@ -6,12 +6,42 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;ClickHouse&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;ClickHouse&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatun [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+讲稿整理:张德通</p><p>导读: 唯品会早在1.0版本时就引用了SeaTunnel,我们使用SeaTunnel进行一些Hive到ClickHouse之间数据交互的工作。
+今天的介绍会围绕下面几点展开:</p><ul><li>ClickHouse数据导入的需求和痛点;</li><li>ClickHouse出仓入仓工具选型;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>SeaTunnel与唯品会数据平台的集成;</li><li>未来展望;</li></ul><h1>ClickHouse数据导入的需求和痛点</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1唯品会数据olap架构">1.唯品会数据OLAP架构<a class="hash-link" href="#1唯品会数据olap架构" title="Direct link to heading">​</a></h2><p>图中是唯品会OLAP架构,我们负责的模块是图中的数据服务和计算引擎两大部分。底层依赖的数据仓库分为离线数仓、实时数仓和湖仓。计算引擎方面,我们使用Presto、Kylin和Clickhouse。虽然Clickhouse是一个存 [...]
+<img alt="1" src="/zh-CN/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2需求">2.需求<a class="hash-link" href="#2需求" title="Direct link to heading">​</a></h2><p>我们通过Presto Connector和Spark组件,把底层的Hive、Kudu、Alluxio组件打通。大数据组件之间可以互相导入导出数据,可以根据数据分析的需求和场景任意利用合适的组件分析数据。但我们引入Clickhouse时,它是一个数据孤岛,数据的导入和导出比较困难。Hive和Clickhouse之间需要做很多工作才能实现导入导出。我们的第一个数据导入导出需求就是提升导入导出效率,把Clickhouse纳入大数据体系中。
+<img alt="2" src="/zh-CN/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>第二个需求是Presto跑SQL比较慢,图中是一个慢SQL的例子。图中的SQL where条件设置了日期、时间范围和具体过滤条件,这类SQL使用由于Presto使用分区粒度下推,运行比较慢。即使用Hive的Bucket表和分桶等其他方式优化后也是几秒的返回时间、不能满足业务要求。这种情况下,我们需要利用Clickhouse做离线的OLAP计算加速。
+<img alt="3" src="/zh-CN/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>我们的实时数据是通过Kafka、Flink SQL方式写入到Clickhouse中。但分析时只用实时数据是不够的,需要用Hive维度表和已经ETL计算号的T+1实时表一起在Clickhouse中做加速运输。这需要把Hive的数据导入到Clickhouse中,这就是我们的第三个需求。
+<img alt="4" src="/zh-CN/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3痛点">3.痛点<a class="hash-link" href="#3痛点" title="Direct link to heading">​</a></h2><p>首先,我们引入一项数据组件时要考虑其性能。Hive表粒度是五分钟,是否有组件可以支撑五分钟内完成一个短小ETL流程并把ETL结果导入到Clickhouse中?第二,我们需要保证数据质量,数据的准确性需要有保障。Hive和Clickhouse的数据条数需要保障一致性,如果数据质量出问题能否通过重跑等机制修复数据?第三,数据导入需要支持的数据类型是否完备?不同数据库之间的数据类型和一些机制不同,我们有HiperLogLog和BitMap这类在某一存储引擎中利用得比较多得数据类型,是否可以正 [...]
+SeaTunnel和Spark依赖唯品会自己的Yarn集群,可以直接实现分布式读取和写入。DataX是非分布式的,且Reader、Writer之间的启动过程耗时时间长,性能普通,SeaTunnel和Spark处理数据的性能可以达到DataX的数倍。
+十亿以上的数据可以平稳地在SeaTunnel和Spark中运行,DataX在数据量大以后性能压力大,处理十亿以上数据吃力。
+在读写插件扩展性方面,SeaTunnel支持了多种数据源,支持用户开发插件。SeaTunnel支持了数据导入Redis。
+稳定性上,SeaTunnel和DataX由于是自成体系的工具,稳定性会更好。Spark的稳定性方面需要关注代码质量。
+<img alt="5" src="/zh-CN/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>我们的曝光表数据量每天在几十亿级,我们有5min内完成数据处理的性能要求,我们我们存在数据导入导出到Redis的需求,我们需要导入导出工具可以接入到数据平台上进行任务调度。 出于数据量级、性能、可扩展性、平台兼容性几方面的考虑,我们选择了SeaTunnel作为我们的数仓导入导出工具。</p><h1>Hive数据导入到ClickHouse</h1><p>下面将介绍我们对SeaTunnel的使用。
+图中是一张Hive表,它是我们三级的商品维度表,包含品类商品、维度品类和用户人群信息。表的主键是一个三级品类ct_third_id,下面的value是两个uid的位图,是用户id的bitmap类型,我们要把这个Hive表导入到Clickhouse。
+<img alt="6" src="/zh-CN/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel安装简单,官网文档有介绍如何安装。下图中是SeaTunnel的配置,配置中env、source和sink是必不可少的。env部分,图中的例子是Spark配置,配置了包括并发度等,可以调整这些参数。source部分是数据来源,这里配置了Hive数据源,包括一条Hive Select语句,Spark运行source配置中的SQL把数据读出,此处支持UDF进行简单ETL;sink部分配置了Clickhouse,可以看到output_type=rowbinary,rowbinary是唯品会自研加速方案;pre_sql和check_sql是自研的用于数据校验的功能,后面也会详细介绍;clickhouse.socket_timeout和bulk_size都是可以根据实际情况进行调整的。
+<img alt="7" src="/zh-CN/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img alt="8" src="/zh-CN/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+运行过程中会产生Spark日志,运行成功和运行中错误都可以在日志中查看。
+<img alt="9" src="/zh-CN/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>为了更贴合业务,唯品会对SeaTunnel做了一些改进。我们的ETL任务都是需要重跑的,我们支持了pre_sql和check_sql实现数据的重跑和对数。主要流程是在数据准备好后,执行pre_sql进行预处理,在Clickhouse中执行删除旧分区数据、存放到某一目录下在失败时恢复该分区、rename这类操作。check_sql会检验,校验通过后整个流程结束;如果检验不通过,根据配置进行重跑,重跑不通过则报警到对应负责人。
+<img alt="10" src="/zh-CN/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>唯品会基于1.0版本SeaTunnel增加了RowBinary做加速,也让HuperLogLog和BinaryBitmap的二进制文件能更容易地从Hive导入到Clickhouse。我们在ClickHouse-jdbc、bulk_size、Hive-source几处进行了修改。使用CK-jdbc的extended api,以rowbinary方式将数据写入CK,bulk_size引入了以rowbinary方式写入CK的控制逻辑,Hive-source
+RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>我们还让SeaTunnel支持了多类型,为了圈人群的功能,需要在Clickhouse、Preso、Spark中实现对应的方法。我们在Clickhouse-jdbc中增加支持Batch特性的Callback、HttpEntity、RowBinaryStream,在Clickhouse-jdbc和Clickhouse-sink代码中增加了bitmap类型映射,在Presto和Spark中实现了Clickhouse的Hyperloglog和Bitmap的function的UDF。
+前面的配置中,Clickhouse-sink部分可以指定表名,这里有写入本地表和分布式表的差异。写入分布式表的性能比写入本地表差对Clickhouse集群的压力会更大,但在计算曝光表、流量表,ABTest等场景中需要两表Join,两张表量级均在几十亿。这时我们希望Join key落在本机,Join成本更小。我们建表时在Clickhouse的分布式表分布规则中配置murmurHash64规则,然后在Seatunnel的sink里直接配置分布式表,把写入规则交给Clickhouse,利用了分布式表的特性进行写入。写入本地表对Clickhouse的压力会更小,写入的性能也会更好。我们在Seatunnel里,根据sink的本地表,去Clickhouse的System.cluster表里获取表的分布信息和机器分布host。然后根据均分规则写入这些host。把数据分布式写入的事情放到Seatunnel里来做。
+针对本地表和分布式表的写入,我们未来的改造方向是在Seatunnel实现一致性哈希,直接按照一定规则写如Clickhouse、不依赖Clickhouse自身做数据分发,改善Clickhouse高CPU负载问题。</p><h1>ClickHouse数据导入到Hive</h1><p>我们有圈人群的需求,每天唯品会为供应商圈20万个人群,比如80后、高富帅、白富美的人群集合。这些在Clickhouse中的Bitmap人群信息需要导出到Hive表,在Hive中与其他ETL任务进行配合,最后推到PIKA交给外部媒体使用。我们使SeaTunnel将Clickhouse Bitmap人群数据反推到Hive。
+<img alt="11" src="/zh-CN/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img alt="12" src="/zh-CN/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>由于我们接入SeaTunnel较早,我们对一些模块间进行了加工,包括新增plugin-spark-sink-hive模块、plugin-spark-source-ClickHouse模块,重写Spark Row相关方法,使其能封装经过Schem映射后的Clickhouse数据,重新构造StructField并生成最终需要落地Hive的DataFrame。最新版本已经有了很多source和sink组件,在SeaTunnel使用上更方便。现在也可以在SeaTunnel中直接集成Flink connector。</p><h1>SeaTunnel与唯品会数据平台的集成</h1><p>各个公司都有自己的调度系统,例如白鲸、宙斯。唯品会的调度工具是数坊,调度工具中集成了数据传输工具。下面是调度系统架构图,其中包含各类数据的出入仓。
+<img alt="13" src="/zh-CN/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img alt="14" src="/zh-CN/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>我们把SeaTunnel集成到了调度系统中,数坊调度Master会根据任务类型把任务分配到对应的Agent上,根据Agent负载情况分配到合适的机器上运行,管控器把前台的任务调度配置和信息拉取到后生成SeaTunnel cluster,在类似于k8s pod、cgroup隔离的虚拟环境内进行执行。运行结果会由调度平台的数据质量监控判断任务是否完成、是否运行成功,失败时进行重跑和告警。
+<img alt="15" src="/zh-CN/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel本身是一个工具化的组件,是为了进行数据血缘,数据质量,历史记录,高警监控,还包括资源分配这些信息的管控。我们把SeaTunnel集成到平台中,可以利用平台优势利用好SeaTunnel。
+圈存人群中利用了SeaTunnel进行处理。我们通过打点数据,把圈存人群按照路径和使用情况分为不同的人,或称千人千面,把用户打上标签,圈出的某一类人群推送给用户、分析师和供应商。
+<img alt="16" src="/zh-CN/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>流量进入Kafka,通过Flink入仓,再通过ETL形成用户标签表,用户标签表生成后,我们通过Presto实现了的BitMap方法,把数据打成Hive中的宽表。用户通过在人群系统页面中框选词条创建任务,提交腾群,生成SQL查询Clickhouse BitMap。Clickhouse的BitMap查询速度非常快,由天生优势,我们需要把Hive的BitMap表通过SeaTunnel导入到Clickhouse中。圈完人群后我们需要把表落地,形成Clickhouse的一个分区或一条记录,再把生成的结果BitMap表通过SeaTunnel存储到Hive中去。最后同步工具会将Hive的BitMap人群结果同步给外部媒体仓库Pika。每天圈20w个人群左右。
+整个过程中SeaTunnel负责把数据从Hive导出到Clickhouse,Clickhouse的ETL流程完成后SeaTunnel把数据从Clickhouse导出到Hive。
+为了完成这样的需求,我们在Presto和Spark端现ClickHouse的Hyperloglog和BitMap的function的UDF;我们还开发Seatunnel接口,使得用户在ClickHouse里使用Bitmap方法圈出来的人群,可以直接通过Seatunnel写入Hive表,无需中间落地步骤。用户也可以在Hive里通过spark圈人群或者反解人群bitmap,调用SeaTunnel接口,使数据直接传输到ClickHouse的结果表,而无需中间落地。</p><h1>后续工作</h1><p>后续我们会进一步改善Clickhouse写入数据时CPU负载高的问题,下一步会在SeaTunnel中实现Clickhouse数据源和读取端的CK-local模式,读写分离,减轻Clickhouse压力。未来我们也会增加更多sink支持,如数据推送到Pika和相应的数据检查。</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_XVD_  [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
                 <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
@@ -22,7 +52,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/blog/tags/elasticsearch/index.html b/zh-CN/blog/tags/elasticsearch/index.html
index 15aa013..d5a8dd5 100644
--- a/zh-CN/blog/tags/elasticsearch/index.html
+++ b/zh-CN/blog/tags/elasticsearch/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;Elasticsearch&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;Elasticsearch&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https:// [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
                 <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/blog/tags/hdfs/index.html b/zh-CN/blog/tags/hdfs/index.html
index a75aa9a..3c0249a 100644
--- a/zh-CN/blog/tags/hdfs/index.html
+++ b/zh-CN/blog/tags/hdfs/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;HDFS&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;HDFS&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.o [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
                 <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/blog/tags/hive/index.html b/zh-CN/blog/tags/hive/index.html
index ca257af..7ada233 100644
--- a/zh-CN/blog/tags/hive/index.html
+++ b/zh-CN/blog/tags/hive/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;Hive&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;Hive&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.o [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
                 <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/blog/tags/index.html b/zh-CN/blog/tags/index.html
index 4945d6d..513676a 100644
--- a/zh-CN/blog/tags/index.html
+++ b/zh-CN/blog/tags/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Tags | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="Tags | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/tags"><meta data-react-helmet="true" name="docusauru [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
                 <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/blog/tags/kafka/index.html b/zh-CN/blog/tags/kafka/index.html
index 0fca059..41d88c2 100644
--- a/zh-CN/blog/tags/kafka/index.html
+++ b/zh-CN/blog/tags/kafka/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;Kafka&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;Kafka&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
                 <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/blog/tags/spark/index.html b/zh-CN/blog/tags/spark/index.html
index 901e30e..46f615f 100644
--- a/zh-CN/blog/tags/spark/index.html
+++ b/zh-CN/blog/tags/spark/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;Spark&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;Spark&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
 <!-- --> <!-- --> <!-- -->二、可以做实时的聚合,例如实时计算每天每个商品的销售总额;<br>
 <!-- --> <!-- --> <!-- -->三、可以做流与流之间的关联,例如计算广告的点击率,需要将广告的曝光记录和点击记录关联。<br>
 以上几点如果使用SparkStreaming来实现可能会比较麻烦或者说是很难实现,但是使用StructuredStreaming实现起来会比较轻松。</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="如何使用structuredstreaming">如何使用StructuredStreaming<a class="hash-link" href="#如何使用structuredstreaming" title="Direct link to heading">​</a></h3><p>可能你没有详细研究过StructuredStreaming,但是发现StructuredStreaming能很好的解决你的需求,如何快速利用StructuredStreaming来解决你的需求?目前社区有一款工具 <strong>Seatunnel</strong>,项目地址:<a href="https://github.com/apache/incubator-seatunnel" target="_blank" rel="no [...]
@@ -33,7 +33,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/blog/tags/structured-streaming/index.html b/zh-CN/blog/tags/structured-streaming/index.html
index d0c15ff..938367d 100644
--- a/zh-CN/blog/tags/structured-streaming/index.html
+++ b/zh-CN/blog/tags/structured-streaming/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;StructuredStreaming&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;StructuredStreaming&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" conte [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
 <!-- --> <!-- --> <!-- -->二、可以做实时的聚合,例如实时计算每天每个商品的销售总额;<br>
 <!-- --> <!-- --> <!-- -->三、可以做流与流之间的关联,例如计算广告的点击率,需要将广告的曝光记录和点击记录关联。<br>
 以上几点如果使用SparkStreaming来实现可能会比较麻烦或者说是很难实现,但是使用StructuredStreaming实现起来会比较轻松。</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="如何使用structuredstreaming">如何使用StructuredStreaming<a class="hash-link" href="#如何使用structuredstreaming" title="Direct link to heading">​</a></h3><p>可能你没有详细研究过StructuredStreaming,但是发现StructuredStreaming能很好的解决你的需求,如何快速利用StructuredStreaming来解决你的需求?目前社区有一款工具 <strong>Seatunnel</strong>,项目地址:<a href="https://github.com/apache/incubator-seatunnel" target="_blank" rel="no [...]
@@ -33,7 +33,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/blog/tags/ti-db/index.html b/zh-CN/blog/tags/ti-db/index.html
index d117b46..b31f399 100644
--- a/zh-CN/blog/tags/ti-db/index.html
+++ b/zh-CN/blog/tags/ti-db/index.html
@@ -6,12 +6,12 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;TiDB&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;TiDB&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.o [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
                 <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
                 <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git "a/zh-CN/blog/tags/\345\224\257\345\223\201\344\274\232/index.html" "b/zh-CN/blog/tags/\345\224\257\345\223\201\344\274\232/index.html"
new file mode 100644
index 0000000..3ea0eec
--- /dev/null
+++ "b/zh-CN/blog/tags/\345\224\257\345\223\201\344\274\232/index.html"
@@ -0,0 +1,58 @@
+<!doctype html>
+<html lang="zh-CN" dir="ltr">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<meta name="generator" content="Docusaurus v2.0.0-beta.15">
+<link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">One post tagged with &quot;唯品会&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;唯品会&quot; | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
+</head>
+<body>
+<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button>< [...]
+讲稿整理:张德通</p><p>导读: 唯品会早在1.0版本时就引用了SeaTunnel,我们使用SeaTunnel进行一些Hive到ClickHouse之间数据交互的工作。
+今天的介绍会围绕下面几点展开:</p><ul><li>ClickHouse数据导入的需求和痛点;</li><li>ClickHouse出仓入仓工具选型;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>SeaTunnel与唯品会数据平台的集成;</li><li>未来展望;</li></ul><h1>ClickHouse数据导入的需求和痛点</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1唯品会数据olap架构">1.唯品会数据OLAP架构<a class="hash-link" href="#1唯品会数据olap架构" title="Direct link to heading">​</a></h2><p>图中是唯品会OLAP架构,我们负责的模块是图中的数据服务和计算引擎两大部分。底层依赖的数据仓库分为离线数仓、实时数仓和湖仓。计算引擎方面,我们使用Presto、Kylin和Clickhouse。虽然Clickhouse是一个存 [...]
+<img alt="1" src="/zh-CN/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2需求">2.需求<a class="hash-link" href="#2需求" title="Direct link to heading">​</a></h2><p>我们通过Presto Connector和Spark组件,把底层的Hive、Kudu、Alluxio组件打通。大数据组件之间可以互相导入导出数据,可以根据数据分析的需求和场景任意利用合适的组件分析数据。但我们引入Clickhouse时,它是一个数据孤岛,数据的导入和导出比较困难。Hive和Clickhouse之间需要做很多工作才能实现导入导出。我们的第一个数据导入导出需求就是提升导入导出效率,把Clickhouse纳入大数据体系中。
+<img alt="2" src="/zh-CN/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>第二个需求是Presto跑SQL比较慢,图中是一个慢SQL的例子。图中的SQL where条件设置了日期、时间范围和具体过滤条件,这类SQL使用由于Presto使用分区粒度下推,运行比较慢。即使用Hive的Bucket表和分桶等其他方式优化后也是几秒的返回时间、不能满足业务要求。这种情况下,我们需要利用Clickhouse做离线的OLAP计算加速。
+<img alt="3" src="/zh-CN/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>我们的实时数据是通过Kafka、Flink SQL方式写入到Clickhouse中。但分析时只用实时数据是不够的,需要用Hive维度表和已经ETL计算号的T+1实时表一起在Clickhouse中做加速运输。这需要把Hive的数据导入到Clickhouse中,这就是我们的第三个需求。
+<img alt="4" src="/zh-CN/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3痛点">3.痛点<a class="hash-link" href="#3痛点" title="Direct link to heading">​</a></h2><p>首先,我们引入一项数据组件时要考虑其性能。Hive表粒度是五分钟,是否有组件可以支撑五分钟内完成一个短小ETL流程并把ETL结果导入到Clickhouse中?第二,我们需要保证数据质量,数据的准确性需要有保障。Hive和Clickhouse的数据条数需要保障一致性,如果数据质量出问题能否通过重跑等机制修复数据?第三,数据导入需要支持的数据类型是否完备?不同数据库之间的数据类型和一些机制不同,我们有HiperLogLog和BitMap这类在某一存储引擎中利用得比较多得数据类型,是否可以正 [...]
+SeaTunnel和Spark依赖唯品会自己的Yarn集群,可以直接实现分布式读取和写入。DataX是非分布式的,且Reader、Writer之间的启动过程耗时时间长,性能普通,SeaTunnel和Spark处理数据的性能可以达到DataX的数倍。
+十亿以上的数据可以平稳地在SeaTunnel和Spark中运行,DataX在数据量大以后性能压力大,处理十亿以上数据吃力。
+在读写插件扩展性方面,SeaTunnel支持了多种数据源,支持用户开发插件。SeaTunnel支持了数据导入Redis。
+稳定性上,SeaTunnel和DataX由于是自成体系的工具,稳定性会更好。Spark的稳定性方面需要关注代码质量。
+<img alt="5" src="/zh-CN/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>我们的曝光表数据量每天在几十亿级,我们有5min内完成数据处理的性能要求,我们我们存在数据导入导出到Redis的需求,我们需要导入导出工具可以接入到数据平台上进行任务调度。 出于数据量级、性能、可扩展性、平台兼容性几方面的考虑,我们选择了SeaTunnel作为我们的数仓导入导出工具。</p><h1>Hive数据导入到ClickHouse</h1><p>下面将介绍我们对SeaTunnel的使用。
+图中是一张Hive表,它是我们三级的商品维度表,包含品类商品、维度品类和用户人群信息。表的主键是一个三级品类ct_third_id,下面的value是两个uid的位图,是用户id的bitmap类型,我们要把这个Hive表导入到Clickhouse。
+<img alt="6" src="/zh-CN/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel安装简单,官网文档有介绍如何安装。下图中是SeaTunnel的配置,配置中env、source和sink是必不可少的。env部分,图中的例子是Spark配置,配置了包括并发度等,可以调整这些参数。source部分是数据来源,这里配置了Hive数据源,包括一条Hive Select语句,Spark运行source配置中的SQL把数据读出,此处支持UDF进行简单ETL;sink部分配置了Clickhouse,可以看到output_type=rowbinary,rowbinary是唯品会自研加速方案;pre_sql和check_sql是自研的用于数据校验的功能,后面也会详细介绍;clickhouse.socket_timeout和bulk_size都是可以根据实际情况进行调整的。
+<img alt="7" src="/zh-CN/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img alt="8" src="/zh-CN/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+运行过程中会产生Spark日志,运行成功和运行中错误都可以在日志中查看。
+<img alt="9" src="/zh-CN/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>为了更贴合业务,唯品会对SeaTunnel做了一些改进。我们的ETL任务都是需要重跑的,我们支持了pre_sql和check_sql实现数据的重跑和对数。主要流程是在数据准备好后,执行pre_sql进行预处理,在Clickhouse中执行删除旧分区数据、存放到某一目录下在失败时恢复该分区、rename这类操作。check_sql会检验,校验通过后整个流程结束;如果检验不通过,根据配置进行重跑,重跑不通过则报警到对应负责人。
+<img alt="10" src="/zh-CN/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>唯品会基于1.0版本SeaTunnel增加了RowBinary做加速,也让HuperLogLog和BinaryBitmap的二进制文件能更容易地从Hive导入到Clickhouse。我们在ClickHouse-jdbc、bulk_size、Hive-source几处进行了修改。使用CK-jdbc的extended api,以rowbinary方式将数据写入CK,bulk_size引入了以rowbinary方式写入CK的控制逻辑,Hive-source
+RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>我们还让SeaTunnel支持了多类型,为了圈人群的功能,需要在Clickhouse、Preso、Spark中实现对应的方法。我们在Clickhouse-jdbc中增加支持Batch特性的Callback、HttpEntity、RowBinaryStream,在Clickhouse-jdbc和Clickhouse-sink代码中增加了bitmap类型映射,在Presto和Spark中实现了Clickhouse的Hyperloglog和Bitmap的function的UDF。
+前面的配置中,Clickhouse-sink部分可以指定表名,这里有写入本地表和分布式表的差异。写入分布式表的性能比写入本地表差对Clickhouse集群的压力会更大,但在计算曝光表、流量表,ABTest等场景中需要两表Join,两张表量级均在几十亿。这时我们希望Join key落在本机,Join成本更小。我们建表时在Clickhouse的分布式表分布规则中配置murmurHash64规则,然后在Seatunnel的sink里直接配置分布式表,把写入规则交给Clickhouse,利用了分布式表的特性进行写入。写入本地表对Clickhouse的压力会更小,写入的性能也会更好。我们在Seatunnel里,根据sink的本地表,去Clickhouse的System.cluster表里获取表的分布信息和机器分布host。然后根据均分规则写入这些host。把数据分布式写入的事情放到Seatunnel里来做。
+针对本地表和分布式表的写入,我们未来的改造方向是在Seatunnel实现一致性哈希,直接按照一定规则写如Clickhouse、不依赖Clickhouse自身做数据分发,改善Clickhouse高CPU负载问题。</p><h1>ClickHouse数据导入到Hive</h1><p>我们有圈人群的需求,每天唯品会为供应商圈20万个人群,比如80后、高富帅、白富美的人群集合。这些在Clickhouse中的Bitmap人群信息需要导出到Hive表,在Hive中与其他ETL任务进行配合,最后推到PIKA交给外部媒体使用。我们使SeaTunnel将Clickhouse Bitmap人群数据反推到Hive。
+<img alt="11" src="/zh-CN/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img alt="12" src="/zh-CN/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>由于我们接入SeaTunnel较早,我们对一些模块间进行了加工,包括新增plugin-spark-sink-hive模块、plugin-spark-source-ClickHouse模块,重写Spark Row相关方法,使其能封装经过Schem映射后的Clickhouse数据,重新构造StructField并生成最终需要落地Hive的DataFrame。最新版本已经有了很多source和sink组件,在SeaTunnel使用上更方便。现在也可以在SeaTunnel中直接集成Flink connector。</p><h1>SeaTunnel与唯品会数据平台的集成</h1><p>各个公司都有自己的调度系统,例如白鲸、宙斯。唯品会的调度工具是数坊,调度工具中集成了数据传输工具。下面是调度系统架构图,其中包含各类数据的出入仓。
+<img alt="13" src="/zh-CN/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img alt="14" src="/zh-CN/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>我们把SeaTunnel集成到了调度系统中,数坊调度Master会根据任务类型把任务分配到对应的Agent上,根据Agent负载情况分配到合适的机器上运行,管控器把前台的任务调度配置和信息拉取到后生成SeaTunnel cluster,在类似于k8s pod、cgroup隔离的虚拟环境内进行执行。运行结果会由调度平台的数据质量监控判断任务是否完成、是否运行成功,失败时进行重跑和告警。
+<img alt="15" src="/zh-CN/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel本身是一个工具化的组件,是为了进行数据血缘,数据质量,历史记录,高警监控,还包括资源分配这些信息的管控。我们把SeaTunnel集成到平台中,可以利用平台优势利用好SeaTunnel。
+圈存人群中利用了SeaTunnel进行处理。我们通过打点数据,把圈存人群按照路径和使用情况分为不同的人,或称千人千面,把用户打上标签,圈出的某一类人群推送给用户、分析师和供应商。
+<img alt="16" src="/zh-CN/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>流量进入Kafka,通过Flink入仓,再通过ETL形成用户标签表,用户标签表生成后,我们通过Presto实现了的BitMap方法,把数据打成Hive中的宽表。用户通过在人群系统页面中框选词条创建任务,提交腾群,生成SQL查询Clickhouse BitMap。Clickhouse的BitMap查询速度非常快,由天生优势,我们需要把Hive的BitMap表通过SeaTunnel导入到Clickhouse中。圈完人群后我们需要把表落地,形成Clickhouse的一个分区或一条记录,再把生成的结果BitMap表通过SeaTunnel存储到Hive中去。最后同步工具会将Hive的BitMap人群结果同步给外部媒体仓库Pika。每天圈20w个人群左右。
+整个过程中SeaTunnel负责把数据从Hive导出到Clickhouse,Clickhouse的ETL流程完成后SeaTunnel把数据从Clickhouse导出到Hive。
+为了完成这样的需求,我们在Presto和Spark端现ClickHouse的Hyperloglog和BitMap的function的UDF;我们还开发Seatunnel接口,使得用户在ClickHouse里使用Bitmap方法圈出来的人群,可以直接通过Seatunnel写入Hive表,无需中间落地步骤。用户也可以在Hive里通过spark圈人群或者反解人群bitmap,调用SeaTunnel接口,使数据直接传输到ClickHouse的结果表,而无需中间落地。</p><h1>后续工作</h1><p>后续我们会进一步改善Clickhouse写入数据时CPU负载高的问题,下一步会在SeaTunnel中实现Clickhouse数据源和读取端的CK-local模式,读写分离,减轻Clickhouse压力。未来我们也会增加更多sink支持,如数据推送到Pika和相应的数据检查。</p></div><footer class="row docusaurus-mt-lg"><div class="col col--9"><b>Tags:</b><ul class="tags_XVD_  [...]
+                <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
+                <p style="color: #999999;font-weight:400;text-align:left">Apache SeaTunnel is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of  [...]
+                <div style="border-top: 1px solid #ccc;min-height: 60px;line-height: 20px;text-align: center;font-family: Avenir-Medium;font-size: 14px;color: #999;display: flex;align-items: center;"><span>Copyright © 2021-2022 The Apache Software Foundation. Apache SeaTunnel, SeaTunnel, and its feather logo are trademarks of The Apache Software Foundation.</span></div>
+                <div style="text-align: center;">
+                    <a href="https://twitter.com/asfseatunnel?s=21" target="_blank" title="Twitter"><svg t="1644553365083" class="icon" viewBox="0 0 1260 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7015" width="25" height="25"><path d="M1259.846921 121.148242c-46.524504 20.728739-96.273478 34.547899-148.325646 40.536201 53.434084-31.784067 94.430924-82.454319 113.777747-142.797982-50.209613 29.480874-105.486251 51.13089-164.447999 62.646857A257.584528 257.584528 0 0 0 87 [...]
+                    <a href="https://apacheseatunnel.slack.com" target="_blank" title="Slack" style="margin-left: 20px;"><svg t="1644553076784" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3088" width="23" height="23"><path d="M215.125333 647.04a107.861333 107.861333 0 0 1-107.52 107.648A107.861333 107.861333 0 0 1 0 647.04a107.818667 107.818667 0 0 1 107.605333-107.52h107.52v107.52z m54.229334 0a107.818667 107.818667 0 0 1 107.562666-107.52 [...]
+                    <a href="https://lists.apache.org/list.html?dev@seatunnel.apache.org" target="_blank" title="Mailing list" style="margin-left: 20px;"><svg t="1644553175467" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5304" width="26" height="26"><path d="M853.333333 170.666667H170.666667c-46.933333 0-85.333333 38.4-85.333334 85.333333v512c0 46.933333 38.4 85.333333 85.333334 85.333333h682.666666c46.933333 0 85.333333-38.4 85.333334-85.3 [...]
+                    <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
+                </div>
+            <div></div></div></div></div></div></footer></div>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/zh-CN/community/contribution_guide/committer/index.html b/zh-CN/community/contribution_guide/committer/index.html
index 7b6cc73..a0efd7a 100644
--- a/zh-CN/community/contribution_guide/committer/index.html
+++ b/zh-CN/community/contribution_guide/committer/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Become Apache SeaTunnel Committer | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/community/contribution_guide/committer"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN">< [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -35,7 +35,7 @@ Before sending the invitation, the PPMC <a href="http://www.apache.org/dev/PPMC.
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/community/contribution_guide/contribute/index.html b/zh-CN/community/contribution_guide/contribute/index.html
index 8330839..ed3923b 100644
--- a/zh-CN/community/contribution_guide/contribute/index.html
+++ b/zh-CN/community/contribution_guide/contribute/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">参与贡献 | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/community/contribution_guide/contribute"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="true [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/community/contribution_guide/subscribe/index.html b/zh-CN/community/contribution_guide/subscribe/index.html
index 175659a..43656b8 100644
--- a/zh-CN/community/contribution_guide/subscribe/index.html
+++ b/zh-CN/community/contribution_guide/subscribe/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">订阅邮件列表 | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/community/contribution_guide/subscribe"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="tru [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/community/submit_guide/document/index.html b/zh-CN/community/submit_guide/document/index.html
index d719707..b46b794 100644
--- a/zh-CN/community/submit_guide/document/index.html
+++ b/zh-CN/community/submit_guide/document/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">文档须知 | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/community/submit_guide/document"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="true" name=" [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/community/submit_guide/license/index.html b/zh-CN/community/submit_guide/license/index.html
index 4af43af..8b4b2c6 100644
--- a/zh-CN/community/submit_guide/license/index.html
+++ b/zh-CN/community/submit_guide/license/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">License 须知 | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/community/submit_guide/license"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="true" n [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -24,7 +24,7 @@ copyright notice that is included in or attached to the work.</p><p>关于具体
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/community/submit_guide/submit-code/index.html b/zh-CN/community/submit_guide/submit-code/index.html
index 534a0de..340378b 100644
--- a/zh-CN/community/submit_guide/submit-code/index.html
+++ b/zh-CN/community/submit_guide/submit-code/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">提交代码 | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/community/submit_guide/submit-code"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="true" nam [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/1-1.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/1-1.png
new file mode 100644
index 0000000..8bcbfe6
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/1-1.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/1.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/1.png
new file mode 100644
index 0000000..22cb281
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/1.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/10.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/10.png
new file mode 100644
index 0000000..6a72bdd
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/10.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/11.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/11.png
new file mode 100644
index 0000000..957a5ca
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/11.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/12.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/12.png
new file mode 100644
index 0000000..98a67d1
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/12.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/13.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/13.png
new file mode 100644
index 0000000..3650037
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/13.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/14.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/14.png
new file mode 100644
index 0000000..3c0b20b
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/14.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/15.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/15.png
new file mode 100644
index 0000000..fa79211
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/15.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/16.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/16.png
new file mode 100644
index 0000000..76b2f20
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/16.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/2.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/2.png
new file mode 100644
index 0000000..24e7122
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/2.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/3.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/3.png
new file mode 100644
index 0000000..17599bb
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/3.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/4.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/4.png
new file mode 100644
index 0000000..9909ac5
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/4.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/5.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/5.png
new file mode 100644
index 0000000..52d3bda
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/5.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/6.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/6.png
new file mode 100644
index 0000000..4b7bd59
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/6.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/7.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/7.png
new file mode 100644
index 0000000..86619ce
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/7.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/8.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/8.png
new file mode 100644
index 0000000..2a5d8ef
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/8.png differ
diff --git a/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/9.png b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/9.png
new file mode 100644
index 0000000..f06f2bf
Binary files /dev/null and b/zh-CN/doc/image_zh/2022-2-18-Meetup-vip/9.png differ
diff --git a/zh-CN/docs/developement/NewLicenseGuide/index.html b/zh-CN/docs/developement/NewLicenseGuide/index.html
index 8622875..678e6f8 100644
--- a/zh-CN/docs/developement/NewLicenseGuide/index.html
+++ b/zh-CN/docs/developement/NewLicenseGuide/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">How to add a new License Guide | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/developement/NewLicenseGuide"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta dat [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/commands/start-seatunnel-flink.sh/index.html b/zh-CN/docs/flink/commands/start-seatunnel-flink.sh/index.html
index c78a565..6a90290 100644
--- a/zh-CN/docs/flink/commands/start-seatunnel-flink.sh/index.html
+++ b/zh-CN/docs/flink/commands/start-seatunnel-flink.sh/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Command usage instructions | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/commands/start-seatunnel-flink.sh"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><m [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/ConfigExamples/index.html b/zh-CN/docs/flink/configuration/ConfigExamples/index.html
index f4739d4..7fbd1fe 100644
--- a/zh-CN/docs/flink/configuration/ConfigExamples/index.html
+++ b/zh-CN/docs/flink/configuration/ConfigExamples/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Config Examples | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/ConfigExamples"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-h [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/sink-plugins/Console/index.html b/zh-CN/docs/flink/configuration/sink-plugins/Console/index.html
index f86a367..c7d039d 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/Console/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/Console/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Console | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/Console"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-hel [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/sink-plugins/Doris/index.html b/zh-CN/docs/flink/configuration/sink-plugins/Doris/index.html
index a5d397a..b067f77 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/Doris/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/Doris/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Doris | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/Doris"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/sink-plugins/Druid/index.html b/zh-CN/docs/flink/configuration/sink-plugins/Druid/index.html
index ed0f0ad..4b3a1b9 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/Druid/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/Druid/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Druid | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/Druid"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/sink-plugins/Elasticsearch/index.html b/zh-CN/docs/flink/configuration/sink-plugins/Elasticsearch/index.html
index 6a098fb..c9f1ac3 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/Elasticsearch/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/Elasticsearch/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Elasticsearch | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/Elasticsearch"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta da [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/sink-plugins/File/index.html b/zh-CN/docs/flink/configuration/sink-plugins/File/index.html
index 58f0420..f39a538 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/File/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/File/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">File | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/File"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="t [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/sink-plugins/InfluxDb/index.html b/zh-CN/docs/flink/configuration/sink-plugins/InfluxDb/index.html
index 1d8f2b4..c0dad8c 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/InfluxDb/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/InfluxDb/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">InfluxDB | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/InfluxDb"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-h [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/sink-plugins/Jdbc/index.html b/zh-CN/docs/flink/configuration/sink-plugins/Jdbc/index.html
index 95646bb..7bb358f 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/Jdbc/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/Jdbc/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Jdbc | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/Jdbc"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="t [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/sink-plugins/Kafka/index.html b/zh-CN/docs/flink/configuration/sink-plugins/Kafka/index.html
index fd5ac68..e7fd993 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/Kafka/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/Kafka/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Kafka | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/Kafka"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/sink-plugins/sink-plugin/index.html b/zh-CN/docs/flink/configuration/sink-plugins/sink-plugin/index.html
index 4c7c149..d32bafc 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/sink-plugin/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/sink-plugin/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Common Options | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/sink-plugin"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta dat [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/source-plugins/Druid/index.html b/zh-CN/docs/flink/configuration/source-plugins/Druid/index.html
index 725e4b7..f2890d9 100644
--- a/zh-CN/docs/flink/configuration/source-plugins/Druid/index.html
+++ b/zh-CN/docs/flink/configuration/source-plugins/Druid/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Druid | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/Druid"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helme [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/source-plugins/Fake/index.html b/zh-CN/docs/flink/configuration/source-plugins/Fake/index.html
index 669d7a4..8353248 100644
--- a/zh-CN/docs/flink/configuration/source-plugins/Fake/index.html
+++ b/zh-CN/docs/flink/configuration/source-plugins/Fake/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Fake | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/Fake"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/source-plugins/File/index.html b/zh-CN/docs/flink/configuration/source-plugins/File/index.html
index f1b3178..132de23 100644
--- a/zh-CN/docs/flink/configuration/source-plugins/File/index.html
+++ b/zh-CN/docs/flink/configuration/source-plugins/File/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">File | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/File"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/source-plugins/InfluxDb/index.html b/zh-CN/docs/flink/configuration/source-plugins/InfluxDb/index.html
index 760b5ad..e11df30 100644
--- a/zh-CN/docs/flink/configuration/source-plugins/InfluxDb/index.html
+++ b/zh-CN/docs/flink/configuration/source-plugins/InfluxDb/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">InfluxDb | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/InfluxDb"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/source-plugins/Jdbc/index.html b/zh-CN/docs/flink/configuration/source-plugins/Jdbc/index.html
index c87bd64..9419603 100644
--- a/zh-CN/docs/flink/configuration/source-plugins/Jdbc/index.html
+++ b/zh-CN/docs/flink/configuration/source-plugins/Jdbc/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Jdbc | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/Jdbc"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/source-plugins/Kafka/index.html b/zh-CN/docs/flink/configuration/source-plugins/Kafka/index.html
index 6880d7e..2dc671e 100644
--- a/zh-CN/docs/flink/configuration/source-plugins/Kafka/index.html
+++ b/zh-CN/docs/flink/configuration/source-plugins/Kafka/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Kafka | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/Kafka"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helme [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/source-plugins/Socket/index.html b/zh-CN/docs/flink/configuration/source-plugins/Socket/index.html
index ebb89fb..b5240da 100644
--- a/zh-CN/docs/flink/configuration/source-plugins/Socket/index.html
+++ b/zh-CN/docs/flink/configuration/source-plugins/Socket/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Socket | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/Socket"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-hel [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/source-plugins/source-plugin/index.html b/zh-CN/docs/flink/configuration/source-plugins/source-plugin/index.html
index d6c3fd2..bb686e7 100644
--- a/zh-CN/docs/flink/configuration/source-plugins/source-plugin/index.html
+++ b/zh-CN/docs/flink/configuration/source-plugins/source-plugin/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Common Options | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/source-plugin"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/transform-plugins/Split/index.html b/zh-CN/docs/flink/configuration/transform-plugins/Split/index.html
index 830dbd9..857ffe5 100644
--- a/zh-CN/docs/flink/configuration/transform-plugins/Split/index.html
+++ b/zh-CN/docs/flink/configuration/transform-plugins/Split/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Split | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/transform-plugins/Split"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-he [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/transform-plugins/Sql/index.html b/zh-CN/docs/flink/configuration/transform-plugins/Sql/index.html
index e9fb4d7..32130c6 100644
--- a/zh-CN/docs/flink/configuration/transform-plugins/Sql/index.html
+++ b/zh-CN/docs/flink/configuration/transform-plugins/Sql/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Sql | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/transform-plugins/Sql"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/configuration/transform-plugins/transform-plugin/index.html b/zh-CN/docs/flink/configuration/transform-plugins/transform-plugin/index.html
index 1fc4e23..c038c93 100644
--- a/zh-CN/docs/flink/configuration/transform-plugins/transform-plugin/index.html
+++ b/zh-CN/docs/flink/configuration/transform-plugins/transform-plugin/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Common Options | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/transform-plugins/transform-plugin"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN" [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/deployment/index.html b/zh-CN/docs/flink/deployment/index.html
index fdc6601..fa0c85e 100644
--- a/zh-CN/docs/flink/deployment/index.html
+++ b/zh-CN/docs/flink/deployment/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Deployment and run | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/deployment"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="true" na [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/installation/index.html b/zh-CN/docs/flink/installation/index.html
index 2a82def..8fb7c02 100644
--- a/zh-CN/docs/flink/installation/index.html
+++ b/zh-CN/docs/flink/installation/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Download and install | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/installation"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="true [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/flink/quick-start/index.html b/zh-CN/docs/flink/quick-start/index.html
index b2c09f1..a452daf 100644
--- a/zh-CN/docs/flink/quick-start/index.html
+++ b/zh-CN/docs/flink/quick-start/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Quick start | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/quick-start"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/introduction/index.html b/zh-CN/docs/introduction/index.html
index 60296e4..670dd03 100644
--- a/zh-CN/docs/introduction/index.html
+++ b/zh-CN/docs/introduction/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Introduction | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/introduction"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="true" name="docusa [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -41,7 +41,7 @@ unacceptable behavior.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="dev
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/commands/start-seatunnel-spark.sh/index.html b/zh-CN/docs/spark/commands/start-seatunnel-spark.sh/index.html
index 6c1a0b1..0d53529 100644
--- a/zh-CN/docs/spark/commands/start-seatunnel-spark.sh/index.html
+++ b/zh-CN/docs/spark/commands/start-seatunnel-spark.sh/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Command usage instructions | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/commands/start-seatunnel-spark.sh"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><m [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/ConfigExamples/index.html b/zh-CN/docs/spark/configuration/ConfigExamples/index.html
index 09c9f79..ebb0bf0 100644
--- a/zh-CN/docs/spark/configuration/ConfigExamples/index.html
+++ b/zh-CN/docs/spark/configuration/ConfigExamples/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Config Examples | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/ConfigExamples"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-h [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Clickhouse/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Clickhouse/index.html
index d625e8a..0751dff 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Clickhouse/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Clickhouse/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Clickhouse | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Clickhouse"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-rea [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Console/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Console/index.html
index 01793e8..f0b09ce 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Console/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Console/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Console | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Console"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-hel [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Doris/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Doris/index.html
index c914d0e..2998f83 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Doris/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Doris/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Doirs | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Doris"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -23,7 +23,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Elasticsearch/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Elasticsearch/index.html
index 6443247..36db5e5 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Elasticsearch/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Elasticsearch/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Elasticsearch | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Elasticsearch"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta da [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Email/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Email/index.html
index 56a9a74..13ee7bc 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Email/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Email/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Email | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Email"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/File/index.html b/zh-CN/docs/spark/configuration/sink-plugins/File/index.html
index e36b94e..30bab6c 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/File/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/File/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">File | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/File"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="t [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Hbase/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Hbase/index.html
index 0d36748..f5ad203 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Hbase/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Hbase/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Hbase | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Hbase"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Hdfs/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Hdfs/index.html
index 7647c2a..a6bbc49 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Hdfs/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Hdfs/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Hdfs | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Hdfs"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="t [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Hive/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Hive/index.html
index e5c118a..b3d5b18 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Hive/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Hive/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Hive | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Hive"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="t [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Hudi/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Hudi/index.html
index bd75176..f8b642f 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Hudi/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Hudi/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Hudi | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Hudi"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="t [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Jdbc/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Jdbc/index.html
index 9380250..5bac4a1 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Jdbc/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Jdbc/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Jdbc | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Jdbc"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="t [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Kafka/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Kafka/index.html
index 3c2c2a6..c3fea5c 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Kafka/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Kafka/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Kafka | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Kafka"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Kudu/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Kudu/index.html
index 692a7d1..d13fc4b 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Kudu/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Kudu/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Kudu | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Kudu"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="t [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/MongoDB/index.html b/zh-CN/docs/spark/configuration/sink-plugins/MongoDB/index.html
index 9a6f189..da5f6d2 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/MongoDB/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/MongoDB/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">MongoDB | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/MongoDB"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-hel [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Mysql/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Mysql/index.html
index 7b253aa..f9a7e0e 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Mysql/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Mysql/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Mysql | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Mysql"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Phoenix/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Phoenix/index.html
index d8c3669..bd6dfcc 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Phoenix/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Phoenix/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Phoenix | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Phoenix"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-hel [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Redis/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Redis/index.html
index 80e5716..b964c33 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Redis/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Redis/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Redis | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Redis"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/Tidb/index.html b/zh-CN/docs/spark/configuration/sink-plugins/Tidb/index.html
index 4075361..77c5462 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/Tidb/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/Tidb/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">TiDb | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/Tidb"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="t [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/sink-plugins/sink-plugin/index.html b/zh-CN/docs/spark/configuration/sink-plugins/sink-plugin/index.html
index 3617a0a..17cc720 100644
--- a/zh-CN/docs/spark/configuration/sink-plugins/sink-plugin/index.html
+++ b/zh-CN/docs/spark/configuration/sink-plugins/sink-plugin/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Common Options | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/sink-plugins/sink-plugin"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta dat [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/source-plugins/Elasticsearch/index.html b/zh-CN/docs/spark/configuration/source-plugins/Elasticsearch/index.html
index a7b4b27..22c02da 100644
--- a/zh-CN/docs/spark/configuration/source-plugins/Elasticsearch/index.html
+++ b/zh-CN/docs/spark/configuration/source-plugins/Elasticsearch/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Elasticsearch | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/source-plugins/Elasticsearch"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta  [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/source-plugins/Fake/index.html b/zh-CN/docs/spark/configuration/source-plugins/Fake/index.html
index 91485fe..330e768 100644
--- a/zh-CN/docs/spark/configuration/source-plugins/Fake/index.html
+++ b/zh-CN/docs/spark/configuration/source-plugins/Fake/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Fake | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/source-plugins/Fake"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/source-plugins/FakeStream/index.html b/zh-CN/docs/spark/configuration/source-plugins/FakeStream/index.html
index 9bee467..cd1d241 100644
--- a/zh-CN/docs/spark/configuration/source-plugins/FakeStream/index.html
+++ b/zh-CN/docs/spark/configuration/source-plugins/FakeStream/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">FakeStream | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/source-plugins/FakeStream"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-r [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/source-plugins/Hive/index.html b/zh-CN/docs/spark/configuration/source-plugins/Hive/index.html
index a11a483..2b3a4d0 100644
--- a/zh-CN/docs/spark/configuration/source-plugins/Hive/index.html
+++ b/zh-CN/docs/spark/configuration/source-plugins/Hive/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Hive | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/source-plugins/Hive"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/source-plugins/Hudi/index.html b/zh-CN/docs/spark/configuration/source-plugins/Hudi/index.html
index cd270b5..48f1126 100644
--- a/zh-CN/docs/spark/configuration/source-plugins/Hudi/index.html
+++ b/zh-CN/docs/spark/configuration/source-plugins/Hudi/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Hudi | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/source-plugins/Hudi"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/source-plugins/Jdbc/index.html b/zh-CN/docs/spark/configuration/source-plugins/Jdbc/index.html
index 5f075ac..990ac5f 100644
--- a/zh-CN/docs/spark/configuration/source-plugins/Jdbc/index.html
+++ b/zh-CN/docs/spark/configuration/source-plugins/Jdbc/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Jdbc | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/source-plugins/Jdbc"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/source-plugins/KafkaStream/index.html b/zh-CN/docs/spark/configuration/source-plugins/KafkaStream/index.html
index 04b5c5b..50fb777 100644
--- a/zh-CN/docs/spark/configuration/source-plugins/KafkaStream/index.html
+++ b/zh-CN/docs/spark/configuration/source-plugins/KafkaStream/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">KafkaStream | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/source-plugins/KafkaStream"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/source-plugins/Kudu/index.html b/zh-CN/docs/spark/configuration/source-plugins/Kudu/index.html
index 5336a97..8eacda7 100644
--- a/zh-CN/docs/spark/configuration/source-plugins/Kudu/index.html
+++ b/zh-CN/docs/spark/configuration/source-plugins/Kudu/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Kudu | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/source-plugins/Kudu"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/source-plugins/MongoDB/index.html b/zh-CN/docs/spark/configuration/source-plugins/MongoDB/index.html
index 0b3c112..615176f 100644
--- a/zh-CN/docs/spark/configuration/source-plugins/MongoDB/index.html
+++ b/zh-CN/docs/spark/configuration/source-plugins/MongoDB/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">MongoDb | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/source-plugins/MongoDB"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-h [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/source-plugins/Phoenix/index.html b/zh-CN/docs/spark/configuration/source-plugins/Phoenix/index.html
index 2afc0e2..bf0d638 100644
--- a/zh-CN/docs/spark/configuration/source-plugins/Phoenix/index.html
+++ b/zh-CN/docs/spark/configuration/source-plugins/Phoenix/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Phoenix | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/source-plugins/Phoenix"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-h [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/source-plugins/Redis/index.html b/zh-CN/docs/spark/configuration/source-plugins/Redis/index.html
index 70af1cf..ccd557c 100644
--- a/zh-CN/docs/spark/configuration/source-plugins/Redis/index.html
+++ b/zh-CN/docs/spark/configuration/source-plugins/Redis/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Redis | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/source-plugins/Redis"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helme [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/source-plugins/SocketStream/index.html b/zh-CN/docs/spark/configuration/source-plugins/SocketStream/index.html
index cb07cd7..1fb301e 100644
--- a/zh-CN/docs/spark/configuration/source-plugins/SocketStream/index.html
+++ b/zh-CN/docs/spark/configuration/source-plugins/SocketStream/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">SocketStream | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/source-plugins/SocketStream"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta da [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/source-plugins/Tidb/index.html b/zh-CN/docs/spark/configuration/source-plugins/Tidb/index.html
index 236c14a..994d820 100644
--- a/zh-CN/docs/spark/configuration/source-plugins/Tidb/index.html
+++ b/zh-CN/docs/spark/configuration/source-plugins/Tidb/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Tidb | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/source-plugins/Tidb"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/source-plugins/neo4j/index.html b/zh-CN/docs/spark/configuration/source-plugins/neo4j/index.html
index 88b7653..c80eccf 100644
--- a/zh-CN/docs/spark/configuration/source-plugins/neo4j/index.html
+++ b/zh-CN/docs/spark/configuration/source-plugins/neo4j/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Neo4j | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/source-plugins/neo4j"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helme [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -25,7 +25,7 @@ or a simple number that represents the amount of records returned by query. Cons
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/source-plugins/source-plugin/index.html b/zh-CN/docs/spark/configuration/source-plugins/source-plugin/index.html
index abd63f1..d89f666 100644
--- a/zh-CN/docs/spark/configuration/source-plugins/source-plugin/index.html
+++ b/zh-CN/docs/spark/configuration/source-plugins/source-plugin/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Common Options | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/source-plugins/source-plugin"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/transform-plugins/Json/index.html b/zh-CN/docs/spark/configuration/transform-plugins/Json/index.html
index 6ce9455..5e54308 100644
--- a/zh-CN/docs/spark/configuration/transform-plugins/Json/index.html
+++ b/zh-CN/docs/spark/configuration/transform-plugins/Json/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Json | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/transform-plugins/Json"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helm [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/transform-plugins/Split/index.html b/zh-CN/docs/spark/configuration/transform-plugins/Split/index.html
index 39e0d20..a284dca 100644
--- a/zh-CN/docs/spark/configuration/transform-plugins/Split/index.html
+++ b/zh-CN/docs/spark/configuration/transform-plugins/Split/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Split | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/transform-plugins/Split"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-he [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/transform-plugins/Sql/index.html b/zh-CN/docs/spark/configuration/transform-plugins/Sql/index.html
index 930454b..b0dcc13 100644
--- a/zh-CN/docs/spark/configuration/transform-plugins/Sql/index.html
+++ b/zh-CN/docs/spark/configuration/transform-plugins/Sql/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Sql | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/transform-plugins/Sql"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/configuration/transform-plugins/transform-plugin/index.html b/zh-CN/docs/spark/configuration/transform-plugins/transform-plugin/index.html
index c42cd4d..34724b9 100644
--- a/zh-CN/docs/spark/configuration/transform-plugins/transform-plugin/index.html
+++ b/zh-CN/docs/spark/configuration/transform-plugins/transform-plugin/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Common Options | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/configuration/transform-plugins/transform-plugin"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN" [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/deployment/index.html b/zh-CN/docs/spark/deployment/index.html
index 3bf9139..3db90ff 100644
--- a/zh-CN/docs/spark/deployment/index.html
+++ b/zh-CN/docs/spark/deployment/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">deployment | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/deployment"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="true" name="docu [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/installation/index.html b/zh-CN/docs/spark/installation/index.html
index b8a032a..cc35866 100644
--- a/zh-CN/docs/spark/installation/index.html
+++ b/zh-CN/docs/spark/installation/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Download and install | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/installation"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="true [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/spark/quick-start/index.html b/zh-CN/docs/spark/quick-start/index.html
index 94a85a9..2a4b8e9 100644
--- a/zh-CN/docs/spark/quick-start/index.html
+++ b/zh-CN/docs/spark/quick-start/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Quick start | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/spark/quick-start"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="true" name="do [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/faq/faq/index.html b/zh-CN/faq/faq/index.html
index 070226f..71faf6c 100644
--- a/zh-CN/faq/faq/index.html
+++ b/zh-CN/faq/faq/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">SeaTunnel FAQ | Apache SeaTunnel</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/faq/faq"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="true" name="docusaurus_vers [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -26,7 +26,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/home/index.html b/zh-CN/home/index.html
index 1a1692f..419d838 100644
--- a/zh-CN/home/index.html
+++ b/zh-CN/home/index.html
@@ -6,13 +6,13 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true"></title><link rel="stylesheet" href="/zh-CN/assets/css/styles.608b4c3c.css">
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div><div class="main slogan"><div class="block"><div class="banner text_center"><h1 class="main_title"><span class="apache">Apache</span> <span class="seatunnel">SeaTunnel</span><span class="badge">Incubating</span></h1><p class="main_slogan">Next-generation high-performance, distributed, massive data integration framework</p><div class="button_row center"><a href="https://seatunnel.apache.org/docs/introduction#quick-start" class="corner_button blue_fill">Quick Start</a><a href="https:/ [...]
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/index.html b/zh-CN/index.html
index 4dda4d8..4950066 100644
--- a/zh-CN/index.html
+++ b/zh-CN/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Apache SeaTunnel | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="Apache SeaTunnel | Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" name="description" content="Description will go into a meta tag in &lt;head /&gt;"><meta data-r [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/sitemap.xml b/zh-CN/sitemap.xml
index 2035fe7..efae45b 100644
--- a/zh-CN/sitemap.xml
+++ b/zh-CN/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://seatunnel.apache.org/zh-CN/blog</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://seatunnel.apache.org/zh-CN/blog/a [...]
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://seatunnel.apache.org/zh-CN/blog</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://seatunnel.apache.org/zh-CN/blog/a [...]
\ No newline at end of file
diff --git a/zh-CN/team/index.html b/zh-CN/team/index.html
index b2a4f94..6fc1713 100644
--- a/zh-CN/team/index.html
+++ b/zh-CN/team/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/team/"><meta data-react-helmet="true" name="docusaurus_locale" content= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/user/index.html b/zh-CN/user/index.html
index cdf90b4..c448df2 100644
--- a/zh-CN/user/index.html
+++ b/zh-CN/user/index.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="Docusaurus v2.0.0-beta.15">
 <link rel="alternate" type="application/rss+xml" href="/zh-CN/blog/rss.xml" title="Apache SeaTunnel RSS Feed">
 <link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-react-helmet="true">Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="Apache SeaTunnel"><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/user/"><meta data-react-helmet="true" name="docusaurus_locale" content= [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.6b9fee27.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.56b4736e.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.e4d362a8.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.25a063ee.js" as="script">
 </head>
 <body>
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
@@ -22,7 +22,7 @@
                     <a href="https://github.com/apache/incubator-seatunnel" target="_blank" title="GitHub" style="margin-left: 20px;"><svg t="1644553223000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6156" width="23" height="23"><path d="M512 12.64c-282.752 0-512 229.216-512 512 0 226.208 146.72 418.144 350.144 485.824 25.6 4.736 35.008-11.104 35.008-24.64 0-12.192-0.48-52.544-0.704-95.328-142.464 30.976-172.512-60.416-172.512-60.416-23.29 [...]
                 </div>
             <div></div></div></div></div></div></footer></div>
-<script src="/zh-CN/assets/js/runtime~main.6b9fee27.js"></script>
-<script src="/zh-CN/assets/js/main.56b4736e.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.e4d362a8.js"></script>
+<script src="/zh-CN/assets/js/main.25a063ee.js"></script>
 </body>
 </html>
\ No newline at end of file