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/28 06:58:29 UTC

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

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 245d772  deploy: d6e5e08245ce65eb0f072947200d0c7475c6fbb0
245d772 is described below

commit 245d772ff52f189b188fa8e102df052bb94dfc00
Author: CalvinKirs <Ca...@users.noreply.github.com>
AuthorDate: Mon Feb 28 06:58:20 2022 +0000

    deploy: d6e5e08245ce65eb0f072947200d0c7475c6fbb0
---
 404.html                                           | 14 +++----
 .../{styles.66709117.css => styles.4453a582.css}   |  2 +-
 assets/js/01a85c17.10e50317.js                     |  1 +
 assets/js/01a85c17.23b45a9b.js                     |  1 -
 assets/js/022ca2a7.52dc4041.js                     |  1 +
 assets/js/04e3e187.06cbe7f3.js                     |  1 +
 assets/js/04e3e187.474fc9a2.js                     |  1 -
 assets/js/063d0194.57630417.js                     |  1 +
 assets/js/08dd1cb1.2a788d10.js                     |  1 +
 assets/js/08dd1cb1.56e2e188.js                     |  1 -
 assets/js/09e60b3c.4ec83be6.js                     |  1 +
 assets/js/09e60b3c.66318b84.js                     |  1 -
 assets/js/0b826da0.27a3cbba.js                     |  1 +
 assets/js/0b826da0.cda423ac.js                     |  1 -
 assets/js/14354f1c.3a3eba5d.js                     |  1 +
 assets/js/14354f1c.5892ef9d.js                     |  1 -
 assets/js/16a88d30.236f20f6.js                     |  1 +
 assets/js/16a88d30.8f9303d8.js                     |  1 -
 assets/js/16e84849.5c09bb5f.js                     |  1 +
 assets/js/16e84849.8594acdc.js                     |  1 -
 assets/js/16fa9ec5.360122d7.js                     |  1 -
 assets/js/16fa9ec5.e53a2592.js                     |  1 +
 assets/js/17896441.6d388ece.js                     |  1 -
 assets/js/17896441.8b693f91.js                     |  1 +
 assets/js/17dd540a.52b6aa70.js                     |  1 -
 assets/js/17dd540a.822bd1ca.js                     |  1 +
 assets/js/18f978c8.9b829791.js                     |  1 +
 assets/js/18f978c8.f2a73a79.js                     |  1 -
 assets/js/1a8f4297.57af6f8f.js                     |  1 +
 assets/js/1a8f4297.c712c2c7.js                     |  1 -
 assets/js/1bd84cdc.599685ba.js                     |  1 -
 assets/js/1bd84cdc.dbfc47e4.js                     |  1 +
 assets/js/1be78505.0453a12b.js                     |  1 -
 assets/js/1be78505.501bce39.js                     |  1 +
 assets/js/1e6a2b85.3191df6d.js                     |  1 +
 assets/js/1e6a2b85.f34f2a1a.js                     |  1 -
 assets/js/1eb54025.628a5aab.js                     |  1 +
 assets/js/1eb54025.ba0ce7d1.js                     |  1 -
 assets/js/2983068c.611a7bee.js                     |  1 +
 assets/js/2983068c.77233546.js                     |  1 -
 assets/js/2c85b2ce.515f73f7.js                     |  1 -
 assets/js/2c85b2ce.89b00de2.js                     |  1 +
 .../js/2e6a483b.c2587174.js                        |  2 +-
 assets/js/33d00a6b.8f1411dc.js                     |  1 +
 assets/js/35a4b3d1.629c58b2.js                     |  1 +
 assets/js/3afdcffa.489bf9ed.js                     |  1 -
 assets/js/3afdcffa.c1d3702c.js                     |  1 +
 assets/js/3e61211a.57f1d89d.js                     |  1 -
 assets/js/3e61211a.a95fdd02.js                     |  1 +
 assets/js/41b2fee9.1ee8ff6c.js                     |  1 -
 assets/js/41b2fee9.b85d5568.js                     |  1 +
 assets/js/4463231b.175ba336.js                     |  1 -
 assets/js/4463231b.6b9c9b2f.js                     |  1 +
 assets/js/4608.93d640b2.js                         |  1 -
 assets/js/4608.eb59e005.js                         |  1 +
 assets/js/470e1f07.2a779537.js                     |  1 -
 assets/js/470e1f07.954939e2.js                     |  1 +
 assets/js/47457315.851e75c5.js                     |  1 +
 assets/js/4b015457.453a6416.js                     |  1 -
 assets/js/4b015457.affac982.js                     |  1 +
 assets/js/4bc84597.0080d2e7.js                     |  1 -
 assets/js/4bc84597.1fee3038.js                     |  1 +
 assets/js/4d27e8d4.386e782d.js                     |  1 -
 assets/js/4d27e8d4.e9ae0db8.js                     |  1 +
 assets/js/5107f730.276370f2.js                     |  1 +
 assets/js/5107f730.a026d39f.js                     |  1 -
 assets/js/543ba75a.294c3d25.js                     |  1 +
 assets/js/543ba75a.2e6c072d.js                     |  1 -
 assets/js/57558aad.96ef398d.js                     |  1 -
 assets/js/57558aad.df249cba.js                     |  1 +
 assets/js/5828a256.d4609b26.js                     |  1 +
 assets/js/5828a256.f30a188f.js                     |  1 -
 .../5897.70d3e0d6.js => assets/js/5897.06770040.js |  2 +-
 assets/js/593be373.18ce751c.js                     |  1 +
 assets/js/593be373.c72d471c.js                     |  1 -
 assets/js/59bc9e86.9f1714f2.js                     |  1 -
 assets/js/59bc9e86.b2f4b87c.js                     |  1 +
 assets/js/5a286631.9ae2e7a1.js                     |  1 -
 assets/js/5a286631.a28abd23.js                     |  1 +
 assets/js/5ceab092.1f6bd27c.js                     |  1 +
 assets/js/5ceab092.492ad9d4.js                     |  1 -
 assets/js/5cfd6880.34b95082.js                     |  1 -
 assets/js/5cfd6880.83683c8b.js                     |  1 +
 assets/js/6087dd36.273c4d43.js                     |  1 +
 assets/js/6087dd36.3c149c7f.js                     |  1 -
 assets/js/616b0a92.0f71f90c.js                     |  1 +
 assets/js/616b0a92.6ba002b8.js                     |  1 -
 assets/js/6214aae1.8e475d56.js                     |  1 -
 assets/js/6214aae1.9a6e2bf8.js                     |  1 +
 assets/js/64a81036.9ece2ab6.js                     |  1 +
 assets/js/64a81036.a740af29.js                     |  1 -
 assets/js/66a001df.2d6c4c81.js                     |  1 -
 assets/js/66a001df.6647a1de.js                     |  1 +
 assets/js/678276c4.85f7d2b0.js                     |  1 +
 assets/js/678276c4.8c5b3417.js                     |  1 -
 assets/js/6875c492.80aa4ffd.js                     |  1 +
 assets/js/6875c492.da6aeccf.js                     |  1 -
 assets/js/7161e803.2c3d942c.js                     |  1 +
 assets/js/7161e803.83f565e6.js                     |  1 -
 assets/js/7485f6a9.33b53fd3.js                     |  1 +
 assets/js/7485f6a9.555ab79b.js                     |  1 -
 assets/js/750c74f2.7aa41bee.js                     |  1 -
 assets/js/750c74f2.caf44409.js                     |  1 +
 assets/js/805ad1eb.15aa5abc.js                     |  1 +
 assets/js/805ad1eb.998e572e.js                     |  1 -
 assets/js/8359373c.546b434b.js                     |  1 +
 assets/js/88a3f98d.1de4b794.js                     |  1 +
 assets/js/88a3f98d.5d9cfbe7.js                     |  1 -
 assets/js/8a166697.5e940098.js                     |  1 -
 assets/js/8a166697.93e551d6.js                     |  1 +
 assets/js/8d5ab53b.29558b0c.js                     |  1 -
 assets/js/8d5ab53b.a8349ca7.js                     |  1 +
 assets/js/8d99b0e8.b7077b74.js                     |  1 +
 assets/js/8d99b0e8.d7645ec9.js                     |  1 -
 assets/js/90b38822.62ff3f6f.js                     |  1 -
 assets/js/90b38822.fb61137f.js                     |  1 +
 assets/js/90d6291e.204e9418.js                     |  1 +
 assets/js/90d6291e.de97b973.js                     |  1 -
 assets/js/941e56ee.6f98663b.js                     |  1 +
 assets/js/950567ae.6df0292f.js                     |  1 +
 assets/js/9adfc895.ba5ef429.js                     |  1 -
 assets/js/9adfc895.d78e26db.js                     |  1 +
 assets/js/9b228c45.632fffec.js                     |  1 +
 assets/js/9b228c45.7df6f126.js                     |  1 -
 assets/js/9bbe1211.75e6f5a2.js                     |  1 -
 assets/js/9bbe1211.f8c81a04.js                     |  1 +
 assets/js/a09c2993.797a8d0a.js                     |  1 +
 assets/js/a09c2993.f331a004.js                     |  1 -
 assets/js/a18cd306.b520fc1e.js                     |  1 -
 assets/js/a18cd306.e2fa4744.js                     |  1 +
 assets/js/a281a1a5.01c237ba.js                     |  1 -
 assets/js/a281a1a5.14fbe6ac.js                     |  1 +
 assets/js/a67c5390.16d6460d.js                     |  1 +
 assets/js/a67c5390.28c84c45.js                     |  1 -
 assets/js/a6aa9e1f.5efb6f3e.js                     |  1 +
 assets/js/a6aa9e1f.855241f5.js                     |  1 -
 assets/js/a7023ddc.4c3bc7ec.js                     |  1 +
 assets/js/a7023ddc.5bab44c8.js                     |  1 -
 assets/js/a7c50264.651f7e01.js                     |  1 -
 assets/js/a7c50264.ae508525.js                     |  1 +
 assets/js/a7dfdb02.81dcd947.js                     |  1 -
 assets/js/a7dfdb02.a9ee575a.js                     |  1 +
 assets/js/a872c320.468ae7a9.js                     |  1 +
 assets/js/a872c320.96af4bd9.js                     |  1 -
 assets/js/a9e9a358.43799dd9.js                     |  1 -
 assets/js/a9e9a358.57ac9a2f.js                     |  1 +
 assets/js/aa061128.16ea0516.js                     |  1 -
 assets/js/aa061128.bd52a78c.js                     |  1 +
 assets/js/abbc9aab.40e8ec94.js                     |  1 +
 assets/js/abbc9aab.5b799243.js                     |  1 -
 assets/js/ac0ab662.cf76c839.js                     |  1 +
 assets/js/ac0ab662.d2a76af5.js                     |  1 -
 assets/js/b0936712.4304e004.js                     |  1 -
 assets/js/b0936712.b9c6cc48.js                     |  1 +
 assets/js/b23b9205.af0a3d8a.js                     |  1 +
 assets/js/b23b9205.f817969a.js                     |  1 -
 assets/js/c0212c48.734bb840.js                     |  1 -
 assets/js/c0212c48.9e98c577.js                     |  1 +
 assets/js/c64563e9.a4183d3b.js                     |  1 +
 assets/js/c64563e9.c0744d2c.js                     |  1 -
 assets/js/c6675f54.73a0c073.js                     |  1 -
 assets/js/c6675f54.c7ce2b84.js                     |  1 +
 assets/js/c7c2bd87.930d4315.js                     |  1 -
 assets/js/c7c2bd87.df288368.js                     |  1 +
 assets/js/cb4af717.a331ba7e.js                     |  1 +
 assets/js/cb4af717.e3940c17.js                     |  1 -
 assets/js/cc1bf1ce.30aeb16b.js                     |  1 +
 assets/js/cc1bf1ce.3c6253d9.js                     |  1 -
 assets/js/cc9db67d.0a0028a8.js                     |  1 -
 assets/js/cc9db67d.a96ccd3a.js                     |  1 +
 assets/js/ccc49370.70cdb5bf.js                     |  1 +
 assets/js/ccc49370.ed48f4c5.js                     |  1 -
 assets/js/cd7aea4a.2c2c6762.js                     |  1 -
 assets/js/cd7aea4a.b366d366.js                     |  1 +
 assets/js/d968614a.70c2b06f.js                     |  1 +
 assets/js/d968614a.73db1520.js                     |  1 -
 assets/js/de73a401.6f996acb.js                     |  1 +
 assets/js/de73a401.adc671de.js                     |  1 -
 assets/js/e09a720b.9e2a8904.js                     |  1 -
 assets/js/e09a720b.e497bfef.js                     |  1 +
 assets/js/e27978f7.9dec1f2b.js                     |  1 +
 assets/js/e27978f7.ef1137dc.js                     |  1 -
 assets/js/e689fd89.f61ee89b.js                     |  1 -
 assets/js/e689fd89.f737df63.js                     |  1 +
 assets/js/e8521944.6210e7eb.js                     |  1 -
 assets/js/e8521944.c4469ec2.js                     |  1 +
 assets/js/eb1fff16.3a56e64f.js                     |  1 -
 assets/js/eb1fff16.b5d26bc1.js                     |  1 +
 assets/js/ecbe7a3e.de9ec53a.js                     |  1 +
 assets/js/ecbe7a3e.f1188804.js                     |  1 -
 assets/js/ece30e0c.5d85db05.js                     |  1 +
 assets/js/ece30e0c.9543947e.js                     |  1 -
 assets/js/f078bfe5.57697858.js                     |  1 +
 assets/js/f078bfe5.cb7cc349.js                     |  1 -
 assets/js/f16ebba6.09f73c65.js                     |  1 +
 assets/js/f16ebba6.8db1a480.js                     |  1 -
 assets/js/f3f42ef4.5a95f535.js                     |  1 -
 assets/js/f3f42ef4.e217d9e4.js                     |  1 +
 assets/js/f6f539a6.743cc6ba.js                     |  1 -
 assets/js/f6f539a6.92055087.js                     |  1 +
 assets/js/f8101ceb.bbc8b6a8.js                     |  1 +
 assets/js/f820265a.79eebb0b.js                     |  1 -
 assets/js/f820265a.b4688a9e.js                     |  1 +
 assets/js/ff925945.435cf3ae.js                     |  1 +
 assets/js/main.2f1ceddd.js                         |  2 -
 assets/js/main.a023d061.js                         |  2 +
 .../js/main.a023d061.js.LICENSE.txt                |  0
 assets/js/runtime~main.4cc534b1.js                 |  1 -
 assets/js/runtime~main.85f7964c.js                 |  1 +
 blog/The practice of SeaTunnel in Vip/index.html   | 46 ++++++++++-----------
 blog/archive/index.html                            | 14 +++----
 blog/atom.xml                                      | 36 ++++++++--------
 blog/hdfs-to-clickhouse/index.html                 | 14 +++----
 blog/hive-to-clickhouse/index.html                 | 16 ++++----
 blog/index.html                                    | 48 +++++++++++-----------
 blog/rss.xml                                       | 36 ++++++++--------
 blog/spark-execute-elasticsearch/index.html        | 16 ++++----
 blog/spark-execute-tidb/index.html                 | 14 +++----
 blog/spark-structured-streaming/index.html         | 14 +++----
 blog/tags/click-house/index.html                   | 48 +++++++++++-----------
 blog/tags/elasticsearch/index.html                 | 16 ++++----
 blog/tags/hdfs/index.html                          | 16 ++++----
 blog/tags/hive/index.html                          | 16 ++++----
 blog/tags/index.html                               | 14 +++----
 blog/tags/kafka/index.html                         | 16 ++++----
 blog/tags/spark/index.html                         | 18 ++++----
 blog/tags/structured-streaming/index.html          | 16 ++++----
 blog/tags/ti-db/index.html                         | 16 ++++----
 blog/tags/vip/index.html                           | 48 +++++++++++-----------
 community/contribution_guide/committer/index.html  | 16 ++++----
 community/contribution_guide/contribute/index.html | 16 ++++----
 community/contribution_guide/subscribe/index.html  | 16 ++++----
 community/submit_guide/document/index.html         | 16 ++++----
 community/submit_guide/license/index.html          | 16 ++++----
 community/submit_guide/submit-code/index.html      | 16 ++++----
 docs/developement/FAQ/index.html                   | 16 ++++----
 docs/developement/NewLicenseGuide/index.html       | 16 ++++----
 .../commands/start-seatunnel-flink.sh/index.html   | 16 ++++----
 docs/flink/configuration/ConfigExamples/index.html | 16 ++++----
 .../configuration/sink-plugins/Console/index.html  | 16 ++++----
 .../configuration/sink-plugins/Doris/index.html    | 16 ++++----
 .../configuration/sink-plugins/Druid/index.html    | 16 ++++----
 .../sink-plugins/Elasticsearch/index.html          | 16 ++++----
 .../configuration/sink-plugins/File/index.html     | 16 ++++----
 .../configuration/sink-plugins/InfluxDb/index.html | 16 ++++----
 .../configuration/sink-plugins/Jdbc/index.html     | 16 ++++----
 .../configuration/sink-plugins/Kafka/index.html    | 16 ++++----
 .../sink-plugins/sink-plugin/index.html            | 16 ++++----
 .../configuration/source-plugins/Druid/index.html  | 16 ++++----
 .../configuration/source-plugins/Fake/index.html   | 16 ++++----
 .../configuration/source-plugins/File/index.html   | 16 ++++----
 .../source-plugins/InfluxDb/index.html             | 16 ++++----
 .../configuration/source-plugins/Jdbc/index.html   | 16 ++++----
 .../configuration/source-plugins/Kafka/index.html  | 16 ++++----
 .../configuration/source-plugins/Socket/index.html | 16 ++++----
 .../source-plugins/source-plugin/index.html        | 16 ++++----
 .../transform-plugins/Split/index.html             | 16 ++++----
 .../configuration/transform-plugins/Sql/index.html | 16 ++++----
 .../transform-plugins/transform-plugin/index.html  | 16 ++++----
 docs/flink/deployment/index.html                   | 16 ++++----
 docs/flink/installation/index.html                 | 16 ++++----
 docs/flink/quick-start/index.html                  | 16 ++++----
 docs/introduction/index.html                       | 18 ++++----
 .../commands/start-seatunnel-spark.sh/index.html   | 16 ++++----
 docs/spark/configuration/ConfigExamples/index.html | 16 ++++----
 .../sink-plugins/Clickhouse/index.html             | 16 ++++----
 .../configuration/sink-plugins/Console/index.html  | 16 ++++----
 .../configuration/sink-plugins/Doris/index.html    | 16 ++++----
 .../sink-plugins/Elasticsearch/index.html          | 16 ++++----
 .../configuration/sink-plugins/Email/index.html    | 16 ++++----
 .../configuration/sink-plugins/File/index.html     | 16 ++++----
 .../configuration/sink-plugins/Hbase/index.html    | 16 ++++----
 .../configuration/sink-plugins/Hive/index.html     | 16 ++++----
 .../configuration/sink-plugins/Hudi/index.html     | 16 ++++----
 .../configuration/sink-plugins/Jdbc/index.html     | 16 ++++----
 .../configuration/sink-plugins/Kafka/index.html    | 16 ++++----
 .../configuration/sink-plugins/Kudu/index.html     | 16 ++++----
 .../configuration/sink-plugins/MongoDB/index.html  | 16 ++++----
 .../configuration/sink-plugins/Mysql/index.html    | 16 ++++----
 .../configuration/sink-plugins/Phoenix/index.html  | 16 ++++----
 .../configuration/sink-plugins/Redis/index.html    | 16 ++++----
 .../configuration/sink-plugins/Tidb/index.html     | 16 ++++----
 .../sink-plugins/sink-plugin/index.html            | 16 ++++----
 .../source-plugins/Elasticsearch/index.html        | 16 ++++----
 .../configuration/source-plugins/Fake/index.html   | 16 ++++----
 .../source-plugins/FakeStream/index.html           | 16 ++++----
 .../configuration/source-plugins/File/index.html   | 16 ++++----
 .../configuration/source-plugins/Hive/index.html   | 16 ++++----
 .../configuration/source-plugins/Hudi/index.html   | 16 ++++----
 .../configuration/source-plugins/Jdbc/index.html   | 16 ++++----
 .../source-plugins/KafkaStream/index.html          | 16 ++++----
 .../configuration/source-plugins/Kudu/index.html   | 16 ++++----
 .../source-plugins/MongoDB/index.html              | 16 ++++----
 .../source-plugins/Phoenix/index.html              | 16 ++++----
 .../configuration/source-plugins/Redis/index.html  | 16 ++++----
 .../source-plugins/SocketStream/index.html         | 16 ++++----
 .../configuration/source-plugins/Tidb/index.html   | 16 ++++----
 .../configuration/source-plugins/neo4j/index.html  | 16 ++++----
 .../source-plugins/source-plugin/index.html        | 16 ++++----
 .../transform-plugins/Json/index.html              | 16 ++++----
 .../transform-plugins/Split/index.html             | 16 ++++----
 .../configuration/transform-plugins/Sql/index.html | 16 ++++----
 .../transform-plugins/transform-plugin/index.html  | 16 ++++----
 docs/spark/deployment/index.html                   | 16 ++++----
 docs/spark/installation/index.html                 | 16 ++++----
 docs/spark/quick-start/index.html                  | 16 ++++----
 home/index.html                                    | 12 +++---
 index.html                                         | 14 +++----
 team/index.html                                    | 14 +++----
 user/index.html                                    | 14 +++----
 zh-CN/404.html                                     | 14 +++----
 .../{styles.608b4c3c.css => styles.8263371d.css}   |  2 +-
 zh-CN/assets/js/01a85c17.10e50317.js               |  1 +
 zh-CN/assets/js/01a85c17.23b45a9b.js               |  1 -
 zh-CN/assets/js/04e3e187.28d473f2.js               |  1 +
 zh-CN/assets/js/04e3e187.3cef7952.js               |  1 -
 zh-CN/assets/js/077e24c6.3fc8cb28.js               |  1 +
 zh-CN/assets/js/077e24c6.6356987d.js               |  1 -
 zh-CN/assets/js/09e60b3c.57ad73fe.js               |  1 -
 zh-CN/assets/js/09e60b3c.c5098b07.js               |  1 +
 zh-CN/assets/js/0a56bba8.8c5b75f8.js               |  1 -
 zh-CN/assets/js/0a56bba8.9e5fd1f9.js               |  1 +
 zh-CN/assets/js/0b826da0.8ee7f775.js               |  1 +
 zh-CN/assets/js/0b826da0.f1531be9.js               |  1 -
 zh-CN/assets/js/15ad2644.610179ca.js               |  1 +
 zh-CN/assets/js/15ad2644.6f5d3265.js               |  1 -
 zh-CN/assets/js/16a88d30.521ee65b.js               |  1 -
 zh-CN/assets/js/16a88d30.586797a9.js               |  1 +
 zh-CN/assets/js/16e84849.0ba42500.js               |  1 +
 zh-CN/assets/js/16e84849.abef486f.js               |  1 -
 zh-CN/assets/js/16fa9ec5.424bc023.js               |  1 -
 zh-CN/assets/js/16fa9ec5.e19a2217.js               |  1 +
 zh-CN/assets/js/17896441.6d388ece.js               |  1 -
 zh-CN/assets/js/17896441.8b693f91.js               |  1 +
 zh-CN/assets/js/17dd540a.c92c17de.js               |  1 +
 zh-CN/assets/js/17dd540a.e952eefe.js               |  1 -
 zh-CN/assets/js/18f978c8.ad7c97d5.js               |  1 +
 zh-CN/assets/js/18f978c8.e17f727e.js               |  1 -
 zh-CN/assets/js/1901809f.5642dbcf.js               |  1 +
 zh-CN/assets/js/1a8f4297.20a2c6a9.js               |  1 +
 zh-CN/assets/js/1a8f4297.8c0e965d.js               |  1 -
 zh-CN/assets/js/1bd84cdc.21b8f12a.js               |  1 -
 zh-CN/assets/js/1bd84cdc.e7b36f77.js               |  1 +
 zh-CN/assets/js/1be78505.0453a12b.js               |  1 -
 zh-CN/assets/js/1be78505.501bce39.js               |  1 +
 zh-CN/assets/js/1e6a2b85.6096c42e.js               |  1 -
 zh-CN/assets/js/1e6a2b85.99eafc40.js               |  1 +
 zh-CN/assets/js/1eb54025.5656341c.js               |  1 -
 zh-CN/assets/js/1eb54025.e3ea31b5.js               |  1 +
 zh-CN/assets/js/1f8879dc.4c5d40a8.js               |  1 +
 zh-CN/assets/js/1f8879dc.8f67ef4d.js               |  1 -
 zh-CN/assets/js/27ffc801.0f67ab4e.js               |  1 -
 zh-CN/assets/js/27ffc801.381319b1.js               |  1 +
 zh-CN/assets/js/2983068c.6ec6aa9c.js               |  1 -
 zh-CN/assets/js/2983068c.91eee327.js               |  1 +
 zh-CN/assets/js/2b25c470.573561b7.js               |  1 -
 zh-CN/assets/js/2b25c470.6d0b0f63.js               |  1 +
 .../assets/js/2e6a483b.b1d134b4.js                 |  2 +-
 zh-CN/assets/js/3a84496f.396c581f.js               |  1 +
 zh-CN/assets/js/3a84496f.5a1eae18.js               |  1 -
 zh-CN/assets/js/3afdcffa.04b5e0c4.js               |  1 +
 zh-CN/assets/js/3afdcffa.b954c0aa.js               |  1 -
 zh-CN/assets/js/41b2fee9.0ff43365.js               |  1 -
 zh-CN/assets/js/41b2fee9.63b7fbb2.js               |  1 +
 zh-CN/assets/js/4463231b.21e6c317.js               |  1 -
 zh-CN/assets/js/4463231b.2da97a74.js               |  1 +
 zh-CN/assets/js/4608.93d640b2.js                   |  1 -
 zh-CN/assets/js/4608.eb59e005.js                   |  1 +
 zh-CN/assets/js/4a4f2d90.c066785a.js               |  1 +
 zh-CN/assets/js/4bc84597.20129dc1.js               |  1 -
 zh-CN/assets/js/4bc84597.658d4bb2.js               |  1 +
 zh-CN/assets/js/5107f730.4ec76715.js               |  1 +
 zh-CN/assets/js/5107f730.ab8206cc.js               |  1 -
 zh-CN/assets/js/543ba75a.85bdf031.js               |  1 +
 zh-CN/assets/js/543ba75a.935440bf.js               |  1 -
 zh-CN/assets/js/57558aad.095950b9.js               |  1 +
 zh-CN/assets/js/57558aad.0ccf68a4.js               |  1 -
 .../assets/js/5897.06770040.js                     |  2 +-
 zh-CN/assets/js/593be373.773add37.js               |  1 -
 zh-CN/assets/js/593be373.e18ab6d5.js               |  1 +
 zh-CN/assets/js/59bc9e86.4745018c.js               |  1 -
 zh-CN/assets/js/59bc9e86.498bfd6e.js               |  1 +
 zh-CN/assets/js/5a286631.1bbd518f.js               |  1 -
 zh-CN/assets/js/5a286631.862d0a42.js               |  1 +
 zh-CN/assets/js/5ceab092.1716ad38.js               |  1 -
 zh-CN/assets/js/5ceab092.4e2eb1b9.js               |  1 +
 zh-CN/assets/js/5cfd6880.53929eec.js               |  1 +
 zh-CN/assets/js/5cfd6880.9ac6b486.js               |  1 -
 zh-CN/assets/js/6087dd36.20fff398.js               |  1 +
 zh-CN/assets/js/6087dd36.a42052ea.js               |  1 -
 zh-CN/assets/js/616b0a92.0cc3935f.js               |  1 -
 zh-CN/assets/js/616b0a92.bb44e7ab.js               |  1 +
 zh-CN/assets/js/6214aae1.1da15de4.js               |  1 +
 zh-CN/assets/js/6214aae1.f25dcee3.js               |  1 -
 zh-CN/assets/js/64a81036.3fac8d83.js               |  1 -
 zh-CN/assets/js/64a81036.cd7c9c33.js               |  1 +
 zh-CN/assets/js/66a001df.02afaa72.js               |  1 -
 zh-CN/assets/js/66a001df.ca177086.js               |  1 +
 zh-CN/assets/js/678276c4.7f503a6e.js               |  1 +
 zh-CN/assets/js/678276c4.928d3fdc.js               |  1 -
 zh-CN/assets/js/6875c492.80aa4ffd.js               |  1 +
 zh-CN/assets/js/6875c492.da6aeccf.js               |  1 -
 zh-CN/assets/js/7161e803.becb222d.js               |  1 +
 zh-CN/assets/js/7161e803.ef68dd55.js               |  1 -
 zh-CN/assets/js/7485f6a9.8253b98a.js               |  1 -
 zh-CN/assets/js/7485f6a9.c04de0c6.js               |  1 +
 zh-CN/assets/js/7b140064.4e45c323.js               |  1 +
 zh-CN/assets/js/7b140064.7dbe71f7.js               |  1 -
 zh-CN/assets/js/805ad1eb.2d544ca8.js               |  1 +
 zh-CN/assets/js/805ad1eb.7d0f05df.js               |  1 -
 zh-CN/assets/js/813ff6f3.3f36f37e.js               |  1 -
 zh-CN/assets/js/813ff6f3.7e381853.js               |  1 +
 .../assets/js/8359373c.8d8c7d7c.js                 |  2 +-
 zh-CN/assets/js/8359373c.99a77b84.js               |  1 -
 zh-CN/assets/js/848a415b.547560f0.js               |  1 -
 zh-CN/assets/js/848a415b.b89bb1be.js               |  1 +
 zh-CN/assets/js/84cba358.1292c20d.js               |  1 -
 zh-CN/assets/js/84cba358.ad3d9d30.js               |  1 +
 zh-CN/assets/js/88649cc7.288d3a24.js               |  1 +
 zh-CN/assets/js/8a166697.76264046.js               |  1 -
 zh-CN/assets/js/8a166697.ba9ae280.js               |  1 +
 zh-CN/assets/js/8d5ab53b.68c7aded.js               |  1 +
 zh-CN/assets/js/8d5ab53b.d8cab7e1.js               |  1 -
 zh-CN/assets/js/8d99b0e8.cc0abffb.js               |  1 +
 zh-CN/assets/js/8d99b0e8.cf7ae945.js               |  1 -
 zh-CN/assets/js/90d6291e.4fc31970.js               |  1 -
 zh-CN/assets/js/90d6291e.e281c82c.js               |  1 +
 zh-CN/assets/js/9236f7b3.3d1036c7.js               |  1 -
 zh-CN/assets/js/9236f7b3.b788ed22.js               |  1 +
 zh-CN/assets/js/985c5321.8a35d328.js               |  1 +
 zh-CN/assets/js/9adfc895.d40e9990.js               |  1 -
 zh-CN/assets/js/9adfc895.e40467f7.js               |  1 +
 zh-CN/assets/js/9b228c45.2d17db41.js               |  1 +
 zh-CN/assets/js/9b228c45.fe624122.js               |  1 -
 zh-CN/assets/js/9da46b7e.5187c901.js               |  1 -
 zh-CN/assets/js/9da46b7e.edb83460.js               |  1 +
 zh-CN/assets/js/9e48300a.23951627.js               |  1 +
 zh-CN/assets/js/a09c2993.7316ccab.js               |  1 -
 zh-CN/assets/js/a09c2993.dde50380.js               |  1 +
 zh-CN/assets/js/a18cd306.47e1f2d5.js               |  1 -
 zh-CN/assets/js/a18cd306.f56a3008.js               |  1 +
 zh-CN/assets/js/a227202a.3a5a750a.js               |  1 -
 zh-CN/assets/js/a227202a.7a86f4c7.js               |  1 +
 zh-CN/assets/js/a281a1a5.0cb475df.js               |  1 -
 zh-CN/assets/js/a281a1a5.3e9a69cc.js               |  1 +
 zh-CN/assets/js/a67c5390.1760f636.js               |  1 -
 zh-CN/assets/js/a67c5390.66f937d1.js               |  1 +
 zh-CN/assets/js/a6aa9e1f.5efb6f3e.js               |  1 +
 zh-CN/assets/js/a6aa9e1f.855241f5.js               |  1 -
 zh-CN/assets/js/a7c50264.97edbc52.js               |  1 +
 zh-CN/assets/js/a7c50264.f6824b57.js               |  1 -
 zh-CN/assets/js/a7dfdb02.9cd3b30b.js               |  1 +
 zh-CN/assets/js/a7dfdb02.b2ca2892.js               |  1 -
 zh-CN/assets/js/a872c320.204c766d.js               |  1 +
 zh-CN/assets/js/a872c320.2e3c023b.js               |  1 -
 zh-CN/assets/js/aa061128.1f32b3ec.js               |  1 -
 zh-CN/assets/js/aa061128.d4bf26c7.js               |  1 +
 zh-CN/assets/js/abbc9aab.35afabb2.js               |  1 -
 zh-CN/assets/js/abbc9aab.ff66e575.js               |  1 +
 zh-CN/assets/js/b0936712.1c61027c.js               |  1 -
 zh-CN/assets/js/b0936712.ba4a422a.js               |  1 +
 zh-CN/assets/js/b23b9205.4a61a5d8.js               |  1 +
 zh-CN/assets/js/b23b9205.dc42495a.js               |  1 -
 zh-CN/assets/js/be86fbab.1dfd5a5b.js               |  1 +
 zh-CN/assets/js/c0212c48.55c283fd.js               |  1 -
 zh-CN/assets/js/c0212c48.a417943d.js               |  1 +
 zh-CN/assets/js/c64563e9.203d47ea.js               |  1 +
 zh-CN/assets/js/c64563e9.ed59eefd.js               |  1 -
 zh-CN/assets/js/c6675f54.20808dc1.js               |  1 +
 zh-CN/assets/js/c6675f54.392a5737.js               |  1 -
 zh-CN/assets/js/c7c2bd87.a4b35679.js               |  1 +
 zh-CN/assets/js/c7c2bd87.cf286731.js               |  1 -
 zh-CN/assets/js/cb4af717.1ed1998c.js               |  1 -
 zh-CN/assets/js/cb4af717.cb3b8811.js               |  1 +
 zh-CN/assets/js/cc9db67d.38692bc8.js               |  1 -
 zh-CN/assets/js/cc9db67d.8b227c6c.js               |  1 +
 zh-CN/assets/js/ccc49370.70cdb5bf.js               |  1 +
 zh-CN/assets/js/ccc49370.ed48f4c5.js               |  1 -
 zh-CN/assets/js/cd7aea4a.a830d1b5.js               |  1 +
 zh-CN/assets/js/cd7aea4a.aea29e01.js               |  1 -
 zh-CN/assets/js/d050d262.7ed85664.js               |  1 +
 zh-CN/assets/js/d238cbcc.89637916.js               |  1 +
 zh-CN/assets/js/d238cbcc.eec32345.js               |  1 -
 zh-CN/assets/js/d968614a.b6684621.js               |  1 -
 zh-CN/assets/js/d968614a.de11e006.js               |  1 +
 zh-CN/assets/js/dc4fba4b.16a3924b.js               |  1 +
 zh-CN/assets/js/dc4fba4b.54599db9.js               |  1 -
 zh-CN/assets/js/de73a401.15d16181.js               |  1 +
 zh-CN/assets/js/de73a401.1ede7ab9.js               |  1 -
 zh-CN/assets/js/e27978f7.733f05c3.js               |  1 -
 zh-CN/assets/js/e27978f7.a02fd609.js               |  1 +
 zh-CN/assets/js/e689fd89.0d069c19.js               |  1 -
 zh-CN/assets/js/e689fd89.dc2186c9.js               |  1 +
 zh-CN/assets/js/e6adb9dc.55f49ae3.js               |  1 +
 zh-CN/assets/js/e6adb9dc.f31a27d2.js               |  1 -
 zh-CN/assets/js/e8521944.76cfa230.js               |  1 +
 zh-CN/assets/js/e8521944.c613d5e5.js               |  1 -
 zh-CN/assets/js/e8f13f9b.541e4fe7.js               |  1 +
 zh-CN/assets/js/eb1fff16.5d7d2fbf.js               |  1 -
 zh-CN/assets/js/eb1fff16.817fc3c5.js               |  1 +
 zh-CN/assets/js/ebe76806.1461df4a.js               |  1 +
 zh-CN/assets/js/ecbe7a3e.800aa5c1.js               |  1 +
 zh-CN/assets/js/ecbe7a3e.983970f5.js               |  1 -
 zh-CN/assets/js/ece30e0c.3da051f6.js               |  1 -
 zh-CN/assets/js/ece30e0c.8674e103.js               |  1 +
 zh-CN/assets/js/f078bfe5.3f8c4c5f.js               |  1 +
 zh-CN/assets/js/f078bfe5.cbe4d994.js               |  1 -
 zh-CN/assets/js/f16ebba6.405659dc.js               |  1 +
 zh-CN/assets/js/f16ebba6.715ee47c.js               |  1 -
 zh-CN/assets/js/f3f42ef4.1e8bc409.js               |  1 +
 zh-CN/assets/js/f3f42ef4.78176c9e.js               |  1 -
 zh-CN/assets/js/f6f539a6.d0537afa.js               |  1 -
 zh-CN/assets/js/f6f539a6.ddcb6edf.js               |  1 +
 zh-CN/assets/js/f7c0b826.c6fa7e40.js               |  1 -
 zh-CN/assets/js/f7c0b826.ece71ef2.js               |  1 +
 zh-CN/assets/js/main.ad359cf2.js                   |  2 +
 .../assets/js/main.ad359cf2.js.LICENSE.txt         |  0
 zh-CN/assets/js/main.d82eeb79.js                   |  2 -
 zh-CN/assets/js/runtime~main.5dfac47b.js           |  1 -
 zh-CN/assets/js/runtime~main.7fcf8955.js           |  1 +
 .../index.html"                                    | 46 ++++++++++-----------
 zh-CN/blog/archive/index.html                      | 14 +++----
 zh-CN/blog/atom.xml                                | 36 ++++++++--------
 zh-CN/blog/hdfs-to-clickhouse/index.html           | 14 +++----
 zh-CN/blog/hive-to-clickhouse/index.html           | 16 ++++----
 zh-CN/blog/index.html                              | 48 +++++++++++-----------
 zh-CN/blog/rss.xml                                 | 36 ++++++++--------
 zh-CN/blog/spark-execute-elasticsearch/index.html  | 16 ++++----
 zh-CN/blog/spark-execute-tidb/index.html           | 14 +++----
 zh-CN/blog/spark-structured-streaming/index.html   | 14 +++----
 zh-CN/blog/tags/click-house/index.html             | 48 +++++++++++-----------
 zh-CN/blog/tags/elasticsearch/index.html           | 16 ++++----
 zh-CN/blog/tags/hdfs/index.html                    | 16 ++++----
 zh-CN/blog/tags/hive/index.html                    | 16 ++++----
 zh-CN/blog/tags/index.html                         | 14 +++----
 zh-CN/blog/tags/kafka/index.html                   | 16 ++++----
 zh-CN/blog/tags/spark/index.html                   | 18 ++++----
 zh-CN/blog/tags/structured-streaming/index.html    | 16 ++++----
 zh-CN/blog/tags/ti-db/index.html                   | 16 ++++----
 .../index.html"                                    | 48 +++++++++++-----------
 .../contribution_guide/committer/index.html        | 16 ++++----
 .../contribution_guide/contribute/index.html       | 16 ++++----
 .../contribution_guide/subscribe/index.html        | 16 ++++----
 zh-CN/community/submit_guide/document/index.html   | 16 ++++----
 zh-CN/community/submit_guide/license/index.html    | 16 ++++----
 .../community/submit_guide/submit-code/index.html  | 16 ++++----
 zh-CN/docs/developement/FAQ/index.html             | 16 ++++----
 zh-CN/docs/developement/NewLicenseGuide/index.html | 16 ++++----
 .../commands/start-seatunnel-flink.sh/index.html   | 16 ++++----
 .../flink/configuration/ConfigExamples/index.html  | 16 ++++----
 .../configuration/sink-plugins/Console/index.html  | 16 ++++----
 .../configuration/sink-plugins/Doris/index.html    | 16 ++++----
 .../configuration/sink-plugins/Druid/index.html    | 16 ++++----
 .../sink-plugins/Elasticsearch/index.html          | 16 ++++----
 .../configuration/sink-plugins/File/index.html     | 16 ++++----
 .../configuration/sink-plugins/InfluxDb/index.html | 16 ++++----
 .../configuration/sink-plugins/Jdbc/index.html     | 16 ++++----
 .../configuration/sink-plugins/Kafka/index.html    | 16 ++++----
 .../sink-plugins/sink-plugin/index.html            | 16 ++++----
 .../configuration/source-plugins/Druid/index.html  | 16 ++++----
 .../configuration/source-plugins/Fake/index.html   | 16 ++++----
 .../configuration/source-plugins/File/index.html   | 16 ++++----
 .../source-plugins/InfluxDb/index.html             | 16 ++++----
 .../configuration/source-plugins/Jdbc/index.html   | 16 ++++----
 .../configuration/source-plugins/Kafka/index.html  | 16 ++++----
 .../configuration/source-plugins/Socket/index.html | 16 ++++----
 .../source-plugins/source-plugin/index.html        | 16 ++++----
 .../transform-plugins/Split/index.html             | 16 ++++----
 .../configuration/transform-plugins/Sql/index.html | 16 ++++----
 .../transform-plugins/transform-plugin/index.html  | 16 ++++----
 zh-CN/docs/flink/deployment/index.html             | 16 ++++----
 zh-CN/docs/flink/installation/index.html           | 16 ++++----
 zh-CN/docs/flink/quick-start/index.html            | 16 ++++----
 zh-CN/docs/introduction/index.html                 | 18 ++++----
 .../commands/start-seatunnel-spark.sh/index.html   | 16 ++++----
 .../spark/configuration/ConfigExamples/index.html  | 16 ++++----
 .../sink-plugins/Clickhouse/index.html             | 16 ++++----
 .../configuration/sink-plugins/Console/index.html  | 16 ++++----
 .../configuration/sink-plugins/Doris/index.html    | 16 ++++----
 .../sink-plugins/Elasticsearch/index.html          | 16 ++++----
 .../configuration/sink-plugins/Email/index.html    | 16 ++++----
 .../configuration/sink-plugins/File/index.html     | 16 ++++----
 .../configuration/sink-plugins/Hbase/index.html    | 16 ++++----
 .../configuration/sink-plugins/Hive/index.html     | 16 ++++----
 .../configuration/sink-plugins/Hudi/index.html     | 16 ++++----
 .../configuration/sink-plugins/Jdbc/index.html     | 16 ++++----
 .../configuration/sink-plugins/Kafka/index.html    | 16 ++++----
 .../configuration/sink-plugins/Kudu/index.html     | 16 ++++----
 .../configuration/sink-plugins/MongoDB/index.html  | 16 ++++----
 .../configuration/sink-plugins/Mysql/index.html    | 16 ++++----
 .../configuration/sink-plugins/Phoenix/index.html  | 16 ++++----
 .../configuration/sink-plugins/Redis/index.html    | 16 ++++----
 .../configuration/sink-plugins/Tidb/index.html     | 16 ++++----
 .../sink-plugins/sink-plugin/index.html            | 16 ++++----
 .../source-plugins/Elasticsearch/index.html        | 16 ++++----
 .../configuration/source-plugins/Fake/index.html   | 16 ++++----
 .../source-plugins/FakeStream/index.html           | 16 ++++----
 .../configuration/source-plugins/File/index.html   | 16 ++++----
 .../configuration/source-plugins/Hive/index.html   | 16 ++++----
 .../configuration/source-plugins/Hudi/index.html   | 16 ++++----
 .../configuration/source-plugins/Jdbc/index.html   | 16 ++++----
 .../source-plugins/KafkaStream/index.html          | 16 ++++----
 .../configuration/source-plugins/Kudu/index.html   | 16 ++++----
 .../source-plugins/MongoDB/index.html              | 16 ++++----
 .../source-plugins/Phoenix/index.html              | 16 ++++----
 .../configuration/source-plugins/Redis/index.html  | 16 ++++----
 .../source-plugins/SocketStream/index.html         | 16 ++++----
 .../configuration/source-plugins/Tidb/index.html   | 16 ++++----
 .../configuration/source-plugins/neo4j/index.html  | 16 ++++----
 .../source-plugins/source-plugin/index.html        | 16 ++++----
 .../transform-plugins/Json/index.html              | 16 ++++----
 .../transform-plugins/Split/index.html             | 16 ++++----
 .../configuration/transform-plugins/Sql/index.html | 16 ++++----
 .../transform-plugins/transform-plugin/index.html  | 16 ++++----
 zh-CN/docs/spark/deployment/index.html             | 16 ++++----
 zh-CN/docs/spark/installation/index.html           | 16 ++++----
 zh-CN/docs/spark/quick-start/index.html            | 16 ++++----
 zh-CN/home/index.html                              | 12 +++---
 zh-CN/index.html                                   | 14 +++----
 zh-CN/team/index.html                              | 14 +++----
 zh-CN/user/index.html                              | 14 +++----
 621 files changed, 2002 insertions(+), 1984 deletions(-)

diff --git a/404.html b/404.html
index 82d4359..8eb4ca0 100644
--- a/404.html
+++ b/404.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Page Not Found | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="Page Not Found | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/404.html"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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 style="margin-top: 20px;background: #f4f8fa">
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/css/styles.66709117.css b/assets/css/styles.4453a582.css
similarity index 67%
rename from assets/css/styles.66709117.css
rename to assets/css/styles.4453a582.css
index 6c48170..1d78b42 100644
--- a/assets/css/styles.66709117.css
+++ b/assets/css/styles.4453a582.css
@@ -1 +1 @@
-.container,.row .col{padding:0 var(--ifm-spacing-horizontal);width:100%}.row .col,img{max-width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,.toggle_Pssr{-webkit-user-select:none;-ms-user-select:none}.button,c [...]
\ No newline at end of file
+.container,.row .col{padding:0 var(--ifm-spacing-horizontal);width:100%}.row .col,img{max-width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,.toggle_Pssr{-webkit-user-select:none;-ms-user-select:none}.button,c [...]
\ No newline at end of file
diff --git a/assets/js/01a85c17.10e50317.js b/assets/js/01a85c17.10e50317.js
new file mode 100644
index 0000000..0110623
--- /dev/null
+++ b/assets/js/01a85c17.10e50317.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4013],{8665:function(e,t,a){a.d(t,{Z:function(){return p}});var n=a(3366),r=a(7294),l=a(6010),s=a(2434),c=a(9960),i="sidebar_a9qW",m="sidebarItemTitle_uKok",o="sidebarItemList_Kvuv",u="sidebarItem_CF0Q",g="sidebarItemLink_miNk",d="sidebarItemLinkActive_RRTD",b=a(5999);function E(e){var t=e.sidebar;return 0===t.items.length?null:r.createElement("nav",{className:(0,l.Z)(i,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/assets/js/01a85c17.23b45a9b.js b/assets/js/01a85c17.23b45a9b.js
deleted file mode 100644
index b12756f..0000000
--- a/assets/js/01a85c17.23b45a9b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4013],{8665:function(e,t,a){a.d(t,{Z:function(){return p}});var n=a(3366),r=a(7294),l=a(6010),s=a(2434),c=a(9960),i="sidebar_a9qW",m="sidebarItemTitle_uKok",o="sidebarItemList_Kvuv",u="sidebarItem_CF0Q",g="sidebarItemLink_miNk",d="sidebarItemLinkActive_RRTD",b=a(5999);function v(e){var t=e.sidebar;return 0===t.items.length?null:r.createElement("nav",{className:(0,l.Z)(i,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/assets/js/022ca2a7.52dc4041.js b/assets/js/022ca2a7.52dc4041.js
new file mode 100644
index 0000000..2b1706e
--- /dev/null
+++ b/assets/js/022ca2a7.52dc4041.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9883],{7266:function(e){e.exports=JSON.parse('{"permalink":"/blog/tags/ti-db","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/04e3e187.06cbe7f3.js b/assets/js/04e3e187.06cbe7f3.js
new file mode 100644
index 0000000..86ac9b4
--- /dev/null
+++ b/assets/js/04e3e187.06cbe7f3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1177],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/04e3e187.474fc9a2.js b/assets/js/04e3e187.474fc9a2.js
deleted file mode 100644
index 3c886ad..0000000
--- a/assets/js/04e3e187.474fc9a2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1177],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/063d0194.57630417.js b/assets/js/063d0194.57630417.js
new file mode 100644
index 0000000..bce81f3
--- /dev/null
+++ b/assets/js/063d0194.57630417.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5080],{5633:function(e){e.exports=JSON.parse('{"permalink":"/blog/tags/structured-streaming","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/08dd1cb1.2a788d10.js b/assets/js/08dd1cb1.2a788d10.js
new file mode 100644
index 0000000..df6d516
--- /dev/null
+++ b/assets/js/08dd1cb1.2a788d10.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6138],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return p}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/08dd1cb1.56e2e188.js b/assets/js/08dd1cb1.56e2e188.js
deleted file mode 100644
index ed6f9a9..0000000
--- a/assets/js/08dd1cb1.56e2e188.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6138],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return p}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/09e60b3c.4ec83be6.js b/assets/js/09e60b3c.4ec83be6.js
new file mode 100644
index 0000000..04ea6e4
--- /dev/null
+++ b/assets/js/09e60b3c.4ec83be6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6942],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/09e60b3c.66318b84.js b/assets/js/09e60b3c.66318b84.js
deleted file mode 100644
index e476c74..0000000
--- a/assets/js/09e60b3c.66318b84.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6942],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/0b826da0.27a3cbba.js b/assets/js/0b826da0.27a3cbba.js
new file mode 100644
index 0000000..bc600b2
--- /dev/null
+++ b/assets/js/0b826da0.27a3cbba.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4032],{3905:function(e,n,t){t.d(n,{Zo:function(){return u},kt:function(){return f}});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 o(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/0b826da0.cda423ac.js b/assets/js/0b826da0.cda423ac.js
deleted file mode 100644
index 12d1e59..0000000
--- a/assets/js/0b826da0.cda423ac.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4032],{3905:function(e,n,t){t.d(n,{Zo:function(){return u},kt:function(){return m}});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 o(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/14354f1c.3a3eba5d.js b/assets/js/14354f1c.3a3eba5d.js
new file mode 100644
index 0000000..8509e3d
--- /dev/null
+++ b/assets/js/14354f1c.3a3eba5d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9971],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return p}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/14354f1c.5892ef9d.js b/assets/js/14354f1c.5892ef9d.js
deleted file mode 100644
index c2e24d4..0000000
--- a/assets/js/14354f1c.5892ef9d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9971],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return p}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/16a88d30.236f20f6.js b/assets/js/16a88d30.236f20f6.js
new file mode 100644
index 0000000..2e5ba1f
--- /dev/null
+++ b/assets/js/16a88d30.236f20f6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4474],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return m}});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/16a88d30.8f9303d8.js b/assets/js/16a88d30.8f9303d8.js
deleted file mode 100644
index c2a8f15..0000000
--- a/assets/js/16a88d30.8f9303d8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4474],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return m}});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/16e84849.5c09bb5f.js b/assets/js/16e84849.5c09bb5f.js
new file mode 100644
index 0000000..c807bb8
--- /dev/null
+++ b/assets/js/16e84849.5c09bb5f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4757],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/16e84849.8594acdc.js b/assets/js/16e84849.8594acdc.js
deleted file mode 100644
index 03bb1e2..0000000
--- a/assets/js/16e84849.8594acdc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4757],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/16fa9ec5.360122d7.js b/assets/js/16fa9ec5.360122d7.js
deleted file mode 100644
index a67292b..0000000
--- a/assets/js/16fa9ec5.360122d7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3053],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return m}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/16fa9ec5.e53a2592.js b/assets/js/16fa9ec5.e53a2592.js
new file mode 100644
index 0000000..83e0291
--- /dev/null
+++ b/assets/js/16fa9ec5.e53a2592.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3053],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return c}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/17896441.6d388ece.js b/assets/js/17896441.6d388ece.js
deleted file mode 100644
index 8f7de38..0000000
--- a/assets/js/17896441.6d388ece.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7918],{6237:function(e,t,a){a.r(t),a.d(t,{default:function(){return F}});var n=a(7294),l=a(6010),i=a(7462),r=a(5999),s=a(1750);var o=function(e){var t=e.previous,a=e.next;return n.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},n. [...]
\ No newline at end of file
diff --git a/assets/js/17896441.8b693f91.js b/assets/js/17896441.8b693f91.js
new file mode 100644
index 0000000..267cdcb
--- /dev/null
+++ b/assets/js/17896441.8b693f91.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7918],{2179:function(e,t,a){a.r(t),a.d(t,{default:function(){return W}});var n=a(7294),l=a(6010),r=a(7462),i=a(5999),s=a(1750);function c(e){var t=e.previous,a=e.next;return n.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},n.crea [...]
\ No newline at end of file
diff --git a/assets/js/17dd540a.52b6aa70.js b/assets/js/17dd540a.52b6aa70.js
deleted file mode 100644
index e850710..0000000
--- a/assets/js/17dd540a.52b6aa70.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9520],{3905:function(t,e,n){n.d(e,{Zo:function(){return c},kt:function(){return g}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/17dd540a.822bd1ca.js b/assets/js/17dd540a.822bd1ca.js
new file mode 100644
index 0000000..0458b51
--- /dev/null
+++ b/assets/js/17dd540a.822bd1ca.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9520],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return g}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/18f978c8.9b829791.js b/assets/js/18f978c8.9b829791.js
new file mode 100644
index 0000000..21c5862
--- /dev/null
+++ b/assets/js/18f978c8.9b829791.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6316],{3905:function(e,n,t){t.d(n,{Zo:function(){return s},kt:function(){return f}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(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/18f978c8.f2a73a79.js b/assets/js/18f978c8.f2a73a79.js
deleted file mode 100644
index 0616f0a..0000000
--- a/assets/js/18f978c8.f2a73a79.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6316],{3905:function(e,n,t){t.d(n,{Zo:function(){return d},kt:function(){return m}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(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/1a8f4297.57af6f8f.js b/assets/js/1a8f4297.57af6f8f.js
new file mode 100644
index 0000000..6bb4efa
--- /dev/null
+++ b/assets/js/1a8f4297.57af6f8f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3435],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return d}});var a=t(7294);function r(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 a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/1a8f4297.c712c2c7.js b/assets/js/1a8f4297.c712c2c7.js
deleted file mode 100644
index 26b746c..0000000
--- a/assets/js/1a8f4297.c712c2c7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3435],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return d}});var a=t(7294);function r(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 a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/1bd84cdc.599685ba.js b/assets/js/1bd84cdc.599685ba.js
deleted file mode 100644
index bb4e083..0000000
--- a/assets/js/1bd84cdc.599685ba.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[689],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return g}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e [...]
\ No newline at end of file
diff --git a/assets/js/1bd84cdc.dbfc47e4.js b/assets/js/1bd84cdc.dbfc47e4.js
new file mode 100644
index 0000000..30d1f9c
--- /dev/null
+++ b/assets/js/1bd84cdc.dbfc47e4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[689],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return g}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e [...]
\ No newline at end of file
diff --git a/assets/js/1be78505.0453a12b.js b/assets/js/1be78505.0453a12b.js
deleted file mode 100644
index 41ba20f..0000000
--- a/assets/js/1be78505.0453a12b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9514,4608],{6756:function(e,t,a){a.r(t),a.d(t,{default:function(){return ee}});var n=a(7294),l=a(3905),r=a(6291),o=a(2434),i=a(6010),c=a(9548),s=a(5537),d=a(7462);var u=function(e){return n.createElement("svg",(0,d.Z)({width:"20",height:"20","aria-hidden":"true"},e),n.createElement("g",{fill:"#7a7a7a"},n.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-. [...]
\ No newline at end of file
diff --git a/assets/js/1be78505.501bce39.js b/assets/js/1be78505.501bce39.js
new file mode 100644
index 0000000..d8537af
--- /dev/null
+++ b/assets/js/1be78505.501bce39.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9514,4608],{6756:function(e,t,a){a.r(t),a.d(t,{default:function(){return ee}});var n=a(7294),l=a(3905),r=a(8790),o=a(2434),i=a(6010),c=a(5450),s=a(5537),d=a(7462);function m(e){return n.createElement("svg",(0,d.Z)({width:"20",height:"20","aria-hidden":"true"},e),n.createElement("g",{fill:"#7a7a7a"},n.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828. [...]
\ No newline at end of file
diff --git a/assets/js/1e6a2b85.3191df6d.js b/assets/js/1e6a2b85.3191df6d.js
new file mode 100644
index 0000000..6efc301
--- /dev/null
+++ b/assets/js/1e6a2b85.3191df6d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5079],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/1e6a2b85.f34f2a1a.js b/assets/js/1e6a2b85.f34f2a1a.js
deleted file mode 100644
index 5716de6..0000000
--- a/assets/js/1e6a2b85.f34f2a1a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5079],{3905:function(e,n,t){t.d(n,{Zo:function(){return s},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 o(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/1eb54025.628a5aab.js b/assets/js/1eb54025.628a5aab.js
new file mode 100644
index 0000000..8436dea
--- /dev/null
+++ b/assets/js/1eb54025.628a5aab.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[752],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return k}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t [...]
\ No newline at end of file
diff --git a/assets/js/1eb54025.ba0ce7d1.js b/assets/js/1eb54025.ba0ce7d1.js
deleted file mode 100644
index 7d7c7d4..0000000
--- a/assets/js/1eb54025.ba0ce7d1.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[752],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t [...]
\ No newline at end of file
diff --git a/assets/js/2983068c.611a7bee.js b/assets/js/2983068c.611a7bee.js
new file mode 100644
index 0000000..f8f71c6
--- /dev/null
+++ b/assets/js/2983068c.611a7bee.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8268],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/2983068c.77233546.js b/assets/js/2983068c.77233546.js
deleted file mode 100644
index 84e3c3d..0000000
--- a/assets/js/2983068c.77233546.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8268],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/2c85b2ce.515f73f7.js b/assets/js/2c85b2ce.515f73f7.js
deleted file mode 100644
index 8e13ee9..0000000
--- a/assets/js/2c85b2ce.515f73f7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6495],{3905:function(e,t,a){a.d(t,{Zo:function(){return c},kt:function(){return m}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/2c85b2ce.89b00de2.js b/assets/js/2c85b2ce.89b00de2.js
new file mode 100644
index 0000000..aeab817
--- /dev/null
+++ b/assets/js/2c85b2ce.89b00de2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6495],{3905:function(e,t,a){a.d(t,{Zo:function(){return c},kt:function(){return m}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/2e6a483b.390d40b1.js b/assets/js/2e6a483b.c2587174.js
similarity index 54%
rename from zh-CN/assets/js/2e6a483b.390d40b1.js
rename to assets/js/2e6a483b.c2587174.js
index 248be9e..4de79a1 100644
--- a/zh-CN/assets/js/2e6a483b.390d40b1.js
+++ b/assets/js/2e6a483b.c2587174.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9013],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return m}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9013],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return m}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/33d00a6b.8f1411dc.js b/assets/js/33d00a6b.8f1411dc.js
new file mode 100644
index 0000000..4626d06
--- /dev/null
+++ b/assets/js/33d00a6b.8f1411dc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7809],{3479:function(e){e.exports=JSON.parse('{"permalink":"/blog/tags/click-house","page":1,"postsPerPage":10,"totalPages":1,"totalCount":3,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/35a4b3d1.629c58b2.js b/assets/js/35a4b3d1.629c58b2.js
new file mode 100644
index 0000000..fad9777
--- /dev/null
+++ b/assets/js/35a4b3d1.629c58b2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8779],{8379:function(e){e.exports=JSON.parse('{"permalink":"/blog/tags/spark","page":1,"postsPerPage":10,"totalPages":1,"totalCount":3,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/3afdcffa.489bf9ed.js b/assets/js/3afdcffa.489bf9ed.js
deleted file mode 100644
index fd61768..0000000
--- a/assets/js/3afdcffa.489bf9ed.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8473],{3905:function(t,e,n){n.d(e,{Zo:function(){return o},kt:function(){return g}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/3afdcffa.c1d3702c.js b/assets/js/3afdcffa.c1d3702c.js
new file mode 100644
index 0000000..e954320
--- /dev/null
+++ b/assets/js/3afdcffa.c1d3702c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8473],{3905:function(t,e,n){n.d(e,{Zo:function(){return o},kt:function(){return g}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/3e61211a.57f1d89d.js b/assets/js/3e61211a.57f1d89d.js
deleted file mode 100644
index 4fc7ca0..0000000
--- a/assets/js/3e61211a.57f1d89d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5838],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return b}});var i=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/3e61211a.a95fdd02.js b/assets/js/3e61211a.a95fdd02.js
new file mode 100644
index 0000000..71fbb7b
--- /dev/null
+++ b/assets/js/3e61211a.a95fdd02.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5838],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return b}});var i=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/41b2fee9.1ee8ff6c.js b/assets/js/41b2fee9.1ee8ff6c.js
deleted file mode 100644
index f665633..0000000
--- a/assets/js/41b2fee9.1ee8ff6c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3566],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/41b2fee9.b85d5568.js b/assets/js/41b2fee9.b85d5568.js
new file mode 100644
index 0000000..00d09e2
--- /dev/null
+++ b/assets/js/41b2fee9.b85d5568.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3566],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(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/4463231b.175ba336.js b/assets/js/4463231b.175ba336.js
deleted file mode 100644
index 4754c02..0000000
--- a/assets/js/4463231b.175ba336.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7502],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return f}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/4463231b.6b9c9b2f.js b/assets/js/4463231b.6b9c9b2f.js
new file mode 100644
index 0000000..008e3f7
--- /dev/null
+++ b/assets/js/4463231b.6b9c9b2f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7502],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return f}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/4608.93d640b2.js b/assets/js/4608.93d640b2.js
deleted file mode 100644
index 921daeb..0000000
--- a/assets/js/4608.93d640b2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4608],{4608:function(e,t,n){n.r(t);var a=n(7294),o=n(2434),l=n(5999);t.default=function(){return a.createElement(o.Z,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})},a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title" [...]
\ No newline at end of file
diff --git a/assets/js/4608.eb59e005.js b/assets/js/4608.eb59e005.js
new file mode 100644
index 0000000..1a541d3
--- /dev/null
+++ b/assets/js/4608.eb59e005.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4608],{4608:function(e,t,n){n.r(t),n.d(t,{default:function(){return i}});var a=n(7294),o=n(2434),l=n(5999);function i(){return a.createElement(o.Z,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})},a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement [...]
\ No newline at end of file
diff --git a/assets/js/470e1f07.2a779537.js b/assets/js/470e1f07.2a779537.js
deleted file mode 100644
index 52a379a..0000000
--- a/assets/js/470e1f07.2a779537.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1264],{3905:function(e,t,a){a.d(t,{Zo:function(){return c},kt:function(){return m}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/470e1f07.954939e2.js b/assets/js/470e1f07.954939e2.js
new file mode 100644
index 0000000..c260e2e
--- /dev/null
+++ b/assets/js/470e1f07.954939e2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1264],{3905:function(e,t,a){a.d(t,{Zo:function(){return c},kt:function(){return m}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/47457315.851e75c5.js b/assets/js/47457315.851e75c5.js
new file mode 100644
index 0000000..ce576af
--- /dev/null
+++ b/assets/js/47457315.851e75c5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1380],{5755:function(e){e.exports=JSON.parse('{"permalink":"/blog/tags/kafka","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/4b015457.453a6416.js b/assets/js/4b015457.453a6416.js
deleted file mode 100644
index 843fe83..0000000
--- a/assets/js/4b015457.453a6416.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3526],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/4b015457.affac982.js b/assets/js/4b015457.affac982.js
new file mode 100644
index 0000000..a52bbb2
--- /dev/null
+++ b/assets/js/4b015457.affac982.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3526],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/4bc84597.0080d2e7.js b/assets/js/4bc84597.0080d2e7.js
deleted file mode 100644
index fa99c3f..0000000
--- a/assets/js/4bc84597.0080d2e7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6303],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/4bc84597.1fee3038.js b/assets/js/4bc84597.1fee3038.js
new file mode 100644
index 0000000..b5116ed
--- /dev/null
+++ b/assets/js/4bc84597.1fee3038.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6303],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/4d27e8d4.386e782d.js b/assets/js/4d27e8d4.386e782d.js
deleted file mode 100644
index 9c82dc3..0000000
--- a/assets/js/4d27e8d4.386e782d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3733],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return h}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(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/4d27e8d4.e9ae0db8.js b/assets/js/4d27e8d4.e9ae0db8.js
new file mode 100644
index 0000000..d7dc4c2
--- /dev/null
+++ b/assets/js/4d27e8d4.e9ae0db8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3733],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return h}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(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/5107f730.276370f2.js b/assets/js/5107f730.276370f2.js
new file mode 100644
index 0000000..293edda
--- /dev/null
+++ b/assets/js/5107f730.276370f2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3998],{3905:function(t,e,n){n.d(e,{Zo:function(){return d},kt:function(){return g}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/5107f730.a026d39f.js b/assets/js/5107f730.a026d39f.js
deleted file mode 100644
index 7db36d6..0000000
--- a/assets/js/5107f730.a026d39f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3998],{3905:function(t,e,n){n.d(e,{Zo:function(){return o},kt:function(){return g}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/543ba75a.294c3d25.js b/assets/js/543ba75a.294c3d25.js
new file mode 100644
index 0000000..a7d383b
--- /dev/null
+++ b/assets/js/543ba75a.294c3d25.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2860],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/543ba75a.2e6c072d.js b/assets/js/543ba75a.2e6c072d.js
deleted file mode 100644
index a819758..0000000
--- a/assets/js/543ba75a.2e6c072d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2860],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/57558aad.96ef398d.js b/assets/js/57558aad.96ef398d.js
deleted file mode 100644
index c04bbe3..0000000
--- a/assets/js/57558aad.96ef398d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4869],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function l(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/57558aad.df249cba.js b/assets/js/57558aad.df249cba.js
new file mode 100644
index 0000000..5321371
--- /dev/null
+++ b/assets/js/57558aad.df249cba.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4869],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/5828a256.d4609b26.js b/assets/js/5828a256.d4609b26.js
new file mode 100644
index 0000000..8a8e4f2
--- /dev/null
+++ b/assets/js/5828a256.d4609b26.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[206],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t [...]
\ No newline at end of file
diff --git a/assets/js/5828a256.f30a188f.js b/assets/js/5828a256.f30a188f.js
deleted file mode 100644
index eb9717b..0000000
--- a/assets/js/5828a256.f30a188f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[206],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/5897.70d3e0d6.js b/assets/js/5897.06770040.js
similarity index 98%
rename from zh-CN/assets/js/5897.70d3e0d6.js
rename to assets/js/5897.06770040.js
index a6975cb..fd43093 100644
--- a/zh-CN/assets/js/5897.70d3e0d6.js
+++ b/assets/js/5897.06770040.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5897],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5897],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/593be373.18ce751c.js b/assets/js/593be373.18ce751c.js
new file mode 100644
index 0000000..a504ced
--- /dev/null
+++ b/assets/js/593be373.18ce751c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4206],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return f}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(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/593be373.c72d471c.js b/assets/js/593be373.c72d471c.js
deleted file mode 100644
index 635ba49..0000000
--- a/assets/js/593be373.c72d471c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4206],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return f}});var r=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(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/59bc9e86.9f1714f2.js b/assets/js/59bc9e86.9f1714f2.js
deleted file mode 100644
index 5e72aa1..0000000
--- a/assets/js/59bc9e86.9f1714f2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3376],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/59bc9e86.b2f4b87c.js b/assets/js/59bc9e86.b2f4b87c.js
new file mode 100644
index 0000000..a66b164
--- /dev/null
+++ b/assets/js/59bc9e86.b2f4b87c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3376],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/5a286631.9ae2e7a1.js b/assets/js/5a286631.9ae2e7a1.js
deleted file mode 100644
index 593b411..0000000
--- a/assets/js/5a286631.9ae2e7a1.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8252],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return g}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/5a286631.a28abd23.js b/assets/js/5a286631.a28abd23.js
new file mode 100644
index 0000000..b17d708
--- /dev/null
+++ b/assets/js/5a286631.a28abd23.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8252],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/5ceab092.1f6bd27c.js b/assets/js/5ceab092.1f6bd27c.js
new file mode 100644
index 0000000..d67a32b
--- /dev/null
+++ b/assets/js/5ceab092.1f6bd27c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6579],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/5ceab092.492ad9d4.js b/assets/js/5ceab092.492ad9d4.js
deleted file mode 100644
index 0b0ac39..0000000
--- a/assets/js/5ceab092.492ad9d4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6579],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/5cfd6880.34b95082.js b/assets/js/5cfd6880.34b95082.js
deleted file mode 100644
index 484ddf1..0000000
--- a/assets/js/5cfd6880.34b95082.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4714],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/5cfd6880.83683c8b.js b/assets/js/5cfd6880.83683c8b.js
new file mode 100644
index 0000000..c04d69c
--- /dev/null
+++ b/assets/js/5cfd6880.83683c8b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4714],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/6087dd36.273c4d43.js b/assets/js/6087dd36.273c4d43.js
new file mode 100644
index 0000000..8d29b33
--- /dev/null
+++ b/assets/js/6087dd36.273c4d43.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8633],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/6087dd36.3c149c7f.js b/assets/js/6087dd36.3c149c7f.js
deleted file mode 100644
index 4c298c2..0000000
--- a/assets/js/6087dd36.3c149c7f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8633],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/616b0a92.0f71f90c.js b/assets/js/616b0a92.0f71f90c.js
new file mode 100644
index 0000000..d566edd
--- /dev/null
+++ b/assets/js/616b0a92.0f71f90c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5899],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/616b0a92.6ba002b8.js b/assets/js/616b0a92.6ba002b8.js
deleted file mode 100644
index 29ec456..0000000
--- a/assets/js/616b0a92.6ba002b8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5899],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/6214aae1.8e475d56.js b/assets/js/6214aae1.8e475d56.js
deleted file mode 100644
index 8dc9cc8..0000000
--- a/assets/js/6214aae1.8e475d56.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4305],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/6214aae1.9a6e2bf8.js b/assets/js/6214aae1.9a6e2bf8.js
new file mode 100644
index 0000000..afdcd3d
--- /dev/null
+++ b/assets/js/6214aae1.9a6e2bf8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4305],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/64a81036.9ece2ab6.js b/assets/js/64a81036.9ece2ab6.js
new file mode 100644
index 0000000..87217e1
--- /dev/null
+++ b/assets/js/64a81036.9ece2ab6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3690],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/64a81036.a740af29.js b/assets/js/64a81036.a740af29.js
deleted file mode 100644
index 9bbff1d..0000000
--- a/assets/js/64a81036.a740af29.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3690],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/66a001df.2d6c4c81.js b/assets/js/66a001df.2d6c4c81.js
deleted file mode 100644
index d492408..0000000
--- a/assets/js/66a001df.2d6c4c81.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2664],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/66a001df.6647a1de.js b/assets/js/66a001df.6647a1de.js
new file mode 100644
index 0000000..e290baf
--- /dev/null
+++ b/assets/js/66a001df.6647a1de.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2664],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/678276c4.85f7d2b0.js b/assets/js/678276c4.85f7d2b0.js
new file mode 100644
index 0000000..c38c6ba
--- /dev/null
+++ b/assets/js/678276c4.85f7d2b0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4084],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},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 s(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/678276c4.8c5b3417.js b/assets/js/678276c4.8c5b3417.js
deleted file mode 100644
index a80f203..0000000
--- a/assets/js/678276c4.8c5b3417.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4084],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},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 s(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/6875c492.80aa4ffd.js b/assets/js/6875c492.80aa4ffd.js
new file mode 100644
index 0000000..e4f35dc
--- /dev/null
+++ b/assets/js/6875c492.80aa4ffd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8610],{8665:function(e,t,a){a.d(t,{Z:function(){return b}});var r=a(3366),n=a(7294),l=a(6010),i=a(2434),s=a(9960),m="sidebar_a9qW",o="sidebarItemTitle_uKok",c="sidebarItemList_Kvuv",g="sidebarItem_CF0Q",u="sidebarItemLink_miNk",d="sidebarItemLinkActive_RRTD",p=a(5999);function h(e){var t=e.sidebar;return 0===t.items.length?null:n.createElement("nav",{className:(0,l.Z)(m,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/assets/js/6875c492.da6aeccf.js b/assets/js/6875c492.da6aeccf.js
deleted file mode 100644
index fb0fd6f..0000000
--- a/assets/js/6875c492.da6aeccf.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8610],{8665:function(e,t,a){a.d(t,{Z:function(){return v}});var r=a(3366),l=a(7294),n=a(6010),s=a(2434),i=a(9960),m="sidebar_a9qW",o="sidebarItemTitle_uKok",c="sidebarItemList_Kvuv",u="sidebarItem_CF0Q",g="sidebarItemLink_miNk",d="sidebarItemLinkActive_RRTD",p=a(5999);function h(e){var t=e.sidebar;return 0===t.items.length?null:l.createElement("nav",{className:(0,n.Z)(m,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/assets/js/7161e803.2c3d942c.js b/assets/js/7161e803.2c3d942c.js
new file mode 100644
index 0000000..ef3109a
--- /dev/null
+++ b/assets/js/7161e803.2c3d942c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9876],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return m}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(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/7161e803.83f565e6.js b/assets/js/7161e803.83f565e6.js
deleted file mode 100644
index edf3c00..0000000
--- a/assets/js/7161e803.83f565e6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9876],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return m}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(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/7485f6a9.33b53fd3.js b/assets/js/7485f6a9.33b53fd3.js
new file mode 100644
index 0000000..f17dac2
--- /dev/null
+++ b/assets/js/7485f6a9.33b53fd3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3977],{3905:function(e,t,n){n.d(t,{Zo:function(){return m},kt:function(){return c}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/7485f6a9.555ab79b.js b/assets/js/7485f6a9.555ab79b.js
deleted file mode 100644
index d6356f9..0000000
--- a/assets/js/7485f6a9.555ab79b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3977],{3905:function(e,t,n){n.d(t,{Zo:function(){return m},kt:function(){return c}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/750c74f2.7aa41bee.js b/assets/js/750c74f2.7aa41bee.js
deleted file mode 100644
index 2dd1257..0000000
--- a/assets/js/750c74f2.7aa41bee.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6505],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/750c74f2.caf44409.js b/assets/js/750c74f2.caf44409.js
new file mode 100644
index 0000000..1d4da0d
--- /dev/null
+++ b/assets/js/750c74f2.caf44409.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6505],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/805ad1eb.15aa5abc.js b/assets/js/805ad1eb.15aa5abc.js
new file mode 100644
index 0000000..ad51bd9
--- /dev/null
+++ b/assets/js/805ad1eb.15aa5abc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2741],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/805ad1eb.998e572e.js b/assets/js/805ad1eb.998e572e.js
deleted file mode 100644
index e231fe4..0000000
--- a/assets/js/805ad1eb.998e572e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2741],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/8359373c.546b434b.js b/assets/js/8359373c.546b434b.js
new file mode 100644
index 0000000..6d43384
--- /dev/null
+++ b/assets/js/8359373c.546b434b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7336],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return m}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/88a3f98d.1de4b794.js b/assets/js/88a3f98d.1de4b794.js
new file mode 100644
index 0000000..6260d09
--- /dev/null
+++ b/assets/js/88a3f98d.1de4b794.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 o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(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.5d9cfbe7.js b/assets/js/88a3f98d.5d9cfbe7.js
deleted file mode 100644
index 34cb6e5..0000000
--- a/assets/js/88a3f98d.5d9cfbe7.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 r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/8a166697.5e940098.js b/assets/js/8a166697.5e940098.js
deleted file mode 100644
index 31e8040..0000000
--- a/assets/js/8a166697.5e940098.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1922],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return f}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/8a166697.93e551d6.js b/assets/js/8a166697.93e551d6.js
new file mode 100644
index 0000000..5b1fdea
--- /dev/null
+++ b/assets/js/8a166697.93e551d6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1922],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return f}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/8d5ab53b.29558b0c.js b/assets/js/8d5ab53b.29558b0c.js
deleted file mode 100644
index 21162a6..0000000
--- a/assets/js/8d5ab53b.29558b0c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2660],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/8d5ab53b.a8349ca7.js b/assets/js/8d5ab53b.a8349ca7.js
new file mode 100644
index 0000000..c35a7c9
--- /dev/null
+++ b/assets/js/8d5ab53b.a8349ca7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2660],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/8d99b0e8.b7077b74.js b/assets/js/8d99b0e8.b7077b74.js
new file mode 100644
index 0000000..8dc87d7
--- /dev/null
+++ b/assets/js/8d99b0e8.b7077b74.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1522],{3905:function(t,e,n){n.d(e,{Zo:function(){return m},kt:function(){return k}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/8d99b0e8.d7645ec9.js b/assets/js/8d99b0e8.d7645ec9.js
deleted file mode 100644
index 856639d..0000000
--- a/assets/js/8d99b0e8.d7645ec9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1522],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return k}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/90b38822.62ff3f6f.js b/assets/js/90b38822.62ff3f6f.js
deleted file mode 100644
index 61ebcca..0000000
--- a/assets/js/90b38822.62ff3f6f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5279],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var i=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/90b38822.fb61137f.js b/assets/js/90b38822.fb61137f.js
new file mode 100644
index 0000000..2e50445
--- /dev/null
+++ b/assets/js/90b38822.fb61137f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5279],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return d}});var i=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/90d6291e.204e9418.js b/assets/js/90d6291e.204e9418.js
new file mode 100644
index 0000000..30c5284
--- /dev/null
+++ b/assets/js/90d6291e.204e9418.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2919],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return f}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/90d6291e.de97b973.js b/assets/js/90d6291e.de97b973.js
deleted file mode 100644
index 200158b..0000000
--- a/assets/js/90d6291e.de97b973.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2919],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/941e56ee.6f98663b.js b/assets/js/941e56ee.6f98663b.js
new file mode 100644
index 0000000..149bdce
--- /dev/null
+++ b/assets/js/941e56ee.6f98663b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2569],{8902:function(e){e.exports=JSON.parse('{"permalink":"/blog/tags/hdfs","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/950567ae.6df0292f.js b/assets/js/950567ae.6df0292f.js
new file mode 100644
index 0000000..8c74edc
--- /dev/null
+++ b/assets/js/950567ae.6df0292f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7302],{4935:function(e){e.exports=JSON.parse('{"permalink":"/blog/tags/vip","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/9adfc895.ba5ef429.js b/assets/js/9adfc895.ba5ef429.js
deleted file mode 100644
index 6e42262..0000000
--- a/assets/js/9adfc895.ba5ef429.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5699],{3905:function(e,n,t){t.d(n,{Zo:function(){return u},kt:function(){return f}});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/9adfc895.d78e26db.js b/assets/js/9adfc895.d78e26db.js
new file mode 100644
index 0000000..5415c2a
--- /dev/null
+++ b/assets/js/9adfc895.d78e26db.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5699],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return f}});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/9b228c45.632fffec.js b/assets/js/9b228c45.632fffec.js
new file mode 100644
index 0000000..4f792a3
--- /dev/null
+++ b/assets/js/9b228c45.632fffec.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8827],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/9b228c45.7df6f126.js b/assets/js/9b228c45.7df6f126.js
deleted file mode 100644
index 18a56fd..0000000
--- a/assets/js/9b228c45.7df6f126.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8827],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/9bbe1211.75e6f5a2.js b/assets/js/9bbe1211.75e6f5a2.js
deleted file mode 100644
index 947f4b9..0000000
--- a/assets/js/9bbe1211.75e6f5a2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3559],{3905:function(e,t,a){a.d(t,{Zo:function(){return u},kt:function(){return h}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/9bbe1211.f8c81a04.js b/assets/js/9bbe1211.f8c81a04.js
new file mode 100644
index 0000000..933bd3b
--- /dev/null
+++ b/assets/js/9bbe1211.f8c81a04.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3559],{3905:function(e,t,a){a.d(t,{Zo:function(){return u},kt:function(){return h}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/a09c2993.797a8d0a.js b/assets/js/a09c2993.797a8d0a.js
new file mode 100644
index 0000000..58d5e4f
--- /dev/null
+++ b/assets/js/a09c2993.797a8d0a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4128],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},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 o(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/a09c2993.f331a004.js b/assets/js/a09c2993.f331a004.js
deleted file mode 100644
index 88e1f0b..0000000
--- a/assets/js/a09c2993.f331a004.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4128],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},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 r(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/a18cd306.b520fc1e.js b/assets/js/a18cd306.b520fc1e.js
deleted file mode 100644
index 8e1b3fa..0000000
--- a/assets/js/a18cd306.b520fc1e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8075],{3905:function(e,n,t){t.d(n,{Zo:function(){return l},kt:function(){return m}});var r=t(7294);function o(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 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/a18cd306.e2fa4744.js b/assets/js/a18cd306.e2fa4744.js
new file mode 100644
index 0000000..988008a
--- /dev/null
+++ b/assets/js/a18cd306.e2fa4744.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8075],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return m}});var r=t(7294);function o(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 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.01c237ba.js b/assets/js/a281a1a5.01c237ba.js
deleted file mode 100644
index 3b0ec4d..0000000
--- a/assets/js/a281a1a5.01c237ba.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/a281a1a5.14fbe6ac.js b/assets/js/a281a1a5.14fbe6ac.js
new file mode 100644
index 0000000..b9754c0
--- /dev/null
+++ b/assets/js/a281a1a5.14fbe6ac.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/a67c5390.16d6460d.js b/assets/js/a67c5390.16d6460d.js
new file mode 100644
index 0000000..f1f5f43
--- /dev/null
+++ b/assets/js/a67c5390.16d6460d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4193],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function u(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/a67c5390.28c84c45.js b/assets/js/a67c5390.28c84c45.js
deleted file mode 100644
index d24cbc2..0000000
--- a/assets/js/a67c5390.28c84c45.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4193],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/a6aa9e1f.5efb6f3e.js b/assets/js/a6aa9e1f.5efb6f3e.js
new file mode 100644
index 0000000..a39715e
--- /dev/null
+++ b/assets/js/a6aa9e1f.5efb6f3e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3089],{8665:function(e,t,a){a.d(t,{Z:function(){return b}});var r=a(3366),n=a(7294),l=a(6010),i=a(2434),s=a(9960),m="sidebar_a9qW",o="sidebarItemTitle_uKok",c="sidebarItemList_Kvuv",u="sidebarItem_CF0Q",d="sidebarItemLink_miNk",g="sidebarItemLinkActive_RRTD",p=a(5999);function v(e){var t=e.sidebar;return 0===t.items.length?null:n.createElement("nav",{className:(0,l.Z)(m,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/assets/js/a6aa9e1f.855241f5.js b/assets/js/a6aa9e1f.855241f5.js
deleted file mode 100644
index 52840e3..0000000
--- a/assets/js/a6aa9e1f.855241f5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3089],{8665:function(e,t,a){a.d(t,{Z:function(){return E}});var r=a(3366),n=a(7294),l=a(6010),i=a(2434),m=a(9960),s="sidebar_a9qW",o="sidebarItemTitle_uKok",c="sidebarItemList_Kvuv",u="sidebarItem_CF0Q",d="sidebarItemLink_miNk",g="sidebarItemLinkActive_RRTD",p=a(5999);function v(e){var t=e.sidebar;return 0===t.items.length?null:n.createElement("nav",{className:(0,l.Z)(s,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/assets/js/a7023ddc.4c3bc7ec.js b/assets/js/a7023ddc.4c3bc7ec.js
new file mode 100644
index 0000000..6f0e211
--- /dev/null
+++ b/assets/js/a7023ddc.4c3bc7ec.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1713],{3457:function(a){a.exports=JSON.parse('{"Vip":{"allTagsPath":"/blog/tags","slug":"/blog/tags/vip","name":"Vip","count":1,"permalink":"/blog/tags/vip"},"ClickHouse":{"allTagsPath":"/blog/tags","slug":"/blog/tags/click-house","name":"ClickHouse","count":3,"permalink":"/blog/tags/click-house"},"HDFS":{"allTagsPath":"/blog/tags","slug":"/blog/tags/hdfs","name":"HDFS","count":1,"permalink":" [...]
\ No newline at end of file
diff --git a/assets/js/a7023ddc.5bab44c8.js b/assets/js/a7023ddc.5bab44c8.js
deleted file mode 100644
index 2bea6d1..0000000
--- a/assets/js/a7023ddc.5bab44c8.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/vip":{"allTagsPath":"/blog/tags","slug":"/blog/tags/vip","name":"Vip","count":1,"permalink":"/blog/tags/vip"},"/blog/tags/click-house":{"allTagsPath":"/blog/tags","slug":"/blog/tags/click-house","name":"ClickHouse","count":3,"permalink":"/blog/tags/click-house"},"/blog/tags/hdfs":{"allTagsPath":"/blog/tags","slug":"/blog/tags/hdfs","na [...]
\ No newline at end of file
diff --git a/assets/js/a7c50264.651f7e01.js b/assets/js/a7c50264.651f7e01.js
deleted file mode 100644
index a673cbc..0000000
--- a/assets/js/a7c50264.651f7e01.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6347],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/a7c50264.ae508525.js b/assets/js/a7c50264.ae508525.js
new file mode 100644
index 0000000..c73203e
--- /dev/null
+++ b/assets/js/a7c50264.ae508525.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6347],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/a7dfdb02.81dcd947.js b/assets/js/a7dfdb02.81dcd947.js
deleted file mode 100644
index a758200..0000000
--- a/assets/js/a7dfdb02.81dcd947.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7320],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var a=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/a7dfdb02.a9ee575a.js b/assets/js/a7dfdb02.a9ee575a.js
new file mode 100644
index 0000000..a54d812
--- /dev/null
+++ b/assets/js/a7dfdb02.a9ee575a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7320],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var a=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/a872c320.468ae7a9.js b/assets/js/a872c320.468ae7a9.js
new file mode 100644
index 0000000..f0bb65a
--- /dev/null
+++ b/assets/js/a872c320.468ae7a9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5118],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(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/a872c320.96af4bd9.js b/assets/js/a872c320.96af4bd9.js
deleted file mode 100644
index 5dbc56a..0000000
--- a/assets/js/a872c320.96af4bd9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5118],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(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/a9e9a358.43799dd9.js b/assets/js/a9e9a358.43799dd9.js
deleted file mode 100644
index 88e6017..0000000
--- a/assets/js/a9e9a358.43799dd9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7399],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return p}});var i=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/a9e9a358.57ac9a2f.js b/assets/js/a9e9a358.57ac9a2f.js
new file mode 100644
index 0000000..cb6998e
--- /dev/null
+++ b/assets/js/a9e9a358.57ac9a2f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7399],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return p}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/aa061128.16ea0516.js b/assets/js/aa061128.16ea0516.js
deleted file mode 100644
index 244e37a..0000000
--- a/assets/js/aa061128.16ea0516.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1229],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return m}});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/aa061128.bd52a78c.js b/assets/js/aa061128.bd52a78c.js
new file mode 100644
index 0000000..e26c8e4
--- /dev/null
+++ b/assets/js/aa061128.bd52a78c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1229],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/abbc9aab.40e8ec94.js b/assets/js/abbc9aab.40e8ec94.js
new file mode 100644
index 0000000..c4c90b3
--- /dev/null
+++ b/assets/js/abbc9aab.40e8ec94.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8848],{3905:function(t,n,e){e.d(n,{Zo:function(){return p},kt:function(){return m}});var r=e(7294);function a(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function l(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/abbc9aab.5b799243.js b/assets/js/abbc9aab.5b799243.js
deleted file mode 100644
index df619c2..0000000
--- a/assets/js/abbc9aab.5b799243.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8848],{3905:function(t,n,e){e.d(n,{Zo:function(){return p},kt:function(){return m}});var r=e(7294);function a(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function l(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/ac0ab662.cf76c839.js b/assets/js/ac0ab662.cf76c839.js
new file mode 100644
index 0000000..ebb18be
--- /dev/null
+++ b/assets/js/ac0ab662.cf76c839.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[530],{3905:function(e,t,r){r.d(t,{Zo:function(){return c},kt:function(){return d}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t [...]
\ No newline at end of file
diff --git a/assets/js/ac0ab662.d2a76af5.js b/assets/js/ac0ab662.d2a76af5.js
deleted file mode 100644
index b5bc5fa..0000000
--- a/assets/js/ac0ab662.d2a76af5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[530],{3905:function(e,t,r){r.d(t,{Zo:function(){return c},kt:function(){return d}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t [...]
\ No newline at end of file
diff --git a/assets/js/b0936712.4304e004.js b/assets/js/b0936712.4304e004.js
deleted file mode 100644
index e83c8df..0000000
--- a/assets/js/b0936712.4304e004.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3168],{3905:function(e,t,r){r.d(t,{Zo:function(){return s},kt:function(){return k}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/b0936712.b9c6cc48.js b/assets/js/b0936712.b9c6cc48.js
new file mode 100644
index 0000000..5cefdad
--- /dev/null
+++ b/assets/js/b0936712.b9c6cc48.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3168],{3905:function(e,t,r){r.d(t,{Zo:function(){return s},kt:function(){return k}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/b23b9205.af0a3d8a.js b/assets/js/b23b9205.af0a3d8a.js
new file mode 100644
index 0000000..a53da9e
--- /dev/null
+++ b/assets/js/b23b9205.af0a3d8a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3179],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/b23b9205.f817969a.js b/assets/js/b23b9205.f817969a.js
deleted file mode 100644
index 35b90b5..0000000
--- a/assets/js/b23b9205.f817969a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3179],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/c0212c48.734bb840.js b/assets/js/c0212c48.734bb840.js
deleted file mode 100644
index 2dfe805..0000000
--- a/assets/js/c0212c48.734bb840.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8008],{3905:function(e,t,n){n.d(t,{Zo:function(){return m},kt:function(){return u}});var o=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/c0212c48.9e98c577.js b/assets/js/c0212c48.9e98c577.js
new file mode 100644
index 0000000..b7bea12
--- /dev/null
+++ b/assets/js/c0212c48.9e98c577.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8008],{3905:function(e,t,n){n.d(t,{Zo:function(){return m},kt:function(){return u}});var o=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/c64563e9.a4183d3b.js b/assets/js/c64563e9.a4183d3b.js
new file mode 100644
index 0000000..1ca21dc
--- /dev/null
+++ b/assets/js/c64563e9.a4183d3b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4435],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return k}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/c64563e9.c0744d2c.js b/assets/js/c64563e9.c0744d2c.js
deleted file mode 100644
index 8d5a9cc..0000000
--- a/assets/js/c64563e9.c0744d2c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4435],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return k}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/c6675f54.73a0c073.js b/assets/js/c6675f54.73a0c073.js
deleted file mode 100644
index 048382d..0000000
--- a/assets/js/c6675f54.73a0c073.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[239],{3905:function(e,n,t){t.d(n,{Zo:function(){return s},kt:function(){return m}});var o=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n [...]
\ No newline at end of file
diff --git a/assets/js/c6675f54.c7ce2b84.js b/assets/js/c6675f54.c7ce2b84.js
new file mode 100644
index 0000000..c827a54
--- /dev/null
+++ b/assets/js/c6675f54.c7ce2b84.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[239],{3905:function(n,e,t){t.d(e,{Zo:function(){return c},kt:function(){return m}});var o=t(7294);function r(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function i(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(n);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(n,e [...]
\ No newline at end of file
diff --git a/assets/js/c7c2bd87.930d4315.js b/assets/js/c7c2bd87.930d4315.js
deleted file mode 100644
index 019b8f0..0000000
--- a/assets/js/c7c2bd87.930d4315.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[892],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return f}});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 i(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,n [...]
\ No newline at end of file
diff --git a/assets/js/c7c2bd87.df288368.js b/assets/js/c7c2bd87.df288368.js
new file mode 100644
index 0000000..9913b4f
--- /dev/null
+++ b/assets/js/c7c2bd87.df288368.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[892],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return f}});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 i(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,n [...]
\ No newline at end of file
diff --git a/assets/js/cb4af717.a331ba7e.js b/assets/js/cb4af717.a331ba7e.js
new file mode 100644
index 0000000..8e80d3a
--- /dev/null
+++ b/assets/js/cb4af717.a331ba7e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2154],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},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 o(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/cb4af717.e3940c17.js b/assets/js/cb4af717.e3940c17.js
deleted file mode 100644
index 89fe035..0000000
--- a/assets/js/cb4af717.e3940c17.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2154],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return m}});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 o(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/cc1bf1ce.30aeb16b.js b/assets/js/cc1bf1ce.30aeb16b.js
new file mode 100644
index 0000000..81e78c6
--- /dev/null
+++ b/assets/js/cc1bf1ce.30aeb16b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4842],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return h}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(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/cc1bf1ce.3c6253d9.js b/assets/js/cc1bf1ce.3c6253d9.js
deleted file mode 100644
index d9599bd..0000000
--- a/assets/js/cc1bf1ce.3c6253d9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4842],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return h}});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(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/cc9db67d.0a0028a8.js b/assets/js/cc9db67d.0a0028a8.js
deleted file mode 100644
index 47e0ec9..0000000
--- a/assets/js/cc9db67d.0a0028a8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3298],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/cc9db67d.a96ccd3a.js b/assets/js/cc9db67d.a96ccd3a.js
new file mode 100644
index 0000000..b6201e2
--- /dev/null
+++ b/assets/js/cc9db67d.a96ccd3a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3298],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/ccc49370.70cdb5bf.js b/assets/js/ccc49370.70cdb5bf.js
new file mode 100644
index 0000000..5529813
--- /dev/null
+++ b/assets/js/ccc49370.70cdb5bf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6103],{8665:function(e,t,a){a.d(t,{Z:function(){return b}});var n=a(3366),l=a(7294),r=a(6010),i=a(2434),o=a(9960),s="sidebar_a9qW",m="sidebarItemTitle_uKok",c="sidebarItemList_Kvuv",u="sidebarItem_CF0Q",d="sidebarItemLink_miNk",g="sidebarItemLinkActive_RRTD",p=a(5999);function v(e){var t=e.sidebar;return 0===t.items.length?null:l.createElement("nav",{className:(0,r.Z)(s,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/assets/js/ccc49370.ed48f4c5.js b/assets/js/ccc49370.ed48f4c5.js
deleted file mode 100644
index 546cfd4..0000000
--- a/assets/js/ccc49370.ed48f4c5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6103],{8665:function(e,t,a){a.d(t,{Z:function(){return b}});var n=a(3366),l=a(7294),r=a(6010),i=a(2434),o=a(9960),s="sidebar_a9qW",m="sidebarItemTitle_uKok",c="sidebarItemList_Kvuv",u="sidebarItem_CF0Q",d="sidebarItemLink_miNk",g="sidebarItemLinkActive_RRTD",v=a(5999);function p(e){var t=e.sidebar;return 0===t.items.length?null:l.createElement("nav",{className:(0,r.Z)(s,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/assets/js/cd7aea4a.2c2c6762.js b/assets/js/cd7aea4a.2c2c6762.js
deleted file mode 100644
index c617f32..0000000
--- a/assets/js/cd7aea4a.2c2c6762.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3795],{3905:function(n,t,e){e.d(t,{Zo:function(){return s},kt:function(){return f}});var r=e(7294);function a(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}function o(n,t){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(n, [...]
\ No newline at end of file
diff --git a/assets/js/cd7aea4a.b366d366.js b/assets/js/cd7aea4a.b366d366.js
new file mode 100644
index 0000000..d97068a
--- /dev/null
+++ b/assets/js/cd7aea4a.b366d366.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3795],{3905:function(t,n,e){e.d(n,{Zo:function(){return s},kt:function(){return f}});var r=e(7294);function a(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function o(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/d968614a.70c2b06f.js b/assets/js/d968614a.70c2b06f.js
new file mode 100644
index 0000000..2f37808
--- /dev/null
+++ b/assets/js/d968614a.70c2b06f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9216],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/d968614a.73db1520.js b/assets/js/d968614a.73db1520.js
deleted file mode 100644
index 5efa166..0000000
--- a/assets/js/d968614a.73db1520.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9216],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/de73a401.6f996acb.js b/assets/js/de73a401.6f996acb.js
new file mode 100644
index 0000000..a162d26
--- /dev/null
+++ b/assets/js/de73a401.6f996acb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6058],{3905:function(e,t,a){a.d(t,{Zo:function(){return s},kt:function(){return m}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/de73a401.adc671de.js b/assets/js/de73a401.adc671de.js
deleted file mode 100644
index 3bdaa9f..0000000
--- a/assets/js/de73a401.adc671de.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6058],{3905:function(e,t,a){a.d(t,{Zo:function(){return s},kt:function(){return m}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/e09a720b.9e2a8904.js b/assets/js/e09a720b.9e2a8904.js
deleted file mode 100644
index 85a8600..0000000
--- a/assets/js/e09a720b.9e2a8904.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8053],{3905:function(e,t,a){a.d(t,{Zo:function(){return u},kt:function(){return h}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/e09a720b.e497bfef.js b/assets/js/e09a720b.e497bfef.js
new file mode 100644
index 0000000..8e32a9b
--- /dev/null
+++ b/assets/js/e09a720b.e497bfef.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8053],{3905:function(e,t,a){a.d(t,{Zo:function(){return u},kt:function(){return h}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/e27978f7.9dec1f2b.js b/assets/js/e27978f7.9dec1f2b.js
new file mode 100644
index 0000000..c678b76
--- /dev/null
+++ b/assets/js/e27978f7.9dec1f2b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4990],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return c}});var r=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 a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/e27978f7.ef1137dc.js b/assets/js/e27978f7.ef1137dc.js
deleted file mode 100644
index 602029d..0000000
--- a/assets/js/e27978f7.ef1137dc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4990],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return c}});var r=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 a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/e689fd89.f61ee89b.js b/assets/js/e689fd89.f61ee89b.js
deleted file mode 100644
index 777615f..0000000
--- a/assets/js/e689fd89.f61ee89b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9555],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return c}});var r=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 a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/e689fd89.f737df63.js b/assets/js/e689fd89.f737df63.js
new file mode 100644
index 0000000..3857a1a
--- /dev/null
+++ b/assets/js/e689fd89.f737df63.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9555],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/e8521944.6210e7eb.js b/assets/js/e8521944.6210e7eb.js
deleted file mode 100644
index cbc2ad9..0000000
--- a/assets/js/e8521944.6210e7eb.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1528],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/e8521944.c4469ec2.js b/assets/js/e8521944.c4469ec2.js
new file mode 100644
index 0000000..0addee9
--- /dev/null
+++ b/assets/js/e8521944.c4469ec2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1528],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/eb1fff16.3a56e64f.js b/assets/js/eb1fff16.3a56e64f.js
deleted file mode 100644
index 99dd0a6..0000000
--- a/assets/js/eb1fff16.3a56e64f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3004],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/eb1fff16.b5d26bc1.js b/assets/js/eb1fff16.b5d26bc1.js
new file mode 100644
index 0000000..41345ff
--- /dev/null
+++ b/assets/js/eb1fff16.b5d26bc1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3004],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/ecbe7a3e.de9ec53a.js b/assets/js/ecbe7a3e.de9ec53a.js
new file mode 100644
index 0000000..e5a7da7
--- /dev/null
+++ b/assets/js/ecbe7a3e.de9ec53a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3365],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return f}});var r=n(7294);function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/ecbe7a3e.f1188804.js b/assets/js/ecbe7a3e.f1188804.js
deleted file mode 100644
index 2617910..0000000
--- a/assets/js/ecbe7a3e.f1188804.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3365],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return f}});var r=n(7294);function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/ece30e0c.5d85db05.js b/assets/js/ece30e0c.5d85db05.js
new file mode 100644
index 0000000..55ba0ae
--- /dev/null
+++ b/assets/js/ece30e0c.5d85db05.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[842],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(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,t [...]
\ No newline at end of file
diff --git a/assets/js/ece30e0c.9543947e.js b/assets/js/ece30e0c.9543947e.js
deleted file mode 100644
index dffd67c..0000000
--- a/assets/js/ece30e0c.9543947e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[842],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(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,t [...]
\ No newline at end of file
diff --git a/assets/js/f078bfe5.57697858.js b/assets/js/f078bfe5.57697858.js
new file mode 100644
index 0000000..451b0cf
--- /dev/null
+++ b/assets/js/f078bfe5.57697858.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7004],{3905:function(t,e,n){n.d(e,{Zo:function(){return d},kt:function(){return m}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/f078bfe5.cb7cc349.js b/assets/js/f078bfe5.cb7cc349.js
deleted file mode 100644
index 7a079ab..0000000
--- a/assets/js/f078bfe5.cb7cc349.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7004],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/f16ebba6.09f73c65.js b/assets/js/f16ebba6.09f73c65.js
new file mode 100644
index 0000000..e91d0be
--- /dev/null
+++ b/assets/js/f16ebba6.09f73c65.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7615],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return k}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/f16ebba6.8db1a480.js b/assets/js/f16ebba6.8db1a480.js
deleted file mode 100644
index d8f7ac0..0000000
--- a/assets/js/f16ebba6.8db1a480.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7615],{3905:function(t,e,n){n.d(e,{Zo:function(){return d},kt:function(){return k}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/f3f42ef4.5a95f535.js b/assets/js/f3f42ef4.5a95f535.js
deleted file mode 100644
index c6cb633..0000000
--- a/assets/js/f3f42ef4.5a95f535.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9698],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/f3f42ef4.e217d9e4.js b/assets/js/f3f42ef4.e217d9e4.js
new file mode 100644
index 0000000..61e3bb7
--- /dev/null
+++ b/assets/js/f3f42ef4.e217d9e4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9698],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/f6f539a6.743cc6ba.js b/assets/js/f6f539a6.743cc6ba.js
deleted file mode 100644
index eb30a95..0000000
--- a/assets/js/f6f539a6.743cc6ba.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8466],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/f6f539a6.92055087.js b/assets/js/f6f539a6.92055087.js
new file mode 100644
index 0000000..c71b8f3
--- /dev/null
+++ b/assets/js/f6f539a6.92055087.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8466],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/f8101ceb.bbc8b6a8.js b/assets/js/f8101ceb.bbc8b6a8.js
new file mode 100644
index 0000000..d0feaf9
--- /dev/null
+++ b/assets/js/f8101ceb.bbc8b6a8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8361],{5148:function(e){e.exports=JSON.parse('{"permalink":"/blog/tags/elasticsearch","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/f820265a.79eebb0b.js b/assets/js/f820265a.79eebb0b.js
deleted file mode 100644
index 268cb58..0000000
--- a/assets/js/f820265a.79eebb0b.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 r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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.b4688a9e.js b/assets/js/f820265a.b4688a9e.js
new file mode 100644
index 0000000..bd0abe9
--- /dev/null
+++ b/assets/js/f820265a.b4688a9e.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 o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(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/ff925945.435cf3ae.js b/assets/js/ff925945.435cf3ae.js
new file mode 100644
index 0000000..facc045
--- /dev/null
+++ b/assets/js/ff925945.435cf3ae.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2427],{7225:function(e){e.exports=JSON.parse('{"permalink":"/blog/tags/hive","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/assets/js/main.2f1ceddd.js b/assets/js/main.2f1ceddd.js
deleted file mode 100644
index a2860f5..0000000
--- a/assets/js/main.2f1ceddd.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.2f1ceddd.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.a023d061.js b/assets/js/main.a023d061.js
new file mode 100644
index 0000000..438d733
--- /dev/null
+++ b/assets/js/main.a023d061.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.a023d061.js.LICENSE.txt */
+(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[179],{8726:function(e,t,n){"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.as [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/main.d82eeb79.js.LICENSE.txt b/assets/js/main.a023d061.js.LICENSE.txt
similarity index 100%
rename from zh-CN/assets/js/main.d82eeb79.js.LICENSE.txt
rename to assets/js/main.a023d061.js.LICENSE.txt
diff --git a/assets/js/runtime~main.4cc534b1.js b/assets/js/runtime~main.4cc534b1.js
deleted file mode 100644
index 36b7bc4..0000000
--- a/assets/js/runtime~main.4cc534b1.js
+++ /dev/null
@@ -1 +0,0 @@
-!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.85f7964c.js b/assets/js/runtime~main.85f7964c.js
new file mode 100644
index 0000000..dcb8698
--- /dev/null
+++ b/assets/js/runtime~main.85f7964c.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,a,c,f,b,d={},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 d[e].call(c.exports,c,c.exports,n),c.loaded=!0,c.exports}n.m=d,n.c=t,e=[],n.O=function(a,c,f,b){if(!c){var d=1/0;for(u=0;u<e.length;u++){c=e[u][0],f=e[u][1],b=e[u][2];for(var t=!0,r=0;r<c.length;r++)(!1&b||d>=b)&&Object.keys(n.O).every((function(e){return n.O[e](c[r])}))?c.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/blog/The practice of SeaTunnel in Vip/index.html b/blog/The practice of SeaTunnel in Vip/index.html
index 37570d9..e10aa57 100644
--- a/blog/The practice of SeaTunnel in Vip/index.html	
+++ b/blog/The practice of SeaTunnel in Vip/index.html	
@@ -3,43 +3,43 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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">The practice of SeaTunnel in Vip | 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/The practice of SeaTunnel in Vip"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-h [...]
-<link rel="preload" href="/assets/js/runtime~main.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">The practice of SeaTunnel in Vip | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/The practice of SeaTunnel in Vip"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" cont [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 Lecture preparation: Zhang Detong</p><p>Introduction: Vip referenced SeaTunnel as early as version 1.0. We use SeaTunnel to perform some data interaction work between Hive and ClickHouse.
 Today&#x27;s presentation will focus on the following points:</p><ul><li>Requirements and pain points of ClickHouse data import;</li><li>Selection of ClickHouse warehousing and warehousing tools;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>Integration of SeaTunnel and Vipshop data platform;</li><li>Future outlook;</li></ul><h1>Requirements and pain points of ClickHouse data import</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1-vipshop-data-olap-architecture" [...]
-<img alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2-requirements">2. Requirements<a class="hash-link" href="#2-requirements" title="Direct link to heading">​</a></h2><p>We connect the underlying Hive, Kudu, and Alluxio components through Presto Connector and Spark components. Big data components can import and export data to and from each other, and you can use appropriate component [...]
-<img alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>The second requirement is that Presto runs SQL relatively slowly. The figure shows an example of slow SQL. The SQL where condition in the figure sets the date, time range, and specific filter conditions. This kind of SQL usage runs slowly because Presto uses partition granularity to push down. Even after optimization by other methods such as Hive&#x27;s bucket table and bucketing, t [...]
-<img alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>Our real-time data is written to Clickhouse through Kafka and Flink SQL. However, it is not enough to use real-time data for analysis. It is necessary to use the Hive dimension table and the T+1 real-time table with the ETL calculation number for accelerated transportation in Clickhouse. This requires importing Hive data into Clickhouse, which is our third requirement.
-<img alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3-pain-points">3. Pain points<a class="hash-link" href="#3-pain-points" title="Direct link to heading">​</a></h2><p>First, we introduce a data component to consider its performance. The granularity of the Hive table is five minutes. Is there a component that can support a short ETL process and import the ETL results into Clickhouse wit [...]
+<img loading="lazy" alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2-requirements">2. Requirements<a class="hash-link" href="#2-requirements" title="Direct link to heading">​</a></h2><p>We connect the underlying Hive, Kudu, and Alluxio components through Presto Connector and Spark components. Big data components can import and export data to and from each other, and you can use approp [...]
+<img loading="lazy" alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>The second requirement is that Presto runs SQL relatively slowly. The figure shows an example of slow SQL. The SQL where condition in the figure sets the date, time range, and specific filter conditions. This kind of SQL usage runs slowly because Presto uses partition granularity to push down. Even after optimization by other methods such as Hive&#x27;s bucket table a [...]
+<img loading="lazy" alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>Our real-time data is written to Clickhouse through Kafka and Flink SQL. However, it is not enough to use real-time data for analysis. It is necessary to use the Hive dimension table and the T+1 real-time table with the ETL calculation number for accelerated transportation in Clickhouse. This requires importing Hive data into Clickhouse, which is our third requirement.
+<img loading="lazy" alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3-pain-points">3. Pain points<a class="hash-link" href="#3-pain-points" title="Direct link to heading">​</a></h2><p>First, we introduce a data component to consider its performance. The granularity of the Hive table is five minutes. Is there a component that can support a short ETL process and import the ETL results into [...]
 SeaTunnel and Spark rely on Vipshop&#x27;s own Yarn cluster, which can directly implement distributed reading and writing. DataX is non-distributed, and the startup process between Reader and Writer takes a long time, and the performance is ordinary. The performance of SeaTunnel and Spark for data processing can reach several times that of DataX.
 Data of more than one billion can run smoothly in SeaTunnel and Spark. DataX has great performance pressure after the amount of data is large, and it is difficult to process data of more than one billion.
 In terms of read and write plug-in scalability, SeaTunnel supports a variety of data sources and supports users to develop plug-ins. SeaTunnel supports data import into Redis.
 In terms of stability, since SeaTunnel and DataX are self-contained tools, the stability will be better. The stability aspect of Spark requires attention to code quality.
-<img alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>The amount of data in our exposure table is in the billions of levels every day. We have the performance requirement to complete data processing within 5 minutes. We have the need to import and export data to Redis. We need import and export tools that can be connected to the data platform for task scheduling. . For the consideration of data volume, performance, scalability, and pla [...]
+<img loading="lazy" alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>The amount of data in our exposure table is in the billions of levels every day. We have the performance requirement to complete data processing within 5 minutes. We have the need to import and export data to Redis. We need import and export tools that can be connected to the data platform for task scheduling. . For the consideration of data volume, performance, scala [...]
 The picture is a Hive table, which is our three-level product dimension table, including category products, dimension categories, and user population information. The primary key of the table is a third-level category ct_third_id, and the following value is the bitmap of two uids, which is the bitmap type of the user id. We need to import this Hive table into Clickhouse.
-<img alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel is easy to install, and the official website documentation describes how to install it. The figure below shows the configuration of SeaTunnel. In the configuration, env, source and sink are essential. In the env part, the example in the figure is the Spark configuration. The configuration includes concurrency, etc. These parameters can be adjusted. The source part is the d [...]
-<img alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>Run SeaTunnel, execute the sh script file, configure the conf file address and yarn information, and then you can.
-<img alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+<img loading="lazy" alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel is easy to install, and the official website documentation describes how to install it. The figure below shows the configuration of SeaTunnel. In the configuration, env, source and sink are essential. In the env part, the example in the figure is the Spark configuration. The configuration includes concurrency, etc. These parameters can be adjusted. The sourc [...]
+<img loading="lazy" alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>Run SeaTunnel, execute the sh script file, configure the conf file address and yarn information, and then you can.
+<img loading="lazy" alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
 Spark logs are generated during the running process, and both successful running and running errors can be viewed in the logs.
-<img alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>In order to better fit the business, Vipshop will make some improvements to SeaTunnel. All our ETL tasks need to be rerun. We support pre_sql and check_sql to implement data rerun and logarithm. The main process is to execute pre_sql for preprocessing after the data is ready, delete the old partition data in Clickhouse, store it in a directory, and restore the partition and rename w [...]
-<img alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>Based on the 1.0 version of SeaTunnel, Vipshop has added RowBinary for acceleration, and it also makes it easier to import the binary files of HuperLogLog and BinaryBitmap from Hive to Clickhouse. We made changes in ClickHouse-jdbc, bulk_size, Hive-source. Use the extended api of CK-jdbc to write data to CK in rowbinary mode. Bulk_size introduces the control logic for writing to C [...]
+<img loading="lazy" alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>In order to better fit the business, Vipshop will make some improvements to SeaTunnel. All our ETL tasks need to be rerun. We support pre_sql and check_sql to implement data rerun and logarithm. The main process is to execute pre_sql for preprocessing after the data is ready, delete the old partition data in Clickhouse, store it in a directory, and restore the partiti [...]
+<img loading="lazy" alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>Based on the 1.0 version of SeaTunnel, Vipshop has added RowBinary for acceleration, and it also makes it easier to import the binary files of HuperLogLog and BinaryBitmap from Hive to Clickhouse. We made changes in ClickHouse-jdbc, bulk_size, Hive-source. Use the extended api of CK-jdbc to write data to CK in rowbinary mode. Bulk_size introduces the control logic f [...]
 RDD is partitioned with HashPartitioner to break up data to prevent data from being skewed.</p><p>We also let SeaTunnel support multiple types. In order to circle the crowd, corresponding methods need to be implemented in Clickhouse, Preso, and Spark. We added Callback, HttpEntity, and RowBinaryStream that support Batch feature to Clickhouse-jdbc, added bitmap type mapping to Clickhouse-jdbc and Clickhouse-sink code, and implemented UDF of Clickhouse&#x27;s Hyperloglog and Bitmap functio [...]
 In the previous configuration, the clickhouse-sink part can specify the table name, and here is the difference between writing to the local table and the distributed table. The performance of writing to a distributed table is worse than that of writing to a local table, which will put more pressure on the Clickhouse cluster. However, in scenarios such as exposure meter, flow meter, and ABTest, two tables are required to join, and both tables are in the order of billions. . At this time,  [...]
 For the writing of local tables and distributed tables, our future transformation direction is to implement consistent hashing in Seatunnel, write directly according to certain rules, such as Clickhouse, without relying on Clickhouse itself for data distribution, and improve Clickhouse&#x27;s high CPU load problem.</p><h1>ClickHouse data import into Hive</h1><p>We have the needs of people in the circle. Every day, Vipshop gathers 200,000 people in the supplier circle, such as people born [...]
-<img alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>The figure shows the SeaTunnel configuration. We configure the source as Clickhouse, the sink as Hive, and the data verification is also configured in Hive.
-<img alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>Since we access SeaTunnel earlier, we have processed some modules, including adding plugin-spark-sink-hive module, plugin-spark-source-ClickHouse module, and rewriting Spark Row related methods so that they can be packaged through The Clickhouse data mapped by Schem, reconstruct the StructField and generate the DataFrame that finally needs to land on Hive. The latest version has m [...]
-<img alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>The SeaTunnel task type is integrated into the platform. The picture is a screenshot of the scheduled task of Shufang. You can see that the selected part is a configured SeaTunnel task. resource information. The following shows the historical running instance information.
-<img alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>We integrated SeaTunnel into the scheduling system. The Shufang Scheduling Master will assign tasks to the corresponding Agents according to the task types, and assign them to the appropriate machines to run according to the Agent load. The controller pulls the task scheduling configuration and information in the foreground. After arriving, a SeaTunnel cluster is generated and exe [...]
-<img alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel itself is a tool-based component, which is used to manage and control data blood relationship, data quality, historical records, high-alert monitoring, and resource allocation. We integrate SeaTunnel into the platform, and we can take advantage of the platform to take advantage of SeaTunnel.
+<img loading="lazy" alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>The figure shows the SeaTunnel configuration. We configure the source as Clickhouse, the sink as Hive, and the data verification is also configured in Hive.
+<img loading="lazy" alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>Since we access SeaTunnel earlier, we have processed some modules, including adding plugin-spark-sink-hive module, plugin-spark-source-ClickHouse module, and rewriting Spark Row related methods so that they can be packaged through The Clickhouse data mapped by Schem, reconstruct the StructField and generate the DataFrame that finally needs to land on Hive. The lates [...]
+<img loading="lazy" alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>The SeaTunnel task type is integrated into the platform. The picture is a screenshot of the scheduled task of Shufang. You can see that the selected part is a configured SeaTunnel task. resource information. The following shows the historical running instance information.
+<img loading="lazy" alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>We integrated SeaTunnel into the scheduling system. The Shufang Scheduling Master will assign tasks to the corresponding Agents according to the task types, and assign them to the appropriate machines to run according to the Agent load. The controller pulls the task scheduling configuration and information in the foreground. After arriving, a SeaTunnel cluster is ge [...]
+<img loading="lazy" alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel itself is a tool-based component, which is used to manage and control data blood relationship, data quality, historical records, high-alert monitoring, and resource allocation. We integrate SeaTunnel into the platform, and we can take advantage of the platform to take advantage of SeaTunnel.
 SeaTunnel is used for processing in the deposit crowd. By managing data, we divide the circled people into different people according to their paths and usage conditions, or thousands of people and thousands of faces, tag users, and push a certain type of people circled to users, analysts and suppliers.
-<img alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>The traffic enters Kafka, enters the warehouse through Flink, and then forms a user label table through ETL. After the user label table is generated, we use the BitMap method implemented by Presto to type the data into a wide table in Hive. Users create tasks by box-selecting entries on the crowd system page, submit to Tengqun, and generate SQL query Clickhouse BitMap. Clickhouse& [...]
+<img loading="lazy" alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>The traffic enters Kafka, enters the warehouse through Flink, and then forms a user label table through ETL. After the user label table is generated, we use the BitMap method implemented by Presto to type the data into a wide table in Hive. Users create tasks by box-selecting entries on the crowd system page, submit to Tengqun, and generate SQL query Clickhouse BitM [...]
 During the whole process, SeaTunnel is responsible for exporting the data from Hive to Clickhouse. After the ETL process of Clickhouse is completed, SeaTunnel exports the data from Clickhouse to Hive.
 In order to fulfill this requirement, we implemented UDFs of ClickHouse&#x27;s Hyperloglog and BitMap functions on Presto and Spark; we also developed the Seatunnel interface, so that the crowds circled by users using the Bitmap method in ClickHouse can be directly written to the Hive table through Seatunnel , without an intermediate landing step. Users can also call the SeaTunnel interface through spark to circle the crowd or reverse the crowd bitmap in Hive, so that the data can be dir [...]
             <div style="margin-top: 20px;background: #f4f8fa">
@@ -53,7 +53,7 @@ In order to fulfill this requirement, we implemented UDFs of ClickHouse&#x27;s H
                     <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/archive/index.html b/blog/archive/index.html
index c2d20b2..9b9ad00 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Archive | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="Archive | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" name="description" content="Archive"><meta data-rh="true" property="og:description" content="Archive"><meta data-rh="true" property="og:url" content="https://s [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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 style="margin-top: 20px;background: #f4f8fa">
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/atom.xml b/blog/atom.xml
index 0dd972a..819a268 100644
--- a/blog/atom.xml
+++ b/blog/atom.xml
@@ -16,32 +16,32 @@
         <content type="html"><![CDATA[<p>Guest speaker: Vip Senior Big Data Engineer Wang Yu
 Lecture preparation: Zhang Detong</p><p>Introduction: Vip referenced SeaTunnel as early as version 1.0. We use SeaTunnel to perform some data interaction work between Hive and ClickHouse.
 Today's presentation will focus on the following points:</p><ul><li>Requirements and pain points of ClickHouse data import;</li><li>Selection of ClickHouse warehousing and warehousing tools;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>Integration of SeaTunnel and Vipshop data platform;</li><li>Future outlook;</li></ul><h1>Requirements and pain points of ClickHouse data import</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1-vipshop-data-olap-architecture">1. V [...]
-<img alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2-requirements">2. Requirements<a class="hash-link" href="#2-requirements" title="Direct link to heading">​</a></h2><p>We connect the underlying Hive, Kudu, and Alluxio components through Presto Connector and Spark components. Big data components can import and export data to and from each other, and you can use appropriate component [...]
-<img alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>The second requirement is that Presto runs SQL relatively slowly. The figure shows an example of slow SQL. The SQL where condition in the figure sets the date, time range, and specific filter conditions. This kind of SQL usage runs slowly because Presto uses partition granularity to push down. Even after optimization by other methods such as Hive's bucket table and bucketing, the re [...]
-<img alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>Our real-time data is written to Clickhouse through Kafka and Flink SQL. However, it is not enough to use real-time data for analysis. It is necessary to use the Hive dimension table and the T+1 real-time table with the ETL calculation number for accelerated transportation in Clickhouse. This requires importing Hive data into Clickhouse, which is our third requirement.
-<img alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3-pain-points">3. Pain points<a class="hash-link" href="#3-pain-points" title="Direct link to heading">​</a></h2><p>First, we introduce a data component to consider its performance. The granularity of the Hive table is five minutes. Is there a component that can support a short ETL process and import the ETL results into Clickhouse wit [...]
+<img loading="lazy" alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2-requirements">2. Requirements<a class="hash-link" href="#2-requirements" title="Direct link to heading">​</a></h2><p>We connect the underlying Hive, Kudu, and Alluxio components through Presto Connector and Spark components. Big data components can import and export data to and from each other, and you can use approp [...]
+<img loading="lazy" alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>The second requirement is that Presto runs SQL relatively slowly. The figure shows an example of slow SQL. The SQL where condition in the figure sets the date, time range, and specific filter conditions. This kind of SQL usage runs slowly because Presto uses partition granularity to push down. Even after optimization by other methods such as Hive's bucket table and bu [...]
+<img loading="lazy" alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>Our real-time data is written to Clickhouse through Kafka and Flink SQL. However, it is not enough to use real-time data for analysis. It is necessary to use the Hive dimension table and the T+1 real-time table with the ETL calculation number for accelerated transportation in Clickhouse. This requires importing Hive data into Clickhouse, which is our third requirement.
+<img loading="lazy" alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3-pain-points">3. Pain points<a class="hash-link" href="#3-pain-points" title="Direct link to heading">​</a></h2><p>First, we introduce a data component to consider its performance. The granularity of the Hive table is five minutes. Is there a component that can support a short ETL process and import the ETL results into [...]
 SeaTunnel and Spark rely on Vipshop's own Yarn cluster, which can directly implement distributed reading and writing. DataX is non-distributed, and the startup process between Reader and Writer takes a long time, and the performance is ordinary. The performance of SeaTunnel and Spark for data processing can reach several times that of DataX.
 Data of more than one billion can run smoothly in SeaTunnel and Spark. DataX has great performance pressure after the amount of data is large, and it is difficult to process data of more than one billion.
 In terms of read and write plug-in scalability, SeaTunnel supports a variety of data sources and supports users to develop plug-ins. SeaTunnel supports data import into Redis.
 In terms of stability, since SeaTunnel and DataX are self-contained tools, the stability will be better. The stability aspect of Spark requires attention to code quality.
-<img alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>The amount of data in our exposure table is in the billions of levels every day. We have the performance requirement to complete data processing within 5 minutes. We have the need to import and export data to Redis. We need import and export tools that can be connected to the data platform for task scheduling. . For the consideration of data volume, performance, scalability, and pla [...]
+<img loading="lazy" alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>The amount of data in our exposure table is in the billions of levels every day. We have the performance requirement to complete data processing within 5 minutes. We have the need to import and export data to Redis. We need import and export tools that can be connected to the data platform for task scheduling. . For the consideration of data volume, performance, scala [...]
 The picture is a Hive table, which is our three-level product dimension table, including category products, dimension categories, and user population information. The primary key of the table is a third-level category ct_third_id, and the following value is the bitmap of two uids, which is the bitmap type of the user id. We need to import this Hive table into Clickhouse.
-<img alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel is easy to install, and the official website documentation describes how to install it. The figure below shows the configuration of SeaTunnel. In the configuration, env, source and sink are essential. In the env part, the example in the figure is the Spark configuration. The configuration includes concurrency, etc. These parameters can be adjusted. The source part is the d [...]
-<img alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>Run SeaTunnel, execute the sh script file, configure the conf file address and yarn information, and then you can.
-<img alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+<img loading="lazy" alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel is easy to install, and the official website documentation describes how to install it. The figure below shows the configuration of SeaTunnel. In the configuration, env, source and sink are essential. In the env part, the example in the figure is the Spark configuration. The configuration includes concurrency, etc. These parameters can be adjusted. The sourc [...]
+<img loading="lazy" alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>Run SeaTunnel, execute the sh script file, configure the conf file address and yarn information, and then you can.
+<img loading="lazy" alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
 Spark logs are generated during the running process, and both successful running and running errors can be viewed in the logs.
-<img alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>In order to better fit the business, Vipshop will make some improvements to SeaTunnel. All our ETL tasks need to be rerun. We support pre_sql and check_sql to implement data rerun and logarithm. The main process is to execute pre_sql for preprocessing after the data is ready, delete the old partition data in Clickhouse, store it in a directory, and restore the partition and rename w [...]
-<img alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>Based on the 1.0 version of SeaTunnel, Vipshop has added RowBinary for acceleration, and it also makes it easier to import the binary files of HuperLogLog and BinaryBitmap from Hive to Clickhouse. We made changes in ClickHouse-jdbc, bulk_size, Hive-source. Use the extended api of CK-jdbc to write data to CK in rowbinary mode. Bulk_size introduces the control logic for writing to C [...]
+<img loading="lazy" alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>In order to better fit the business, Vipshop will make some improvements to SeaTunnel. All our ETL tasks need to be rerun. We support pre_sql and check_sql to implement data rerun and logarithm. The main process is to execute pre_sql for preprocessing after the data is ready, delete the old partition data in Clickhouse, store it in a directory, and restore the partiti [...]
+<img loading="lazy" alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>Based on the 1.0 version of SeaTunnel, Vipshop has added RowBinary for acceleration, and it also makes it easier to import the binary files of HuperLogLog and BinaryBitmap from Hive to Clickhouse. We made changes in ClickHouse-jdbc, bulk_size, Hive-source. Use the extended api of CK-jdbc to write data to CK in rowbinary mode. Bulk_size introduces the control logic f [...]
 RDD is partitioned with HashPartitioner to break up data to prevent data from being skewed.</p><p>We also let SeaTunnel support multiple types. In order to circle the crowd, corresponding methods need to be implemented in Clickhouse, Preso, and Spark. We added Callback, HttpEntity, and RowBinaryStream that support Batch feature to Clickhouse-jdbc, added bitmap type mapping to Clickhouse-jdbc and Clickhouse-sink code, and implemented UDF of Clickhouse's Hyperloglog and Bitmap functions in [...]
 In the previous configuration, the clickhouse-sink part can specify the table name, and here is the difference between writing to the local table and the distributed table. The performance of writing to a distributed table is worse than that of writing to a local table, which will put more pressure on the Clickhouse cluster. However, in scenarios such as exposure meter, flow meter, and ABTest, two tables are required to join, and both tables are in the order of billions. . At this time,  [...]
 For the writing of local tables and distributed tables, our future transformation direction is to implement consistent hashing in Seatunnel, write directly according to certain rules, such as Clickhouse, without relying on Clickhouse itself for data distribution, and improve Clickhouse's high CPU load problem.</p><h1>ClickHouse data import into Hive</h1><p>We have the needs of people in the circle. Every day, Vipshop gathers 200,000 people in the supplier circle, such as people born in t [...]
-<img alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>The figure shows the SeaTunnel configuration. We configure the source as Clickhouse, the sink as Hive, and the data verification is also configured in Hive.
-<img alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>Since we access SeaTunnel earlier, we have processed some modules, including adding plugin-spark-sink-hive module, plugin-spark-source-ClickHouse module, and rewriting Spark Row related methods so that they can be packaged through The Clickhouse data mapped by Schem, reconstruct the StructField and generate the DataFrame that finally needs to land on Hive. The latest version has m [...]
-<img alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>The SeaTunnel task type is integrated into the platform. The picture is a screenshot of the scheduled task of Shufang. You can see that the selected part is a configured SeaTunnel task. resource information. The following shows the historical running instance information.
-<img alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>We integrated SeaTunnel into the scheduling system. The Shufang Scheduling Master will assign tasks to the corresponding Agents according to the task types, and assign them to the appropriate machines to run according to the Agent load. The controller pulls the task scheduling configuration and information in the foreground. After arriving, a SeaTunnel cluster is generated and exe [...]
-<img alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel itself is a tool-based component, which is used to manage and control data blood relationship, data quality, historical records, high-alert monitoring, and resource allocation. We integrate SeaTunnel into the platform, and we can take advantage of the platform to take advantage of SeaTunnel.
+<img loading="lazy" alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>The figure shows the SeaTunnel configuration. We configure the source as Clickhouse, the sink as Hive, and the data verification is also configured in Hive.
+<img loading="lazy" alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>Since we access SeaTunnel earlier, we have processed some modules, including adding plugin-spark-sink-hive module, plugin-spark-source-ClickHouse module, and rewriting Spark Row related methods so that they can be packaged through The Clickhouse data mapped by Schem, reconstruct the StructField and generate the DataFrame that finally needs to land on Hive. The lates [...]
+<img loading="lazy" alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>The SeaTunnel task type is integrated into the platform. The picture is a screenshot of the scheduled task of Shufang. You can see that the selected part is a configured SeaTunnel task. resource information. The following shows the historical running instance information.
+<img loading="lazy" alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>We integrated SeaTunnel into the scheduling system. The Shufang Scheduling Master will assign tasks to the corresponding Agents according to the task types, and assign them to the appropriate machines to run according to the Agent load. The controller pulls the task scheduling configuration and information in the foreground. After arriving, a SeaTunnel cluster is ge [...]
+<img loading="lazy" alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel itself is a tool-based component, which is used to manage and control data blood relationship, data quality, historical records, high-alert monitoring, and resource allocation. We integrate SeaTunnel into the platform, and we can take advantage of the platform to take advantage of SeaTunnel.
 SeaTunnel is used for processing in the deposit crowd. By managing data, we divide the circled people into different people according to their paths and usage conditions, or thousands of people and thousands of faces, tag users, and push a certain type of people circled to users, analysts and suppliers.
-<img alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>The traffic enters Kafka, enters the warehouse through Flink, and then forms a user label table through ETL. After the user label table is generated, we use the BitMap method implemented by Presto to type the data into a wide table in Hive. Users create tasks by box-selecting entries on the crowd system page, submit to Tengqun, and generate SQL query Clickhouse BitMap. Clickhouse' [...]
+<img loading="lazy" alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>The traffic enters Kafka, enters the warehouse through Flink, and then forms a user label table through ETL. After the user label table is generated, we use the BitMap method implemented by Presto to type the data into a wide table in Hive. Users create tasks by box-selecting entries on the crowd system page, submit to Tengqun, and generate SQL query Clickhouse BitM [...]
 During the whole process, SeaTunnel is responsible for exporting the data from Hive to Clickhouse. After the ETL process of Clickhouse is completed, SeaTunnel exports the data from Clickhouse to Hive.
 In order to fulfill this requirement, we implemented UDFs of ClickHouse's Hyperloglog and BitMap functions on Presto and Spark; we also developed the Seatunnel interface, so that the crowds circled by users using the Bitmap method in ClickHouse can be directly written to the Hive table through Seatunnel , without an intermediate landing step. Users can also call the SeaTunnel interface through spark to circle the crowd or reverse the crowd bitmap in Hive, so that the data can be directly [...]
         <category label="Vip" term="Vip"/>
@@ -63,7 +63,7 @@ In order to fulfill this requirement, we implemented UDFs of ClickHouse's Hyperl
         <link href="https://seatunnel.apache.org/blog/hive-to-clickhouse"/>
         <updated>2021-12-30T00:00:00.000Z</updated>
         <summary type="html"><![CDATA[ClickHouse is a distributed columnar DBMS for OLAP. Our department has stored all log data related to data analysis in ClickHouse, an excellent data warehouse, and the current daily data volume has reached 30 billion.]]></summary>
-        <content type="html"><![CDATA[<p>ClickHouse is a distributed columnar DBMS for OLAP. Our department has stored all log data related to data analysis in ClickHouse, an excellent data warehouse, and the current daily data volume has reached 30 billion.</p><p>In the previous article <!-- -->[How to quickly import data from HDFS into ClickHouse]<!-- --> (2021-12-30-hdfs-to-clickhouse.md), we mentioned the use of Seatunnel <a href="https://github.com/apache/incubator-seatunnel" target [...]
+        <content type="html"><![CDATA[<p>ClickHouse is a distributed columnar DBMS for OLAP. Our department has stored all log data related to data analysis in ClickHouse, an excellent data warehouse, and the current daily data volume has reached 30 billion.</p><p>In the previous article <!-- -->[How to quickly import data from HDFS into ClickHouse]<!-- --> (2021-12-30-hdfs-to-clickhouse.md), we mentioned the use of Seatunnel <a href="https://github.com/apache/incubator-seatunnel" target [...]
         <category label="Hive" term="Hive"/>
         <category label="ClickHouse" term="ClickHouse"/>
     </entry>
@@ -73,7 +73,7 @@ In order to fulfill this requirement, we implemented UDFs of ClickHouse's Hyperl
         <link href="https://seatunnel.apache.org/blog/spark-execute-elasticsearch"/>
         <updated>2021-12-30T00:00:00.000Z</updated>
         <summary type="html"><![CDATA[When it comes to writing data to Elasticsearch, the first thing that comes to mind must be Logstash. Logstash is accepted by the majority of users because of its simplicity, scalability, and scalability. However, the ruler is shorter and the inch is longer, and Logstash must have application scenarios that it cannot apply to, such as:]]></summary>
-        <content type="html"><![CDATA[<p>When it comes to writing data to Elasticsearch, the first thing that comes to mind must be Logstash. Logstash is accepted by the majority of users because of its simplicity, scalability, and scalability. However, the ruler is shorter and the inch is longer, and Logstash must have application scenarios that it cannot apply to, such as:</p><ul><li>Massive data ETL</li><li>Massive data aggregation</li><li>Multi-source data processing</li></ul><p>In o [...]
+        <content type="html"><![CDATA[<p>When it comes to writing data to Elasticsearch, the first thing that comes to mind must be Logstash. Logstash is accepted by the majority of users because of its simplicity, scalability, and scalability. However, the ruler is shorter and the inch is longer, and Logstash must have application scenarios that it cannot apply to, such as:</p><ul><li>Massive data ETL</li><li>Massive data aggregation</li><li>Multi-source data processing</li></ul><p>In o [...]
         <category label="Spark" term="Spark"/>
         <category label="Kafka" term="Kafka"/>
         <category label="Elasticsearch" term="Elasticsearch"/>
diff --git a/blog/hdfs-to-clickhouse/index.html b/blog/hdfs-to-clickhouse/index.html
index 3150052..76721b8 100644
--- a/blog/hdfs-to-clickhouse/index.html
+++ b/blog/hdfs-to-clickhouse/index.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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 quickly import data from HDFS into 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-r [...]
-<link rel="preload" href="/assets/js/runtime~main.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">How to quickly import data from HDFS into ClickHouse | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/hdfs-to-clickhouse"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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 style="margin-top: 20px;background: #f4f8fa">
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 f9c7d3d..da2e614 100644
--- a/blog/hive-to-clickhouse/index.html
+++ b/blog/hive-to-clickhouse/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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 quickly import data from Hive into 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-r [...]
-<link rel="preload" href="/assets/js/runtime~main.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">How to quickly import data from Hive into ClickHouse | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/hive-to-clickhouse"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
index 25a70ed..e0a6b34 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -3,45 +3,45 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Blog | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="Blog | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" name="description" content="Blog"><meta data-rh="true" property="og:description" content="Blog"><meta data-rh="true" property="og:url" content="https://seatunnel.apa [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 Lecture preparation: Zhang Detong</p><p>Introduction: Vip referenced SeaTunnel as early as version 1.0. We use SeaTunnel to perform some data interaction work between Hive and ClickHouse.
 Today&#x27;s presentation will focus on the following points:</p><ul><li>Requirements and pain points of ClickHouse data import;</li><li>Selection of ClickHouse warehousing and warehousing tools;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>Integration of SeaTunnel and Vipshop data platform;</li><li>Future outlook;</li></ul><h1>Requirements and pain points of ClickHouse data import</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1-vipshop-data-olap-architecture" [...]
-<img alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2-requirements">2. Requirements<a class="hash-link" href="#2-requirements" title="Direct link to heading">​</a></h2><p>We connect the underlying Hive, Kudu, and Alluxio components through Presto Connector and Spark components. Big data components can import and export data to and from each other, and you can use appropriate component [...]
-<img alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>The second requirement is that Presto runs SQL relatively slowly. The figure shows an example of slow SQL. The SQL where condition in the figure sets the date, time range, and specific filter conditions. This kind of SQL usage runs slowly because Presto uses partition granularity to push down. Even after optimization by other methods such as Hive&#x27;s bucket table and bucketing, t [...]
-<img alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>Our real-time data is written to Clickhouse through Kafka and Flink SQL. However, it is not enough to use real-time data for analysis. It is necessary to use the Hive dimension table and the T+1 real-time table with the ETL calculation number for accelerated transportation in Clickhouse. This requires importing Hive data into Clickhouse, which is our third requirement.
-<img alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3-pain-points">3. Pain points<a class="hash-link" href="#3-pain-points" title="Direct link to heading">​</a></h2><p>First, we introduce a data component to consider its performance. The granularity of the Hive table is five minutes. Is there a component that can support a short ETL process and import the ETL results into Clickhouse wit [...]
+<img loading="lazy" alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2-requirements">2. Requirements<a class="hash-link" href="#2-requirements" title="Direct link to heading">​</a></h2><p>We connect the underlying Hive, Kudu, and Alluxio components through Presto Connector and Spark components. Big data components can import and export data to and from each other, and you can use approp [...]
+<img loading="lazy" alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>The second requirement is that Presto runs SQL relatively slowly. The figure shows an example of slow SQL. The SQL where condition in the figure sets the date, time range, and specific filter conditions. This kind of SQL usage runs slowly because Presto uses partition granularity to push down. Even after optimization by other methods such as Hive&#x27;s bucket table a [...]
+<img loading="lazy" alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>Our real-time data is written to Clickhouse through Kafka and Flink SQL. However, it is not enough to use real-time data for analysis. It is necessary to use the Hive dimension table and the T+1 real-time table with the ETL calculation number for accelerated transportation in Clickhouse. This requires importing Hive data into Clickhouse, which is our third requirement.
+<img loading="lazy" alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3-pain-points">3. Pain points<a class="hash-link" href="#3-pain-points" title="Direct link to heading">​</a></h2><p>First, we introduce a data component to consider its performance. The granularity of the Hive table is five minutes. Is there a component that can support a short ETL process and import the ETL results into [...]
 SeaTunnel and Spark rely on Vipshop&#x27;s own Yarn cluster, which can directly implement distributed reading and writing. DataX is non-distributed, and the startup process between Reader and Writer takes a long time, and the performance is ordinary. The performance of SeaTunnel and Spark for data processing can reach several times that of DataX.
 Data of more than one billion can run smoothly in SeaTunnel and Spark. DataX has great performance pressure after the amount of data is large, and it is difficult to process data of more than one billion.
 In terms of read and write plug-in scalability, SeaTunnel supports a variety of data sources and supports users to develop plug-ins. SeaTunnel supports data import into Redis.
 In terms of stability, since SeaTunnel and DataX are self-contained tools, the stability will be better. The stability aspect of Spark requires attention to code quality.
-<img alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>The amount of data in our exposure table is in the billions of levels every day. We have the performance requirement to complete data processing within 5 minutes. We have the need to import and export data to Redis. We need import and export tools that can be connected to the data platform for task scheduling. . For the consideration of data volume, performance, scalability, and pla [...]
+<img loading="lazy" alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>The amount of data in our exposure table is in the billions of levels every day. We have the performance requirement to complete data processing within 5 minutes. We have the need to import and export data to Redis. We need import and export tools that can be connected to the data platform for task scheduling. . For the consideration of data volume, performance, scala [...]
 The picture is a Hive table, which is our three-level product dimension table, including category products, dimension categories, and user population information. The primary key of the table is a third-level category ct_third_id, and the following value is the bitmap of two uids, which is the bitmap type of the user id. We need to import this Hive table into Clickhouse.
-<img alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel is easy to install, and the official website documentation describes how to install it. The figure below shows the configuration of SeaTunnel. In the configuration, env, source and sink are essential. In the env part, the example in the figure is the Spark configuration. The configuration includes concurrency, etc. These parameters can be adjusted. The source part is the d [...]
-<img alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>Run SeaTunnel, execute the sh script file, configure the conf file address and yarn information, and then you can.
-<img alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+<img loading="lazy" alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel is easy to install, and the official website documentation describes how to install it. The figure below shows the configuration of SeaTunnel. In the configuration, env, source and sink are essential. In the env part, the example in the figure is the Spark configuration. The configuration includes concurrency, etc. These parameters can be adjusted. The sourc [...]
+<img loading="lazy" alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>Run SeaTunnel, execute the sh script file, configure the conf file address and yarn information, and then you can.
+<img loading="lazy" alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
 Spark logs are generated during the running process, and both successful running and running errors can be viewed in the logs.
-<img alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>In order to better fit the business, Vipshop will make some improvements to SeaTunnel. All our ETL tasks need to be rerun. We support pre_sql and check_sql to implement data rerun and logarithm. The main process is to execute pre_sql for preprocessing after the data is ready, delete the old partition data in Clickhouse, store it in a directory, and restore the partition and rename w [...]
-<img alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>Based on the 1.0 version of SeaTunnel, Vipshop has added RowBinary for acceleration, and it also makes it easier to import the binary files of HuperLogLog and BinaryBitmap from Hive to Clickhouse. We made changes in ClickHouse-jdbc, bulk_size, Hive-source. Use the extended api of CK-jdbc to write data to CK in rowbinary mode. Bulk_size introduces the control logic for writing to C [...]
+<img loading="lazy" alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>In order to better fit the business, Vipshop will make some improvements to SeaTunnel. All our ETL tasks need to be rerun. We support pre_sql and check_sql to implement data rerun and logarithm. The main process is to execute pre_sql for preprocessing after the data is ready, delete the old partition data in Clickhouse, store it in a directory, and restore the partiti [...]
+<img loading="lazy" alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>Based on the 1.0 version of SeaTunnel, Vipshop has added RowBinary for acceleration, and it also makes it easier to import the binary files of HuperLogLog and BinaryBitmap from Hive to Clickhouse. We made changes in ClickHouse-jdbc, bulk_size, Hive-source. Use the extended api of CK-jdbc to write data to CK in rowbinary mode. Bulk_size introduces the control logic f [...]
 RDD is partitioned with HashPartitioner to break up data to prevent data from being skewed.</p><p>We also let SeaTunnel support multiple types. In order to circle the crowd, corresponding methods need to be implemented in Clickhouse, Preso, and Spark. We added Callback, HttpEntity, and RowBinaryStream that support Batch feature to Clickhouse-jdbc, added bitmap type mapping to Clickhouse-jdbc and Clickhouse-sink code, and implemented UDF of Clickhouse&#x27;s Hyperloglog and Bitmap functio [...]
 In the previous configuration, the clickhouse-sink part can specify the table name, and here is the difference between writing to the local table and the distributed table. The performance of writing to a distributed table is worse than that of writing to a local table, which will put more pressure on the Clickhouse cluster. However, in scenarios such as exposure meter, flow meter, and ABTest, two tables are required to join, and both tables are in the order of billions. . At this time,  [...]
 For the writing of local tables and distributed tables, our future transformation direction is to implement consistent hashing in Seatunnel, write directly according to certain rules, such as Clickhouse, without relying on Clickhouse itself for data distribution, and improve Clickhouse&#x27;s high CPU load problem.</p><h1>ClickHouse data import into Hive</h1><p>We have the needs of people in the circle. Every day, Vipshop gathers 200,000 people in the supplier circle, such as people born [...]
-<img alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>The figure shows the SeaTunnel configuration. We configure the source as Clickhouse, the sink as Hive, and the data verification is also configured in Hive.
-<img alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>Since we access SeaTunnel earlier, we have processed some modules, including adding plugin-spark-sink-hive module, plugin-spark-source-ClickHouse module, and rewriting Spark Row related methods so that they can be packaged through The Clickhouse data mapped by Schem, reconstruct the StructField and generate the DataFrame that finally needs to land on Hive. The latest version has m [...]
-<img alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>The SeaTunnel task type is integrated into the platform. The picture is a screenshot of the scheduled task of Shufang. You can see that the selected part is a configured SeaTunnel task. resource information. The following shows the historical running instance information.
-<img alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>We integrated SeaTunnel into the scheduling system. The Shufang Scheduling Master will assign tasks to the corresponding Agents according to the task types, and assign them to the appropriate machines to run according to the Agent load. The controller pulls the task scheduling configuration and information in the foreground. After arriving, a SeaTunnel cluster is generated and exe [...]
-<img alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel itself is a tool-based component, which is used to manage and control data blood relationship, data quality, historical records, high-alert monitoring, and resource allocation. We integrate SeaTunnel into the platform, and we can take advantage of the platform to take advantage of SeaTunnel.
+<img loading="lazy" alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>The figure shows the SeaTunnel configuration. We configure the source as Clickhouse, the sink as Hive, and the data verification is also configured in Hive.
+<img loading="lazy" alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>Since we access SeaTunnel earlier, we have processed some modules, including adding plugin-spark-sink-hive module, plugin-spark-source-ClickHouse module, and rewriting Spark Row related methods so that they can be packaged through The Clickhouse data mapped by Schem, reconstruct the StructField and generate the DataFrame that finally needs to land on Hive. The lates [...]
+<img loading="lazy" alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>The SeaTunnel task type is integrated into the platform. The picture is a screenshot of the scheduled task of Shufang. You can see that the selected part is a configured SeaTunnel task. resource information. The following shows the historical running instance information.
+<img loading="lazy" alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>We integrated SeaTunnel into the scheduling system. The Shufang Scheduling Master will assign tasks to the corresponding Agents according to the task types, and assign them to the appropriate machines to run according to the Agent load. The controller pulls the task scheduling configuration and information in the foreground. After arriving, a SeaTunnel cluster is ge [...]
+<img loading="lazy" alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel itself is a tool-based component, which is used to manage and control data blood relationship, data quality, historical records, high-alert monitoring, and resource allocation. We integrate SeaTunnel into the platform, and we can take advantage of the platform to take advantage of SeaTunnel.
 SeaTunnel is used for processing in the deposit crowd. By managing data, we divide the circled people into different people according to their paths and usage conditions, or thousands of people and thousands of faces, tag users, and push a certain type of people circled to users, analysts and suppliers.
-<img alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>The traffic enters Kafka, enters the warehouse through Flink, and then forms a user label table through ETL. After the user label table is generated, we use the BitMap method implemented by Presto to type the data into a wide table in Hive. Users create tasks by box-selecting entries on the crowd system page, submit to Tengqun, and generate SQL query Clickhouse BitMap. Clickhouse& [...]
+<img loading="lazy" alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>The traffic enters Kafka, enters the warehouse through Flink, and then forms a user label table through ETL. After the user label table is generated, we use the BitMap method implemented by Presto to type the data into a wide table in Hive. Users create tasks by box-selecting entries on the crowd system page, submit to Tengqun, and generate SQL query Clickhouse BitM [...]
 During the whole process, SeaTunnel is responsible for exporting the data from Hive to Clickhouse. After the ETL process of Clickhouse is completed, SeaTunnel exports the data from Clickhouse to Hive.
-In order to fulfill this requirement, we implemented UDFs of ClickHouse&#x27;s Hyperloglog and BitMap functions on Presto and Spark; we also developed the Seatunnel interface, so that the crowds circled by users using the Bitmap method in ClickHouse can be directly written to the Hive table through Seatunnel , without an intermediate landing step. Users can also call the SeaTunnel interface through spark to circle the crowd or reverse the crowd bitmap in Hive, so that the data can be dir [...]
+In order to fulfill this requirement, we implemented UDFs of ClickHouse&#x27;s Hyperloglog and BitMap functions on Presto and Spark; we also developed the Seatunnel interface, so that the crowds circled by users using the Bitmap method in ClickHouse can be directly written to the Hive table through Seatunnel , without an intermediate landing step. Users can also call the SeaTunnel interface through spark to circle the crowd or reverse the crowd bitmap in Hive, so that the data can be dir [...]
 <!-- --> <!-- --> <!-- -->Second, real-time aggregation can be done, such as real-time calculation of the total sales of each commodity every day;<br>
 <!-- --> <!-- --> <!-- -->Third, you can do the association between streams, for example, to calculate the click rate of an advertisement, you need to associate the exposure record of the advertisement with the click record. <br>
 The above points may be cumbersome or difficult to implement if using SparkStreaming, but it will be easier to implement using StructuredStreaming.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="how-to-use-structuredstreaming">How to use StructuredStreaming<a class="hash-link" href="#how-to-use-structuredstreaming" title="Direct link to heading">​</a></h3><p>Maybe you have not studied StructuredStreaming in detail, but found that StructuredStreaming can solve your needs very well. [...]
@@ -64,7 +64,7 @@ If you are also interested in these two, you can read our previous article &quot
                     <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/rss.xml b/blog/rss.xml
index 9e0bac0..d034225 100644
--- a/blog/rss.xml
+++ b/blog/rss.xml
@@ -16,32 +16,32 @@
             <content:encoded><![CDATA[<p>Guest speaker: Vip Senior Big Data Engineer Wang Yu
 Lecture preparation: Zhang Detong</p><p>Introduction: Vip referenced SeaTunnel as early as version 1.0. We use SeaTunnel to perform some data interaction work between Hive and ClickHouse.
 Today's presentation will focus on the following points:</p><ul><li>Requirements and pain points of ClickHouse data import;</li><li>Selection of ClickHouse warehousing and warehousing tools;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>Integration of SeaTunnel and Vipshop data platform;</li><li>Future outlook;</li></ul><h1>Requirements and pain points of ClickHouse data import</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1-vipshop-data-olap-architecture">1. V [...]
-<img alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2-requirements">2. Requirements<a class="hash-link" href="#2-requirements" title="Direct link to heading">​</a></h2><p>We connect the underlying Hive, Kudu, and Alluxio components through Presto Connector and Spark components. Big data components can import and export data to and from each other, and you can use appropriate component [...]
-<img alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>The second requirement is that Presto runs SQL relatively slowly. The figure shows an example of slow SQL. The SQL where condition in the figure sets the date, time range, and specific filter conditions. This kind of SQL usage runs slowly because Presto uses partition granularity to push down. Even after optimization by other methods such as Hive's bucket table and bucketing, the re [...]
-<img alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>Our real-time data is written to Clickhouse through Kafka and Flink SQL. However, it is not enough to use real-time data for analysis. It is necessary to use the Hive dimension table and the T+1 real-time table with the ETL calculation number for accelerated transportation in Clickhouse. This requires importing Hive data into Clickhouse, which is our third requirement.
-<img alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3-pain-points">3. Pain points<a class="hash-link" href="#3-pain-points" title="Direct link to heading">​</a></h2><p>First, we introduce a data component to consider its performance. The granularity of the Hive table is five minutes. Is there a component that can support a short ETL process and import the ETL results into Clickhouse wit [...]
+<img loading="lazy" alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2-requirements">2. Requirements<a class="hash-link" href="#2-requirements" title="Direct link to heading">​</a></h2><p>We connect the underlying Hive, Kudu, and Alluxio components through Presto Connector and Spark components. Big data components can import and export data to and from each other, and you can use approp [...]
+<img loading="lazy" alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>The second requirement is that Presto runs SQL relatively slowly. The figure shows an example of slow SQL. The SQL where condition in the figure sets the date, time range, and specific filter conditions. This kind of SQL usage runs slowly because Presto uses partition granularity to push down. Even after optimization by other methods such as Hive's bucket table and bu [...]
+<img loading="lazy" alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>Our real-time data is written to Clickhouse through Kafka and Flink SQL. However, it is not enough to use real-time data for analysis. It is necessary to use the Hive dimension table and the T+1 real-time table with the ETL calculation number for accelerated transportation in Clickhouse. This requires importing Hive data into Clickhouse, which is our third requirement.
+<img loading="lazy" alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3-pain-points">3. Pain points<a class="hash-link" href="#3-pain-points" title="Direct link to heading">​</a></h2><p>First, we introduce a data component to consider its performance. The granularity of the Hive table is five minutes. Is there a component that can support a short ETL process and import the ETL results into [...]
 SeaTunnel and Spark rely on Vipshop's own Yarn cluster, which can directly implement distributed reading and writing. DataX is non-distributed, and the startup process between Reader and Writer takes a long time, and the performance is ordinary. The performance of SeaTunnel and Spark for data processing can reach several times that of DataX.
 Data of more than one billion can run smoothly in SeaTunnel and Spark. DataX has great performance pressure after the amount of data is large, and it is difficult to process data of more than one billion.
 In terms of read and write plug-in scalability, SeaTunnel supports a variety of data sources and supports users to develop plug-ins. SeaTunnel supports data import into Redis.
 In terms of stability, since SeaTunnel and DataX are self-contained tools, the stability will be better. The stability aspect of Spark requires attention to code quality.
-<img alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>The amount of data in our exposure table is in the billions of levels every day. We have the performance requirement to complete data processing within 5 minutes. We have the need to import and export data to Redis. We need import and export tools that can be connected to the data platform for task scheduling. . For the consideration of data volume, performance, scalability, and pla [...]
+<img loading="lazy" alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>The amount of data in our exposure table is in the billions of levels every day. We have the performance requirement to complete data processing within 5 minutes. We have the need to import and export data to Redis. We need import and export tools that can be connected to the data platform for task scheduling. . For the consideration of data volume, performance, scala [...]
 The picture is a Hive table, which is our three-level product dimension table, including category products, dimension categories, and user population information. The primary key of the table is a third-level category ct_third_id, and the following value is the bitmap of two uids, which is the bitmap type of the user id. We need to import this Hive table into Clickhouse.
-<img alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel is easy to install, and the official website documentation describes how to install it. The figure below shows the configuration of SeaTunnel. In the configuration, env, source and sink are essential. In the env part, the example in the figure is the Spark configuration. The configuration includes concurrency, etc. These parameters can be adjusted. The source part is the d [...]
-<img alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>Run SeaTunnel, execute the sh script file, configure the conf file address and yarn information, and then you can.
-<img alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+<img loading="lazy" alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel is easy to install, and the official website documentation describes how to install it. The figure below shows the configuration of SeaTunnel. In the configuration, env, source and sink are essential. In the env part, the example in the figure is the Spark configuration. The configuration includes concurrency, etc. These parameters can be adjusted. The sourc [...]
+<img loading="lazy" alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>Run SeaTunnel, execute the sh script file, configure the conf file address and yarn information, and then you can.
+<img loading="lazy" alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
 Spark logs are generated during the running process, and both successful running and running errors can be viewed in the logs.
-<img alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>In order to better fit the business, Vipshop will make some improvements to SeaTunnel. All our ETL tasks need to be rerun. We support pre_sql and check_sql to implement data rerun and logarithm. The main process is to execute pre_sql for preprocessing after the data is ready, delete the old partition data in Clickhouse, store it in a directory, and restore the partition and rename w [...]
-<img alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>Based on the 1.0 version of SeaTunnel, Vipshop has added RowBinary for acceleration, and it also makes it easier to import the binary files of HuperLogLog and BinaryBitmap from Hive to Clickhouse. We made changes in ClickHouse-jdbc, bulk_size, Hive-source. Use the extended api of CK-jdbc to write data to CK in rowbinary mode. Bulk_size introduces the control logic for writing to C [...]
+<img loading="lazy" alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>In order to better fit the business, Vipshop will make some improvements to SeaTunnel. All our ETL tasks need to be rerun. We support pre_sql and check_sql to implement data rerun and logarithm. The main process is to execute pre_sql for preprocessing after the data is ready, delete the old partition data in Clickhouse, store it in a directory, and restore the partiti [...]
+<img loading="lazy" alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>Based on the 1.0 version of SeaTunnel, Vipshop has added RowBinary for acceleration, and it also makes it easier to import the binary files of HuperLogLog and BinaryBitmap from Hive to Clickhouse. We made changes in ClickHouse-jdbc, bulk_size, Hive-source. Use the extended api of CK-jdbc to write data to CK in rowbinary mode. Bulk_size introduces the control logic f [...]
 RDD is partitioned with HashPartitioner to break up data to prevent data from being skewed.</p><p>We also let SeaTunnel support multiple types. In order to circle the crowd, corresponding methods need to be implemented in Clickhouse, Preso, and Spark. We added Callback, HttpEntity, and RowBinaryStream that support Batch feature to Clickhouse-jdbc, added bitmap type mapping to Clickhouse-jdbc and Clickhouse-sink code, and implemented UDF of Clickhouse's Hyperloglog and Bitmap functions in [...]
 In the previous configuration, the clickhouse-sink part can specify the table name, and here is the difference between writing to the local table and the distributed table. The performance of writing to a distributed table is worse than that of writing to a local table, which will put more pressure on the Clickhouse cluster. However, in scenarios such as exposure meter, flow meter, and ABTest, two tables are required to join, and both tables are in the order of billions. . At this time,  [...]
 For the writing of local tables and distributed tables, our future transformation direction is to implement consistent hashing in Seatunnel, write directly according to certain rules, such as Clickhouse, without relying on Clickhouse itself for data distribution, and improve Clickhouse's high CPU load problem.</p><h1>ClickHouse data import into Hive</h1><p>We have the needs of people in the circle. Every day, Vipshop gathers 200,000 people in the supplier circle, such as people born in t [...]
-<img alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>The figure shows the SeaTunnel configuration. We configure the source as Clickhouse, the sink as Hive, and the data verification is also configured in Hive.
-<img alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>Since we access SeaTunnel earlier, we have processed some modules, including adding plugin-spark-sink-hive module, plugin-spark-source-ClickHouse module, and rewriting Spark Row related methods so that they can be packaged through The Clickhouse data mapped by Schem, reconstruct the StructField and generate the DataFrame that finally needs to land on Hive. The latest version has m [...]
-<img alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>The SeaTunnel task type is integrated into the platform. The picture is a screenshot of the scheduled task of Shufang. You can see that the selected part is a configured SeaTunnel task. resource information. The following shows the historical running instance information.
-<img alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>We integrated SeaTunnel into the scheduling system. The Shufang Scheduling Master will assign tasks to the corresponding Agents according to the task types, and assign them to the appropriate machines to run according to the Agent load. The controller pulls the task scheduling configuration and information in the foreground. After arriving, a SeaTunnel cluster is generated and exe [...]
-<img alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel itself is a tool-based component, which is used to manage and control data blood relationship, data quality, historical records, high-alert monitoring, and resource allocation. We integrate SeaTunnel into the platform, and we can take advantage of the platform to take advantage of SeaTunnel.
+<img loading="lazy" alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>The figure shows the SeaTunnel configuration. We configure the source as Clickhouse, the sink as Hive, and the data verification is also configured in Hive.
+<img loading="lazy" alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>Since we access SeaTunnel earlier, we have processed some modules, including adding plugin-spark-sink-hive module, plugin-spark-source-ClickHouse module, and rewriting Spark Row related methods so that they can be packaged through The Clickhouse data mapped by Schem, reconstruct the StructField and generate the DataFrame that finally needs to land on Hive. The lates [...]
+<img loading="lazy" alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>The SeaTunnel task type is integrated into the platform. The picture is a screenshot of the scheduled task of Shufang. You can see that the selected part is a configured SeaTunnel task. resource information. The following shows the historical running instance information.
+<img loading="lazy" alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>We integrated SeaTunnel into the scheduling system. The Shufang Scheduling Master will assign tasks to the corresponding Agents according to the task types, and assign them to the appropriate machines to run according to the Agent load. The controller pulls the task scheduling configuration and information in the foreground. After arriving, a SeaTunnel cluster is ge [...]
+<img loading="lazy" alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel itself is a tool-based component, which is used to manage and control data blood relationship, data quality, historical records, high-alert monitoring, and resource allocation. We integrate SeaTunnel into the platform, and we can take advantage of the platform to take advantage of SeaTunnel.
 SeaTunnel is used for processing in the deposit crowd. By managing data, we divide the circled people into different people according to their paths and usage conditions, or thousands of people and thousands of faces, tag users, and push a certain type of people circled to users, analysts and suppliers.
-<img alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>The traffic enters Kafka, enters the warehouse through Flink, and then forms a user label table through ETL. After the user label table is generated, we use the BitMap method implemented by Presto to type the data into a wide table in Hive. Users create tasks by box-selecting entries on the crowd system page, submit to Tengqun, and generate SQL query Clickhouse BitMap. Clickhouse' [...]
+<img loading="lazy" alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>The traffic enters Kafka, enters the warehouse through Flink, and then forms a user label table through ETL. After the user label table is generated, we use the BitMap method implemented by Presto to type the data into a wide table in Hive. Users create tasks by box-selecting entries on the crowd system page, submit to Tengqun, and generate SQL query Clickhouse BitM [...]
 During the whole process, SeaTunnel is responsible for exporting the data from Hive to Clickhouse. After the ETL process of Clickhouse is completed, SeaTunnel exports the data from Clickhouse to Hive.
 In order to fulfill this requirement, we implemented UDFs of ClickHouse's Hyperloglog and BitMap functions on Presto and Spark; we also developed the Seatunnel interface, so that the crowds circled by users using the Bitmap method in ClickHouse can be directly written to the Hive table through Seatunnel , without an intermediate landing step. Users can also call the SeaTunnel interface through spark to circle the crowd or reverse the crowd bitmap in Hive, so that the data can be directly [...]
             <category>Vip</category>
@@ -63,7 +63,7 @@ In order to fulfill this requirement, we implemented UDFs of ClickHouse's Hyperl
             <guid>hive-to-clickhouse</guid>
             <pubDate>Thu, 30 Dec 2021 00:00:00 GMT</pubDate>
             <description><![CDATA[ClickHouse is a distributed columnar DBMS for OLAP. Our department has stored all log data related to data analysis in ClickHouse, an excellent data warehouse, and the current daily data volume has reached 30 billion.]]></description>
-            <content:encoded><![CDATA[<p>ClickHouse is a distributed columnar DBMS for OLAP. Our department has stored all log data related to data analysis in ClickHouse, an excellent data warehouse, and the current daily data volume has reached 30 billion.</p><p>In the previous article <!-- -->[How to quickly import data from HDFS into ClickHouse]<!-- --> (2021-12-30-hdfs-to-clickhouse.md), we mentioned the use of Seatunnel <a href="https://github.com/apache/incubator-seatunnel" target [...]
+            <content:encoded><![CDATA[<p>ClickHouse is a distributed columnar DBMS for OLAP. Our department has stored all log data related to data analysis in ClickHouse, an excellent data warehouse, and the current daily data volume has reached 30 billion.</p><p>In the previous article <!-- -->[How to quickly import data from HDFS into ClickHouse]<!-- --> (2021-12-30-hdfs-to-clickhouse.md), we mentioned the use of Seatunnel <a href="https://github.com/apache/incubator-seatunnel" target [...]
             <category>Hive</category>
             <category>ClickHouse</category>
         </item>
@@ -73,7 +73,7 @@ In order to fulfill this requirement, we implemented UDFs of ClickHouse's Hyperl
             <guid>spark-execute-elasticsearch</guid>
             <pubDate>Thu, 30 Dec 2021 00:00:00 GMT</pubDate>
             <description><![CDATA[When it comes to writing data to Elasticsearch, the first thing that comes to mind must be Logstash. Logstash is accepted by the majority of users because of its simplicity, scalability, and scalability. However, the ruler is shorter and the inch is longer, and Logstash must have application scenarios that it cannot apply to, such as:]]></description>
-            <content:encoded><![CDATA[<p>When it comes to writing data to Elasticsearch, the first thing that comes to mind must be Logstash. Logstash is accepted by the majority of users because of its simplicity, scalability, and scalability. However, the ruler is shorter and the inch is longer, and Logstash must have application scenarios that it cannot apply to, such as:</p><ul><li>Massive data ETL</li><li>Massive data aggregation</li><li>Multi-source data processing</li></ul><p>In o [...]
+            <content:encoded><![CDATA[<p>When it comes to writing data to Elasticsearch, the first thing that comes to mind must be Logstash. Logstash is accepted by the majority of users because of its simplicity, scalability, and scalability. However, the ruler is shorter and the inch is longer, and Logstash must have application scenarios that it cannot apply to, such as:</p><ul><li>Massive data ETL</li><li>Massive data aggregation</li><li>Multi-source data processing</li></ul><p>In o [...]
             <category>Spark</category>
             <category>Kafka</category>
             <category>Elasticsearch</category>
diff --git a/blog/spark-execute-elasticsearch/index.html b/blog/spark-execute-elasticsearch/index.html
index f418e9b..dbd8dd5 100644
--- a/blog/spark-execute-elasticsearch/index.html
+++ b/blog/spark-execute-elasticsearch/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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 quickly write data to Elasticsearch using Spark | 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">< [...]
-<link rel="preload" href="/assets/js/runtime~main.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">How to quickly write data to Elasticsearch using Spark | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/spark-execute-elasticsearch"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:doc [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 3d9e793..9040c51 100644
--- a/blog/spark-execute-tidb/index.html
+++ b/blog/spark-execute-tidb/index.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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 use Spark to do OLAP analysis on 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/blog/spark-execute-tidb"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-hel [...]
-<link rel="preload" href="/assets/js/runtime~main.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">How to use Spark to do OLAP analysis on TiDB | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/spark-execute-tidb"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" conten [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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 style="margin-top: 20px;background: #f4f8fa">
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 a1338a5..fa8ce1b 100644
--- a/blog/spark-structured-streaming/index.html
+++ b/blog/spark-structured-streaming/index.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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 support 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 [...]
-<link rel="preload" href="/assets/js/runtime~main.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">How to support Spark StructuredStreaming | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/spark-structured-streaming"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" co [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 <!-- --> <!-- --> <!-- -->Second, real-time aggregation can be done, such as real-time calculation of the total sales of each commodity every day;<br>
@@ -34,7 +34,7 @@ If you are also interested in these two, you can read our previous article &quot
                     <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 7f120ea..b447e38 100644
--- a/blog/tags/click-house/index.html
+++ b/blog/tags/click-house/index.html
@@ -3,45 +3,45 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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;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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">3 posts tagged with &quot;ClickHouse&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="3 posts tagged with &quot;ClickHouse&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/tags/click-house"><meta data [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 Lecture preparation: Zhang Detong</p><p>Introduction: Vip referenced SeaTunnel as early as version 1.0. We use SeaTunnel to perform some data interaction work between Hive and ClickHouse.
 Today&#x27;s presentation will focus on the following points:</p><ul><li>Requirements and pain points of ClickHouse data import;</li><li>Selection of ClickHouse warehousing and warehousing tools;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>Integration of SeaTunnel and Vipshop data platform;</li><li>Future outlook;</li></ul><h1>Requirements and pain points of ClickHouse data import</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1-vipshop-data-olap-architecture" [...]
-<img alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2-requirements">2. Requirements<a class="hash-link" href="#2-requirements" title="Direct link to heading">​</a></h2><p>We connect the underlying Hive, Kudu, and Alluxio components through Presto Connector and Spark components. Big data components can import and export data to and from each other, and you can use appropriate component [...]
-<img alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>The second requirement is that Presto runs SQL relatively slowly. The figure shows an example of slow SQL. The SQL where condition in the figure sets the date, time range, and specific filter conditions. This kind of SQL usage runs slowly because Presto uses partition granularity to push down. Even after optimization by other methods such as Hive&#x27;s bucket table and bucketing, t [...]
-<img alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>Our real-time data is written to Clickhouse through Kafka and Flink SQL. However, it is not enough to use real-time data for analysis. It is necessary to use the Hive dimension table and the T+1 real-time table with the ETL calculation number for accelerated transportation in Clickhouse. This requires importing Hive data into Clickhouse, which is our third requirement.
-<img alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3-pain-points">3. Pain points<a class="hash-link" href="#3-pain-points" title="Direct link to heading">​</a></h2><p>First, we introduce a data component to consider its performance. The granularity of the Hive table is five minutes. Is there a component that can support a short ETL process and import the ETL results into Clickhouse wit [...]
+<img loading="lazy" alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2-requirements">2. Requirements<a class="hash-link" href="#2-requirements" title="Direct link to heading">​</a></h2><p>We connect the underlying Hive, Kudu, and Alluxio components through Presto Connector and Spark components. Big data components can import and export data to and from each other, and you can use approp [...]
+<img loading="lazy" alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>The second requirement is that Presto runs SQL relatively slowly. The figure shows an example of slow SQL. The SQL where condition in the figure sets the date, time range, and specific filter conditions. This kind of SQL usage runs slowly because Presto uses partition granularity to push down. Even after optimization by other methods such as Hive&#x27;s bucket table a [...]
+<img loading="lazy" alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>Our real-time data is written to Clickhouse through Kafka and Flink SQL. However, it is not enough to use real-time data for analysis. It is necessary to use the Hive dimension table and the T+1 real-time table with the ETL calculation number for accelerated transportation in Clickhouse. This requires importing Hive data into Clickhouse, which is our third requirement.
+<img loading="lazy" alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3-pain-points">3. Pain points<a class="hash-link" href="#3-pain-points" title="Direct link to heading">​</a></h2><p>First, we introduce a data component to consider its performance. The granularity of the Hive table is five minutes. Is there a component that can support a short ETL process and import the ETL results into [...]
 SeaTunnel and Spark rely on Vipshop&#x27;s own Yarn cluster, which can directly implement distributed reading and writing. DataX is non-distributed, and the startup process between Reader and Writer takes a long time, and the performance is ordinary. The performance of SeaTunnel and Spark for data processing can reach several times that of DataX.
 Data of more than one billion can run smoothly in SeaTunnel and Spark. DataX has great performance pressure after the amount of data is large, and it is difficult to process data of more than one billion.
 In terms of read and write plug-in scalability, SeaTunnel supports a variety of data sources and supports users to develop plug-ins. SeaTunnel supports data import into Redis.
 In terms of stability, since SeaTunnel and DataX are self-contained tools, the stability will be better. The stability aspect of Spark requires attention to code quality.
-<img alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>The amount of data in our exposure table is in the billions of levels every day. We have the performance requirement to complete data processing within 5 minutes. We have the need to import and export data to Redis. We need import and export tools that can be connected to the data platform for task scheduling. . For the consideration of data volume, performance, scalability, and pla [...]
+<img loading="lazy" alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>The amount of data in our exposure table is in the billions of levels every day. We have the performance requirement to complete data processing within 5 minutes. We have the need to import and export data to Redis. We need import and export tools that can be connected to the data platform for task scheduling. . For the consideration of data volume, performance, scala [...]
 The picture is a Hive table, which is our three-level product dimension table, including category products, dimension categories, and user population information. The primary key of the table is a third-level category ct_third_id, and the following value is the bitmap of two uids, which is the bitmap type of the user id. We need to import this Hive table into Clickhouse.
-<img alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel is easy to install, and the official website documentation describes how to install it. The figure below shows the configuration of SeaTunnel. In the configuration, env, source and sink are essential. In the env part, the example in the figure is the Spark configuration. The configuration includes concurrency, etc. These parameters can be adjusted. The source part is the d [...]
-<img alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>Run SeaTunnel, execute the sh script file, configure the conf file address and yarn information, and then you can.
-<img alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+<img loading="lazy" alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel is easy to install, and the official website documentation describes how to install it. The figure below shows the configuration of SeaTunnel. In the configuration, env, source and sink are essential. In the env part, the example in the figure is the Spark configuration. The configuration includes concurrency, etc. These parameters can be adjusted. The sourc [...]
+<img loading="lazy" alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>Run SeaTunnel, execute the sh script file, configure the conf file address and yarn information, and then you can.
+<img loading="lazy" alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
 Spark logs are generated during the running process, and both successful running and running errors can be viewed in the logs.
-<img alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>In order to better fit the business, Vipshop will make some improvements to SeaTunnel. All our ETL tasks need to be rerun. We support pre_sql and check_sql to implement data rerun and logarithm. The main process is to execute pre_sql for preprocessing after the data is ready, delete the old partition data in Clickhouse, store it in a directory, and restore the partition and rename w [...]
-<img alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>Based on the 1.0 version of SeaTunnel, Vipshop has added RowBinary for acceleration, and it also makes it easier to import the binary files of HuperLogLog and BinaryBitmap from Hive to Clickhouse. We made changes in ClickHouse-jdbc, bulk_size, Hive-source. Use the extended api of CK-jdbc to write data to CK in rowbinary mode. Bulk_size introduces the control logic for writing to C [...]
+<img loading="lazy" alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>In order to better fit the business, Vipshop will make some improvements to SeaTunnel. All our ETL tasks need to be rerun. We support pre_sql and check_sql to implement data rerun and logarithm. The main process is to execute pre_sql for preprocessing after the data is ready, delete the old partition data in Clickhouse, store it in a directory, and restore the partiti [...]
+<img loading="lazy" alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>Based on the 1.0 version of SeaTunnel, Vipshop has added RowBinary for acceleration, and it also makes it easier to import the binary files of HuperLogLog and BinaryBitmap from Hive to Clickhouse. We made changes in ClickHouse-jdbc, bulk_size, Hive-source. Use the extended api of CK-jdbc to write data to CK in rowbinary mode. Bulk_size introduces the control logic f [...]
 RDD is partitioned with HashPartitioner to break up data to prevent data from being skewed.</p><p>We also let SeaTunnel support multiple types. In order to circle the crowd, corresponding methods need to be implemented in Clickhouse, Preso, and Spark. We added Callback, HttpEntity, and RowBinaryStream that support Batch feature to Clickhouse-jdbc, added bitmap type mapping to Clickhouse-jdbc and Clickhouse-sink code, and implemented UDF of Clickhouse&#x27;s Hyperloglog and Bitmap functio [...]
 In the previous configuration, the clickhouse-sink part can specify the table name, and here is the difference between writing to the local table and the distributed table. The performance of writing to a distributed table is worse than that of writing to a local table, which will put more pressure on the Clickhouse cluster. However, in scenarios such as exposure meter, flow meter, and ABTest, two tables are required to join, and both tables are in the order of billions. . At this time,  [...]
 For the writing of local tables and distributed tables, our future transformation direction is to implement consistent hashing in Seatunnel, write directly according to certain rules, such as Clickhouse, without relying on Clickhouse itself for data distribution, and improve Clickhouse&#x27;s high CPU load problem.</p><h1>ClickHouse data import into Hive</h1><p>We have the needs of people in the circle. Every day, Vipshop gathers 200,000 people in the supplier circle, such as people born [...]
-<img alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>The figure shows the SeaTunnel configuration. We configure the source as Clickhouse, the sink as Hive, and the data verification is also configured in Hive.
-<img alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>Since we access SeaTunnel earlier, we have processed some modules, including adding plugin-spark-sink-hive module, plugin-spark-source-ClickHouse module, and rewriting Spark Row related methods so that they can be packaged through The Clickhouse data mapped by Schem, reconstruct the StructField and generate the DataFrame that finally needs to land on Hive. The latest version has m [...]
-<img alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>The SeaTunnel task type is integrated into the platform. The picture is a screenshot of the scheduled task of Shufang. You can see that the selected part is a configured SeaTunnel task. resource information. The following shows the historical running instance information.
-<img alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>We integrated SeaTunnel into the scheduling system. The Shufang Scheduling Master will assign tasks to the corresponding Agents according to the task types, and assign them to the appropriate machines to run according to the Agent load. The controller pulls the task scheduling configuration and information in the foreground. After arriving, a SeaTunnel cluster is generated and exe [...]
-<img alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel itself is a tool-based component, which is used to manage and control data blood relationship, data quality, historical records, high-alert monitoring, and resource allocation. We integrate SeaTunnel into the platform, and we can take advantage of the platform to take advantage of SeaTunnel.
+<img loading="lazy" alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>The figure shows the SeaTunnel configuration. We configure the source as Clickhouse, the sink as Hive, and the data verification is also configured in Hive.
+<img loading="lazy" alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>Since we access SeaTunnel earlier, we have processed some modules, including adding plugin-spark-sink-hive module, plugin-spark-source-ClickHouse module, and rewriting Spark Row related methods so that they can be packaged through The Clickhouse data mapped by Schem, reconstruct the StructField and generate the DataFrame that finally needs to land on Hive. The lates [...]
+<img loading="lazy" alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>The SeaTunnel task type is integrated into the platform. The picture is a screenshot of the scheduled task of Shufang. You can see that the selected part is a configured SeaTunnel task. resource information. The following shows the historical running instance information.
+<img loading="lazy" alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>We integrated SeaTunnel into the scheduling system. The Shufang Scheduling Master will assign tasks to the corresponding Agents according to the task types, and assign them to the appropriate machines to run according to the Agent load. The controller pulls the task scheduling configuration and information in the foreground. After arriving, a SeaTunnel cluster is ge [...]
+<img loading="lazy" alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel itself is a tool-based component, which is used to manage and control data blood relationship, data quality, historical records, high-alert monitoring, and resource allocation. We integrate SeaTunnel into the platform, and we can take advantage of the platform to take advantage of SeaTunnel.
 SeaTunnel is used for processing in the deposit crowd. By managing data, we divide the circled people into different people according to their paths and usage conditions, or thousands of people and thousands of faces, tag users, and push a certain type of people circled to users, analysts and suppliers.
-<img alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>The traffic enters Kafka, enters the warehouse through Flink, and then forms a user label table through ETL. After the user label table is generated, we use the BitMap method implemented by Presto to type the data into a wide table in Hive. Users create tasks by box-selecting entries on the crowd system page, submit to Tengqun, and generate SQL query Clickhouse BitMap. Clickhouse& [...]
+<img loading="lazy" alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>The traffic enters Kafka, enters the warehouse through Flink, and then forms a user label table through ETL. After the user label table is generated, we use the BitMap method implemented by Presto to type the data into a wide table in Hive. Users create tasks by box-selecting entries on the crowd system page, submit to Tengqun, and generate SQL query Clickhouse BitM [...]
 During the whole process, SeaTunnel is responsible for exporting the data from Hive to Clickhouse. After the ETL process of Clickhouse is completed, SeaTunnel exports the data from Clickhouse to Hive.
-In order to fulfill this requirement, we implemented UDFs of ClickHouse&#x27;s Hyperloglog and BitMap functions on Presto and Spark; we also developed the Seatunnel interface, so that the crowds circled by users using the Bitmap method in ClickHouse can be directly written to the Hive table through Seatunnel , without an intermediate landing step. Users can also call the SeaTunnel interface through spark to circle the crowd or reverse the crowd bitmap in Hive, so that the data can be dir [...]
+In order to fulfill this requirement, we implemented UDFs of ClickHouse&#x27;s Hyperloglog and BitMap functions on Presto and Spark; we also developed the Seatunnel interface, so that the crowds circled by users using the Bitmap method in ClickHouse can be directly written to the Hive table through Seatunnel , without an intermediate landing step. Users can also call the SeaTunnel interface through spark to circle the crowd or reverse the crowd bitmap in Hive, so that the data can be dir [...]
             <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  [...]
@@ -53,7 +53,7 @@ In order to fulfill this requirement, we implemented UDFs of ClickHouse&#x27;s H
                     <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 47578ce..962e77a 100644
--- a/blog/tags/elasticsearch/index.html
+++ b/blog/tags/elasticsearch/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;Elasticsearch&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;Elasticsearch&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/tags/elasticsearch"> [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 6a01aba..a1e8f6b 100644
--- a/blog/tags/hdfs/index.html
+++ b/blog/tags/hdfs/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;HDFS&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;HDFS&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/tags/hdfs"><meta data-rh="true" name=" [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 de1a311..9e03ca4 100644
--- a/blog/tags/hive/index.html
+++ b/blog/tags/hive/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;Hive&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;Hive&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/tags/hive"><meta data-rh="true" name=" [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/index.html b/blog/tags/index.html
index 91496e5..ffdf8c5 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Tags | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="Tags | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/tags"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:d [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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 style="margin-top: 20px;background: #f4f8fa">
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 6e63b3d..24d87d5 100644
--- a/blog/tags/kafka/index.html
+++ b/blog/tags/kafka/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;Kafka&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;Kafka&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/tags/kafka"><meta data-rh="true" nam [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 24c3bcb..9180fa4 100644
--- a/blog/tags/spark/index.html
+++ b/blog/tags/spark/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">3 posts tagged with &quot;Spark&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="3 posts tagged with &quot;Spark&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/tags/spark"><meta data-rh="true" name= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 <!-- --> <!-- --> <!-- -->Second, real-time aggregation can be done, such as real-time calculation of the total sales of each commodity every day;<br>
 <!-- --> <!-- --> <!-- -->Third, you can do the association between streams, for example, to calculate the click rate of an advertisement, you need to associate the exposure record of the advertisement with the click record. <br>
 The above points may be cumbersome or difficult to implement if using SparkStreaming, but it will be easier to implement using StructuredStreaming.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="how-to-use-structuredstreaming">How to use StructuredStreaming<a class="hash-link" href="#how-to-use-structuredstreaming" title="Direct link to heading">​</a></h3><p>Maybe you have not studied StructuredStreaming in detail, but found that StructuredStreaming can solve your needs very well. [...]
@@ -22,7 +22,7 @@ It is still very convenient to operate.</p><p>The data of kafka is as follows</p
 At this point, we need to associate the two stream data together for calculation, and Seatunnel also supports this function recently, let&#x27;s take a look at how to do it:</p><p>Click on topic data format</p><div class="codeBlockContainer_I0IT theme-code-block"><div class="codeBlockContent_wNvx"><pre tabindex="0" class="prism-code language-text codeBlock_jd64 thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_mRuA"><span class="token-line" style= [...]
 If you are also interested in these two, you can read our previous article &quot;<a href="/blog/hive-to-clickhouse">How to quickly import data from Hive into ClickHouse</a>&quot;,
 &quot;<!-- -->[Excellent data engineer, how to use Spark to do OLAP analysis on TiDB]<!-- --> (2021-12-30-spark-execute-tidb.md)&quot;,
-&quot;<!-- -->[How to use Spark to quickly write data to Elasticsearch]<!-- --> (2021-12-30-spark-execute-elasticsearch.md)&quot;</p><p>If you want to know more functions and cases of Seatunnel combined with HBase, ClickHouse, Elasticsearch, Kafka, MySQL and other data sources, you can go directly to the official website <!-- -->[https://seatunnel.apache.org/]<!-- -->(<a href="https://seatunnel.apache." target="_blank" rel="noopener noreferrer">https://seatunnel.apache.</a> org/)</p><h2  [...]
+&quot;<!-- -->[How to use Spark to quickly write data to Elasticsearch]<!-- --> (2021-12-30-spark-execute-elasticsearch.md)&quot;</p><p>If you want to know more functions and cases of Seatunnel combined with HBase, ClickHouse, Elasticsearch, Kafka, MySQL and other data sources, you can go directly to the official website <!-- -->[https://seatunnel.apache.org/]<!-- -->(<a href="https://seatunnel.apache." target="_blank" rel="noopener noreferrer">https://seatunnel.apache.</a> org/)</p><h2  [...]
             <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  [...]
@@ -34,7 +34,7 @@ If you are also interested in these two, you can read our previous article &quot
                     <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 8aefc30..f0c9f85 100644
--- a/blog/tags/structured-streaming/index.html
+++ b/blog/tags/structured-streaming/index.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;StructuredStreaming&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;StructuredStreaming&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/tags/str [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 <!-- --> <!-- --> <!-- -->Second, real-time aggregation can be done, such as real-time calculation of the total sales of each commodity every day;<br>
@@ -22,7 +22,7 @@ It is still very convenient to operate.</p><p>The data of kafka is as follows</p
 At this point, we need to associate the two stream data together for calculation, and Seatunnel also supports this function recently, let&#x27;s take a look at how to do it:</p><p>Click on topic data format</p><div class="codeBlockContainer_I0IT theme-code-block"><div class="codeBlockContent_wNvx"><pre tabindex="0" class="prism-code language-text codeBlock_jd64 thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_mRuA"><span class="token-line" style= [...]
 If you are also interested in these two, you can read our previous article &quot;<a href="/blog/hive-to-clickhouse">How to quickly import data from Hive into ClickHouse</a>&quot;,
 &quot;<!-- -->[Excellent data engineer, how to use Spark to do OLAP analysis on TiDB]<!-- --> (2021-12-30-spark-execute-tidb.md)&quot;,
-&quot;<!-- -->[How to use Spark to quickly write data to Elasticsearch]<!-- --> (2021-12-30-spark-execute-elasticsearch.md)&quot;</p><p>If you want to know more functions and cases of Seatunnel combined with HBase, ClickHouse, Elasticsearch, Kafka, MySQL and other data sources, you can go directly to the official website <!-- -->[https://seatunnel.apache.org/]<!-- -->(<a href="https://seatunnel.apache." target="_blank" rel="noopener noreferrer">https://seatunnel.apache.</a> org/)</p><h2  [...]
+&quot;<!-- -->[How to use Spark to quickly write data to Elasticsearch]<!-- --> (2021-12-30-spark-execute-elasticsearch.md)&quot;</p><p>If you want to know more functions and cases of Seatunnel combined with HBase, ClickHouse, Elasticsearch, Kafka, MySQL and other data sources, you can go directly to the official website <!-- -->[https://seatunnel.apache.org/]<!-- -->(<a href="https://seatunnel.apache." target="_blank" rel="noopener noreferrer">https://seatunnel.apache.</a> org/)</p><h2  [...]
             <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  [...]
@@ -34,7 +34,7 @@ If you are also interested in these two, you can read our previous article &quot
                     <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 7254731..a544fb5 100644
--- a/blog/tags/ti-db/index.html
+++ b/blog/tags/ti-db/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;TiDB&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;TiDB&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/tags/ti-db"><meta data-rh="true" name= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/vip/index.html b/blog/tags/vip/index.html
index 91613af..6291796 100644
--- a/blog/tags/vip/index.html
+++ b/blog/tags/vip/index.html
@@ -3,45 +3,45 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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;Vip&quot; | Apache SeaTunnel</title><meta data-react-helmet="true" property="og:title" content="One post tagged with &quot;Vip&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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;Vip&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;Vip&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/blog/tags/vip"><meta data-rh="true" name="doc [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 Lecture preparation: Zhang Detong</p><p>Introduction: Vip referenced SeaTunnel as early as version 1.0. We use SeaTunnel to perform some data interaction work between Hive and ClickHouse.
 Today&#x27;s presentation will focus on the following points:</p><ul><li>Requirements and pain points of ClickHouse data import;</li><li>Selection of ClickHouse warehousing and warehousing tools;</li><li>Hive to ClickHouse;</li><li>ClickHouse to Hive;</li><li>Integration of SeaTunnel and Vipshop data platform;</li><li>Future outlook;</li></ul><h1>Requirements and pain points of ClickHouse data import</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="1-vipshop-data-olap-architecture" [...]
-<img alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2-requirements">2. Requirements<a class="hash-link" href="#2-requirements" title="Direct link to heading">​</a></h2><p>We connect the underlying Hive, Kudu, and Alluxio components through Presto Connector and Spark components. Big data components can import and export data to and from each other, and you can use appropriate component [...]
-<img alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>The second requirement is that Presto runs SQL relatively slowly. The figure shows an example of slow SQL. The SQL where condition in the figure sets the date, time range, and specific filter conditions. This kind of SQL usage runs slowly because Presto uses partition granularity to push down. Even after optimization by other methods such as Hive&#x27;s bucket table and bucketing, t [...]
-<img alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>Our real-time data is written to Clickhouse through Kafka and Flink SQL. However, it is not enough to use real-time data for analysis. It is necessary to use the Hive dimension table and the T+1 real-time table with the ETL calculation number for accelerated transportation in Clickhouse. This requires importing Hive data into Clickhouse, which is our third requirement.
-<img alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3-pain-points">3. Pain points<a class="hash-link" href="#3-pain-points" title="Direct link to heading">​</a></h2><p>First, we introduce a data component to consider its performance. The granularity of the Hive table is five minutes. Is there a component that can support a short ETL process and import the ETL results into Clickhouse wit [...]
+<img loading="lazy" alt="1" src="/assets/images/1-1-f0cdf48f8c90391d9e8cfe410fc32bb1.png" width="2038" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="2-requirements">2. Requirements<a class="hash-link" href="#2-requirements" title="Direct link to heading">​</a></h2><p>We connect the underlying Hive, Kudu, and Alluxio components through Presto Connector and Spark components. Big data components can import and export data to and from each other, and you can use approp [...]
+<img loading="lazy" alt="2" src="/assets/images/2-0b1a1413f99ac6195aefc2146ba07c4b.png" width="2037" height="1440"></p><p>The second requirement is that Presto runs SQL relatively slowly. The figure shows an example of slow SQL. The SQL where condition in the figure sets the date, time range, and specific filter conditions. This kind of SQL usage runs slowly because Presto uses partition granularity to push down. Even after optimization by other methods such as Hive&#x27;s bucket table a [...]
+<img loading="lazy" alt="3" src="/assets/images/3-a762d5f3914268cbc2b478215d8da72d.png" width="2035" height="1440"></p><p>Our real-time data is written to Clickhouse through Kafka and Flink SQL. However, it is not enough to use real-time data for analysis. It is necessary to use the Hive dimension table and the T+1 real-time table with the ETL calculation number for accelerated transportation in Clickhouse. This requires importing Hive data into Clickhouse, which is our third requirement.
+<img loading="lazy" alt="4" src="/assets/images/4-03112bb3e1bca7cc97ab7868fbdf6d78.png" width="2035" height="1440"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="3-pain-points">3. Pain points<a class="hash-link" href="#3-pain-points" title="Direct link to heading">​</a></h2><p>First, we introduce a data component to consider its performance. The granularity of the Hive table is five minutes. Is there a component that can support a short ETL process and import the ETL results into [...]
 SeaTunnel and Spark rely on Vipshop&#x27;s own Yarn cluster, which can directly implement distributed reading and writing. DataX is non-distributed, and the startup process between Reader and Writer takes a long time, and the performance is ordinary. The performance of SeaTunnel and Spark for data processing can reach several times that of DataX.
 Data of more than one billion can run smoothly in SeaTunnel and Spark. DataX has great performance pressure after the amount of data is large, and it is difficult to process data of more than one billion.
 In terms of read and write plug-in scalability, SeaTunnel supports a variety of data sources and supports users to develop plug-ins. SeaTunnel supports data import into Redis.
 In terms of stability, since SeaTunnel and DataX are self-contained tools, the stability will be better. The stability aspect of Spark requires attention to code quality.
-<img alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>The amount of data in our exposure table is in the billions of levels every day. We have the performance requirement to complete data processing within 5 minutes. We have the need to import and export data to Redis. We need import and export tools that can be connected to the data platform for task scheduling. . For the consideration of data volume, performance, scalability, and pla [...]
+<img loading="lazy" alt="5" src="/assets/images/5-e5c4ff850add4f0334c2f9a0de839c53.png" width="2035" height="1440"></p><p>The amount of data in our exposure table is in the billions of levels every day. We have the performance requirement to complete data processing within 5 minutes. We have the need to import and export data to Redis. We need import and export tools that can be connected to the data platform for task scheduling. . For the consideration of data volume, performance, scala [...]
 The picture is a Hive table, which is our three-level product dimension table, including category products, dimension categories, and user population information. The primary key of the table is a third-level category ct_third_id, and the following value is the bitmap of two uids, which is the bitmap type of the user id. We need to import this Hive table into Clickhouse.
-<img alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel is easy to install, and the official website documentation describes how to install it. The figure below shows the configuration of SeaTunnel. In the configuration, env, source and sink are essential. In the env part, the example in the figure is the Spark configuration. The configuration includes concurrency, etc. These parameters can be adjusted. The source part is the d [...]
-<img alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>Run SeaTunnel, execute the sh script file, configure the conf file address and yarn information, and then you can.
-<img alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
+<img loading="lazy" alt="6" src="/assets/images/6-e37187a14e8316f82074f78b8a250a58.png" width="2036" height="1440"></p><p>SeaTunnel is easy to install, and the official website documentation describes how to install it. The figure below shows the configuration of SeaTunnel. In the configuration, env, source and sink are essential. In the env part, the example in the figure is the Spark configuration. The configuration includes concurrency, etc. These parameters can be adjusted. The sourc [...]
+<img loading="lazy" alt="7" src="/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>Run SeaTunnel, execute the sh script file, configure the conf file address and yarn information, and then you can.
+<img loading="lazy" alt="8" src="/assets/images/8-fa6d66bcb7d1a37038666d5d63c64d3d.png" width="2038" height="1440">
 Spark logs are generated during the running process, and both successful running and running errors can be viewed in the logs.
-<img alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>In order to better fit the business, Vipshop will make some improvements to SeaTunnel. All our ETL tasks need to be rerun. We support pre_sql and check_sql to implement data rerun and logarithm. The main process is to execute pre_sql for preprocessing after the data is ready, delete the old partition data in Clickhouse, store it in a directory, and restore the partition and rename w [...]
-<img alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>Based on the 1.0 version of SeaTunnel, Vipshop has added RowBinary for acceleration, and it also makes it easier to import the binary files of HuperLogLog and BinaryBitmap from Hive to Clickhouse. We made changes in ClickHouse-jdbc, bulk_size, Hive-source. Use the extended api of CK-jdbc to write data to CK in rowbinary mode. Bulk_size introduces the control logic for writing to C [...]
+<img loading="lazy" alt="9" src="/assets/images/9-f08855ea40230b4f16d6c04408063346.png" width="2038" height="1440"></p><p>In order to better fit the business, Vipshop will make some improvements to SeaTunnel. All our ETL tasks need to be rerun. We support pre_sql and check_sql to implement data rerun and logarithm. The main process is to execute pre_sql for preprocessing after the data is ready, delete the old partition data in Clickhouse, store it in a directory, and restore the partiti [...]
+<img loading="lazy" alt="10" src="/assets/images/10-15459320d13177fafe0fd49a06f92e03.png" width="2037" height="1440"></p><p>Based on the 1.0 version of SeaTunnel, Vipshop has added RowBinary for acceleration, and it also makes it easier to import the binary files of HuperLogLog and BinaryBitmap from Hive to Clickhouse. We made changes in ClickHouse-jdbc, bulk_size, Hive-source. Use the extended api of CK-jdbc to write data to CK in rowbinary mode. Bulk_size introduces the control logic f [...]
 RDD is partitioned with HashPartitioner to break up data to prevent data from being skewed.</p><p>We also let SeaTunnel support multiple types. In order to circle the crowd, corresponding methods need to be implemented in Clickhouse, Preso, and Spark. We added Callback, HttpEntity, and RowBinaryStream that support Batch feature to Clickhouse-jdbc, added bitmap type mapping to Clickhouse-jdbc and Clickhouse-sink code, and implemented UDF of Clickhouse&#x27;s Hyperloglog and Bitmap functio [...]
 In the previous configuration, the clickhouse-sink part can specify the table name, and here is the difference between writing to the local table and the distributed table. The performance of writing to a distributed table is worse than that of writing to a local table, which will put more pressure on the Clickhouse cluster. However, in scenarios such as exposure meter, flow meter, and ABTest, two tables are required to join, and both tables are in the order of billions. . At this time,  [...]
 For the writing of local tables and distributed tables, our future transformation direction is to implement consistent hashing in Seatunnel, write directly according to certain rules, such as Clickhouse, without relying on Clickhouse itself for data distribution, and improve Clickhouse&#x27;s high CPU load problem.</p><h1>ClickHouse data import into Hive</h1><p>We have the needs of people in the circle. Every day, Vipshop gathers 200,000 people in the supplier circle, such as people born [...]
-<img alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>The figure shows the SeaTunnel configuration. We configure the source as Clickhouse, the sink as Hive, and the data verification is also configured in Hive.
-<img alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>Since we access SeaTunnel earlier, we have processed some modules, including adding plugin-spark-sink-hive module, plugin-spark-source-ClickHouse module, and rewriting Spark Row related methods so that they can be packaged through The Clickhouse data mapped by Schem, reconstruct the StructField and generate the DataFrame that finally needs to land on Hive. The latest version has m [...]
-<img alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>The SeaTunnel task type is integrated into the platform. The picture is a screenshot of the scheduled task of Shufang. You can see that the selected part is a configured SeaTunnel task. resource information. The following shows the historical running instance information.
-<img alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>We integrated SeaTunnel into the scheduling system. The Shufang Scheduling Master will assign tasks to the corresponding Agents according to the task types, and assign them to the appropriate machines to run according to the Agent load. The controller pulls the task scheduling configuration and information in the foreground. After arriving, a SeaTunnel cluster is generated and exe [...]
-<img alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel itself is a tool-based component, which is used to manage and control data blood relationship, data quality, historical records, high-alert monitoring, and resource allocation. We integrate SeaTunnel into the platform, and we can take advantage of the platform to take advantage of SeaTunnel.
+<img loading="lazy" alt="11" src="/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>The figure shows the SeaTunnel configuration. We configure the source as Clickhouse, the sink as Hive, and the data verification is also configured in Hive.
+<img loading="lazy" alt="12" src="/assets/images/12-9a03852b4e4065b3f9f909da1bb4b672.png" width="2035" height="1440"></p><p>Since we access SeaTunnel earlier, we have processed some modules, including adding plugin-spark-sink-hive module, plugin-spark-source-ClickHouse module, and rewriting Spark Row related methods so that they can be packaged through The Clickhouse data mapped by Schem, reconstruct the StructField and generate the DataFrame that finally needs to land on Hive. The lates [...]
+<img loading="lazy" alt="13" src="/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>The SeaTunnel task type is integrated into the platform. The picture is a screenshot of the scheduled task of Shufang. You can see that the selected part is a configured SeaTunnel task. resource information. The following shows the historical running instance information.
+<img loading="lazy" alt="14" src="/assets/images/14-654566bbfb5ed478b1a9dcd28f2dba72.png" width="2037" height="1440"></p><p>We integrated SeaTunnel into the scheduling system. The Shufang Scheduling Master will assign tasks to the corresponding Agents according to the task types, and assign them to the appropriate machines to run according to the Agent load. The controller pulls the task scheduling configuration and information in the foreground. After arriving, a SeaTunnel cluster is ge [...]
+<img loading="lazy" alt="15" src="/assets/images/15-798a1029db30ff228befcc333645c3e4.png" width="2038" height="1440"></p><p>SeaTunnel itself is a tool-based component, which is used to manage and control data blood relationship, data quality, historical records, high-alert monitoring, and resource allocation. We integrate SeaTunnel into the platform, and we can take advantage of the platform to take advantage of SeaTunnel.
 SeaTunnel is used for processing in the deposit crowd. By managing data, we divide the circled people into different people according to their paths and usage conditions, or thousands of people and thousands of faces, tag users, and push a certain type of people circled to users, analysts and suppliers.
-<img alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>The traffic enters Kafka, enters the warehouse through Flink, and then forms a user label table through ETL. After the user label table is generated, we use the BitMap method implemented by Presto to type the data into a wide table in Hive. Users create tasks by box-selecting entries on the crowd system page, submit to Tengqun, and generate SQL query Clickhouse BitMap. Clickhouse& [...]
+<img loading="lazy" alt="16" src="/assets/images/16-8947f00847b3a55a537124964206e1b2.png" width="2036" height="1440"></p><p>The traffic enters Kafka, enters the warehouse through Flink, and then forms a user label table through ETL. After the user label table is generated, we use the BitMap method implemented by Presto to type the data into a wide table in Hive. Users create tasks by box-selecting entries on the crowd system page, submit to Tengqun, and generate SQL query Clickhouse BitM [...]
 During the whole process, SeaTunnel is responsible for exporting the data from Hive to Clickhouse. After the ETL process of Clickhouse is completed, SeaTunnel exports the data from Clickhouse to Hive.
-In order to fulfill this requirement, we implemented UDFs of ClickHouse&#x27;s Hyperloglog and BitMap functions on Presto and Spark; we also developed the Seatunnel interface, so that the crowds circled by users using the Bitmap method in ClickHouse can be directly written to the Hive table through Seatunnel , without an intermediate landing step. Users can also call the SeaTunnel interface through spark to circle the crowd or reverse the crowd bitmap in Hive, so that the data can be dir [...]
+In order to fulfill this requirement, we implemented UDFs of ClickHouse&#x27;s Hyperloglog and BitMap functions on Presto and Spark; we also developed the Seatunnel interface, so that the crowds circled by users using the Bitmap method in ClickHouse can be directly written to the Hive table through Seatunnel , without an intermediate landing step. Users can also call the SeaTunnel interface through spark to circle the crowd or reverse the crowd bitmap in Hive, so that the data can be dir [...]
             <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  [...]
@@ -53,7 +53,7 @@ In order to fulfill this requirement, we implemented UDFs of ClickHouse&#x27;s H
                     <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 f8320b4..fc29652 100644
--- a/community/contribution_guide/committer/index.html
+++ b/community/contribution_guide/committer/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Become Apache SeaTunnel Committer | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/community/contribution_guide/committer"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content=" [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 To get started contributing to SeaTunnel, learn how to contribute – anyone can submit patches, documentation and examples to the project.</p><p>The PPMC regularly adds new committers from the active contributors, based on their contributions to SeaTunnel. The qualifications for new committers include:</p><p>Sustained contributions to SeaTunnel: Committers should have a history of major contributions to SeaTunnel. An ideal committer will have contributed broadly throughout the project, an [...]
 Quality of contributions: Committers more than any other community member should submit simple, well-tested, and well-designed patches. In addition, they should show sufficient expertise to be able to review patches, including making sure they fit within SeaTunnel’s engineering practices (testability, documentation, API stability, code style, etc). The committership is collectively responsible for the software quality and maintainability of SeaTunnel. Note that contributions to critical  [...]
 Community involvement: Committers should have a constructive and friendly attitude in all community interactions. They should also be active on the dev and user list and help mentor newer contributors and users. In design discussions, committers should maintain a professional and diplomatic approach, even in the face of disagreement.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="committer">Committer<a class="hash-link" href="#committer" title="Direct link to heading">​</a></h2><h [...]
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 348a2be..e672558 100644
--- a/community/contribution_guide/contribute/index.html
+++ b/community/contribution_guide/contribute/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Participate in Contributing | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/community/contribution_guide/contribute"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="curre [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 including what is required before submitting a code change.</p><p>Contributing to SeaTunnel doesn&#x27;t just mean writing code. Helping new users on the mailing list,
 testing releases, and improving documentation are also welcome. In fact, proposing significant
 code changes usually requires first gaining experience and credibility within the community by
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 b3d972a..164031f 100644
--- a/community/contribution_guide/subscribe/index.html
+++ b/community/contribution_guide/subscribe/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Subscribe Mailing Lists | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/community/contribution_guide/subscribe"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current">< [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 ae4a15c..c6c1f08 100644
--- a/community/submit_guide/document/index.html
+++ b/community/submit_guide/document/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Documentation Notice | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/community/submit_guide/document"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data- [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 Located in <code>src/pages/home</code></p><div class="codeBlockContainer_I0IT theme-code-block"><div class="codeBlockContent_wNvx"><pre tabindex="0" class="prism-code language-text codeBlock_jd64 thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#F8F8F2"><span class="token plain">├─home</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ languages.json // Home page [...]
 Located in <code>src/pages/team</code></p><div class="codeBlockContainer_I0IT theme-code-block"><div class="codeBlockContent_wNvx"><pre tabindex="0" class="prism-code language-text codeBlock_jd64 thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#F8F8F2"><span class="token plain">├─team</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ languages.json</span><br></ [...]
             <div style="margin-top: 20px;background: #f4f8fa">
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 6b0e950..e81489e 100644
--- a/community/submit_guide/license/index.html
+++ b/community/submit_guide/license/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">License Notice | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/community/submit_guide/license"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="tru [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 d09041e..c09c9f9 100644
--- a/community/submit_guide/submit-code/index.html
+++ b/community/submit_guide/submit-code/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Submit Code | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/community/submit_guide/submit-code"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="tr [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/developement/FAQ/index.html b/docs/developement/FAQ/index.html
index dea9e3b..dcf2b1d 100644
--- a/docs/developement/FAQ/index.html
+++ b/docs/developement/FAQ/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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">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/docs/developement/FAQ"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusaurus_version" conten [...]
-<link rel="preload" href="/assets/js/runtime~main.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">FAQ | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/developement/FAQ"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:d [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 <a href="https://www.cnblogs.com/jasondan/p/spark-specific-jdk-version.html" target="_blank" rel="noopener noreferrer">https://www.cnblogs.com/jasondan/p/spark-specific-jdk-version.html</a></p></li></ul><p><strong>FAQ 14.</strong> What should I do if OOM always appears when running SeaTunnel in Spark local<!-- -->[*]<!-- --> mode?</p><p>If you run in local mode, you need to modify the start-seatunnel.sh startup script after  spark-submit, add a parameter <code>--driver-memory 4g</code> . [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/developement/NewLicenseGuide/index.html b/docs/developement/NewLicenseGuide/index.html
index 1893548..298f515 100644
--- a/docs/developement/NewLicenseGuide/index.html
+++ b/docs/developement/NewLicenseGuide/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">How to add a new License Guide | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/developement/NewLicenseGuide"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current" [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 <a href="https://seatunnel.apache.org/community/submit_guide/license" target="_blank" rel="noopener noreferrer">License Notice</a> in submit guide.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-seatunnel-website/edit/main/docs/developement/NewLicenseGuide.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" w [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 9877255..dd68180 100644
--- a/docs/flink/commands/start-seatunnel-flink.sh/index.html
+++ b/docs/flink/commands/start-seatunnel-flink.sh/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Command usage instructions | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/commands/start-seatunnel-flink.sh"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="c [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 737127d..d9dc6e7 100644
--- a/docs/flink/configuration/ConfigExamples/index.html
+++ b/docs/flink/configuration/ConfigExamples/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Config Examples | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/ConfigExamples"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta da [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 1f0fdef..7a67b57 100644
--- a/docs/flink/configuration/sink-plugins/Console/index.html
+++ b/docs/flink/configuration/sink-plugins/Console/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Console | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Console"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 3d03968..27e85f4 100644
--- a/docs/flink/configuration/sink-plugins/Doris/index.html
+++ b/docs/flink/configuration/sink-plugins/Doris/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Doris | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Doris"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 <a href="https://doris.apache.org/administrator-guide/load-data/stream-load-manual.html" target="_blank" rel="noopener noreferrer">More Doris stream_load Configurations</a></p><h3 class="anchor anchorWithStickyNavbar_mojV" id="parallelism-int">parallelism <!-- -->[Int]<a class="hash-link" href="#parallelism-int" title="Direct link to heading">​</a></h3><p>The parallelism of an individual operator, for DorisSink</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="examples">Examples<a cl [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 4e66b22..5fa7069 100644
--- a/docs/flink/configuration/sink-plugins/Druid/index.html
+++ b/docs/flink/configuration/sink-plugins/Druid/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Druid | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Druid"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 515e661..dbab957 100644
--- a/docs/flink/configuration/sink-plugins/Elasticsearch/index.html
+++ b/docs/flink/configuration/sink-plugins/Elasticsearch/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Elasticsearch | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Elasticsearch"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 90d49af..b7cf51f 100644
--- a/docs/flink/configuration/sink-plugins/File/index.html
+++ b/docs/flink/configuration/sink-plugins/File/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">File | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/File"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="t [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 d7a7c3d..88fce60 100644
--- a/docs/flink/configuration/sink-plugins/InfluxDb/index.html
+++ b/docs/flink/configuration/sink-plugins/InfluxDb/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">InfluxDB | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/InfluxDb"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta da [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 0420bf7..3144cee 100644
--- a/docs/flink/configuration/sink-plugins/Jdbc/index.html
+++ b/docs/flink/configuration/sink-plugins/Jdbc/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Jdbc | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Jdbc"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="t [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 647b57c..08ff599 100644
--- a/docs/flink/configuration/sink-plugins/Kafka/index.html
+++ b/docs/flink/configuration/sink-plugins/Kafka/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Kafka | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/Kafka"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 6a231f5..8fb46e0 100644
--- a/docs/flink/configuration/sink-plugins/sink-plugin/index.html
+++ b/docs/flink/configuration/sink-plugins/sink-plugin/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Common Options | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/sink-plugins/sink-plugin"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current" [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 0109f37..43a4561 100644
--- a/docs/flink/configuration/source-plugins/Druid/index.html
+++ b/docs/flink/configuration/source-plugins/Druid/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Druid | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Druid"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-r [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 d28afa6..3f0efe4 100644
--- a/docs/flink/configuration/source-plugins/Fake/index.html
+++ b/docs/flink/configuration/source-plugins/Fake/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Fake | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Fake"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 86b916a..dac0e94 100644
--- a/docs/flink/configuration/source-plugins/File/index.html
+++ b/docs/flink/configuration/source-plugins/File/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">File | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/File"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 ba9066b..3e1a4fc 100644
--- a/docs/flink/configuration/source-plugins/InfluxDb/index.html
+++ b/docs/flink/configuration/source-plugins/InfluxDb/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">InfluxDb | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/InfluxDb"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta  [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 c778587..f785301 100644
--- a/docs/flink/configuration/source-plugins/Jdbc/index.html
+++ b/docs/flink/configuration/source-plugins/Jdbc/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Jdbc | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Jdbc"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 d8e545a..2366ea8 100644
--- a/docs/flink/configuration/source-plugins/Kafka/index.html
+++ b/docs/flink/configuration/source-plugins/Kafka/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Kafka | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Kafka"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-r [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 0382302..627f12c 100644
--- a/docs/flink/configuration/source-plugins/Socket/index.html
+++ b/docs/flink/configuration/source-plugins/Socket/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Socket | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/Socket"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 211004e..c42d719 100644
--- a/docs/flink/configuration/source-plugins/source-plugin/index.html
+++ b/docs/flink/configuration/source-plugins/source-plugin/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Common Options | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/source-plugins/source-plugin"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="curr [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 6e68261..0502c0b 100644
--- a/docs/flink/configuration/transform-plugins/Split/index.html
+++ b/docs/flink/configuration/transform-plugins/Split/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Split | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/transform-plugins/Split"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta dat [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 892a468..20924a5 100644
--- a/docs/flink/configuration/transform-plugins/Sql/index.html
+++ b/docs/flink/configuration/transform-plugins/Sql/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Sql | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/transform-plugins/Sql"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 71bda4b..5fc3605 100644
--- a/docs/flink/configuration/transform-plugins/transform-plugin/index.html
+++ b/docs/flink/configuration/transform-plugins/transform-plugin/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Common Options | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/configuration/transform-plugins/transform-plugin"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 28caa90..d47dc4f 100644
--- a/docs/flink/deployment/index.html
+++ b/docs/flink/deployment/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Deployment and run | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/deployment"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" na [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 bf68e89..8ab99a7 100644
--- a/docs/flink/installation/index.html
+++ b/docs/flink/installation/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Download and install | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/installation"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 19bb640..8c8e990 100644
--- a/docs/flink/quick-start/index.html
+++ b/docs/flink/quick-start/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Quick start | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/flink/quick-start"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="do [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/introduction/index.html b/docs/introduction/index.html
index 8829240..b946a92 100644
--- a/docs/introduction/index.html
+++ b/docs/introduction/index.html
@@ -3,18 +3,18 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Introduction | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/introduction"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsea [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 <a href="https://twitter.com/ASFSeaTunnel" target="_blank" rel="noopener noreferrer"><img src="https://img.shields.io/twitter/follow/ASFSeaTunnel.svg?label=Follow&amp;logo=twitter" alt="Twitter Follow"></a></p><hr><p>SeaTunnel was formerly named Waterdrop , and renamed SeaTunnel since October 12, 2021.</p><hr><p>SeaTunnel is a very easy-to-use ultra-high-performance distributed data integration platform that supports real-time
 synchronization of massive data. It can synchronize tens of billions of data stably and efficiently every day, and has
-been used in the production of nearly 100 companies.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="why-do-we-need-seatunnel">Why do we need SeaTunnel<a class="hash-link" href="#why-do-we-need-seatunnel" title="Direct link to heading">​</a></h2><p>SeaTunnel will do its best to solve the problems that may be encountered in the synchronization of massive data:</p><ul><li>Data loss and duplication</li><li>Task accumulation and delay</li><li>Low throughput</li><li>Long cycle to be app [...]
+been used in the production of nearly 100 companies.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="why-do-we-need-seatunnel">Why do we need SeaTunnel<a class="hash-link" href="#why-do-we-need-seatunnel" title="Direct link to heading">​</a></h2><p>SeaTunnel will do its best to solve the problems that may be encountered in the synchronization of massive data:</p><ul><li>Data loss and duplication</li><li>Task accumulation and delay</li><li>Low throughput</li><li>Long cycle to be app [...]
 accustomed to SQL, you can also directly construct a data processing pipeline by SQL, which is simple and efficient.
 Currently, the filter list supported by SeaTunnel is still being expanded. Furthermore, you can develop your own data
 processing plug-in, because the whole system is easy to expand.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="plugins-supported-by-seatunnel">Plugins supported by SeaTunnel<a class="hash-link" href="#plugins-supported-by-seatunnel" title="Direct link to heading">​</a></h2><ul><li><p>Input plugin Fake, File, Hdfs, Kafka, Druid, InfluxDB, S3, Socket, self-developed Input plugin</p></li><li><p>Filter plugin Add, Checksum, Convert, Date, Drop, Grok, Json, Kv, Lowercase, Remove, Renam [...]
@@ -44,7 +44,7 @@ the mail list.</li><li>Slack: <a href="https://join.slack.com/t/apacheseatunnel/
                     <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 6007517..b7d8acf 100644
--- a/docs/spark/commands/start-seatunnel-spark.sh/index.html
+++ b/docs/spark/commands/start-seatunnel-spark.sh/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Command usage instructions | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/commands/start-seatunnel-spark.sh"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="c [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 553575a..2f3758f 100644
--- a/docs/spark/configuration/ConfigExamples/index.html
+++ b/docs/spark/configuration/ConfigExamples/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Config Examples | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/ConfigExamples"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta da [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 664571b..707c456 100644
--- a/docs/spark/configuration/sink-plugins/Clickhouse/index.html
+++ b/docs/spark/configuration/sink-plugins/Clickhouse/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Clickhouse | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Clickhouse"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><met [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 62c569c..a4cf9ae 100644
--- a/docs/spark/configuration/sink-plugins/Console/index.html
+++ b/docs/spark/configuration/sink-plugins/Console/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Console | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Console"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 c17f6ea..f5bf81a 100644
--- a/docs/spark/configuration/sink-plugins/Doris/index.html
+++ b/docs/spark/configuration/sink-plugins/Doris/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Doirs | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Doris"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 <a href="https://doris.apache.org/administrator-guide/load-data/stream-load-manual.html" target="_blank" rel="noopener noreferrer">More Doris stream_load Configurations</a></p><h3 class="anchor anchorWithStickyNavbar_mojV" id="examples">Examples<a class="hash-link" href="#examples" title="Direct link to heading">​</a></h3><div class="codeBlockContainer_I0IT theme-code-block"><div class="codeBlockContent_wNvx"><pre tabindex="0" class="prism-code language-text codeBlock_jd64 thin-scrollbar [...]
             <div style="margin-top: 20px;background: #f4f8fa">
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/image/incubator-logo.svg">
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 2c321ec..626ae31 100644
--- a/docs/spark/configuration/sink-plugins/Elasticsearch/index.html
+++ b/docs/spark/configuration/sink-plugins/Elasticsearch/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Elasticsearch | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Elasticsearch"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 31e0c21..bcd60a7 100644
--- a/docs/spark/configuration/sink-plugins/Email/index.html
+++ b/docs/spark/configuration/sink-plugins/Email/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Email | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Email"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 3eb1f33..728e38f 100644
--- a/docs/spark/configuration/sink-plugins/File/index.html
+++ b/docs/spark/configuration/sink-plugins/File/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">File | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/File"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="t [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 2321395..760e82e 100644
--- a/docs/spark/configuration/sink-plugins/Hbase/index.html
+++ b/docs/spark/configuration/sink-plugins/Hbase/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Hbase | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Hbase"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 5871bd8..c58e1ed 100644
--- a/docs/spark/configuration/sink-plugins/Hive/index.html
+++ b/docs/spark/configuration/sink-plugins/Hive/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Hive | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Hive"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="t [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 a1fac11..9441537 100644
--- a/docs/spark/configuration/sink-plugins/Hudi/index.html
+++ b/docs/spark/configuration/sink-plugins/Hudi/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Hudi | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Hudi"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="t [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 dd141dd..a69156f 100644
--- a/docs/spark/configuration/sink-plugins/Jdbc/index.html
+++ b/docs/spark/configuration/sink-plugins/Jdbc/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Jdbc | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Jdbc"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="t [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 98ac2c1..863e723 100644
--- a/docs/spark/configuration/sink-plugins/Kafka/index.html
+++ b/docs/spark/configuration/sink-plugins/Kafka/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Kafka | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Kafka"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 f1087b8..812f318 100644
--- a/docs/spark/configuration/sink-plugins/Kudu/index.html
+++ b/docs/spark/configuration/sink-plugins/Kudu/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Kudu | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Kudu"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="t [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 a3d8bdc..3ee5f2f 100644
--- a/docs/spark/configuration/sink-plugins/MongoDB/index.html
+++ b/docs/spark/configuration/sink-plugins/MongoDB/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">MongoDB | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/MongoDB"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 f356059..47218d2 100644
--- a/docs/spark/configuration/sink-plugins/Mysql/index.html
+++ b/docs/spark/configuration/sink-plugins/Mysql/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Mysql | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Mysql"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 08caa60..a1896b7 100644
--- a/docs/spark/configuration/sink-plugins/Phoenix/index.html
+++ b/docs/spark/configuration/sink-plugins/Phoenix/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Phoenix | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Phoenix"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 cebc7a3..bfe4838 100644
--- a/docs/spark/configuration/sink-plugins/Redis/index.html
+++ b/docs/spark/configuration/sink-plugins/Redis/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Redis | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Redis"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 55d8eab..956e932 100644
--- a/docs/spark/configuration/sink-plugins/Tidb/index.html
+++ b/docs/spark/configuration/sink-plugins/Tidb/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">TiDb | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/Tidb"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="t [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 4e16ef2..0b591bd 100644
--- a/docs/spark/configuration/sink-plugins/sink-plugin/index.html
+++ b/docs/spark/configuration/sink-plugins/sink-plugin/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Common Options | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/sink-plugins/sink-plugin"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current" [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 5728c26..c44cce9 100644
--- a/docs/spark/configuration/source-plugins/Elasticsearch/index.html
+++ b/docs/spark/configuration/source-plugins/Elasticsearch/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Elasticsearch | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Elasticsearch"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="curre [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 da3c495..933cea9 100644
--- a/docs/spark/configuration/source-plugins/Fake/index.html
+++ b/docs/spark/configuration/source-plugins/Fake/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Fake | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Fake"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 95e6824..45053f4 100644
--- a/docs/spark/configuration/source-plugins/FakeStream/index.html
+++ b/docs/spark/configuration/source-plugins/FakeStream/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">FakeStream | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/FakeStream"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><m [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/spark/configuration/source-plugins/File/index.html b/docs/spark/configuration/source-plugins/File/index.html
index add4056..f9bdf3c 100644
--- a/docs/spark/configuration/source-plugins/File/index.html
+++ b/docs/spark/configuration/source-plugins/File/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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/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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">File | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/File"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 8e64787..ff68c3c 100644
--- a/docs/spark/configuration/source-plugins/Hive/index.html
+++ b/docs/spark/configuration/source-plugins/Hive/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Hive | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Hive"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 390944a..0e5ee6b 100644
--- a/docs/spark/configuration/source-plugins/Hudi/index.html
+++ b/docs/spark/configuration/source-plugins/Hudi/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Hudi | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Hudi"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 1d914b4..b8025d1 100644
--- a/docs/spark/configuration/source-plugins/Jdbc/index.html
+++ b/docs/spark/configuration/source-plugins/Jdbc/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Jdbc | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Jdbc"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 7453a5f..ea788f3 100644
--- a/docs/spark/configuration/source-plugins/KafkaStream/index.html
+++ b/docs/spark/configuration/source-plugins/KafkaStream/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">KafkaStream | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/KafkaStream"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"> [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 e9a116a..78a02b2 100644
--- a/docs/spark/configuration/source-plugins/Kudu/index.html
+++ b/docs/spark/configuration/source-plugins/Kudu/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Kudu | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Kudu"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 c42fc0b..fe9811f 100644
--- a/docs/spark/configuration/source-plugins/MongoDB/index.html
+++ b/docs/spark/configuration/source-plugins/MongoDB/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">MongoDb | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/MongoDB"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta da [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 7241ce8..beb89c3 100644
--- a/docs/spark/configuration/source-plugins/Phoenix/index.html
+++ b/docs/spark/configuration/source-plugins/Phoenix/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Phoenix | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Phoenix"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta da [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 0cc78c4..c983660 100644
--- a/docs/spark/configuration/source-plugins/Redis/index.html
+++ b/docs/spark/configuration/source-plugins/Redis/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Redis | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Redis"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-r [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 5c23cd7..bc6f760 100644
--- a/docs/spark/configuration/source-plugins/SocketStream/index.html
+++ b/docs/spark/configuration/source-plugins/SocketStream/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">SocketStream | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/SocketStream"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 242a73b..aa650b2 100644
--- a/docs/spark/configuration/source-plugins/Tidb/index.html
+++ b/docs/spark/configuration/source-plugins/Tidb/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Tidb | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/Tidb"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh= [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 03260b0..4ba5853 100644
--- a/docs/spark/configuration/source-plugins/neo4j/index.html
+++ b/docs/spark/configuration/source-plugins/neo4j/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Neo4j | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/neo4j"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-r [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 WHERE pr.name = &#x27;An Awesome Product&#x27;
 RETURN count(p) AS count
 or a simple number that represents the amount of records returned by query. Consider that the number passed by this value represent the volume of the data pulled of Neo4j, so please use it carefully.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="relationshipnodesmap-string">relationship.nodes.map <!-- -->[string]<a class="hash-link" href="#relationshipnodesmap-string" title="Direct link to heading">​</a></h3><p>If true return source and target nodes as Map&lt;String, String&gt;,  [...]
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 8c55081..d35cc07 100644
--- a/docs/spark/configuration/source-plugins/source-plugin/index.html
+++ b/docs/spark/configuration/source-plugins/source-plugin/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Common Options | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/source-plugins/source-plugin"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="curr [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 5744c7c..c6b9c4c 100644
--- a/docs/spark/configuration/transform-plugins/Json/index.html
+++ b/docs/spark/configuration/transform-plugins/Json/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Json | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/transform-plugins/Json"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data- [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 7d5c475..bacc6eb 100644
--- a/docs/spark/configuration/transform-plugins/Split/index.html
+++ b/docs/spark/configuration/transform-plugins/Split/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Split | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/transform-plugins/Split"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta dat [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 d08dcd3..3a9c82f 100644
--- a/docs/spark/configuration/transform-plugins/Sql/index.html
+++ b/docs/spark/configuration/transform-plugins/Sql/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Sql | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/transform-plugins/Sql"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 2b6b252..fbbfd0c 100644
--- a/docs/spark/configuration/transform-plugins/transform-plugin/index.html
+++ b/docs/spark/configuration/transform-plugins/transform-plugin/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Common Options | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/configuration/transform-plugins/transform-plugin"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 da76dfc..834dc21 100644
--- a/docs/spark/deployment/index.html
+++ b/docs/spark/deployment/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">deployment | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/deployment"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docs [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 21af14b..e4b7374 100644
--- a/docs/spark/installation/index.html
+++ b/docs/spark/installation/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Download and install | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/installation"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.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 551bd36..f1aacf1 100644
--- a/docs/spark/quick-start/index.html
+++ b/docs/spark/quick-start/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Quick start | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/docs/spark/quick-start"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="do [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/home/index.html b/home/index.html
index fde8bcb..12150b7 100644
--- a/home/index.html
+++ b/home/index.html
@@ -3,16 +3,16 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true"></title><link rel="stylesheet" href="/assets/css/styles.4453a582.css">
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/index.html b/index.html
index aa64d8e..ac065ea 100644
--- a/index.html
+++ b/index.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Apache SeaTunnel | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="Apache SeaTunnel | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" name="description" content="Description will go into a meta tag in &lt;head /&gt;"><meta data-rh="true" property="og:description" content="De [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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 id="docusaurus-base-url-issue-banner-container"></div><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-wi [...]
             <div style="margin-top: 20px;background: #f4f8fa">
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/team/index.html b/team/index.html
index 78c2376..c3e5668 100644
--- a/team/index.html
+++ b/team/index.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/team/"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" con [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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 style="margin-top: 20px;background: #f4f8fa">
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/user/index.html b/user/index.html
index d029802..58c93e1 100644
--- a/user/index.html
+++ b/user/index.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.4cc534b1.js" as="script">
-<link rel="preload" href="/assets/js/main.2f1ceddd.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/user/"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" con [...]
+<link rel="preload" href="/assets/js/runtime~main.85f7964c.js" as="script">
+<link rel="preload" href="/assets/js/main.a023d061.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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 style="margin-top: 20px;background: #f4f8fa">
@@ -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.4cc534b1.js"></script>
-<script src="/assets/js/main.2f1ceddd.js"></script>
+<script src="/assets/js/runtime~main.85f7964c.js"></script>
+<script src="/assets/js/main.a023d061.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/404.html b/zh-CN/404.html
index 2515195..f27ecbc 100644
--- a/zh-CN/404.html
+++ b/zh-CN/404.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Page Not Found | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="Page Not Found | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/404.html"><meta data-rh="true" name="docsearch:language" content="zh-CN"><met [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
@@ -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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/assets/css/styles.608b4c3c.css b/zh-CN/assets/css/styles.8263371d.css
similarity index 67%
rename from zh-CN/assets/css/styles.608b4c3c.css
rename to zh-CN/assets/css/styles.8263371d.css
index 4bfbd9a..a13ab9f 100644
--- a/zh-CN/assets/css/styles.608b4c3c.css
+++ b/zh-CN/assets/css/styles.8263371d.css
@@ -1 +1 @@
-.container,.row .col{padding:0 var(--ifm-spacing-horizontal);width:100%}.row .col,img{max-width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,.toggle_Pssr{-webkit-user-select:none;-ms-user-select:none}.button,c [...]
\ No newline at end of file
+.container,.row .col{padding:0 var(--ifm-spacing-horizontal);width:100%}.row .col,img{max-width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,.toggle_Pssr{-webkit-user-select:none;-ms-user-select:none}.button,c [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/01a85c17.10e50317.js b/zh-CN/assets/js/01a85c17.10e50317.js
new file mode 100644
index 0000000..0110623
--- /dev/null
+++ b/zh-CN/assets/js/01a85c17.10e50317.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4013],{8665:function(e,t,a){a.d(t,{Z:function(){return p}});var n=a(3366),r=a(7294),l=a(6010),s=a(2434),c=a(9960),i="sidebar_a9qW",m="sidebarItemTitle_uKok",o="sidebarItemList_Kvuv",u="sidebarItem_CF0Q",g="sidebarItemLink_miNk",d="sidebarItemLinkActive_RRTD",b=a(5999);function E(e){var t=e.sidebar;return 0===t.items.length?null:r.createElement("nav",{className:(0,l.Z)(i,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/01a85c17.23b45a9b.js b/zh-CN/assets/js/01a85c17.23b45a9b.js
deleted file mode 100644
index b12756f..0000000
--- a/zh-CN/assets/js/01a85c17.23b45a9b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4013],{8665:function(e,t,a){a.d(t,{Z:function(){return p}});var n=a(3366),r=a(7294),l=a(6010),s=a(2434),c=a(9960),i="sidebar_a9qW",m="sidebarItemTitle_uKok",o="sidebarItemList_Kvuv",u="sidebarItem_CF0Q",g="sidebarItemLink_miNk",d="sidebarItemLinkActive_RRTD",b=a(5999);function v(e){var t=e.sidebar;return 0===t.items.length?null:r.createElement("nav",{className:(0,l.Z)(i,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/04e3e187.28d473f2.js b/zh-CN/assets/js/04e3e187.28d473f2.js
new file mode 100644
index 0000000..70090d1
--- /dev/null
+++ b/zh-CN/assets/js/04e3e187.28d473f2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1177],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/04e3e187.3cef7952.js b/zh-CN/assets/js/04e3e187.3cef7952.js
deleted file mode 100644
index 0462cb3..0000000
--- a/zh-CN/assets/js/04e3e187.3cef7952.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1177],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/077e24c6.3fc8cb28.js b/zh-CN/assets/js/077e24c6.3fc8cb28.js
new file mode 100644
index 0000000..e9e3292
--- /dev/null
+++ b/zh-CN/assets/js/077e24c6.3fc8cb28.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8198],{3905:function(e,n,t){t.d(n,{Zo:function(){return r},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/077e24c6.6356987d.js b/zh-CN/assets/js/077e24c6.6356987d.js
deleted file mode 100644
index ac802e9..0000000
--- a/zh-CN/assets/js/077e24c6.6356987d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8198],{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/09e60b3c.57ad73fe.js b/zh-CN/assets/js/09e60b3c.57ad73fe.js
deleted file mode 100644
index 7686a96..0000000
--- a/zh-CN/assets/js/09e60b3c.57ad73fe.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6942],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/09e60b3c.c5098b07.js b/zh-CN/assets/js/09e60b3c.c5098b07.js
new file mode 100644
index 0000000..dc110ce
--- /dev/null
+++ b/zh-CN/assets/js/09e60b3c.c5098b07.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6942],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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/0a56bba8.8c5b75f8.js b/zh-CN/assets/js/0a56bba8.8c5b75f8.js
deleted file mode 100644
index b4f71b4..0000000
--- a/zh-CN/assets/js/0a56bba8.8c5b75f8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[40],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return m}});var r=t(7294);function i(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 r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n) [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/0a56bba8.9e5fd1f9.js b/zh-CN/assets/js/0a56bba8.9e5fd1f9.js
new file mode 100644
index 0000000..0401c13
--- /dev/null
+++ b/zh-CN/assets/js/0a56bba8.9e5fd1f9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[40],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},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 i(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,n) [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/0b826da0.8ee7f775.js b/zh-CN/assets/js/0b826da0.8ee7f775.js
new file mode 100644
index 0000000..a756a47
--- /dev/null
+++ b/zh-CN/assets/js/0b826da0.8ee7f775.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4032],{3905:function(e,n,t){t.d(n,{Zo:function(){return u},kt:function(){return f}});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 o(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/0b826da0.f1531be9.js b/zh-CN/assets/js/0b826da0.f1531be9.js
deleted file mode 100644
index 2f1d8e5..0000000
--- a/zh-CN/assets/js/0b826da0.f1531be9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4032],{3905:function(e,n,t){t.d(n,{Zo:function(){return u},kt:function(){return m}});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 o(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/15ad2644.610179ca.js b/zh-CN/assets/js/15ad2644.610179ca.js
new file mode 100644
index 0000000..edf6d65
--- /dev/null
+++ b/zh-CN/assets/js/15ad2644.610179ca.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1129],{6489:function(a){a.exports=JSON.parse('{"\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"},"ClickHouse":{"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/15ad2644.6f5d3265.js b/zh-CN/assets/js/15ad2644.6f5d3265.js
deleted file mode 100644
index e29c5d1..0000000
--- a/zh-CN/assets/js/15ad2644.6f5d3265.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/\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/16a88d30.521ee65b.js b/zh-CN/assets/js/16a88d30.521ee65b.js
deleted file mode 100644
index 7877821..0000000
--- a/zh-CN/assets/js/16a88d30.521ee65b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4474],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return m}});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/16a88d30.586797a9.js b/zh-CN/assets/js/16a88d30.586797a9.js
new file mode 100644
index 0000000..df1c9e8
--- /dev/null
+++ b/zh-CN/assets/js/16a88d30.586797a9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4474],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return m}});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/16e84849.0ba42500.js b/zh-CN/assets/js/16e84849.0ba42500.js
new file mode 100644
index 0000000..5b83284
--- /dev/null
+++ b/zh-CN/assets/js/16e84849.0ba42500.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4757],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/16e84849.abef486f.js b/zh-CN/assets/js/16e84849.abef486f.js
deleted file mode 100644
index 87216de..0000000
--- a/zh-CN/assets/js/16e84849.abef486f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4757],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/16fa9ec5.424bc023.js b/zh-CN/assets/js/16fa9ec5.424bc023.js
deleted file mode 100644
index 3813479..0000000
--- a/zh-CN/assets/js/16fa9ec5.424bc023.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3053],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return m}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/16fa9ec5.e19a2217.js b/zh-CN/assets/js/16fa9ec5.e19a2217.js
new file mode 100644
index 0000000..2f0272f
--- /dev/null
+++ b/zh-CN/assets/js/16fa9ec5.e19a2217.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3053],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return c}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/17896441.6d388ece.js b/zh-CN/assets/js/17896441.6d388ece.js
deleted file mode 100644
index 8f7de38..0000000
--- a/zh-CN/assets/js/17896441.6d388ece.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7918],{6237:function(e,t,a){a.r(t),a.d(t,{default:function(){return F}});var n=a(7294),l=a(6010),i=a(7462),r=a(5999),s=a(1750);var o=function(e){var t=e.previous,a=e.next;return n.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},n. [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/17896441.8b693f91.js b/zh-CN/assets/js/17896441.8b693f91.js
new file mode 100644
index 0000000..267cdcb
--- /dev/null
+++ b/zh-CN/assets/js/17896441.8b693f91.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7918],{2179:function(e,t,a){a.r(t),a.d(t,{default:function(){return W}});var n=a(7294),l=a(6010),r=a(7462),i=a(5999),s=a(1750);function c(e){var t=e.previous,a=e.next;return n.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},n.crea [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/17dd540a.c92c17de.js b/zh-CN/assets/js/17dd540a.c92c17de.js
new file mode 100644
index 0000000..f46dcc7
--- /dev/null
+++ b/zh-CN/assets/js/17dd540a.c92c17de.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9520],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return g}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/17dd540a.e952eefe.js b/zh-CN/assets/js/17dd540a.e952eefe.js
deleted file mode 100644
index ee3e0e7..0000000
--- a/zh-CN/assets/js/17dd540a.e952eefe.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9520],{3905:function(t,e,n){n.d(e,{Zo:function(){return c},kt:function(){return g}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/18f978c8.ad7c97d5.js b/zh-CN/assets/js/18f978c8.ad7c97d5.js
new file mode 100644
index 0000000..2cf77e8
--- /dev/null
+++ b/zh-CN/assets/js/18f978c8.ad7c97d5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6316],{3905:function(e,n,t){t.d(n,{Zo:function(){return s},kt:function(){return f}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(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/18f978c8.e17f727e.js b/zh-CN/assets/js/18f978c8.e17f727e.js
deleted file mode 100644
index 598cb30..0000000
--- a/zh-CN/assets/js/18f978c8.e17f727e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6316],{3905:function(e,n,t){t.d(n,{Zo:function(){return d},kt:function(){return m}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(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/1901809f.5642dbcf.js b/zh-CN/assets/js/1901809f.5642dbcf.js
new file mode 100644
index 0000000..8d6510e
--- /dev/null
+++ b/zh-CN/assets/js/1901809f.5642dbcf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1027],{8644:function(e){e.exports=JSON.parse('{"permalink":"/zh-CN/blog/tags/structured-streaming","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/zh-CN/assets/js/1a8f4297.20a2c6a9.js b/zh-CN/assets/js/1a8f4297.20a2c6a9.js
new file mode 100644
index 0000000..e4c3242
--- /dev/null
+++ b/zh-CN/assets/js/1a8f4297.20a2c6a9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3435],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return d}});var a=t(7294);function r(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 a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/1a8f4297.8c0e965d.js b/zh-CN/assets/js/1a8f4297.8c0e965d.js
deleted file mode 100644
index cf83b94..0000000
--- a/zh-CN/assets/js/1a8f4297.8c0e965d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3435],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return d}});var a=t(7294);function r(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 a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/1bd84cdc.21b8f12a.js b/zh-CN/assets/js/1bd84cdc.21b8f12a.js
deleted file mode 100644
index ed938f2..0000000
--- a/zh-CN/assets/js/1bd84cdc.21b8f12a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[689],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return g}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/1bd84cdc.e7b36f77.js b/zh-CN/assets/js/1bd84cdc.e7b36f77.js
new file mode 100644
index 0000000..3dc6f10
--- /dev/null
+++ b/zh-CN/assets/js/1bd84cdc.e7b36f77.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[689],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return g}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/1be78505.0453a12b.js b/zh-CN/assets/js/1be78505.0453a12b.js
deleted file mode 100644
index 41ba20f..0000000
--- a/zh-CN/assets/js/1be78505.0453a12b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9514,4608],{6756:function(e,t,a){a.r(t),a.d(t,{default:function(){return ee}});var n=a(7294),l=a(3905),r=a(6291),o=a(2434),i=a(6010),c=a(9548),s=a(5537),d=a(7462);var u=function(e){return n.createElement("svg",(0,d.Z)({width:"20",height:"20","aria-hidden":"true"},e),n.createElement("g",{fill:"#7a7a7a"},n.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-. [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/1be78505.501bce39.js b/zh-CN/assets/js/1be78505.501bce39.js
new file mode 100644
index 0000000..d8537af
--- /dev/null
+++ b/zh-CN/assets/js/1be78505.501bce39.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9514,4608],{6756:function(e,t,a){a.r(t),a.d(t,{default:function(){return ee}});var n=a(7294),l=a(3905),r=a(8790),o=a(2434),i=a(6010),c=a(5450),s=a(5537),d=a(7462);function m(e){return n.createElement("svg",(0,d.Z)({width:"20",height:"20","aria-hidden":"true"},e),n.createElement("g",{fill:"#7a7a7a"},n.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828. [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/1e6a2b85.6096c42e.js b/zh-CN/assets/js/1e6a2b85.6096c42e.js
deleted file mode 100644
index e5af357..0000000
--- a/zh-CN/assets/js/1e6a2b85.6096c42e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5079],{3905:function(e,n,t){t.d(n,{Zo:function(){return s},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 o(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/1e6a2b85.99eafc40.js b/zh-CN/assets/js/1e6a2b85.99eafc40.js
new file mode 100644
index 0000000..bc5fe56
--- /dev/null
+++ b/zh-CN/assets/js/1e6a2b85.99eafc40.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5079],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/1eb54025.5656341c.js b/zh-CN/assets/js/1eb54025.5656341c.js
deleted file mode 100644
index 960d3db..0000000
--- a/zh-CN/assets/js/1eb54025.5656341c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[752],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/1eb54025.e3ea31b5.js b/zh-CN/assets/js/1eb54025.e3ea31b5.js
new file mode 100644
index 0000000..5589931
--- /dev/null
+++ b/zh-CN/assets/js/1eb54025.e3ea31b5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[752],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return k}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/1f8879dc.4c5d40a8.js b/zh-CN/assets/js/1f8879dc.4c5d40a8.js
new file mode 100644
index 0000000..dff8df6
--- /dev/null
+++ b/zh-CN/assets/js/1f8879dc.4c5d40a8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4523],{3905:function(e,t,a){a.d(t,{Zo:function(){return u},kt:function(){return k}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/1f8879dc.8f67ef4d.js b/zh-CN/assets/js/1f8879dc.8f67ef4d.js
deleted file mode 100644
index 100eaef..0000000
--- a/zh-CN/assets/js/1f8879dc.8f67ef4d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4523],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return h}});var a=n(7294);function r(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/27ffc801.0f67ab4e.js b/zh-CN/assets/js/27ffc801.0f67ab4e.js
deleted file mode 100644
index 2112980..0000000
--- a/zh-CN/assets/js/27ffc801.0f67ab4e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4907],{3905:function(e,n,t){t.d(n,{Zo:function(){return s},kt:function(){return h}});var r=t(7294);function i(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 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/27ffc801.381319b1.js b/zh-CN/assets/js/27ffc801.381319b1.js
new file mode 100644
index 0000000..d14f289
--- /dev/null
+++ b/zh-CN/assets/js/27ffc801.381319b1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4907],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return m}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/2983068c.6ec6aa9c.js b/zh-CN/assets/js/2983068c.6ec6aa9c.js
deleted file mode 100644
index 5273f22..0000000
--- a/zh-CN/assets/js/2983068c.6ec6aa9c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8268],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/2983068c.91eee327.js b/zh-CN/assets/js/2983068c.91eee327.js
new file mode 100644
index 0000000..b50a037
--- /dev/null
+++ b/zh-CN/assets/js/2983068c.91eee327.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8268],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/2b25c470.573561b7.js b/zh-CN/assets/js/2b25c470.573561b7.js
deleted file mode 100644
index 8966b80..0000000
--- a/zh-CN/assets/js/2b25c470.573561b7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3352],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return h}});var a=n(7294);function r(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/2b25c470.6d0b0f63.js b/zh-CN/assets/js/2b25c470.6d0b0f63.js
new file mode 100644
index 0000000..da24509
--- /dev/null
+++ b/zh-CN/assets/js/2b25c470.6d0b0f63.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3352],{3905:function(e,t,a){a.d(t,{Zo:function(){return u},kt:function(){return k}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/2e6a483b.6b21dd6e.js b/zh-CN/assets/js/2e6a483b.b1d134b4.js
similarity index 55%
rename from assets/js/2e6a483b.6b21dd6e.js
rename to zh-CN/assets/js/2e6a483b.b1d134b4.js
index 574e7ab..0c27d2a 100644
--- a/assets/js/2e6a483b.6b21dd6e.js
+++ b/zh-CN/assets/js/2e6a483b.b1d134b4.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9013],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return m}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9013],{3905:function(e,t,n){n.d(t,{Zo:function(){return l},kt:function(){return m}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/3a84496f.396c581f.js b/zh-CN/assets/js/3a84496f.396c581f.js
new file mode 100644
index 0000000..13ac40a
--- /dev/null
+++ b/zh-CN/assets/js/3a84496f.396c581f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5610],{3905:function(e,t,n){n.d(t,{Zo:function(){return o},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(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/3a84496f.5a1eae18.js b/zh-CN/assets/js/3a84496f.5a1eae18.js
deleted file mode 100644
index 988c5ea..0000000
--- a/zh-CN/assets/js/3a84496f.5a1eae18.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5610],{3905:function(e,t,n){n.d(t,{Zo:function(){return o},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(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/3afdcffa.04b5e0c4.js b/zh-CN/assets/js/3afdcffa.04b5e0c4.js
new file mode 100644
index 0000000..df18b67
--- /dev/null
+++ b/zh-CN/assets/js/3afdcffa.04b5e0c4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8473],{3905:function(t,e,n){n.d(e,{Zo:function(){return o},kt:function(){return g}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/3afdcffa.b954c0aa.js b/zh-CN/assets/js/3afdcffa.b954c0aa.js
deleted file mode 100644
index 3dee885..0000000
--- a/zh-CN/assets/js/3afdcffa.b954c0aa.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8473],{3905:function(t,e,n){n.d(e,{Zo:function(){return o},kt:function(){return g}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/41b2fee9.0ff43365.js b/zh-CN/assets/js/41b2fee9.0ff43365.js
deleted file mode 100644
index 5679c07..0000000
--- a/zh-CN/assets/js/41b2fee9.0ff43365.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3566],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/41b2fee9.63b7fbb2.js b/zh-CN/assets/js/41b2fee9.63b7fbb2.js
new file mode 100644
index 0000000..7fa0a00
--- /dev/null
+++ b/zh-CN/assets/js/41b2fee9.63b7fbb2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3566],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(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/4463231b.21e6c317.js b/zh-CN/assets/js/4463231b.21e6c317.js
deleted file mode 100644
index 8a567f0..0000000
--- a/zh-CN/assets/js/4463231b.21e6c317.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7502],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return f}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/4463231b.2da97a74.js b/zh-CN/assets/js/4463231b.2da97a74.js
new file mode 100644
index 0000000..08489c0
--- /dev/null
+++ b/zh-CN/assets/js/4463231b.2da97a74.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7502],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return f}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/4608.93d640b2.js b/zh-CN/assets/js/4608.93d640b2.js
deleted file mode 100644
index 921daeb..0000000
--- a/zh-CN/assets/js/4608.93d640b2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4608],{4608:function(e,t,n){n.r(t);var a=n(7294),o=n(2434),l=n(5999);t.default=function(){return a.createElement(o.Z,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})},a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title" [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/4608.eb59e005.js b/zh-CN/assets/js/4608.eb59e005.js
new file mode 100644
index 0000000..1a541d3
--- /dev/null
+++ b/zh-CN/assets/js/4608.eb59e005.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4608],{4608:function(e,t,n){n.r(t),n.d(t,{default:function(){return i}});var a=n(7294),o=n(2434),l=n(5999);function i(){return a.createElement(o.Z,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})},a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/4a4f2d90.c066785a.js b/zh-CN/assets/js/4a4f2d90.c066785a.js
new file mode 100644
index 0000000..a65e5c2
--- /dev/null
+++ b/zh-CN/assets/js/4a4f2d90.c066785a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8977],{4728:function(e){e.exports=JSON.parse('{"permalink":"/zh-CN/blog/tags/ti-db","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/zh-CN/assets/js/4bc84597.20129dc1.js b/zh-CN/assets/js/4bc84597.20129dc1.js
deleted file mode 100644
index 222b1a8..0000000
--- a/zh-CN/assets/js/4bc84597.20129dc1.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6303],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/4bc84597.658d4bb2.js b/zh-CN/assets/js/4bc84597.658d4bb2.js
new file mode 100644
index 0000000..3074180
--- /dev/null
+++ b/zh-CN/assets/js/4bc84597.658d4bb2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6303],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/5107f730.4ec76715.js b/zh-CN/assets/js/5107f730.4ec76715.js
new file mode 100644
index 0000000..261eccd
--- /dev/null
+++ b/zh-CN/assets/js/5107f730.4ec76715.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3998],{3905:function(t,e,n){n.d(e,{Zo:function(){return d},kt:function(){return g}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/5107f730.ab8206cc.js b/zh-CN/assets/js/5107f730.ab8206cc.js
deleted file mode 100644
index 061e5ff..0000000
--- a/zh-CN/assets/js/5107f730.ab8206cc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3998],{3905:function(t,e,n){n.d(e,{Zo:function(){return o},kt:function(){return g}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/543ba75a.85bdf031.js b/zh-CN/assets/js/543ba75a.85bdf031.js
new file mode 100644
index 0000000..57153bd
--- /dev/null
+++ b/zh-CN/assets/js/543ba75a.85bdf031.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2860],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/543ba75a.935440bf.js b/zh-CN/assets/js/543ba75a.935440bf.js
deleted file mode 100644
index 5669755..0000000
--- a/zh-CN/assets/js/543ba75a.935440bf.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2860],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/57558aad.095950b9.js b/zh-CN/assets/js/57558aad.095950b9.js
new file mode 100644
index 0000000..06bd6d5
--- /dev/null
+++ b/zh-CN/assets/js/57558aad.095950b9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4869],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/57558aad.0ccf68a4.js b/zh-CN/assets/js/57558aad.0ccf68a4.js
deleted file mode 100644
index 28df118..0000000
--- a/zh-CN/assets/js/57558aad.0ccf68a4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4869],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function l(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/assets/js/5897.70d3e0d6.js b/zh-CN/assets/js/5897.06770040.js
similarity index 98%
rename from assets/js/5897.70d3e0d6.js
rename to zh-CN/assets/js/5897.06770040.js
index a6975cb..fd43093 100644
--- a/assets/js/5897.70d3e0d6.js
+++ b/zh-CN/assets/js/5897.06770040.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5897],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5897],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/593be373.773add37.js b/zh-CN/assets/js/593be373.773add37.js
deleted file mode 100644
index 62f40d2..0000000
--- a/zh-CN/assets/js/593be373.773add37.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4206],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return f}});var r=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(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/593be373.e18ab6d5.js b/zh-CN/assets/js/593be373.e18ab6d5.js
new file mode 100644
index 0000000..926eec8
--- /dev/null
+++ b/zh-CN/assets/js/593be373.e18ab6d5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4206],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return f}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(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/59bc9e86.4745018c.js b/zh-CN/assets/js/59bc9e86.4745018c.js
deleted file mode 100644
index 1cd637d..0000000
--- a/zh-CN/assets/js/59bc9e86.4745018c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3376],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/59bc9e86.498bfd6e.js b/zh-CN/assets/js/59bc9e86.498bfd6e.js
new file mode 100644
index 0000000..e43fecd
--- /dev/null
+++ b/zh-CN/assets/js/59bc9e86.498bfd6e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3376],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/5a286631.1bbd518f.js b/zh-CN/assets/js/5a286631.1bbd518f.js
deleted file mode 100644
index 88d02b4..0000000
--- a/zh-CN/assets/js/5a286631.1bbd518f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8252],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return g}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/5a286631.862d0a42.js b/zh-CN/assets/js/5a286631.862d0a42.js
new file mode 100644
index 0000000..559695e
--- /dev/null
+++ b/zh-CN/assets/js/5a286631.862d0a42.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8252],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/5ceab092.1716ad38.js b/zh-CN/assets/js/5ceab092.1716ad38.js
deleted file mode 100644
index 6be18bc..0000000
--- a/zh-CN/assets/js/5ceab092.1716ad38.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6579],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/5ceab092.4e2eb1b9.js b/zh-CN/assets/js/5ceab092.4e2eb1b9.js
new file mode 100644
index 0000000..4cdf96d
--- /dev/null
+++ b/zh-CN/assets/js/5ceab092.4e2eb1b9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6579],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/5cfd6880.53929eec.js b/zh-CN/assets/js/5cfd6880.53929eec.js
new file mode 100644
index 0000000..b95c8b7
--- /dev/null
+++ b/zh-CN/assets/js/5cfd6880.53929eec.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4714],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/5cfd6880.9ac6b486.js b/zh-CN/assets/js/5cfd6880.9ac6b486.js
deleted file mode 100644
index 2be73c8..0000000
--- a/zh-CN/assets/js/5cfd6880.9ac6b486.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4714],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/6087dd36.20fff398.js b/zh-CN/assets/js/6087dd36.20fff398.js
new file mode 100644
index 0000000..89f88a1
--- /dev/null
+++ b/zh-CN/assets/js/6087dd36.20fff398.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8633],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/6087dd36.a42052ea.js b/zh-CN/assets/js/6087dd36.a42052ea.js
deleted file mode 100644
index 459bad1..0000000
--- a/zh-CN/assets/js/6087dd36.a42052ea.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8633],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/616b0a92.0cc3935f.js b/zh-CN/assets/js/616b0a92.0cc3935f.js
deleted file mode 100644
index 2d20af6..0000000
--- a/zh-CN/assets/js/616b0a92.0cc3935f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5899],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/616b0a92.bb44e7ab.js b/zh-CN/assets/js/616b0a92.bb44e7ab.js
new file mode 100644
index 0000000..d0dbc10
--- /dev/null
+++ b/zh-CN/assets/js/616b0a92.bb44e7ab.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5899],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/6214aae1.1da15de4.js b/zh-CN/assets/js/6214aae1.1da15de4.js
new file mode 100644
index 0000000..faafba3
--- /dev/null
+++ b/zh-CN/assets/js/6214aae1.1da15de4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4305],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/6214aae1.f25dcee3.js b/zh-CN/assets/js/6214aae1.f25dcee3.js
deleted file mode 100644
index 67b9ad5..0000000
--- a/zh-CN/assets/js/6214aae1.f25dcee3.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4305],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/64a81036.3fac8d83.js b/zh-CN/assets/js/64a81036.3fac8d83.js
deleted file mode 100644
index 7b73471..0000000
--- a/zh-CN/assets/js/64a81036.3fac8d83.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3690],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/64a81036.cd7c9c33.js b/zh-CN/assets/js/64a81036.cd7c9c33.js
new file mode 100644
index 0000000..6a6f23b
--- /dev/null
+++ b/zh-CN/assets/js/64a81036.cd7c9c33.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3690],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/66a001df.02afaa72.js b/zh-CN/assets/js/66a001df.02afaa72.js
deleted file mode 100644
index 61445f6..0000000
--- a/zh-CN/assets/js/66a001df.02afaa72.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2664],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/66a001df.ca177086.js b/zh-CN/assets/js/66a001df.ca177086.js
new file mode 100644
index 0000000..163b11a
--- /dev/null
+++ b/zh-CN/assets/js/66a001df.ca177086.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2664],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/678276c4.7f503a6e.js b/zh-CN/assets/js/678276c4.7f503a6e.js
new file mode 100644
index 0000000..790677b
--- /dev/null
+++ b/zh-CN/assets/js/678276c4.7f503a6e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4084],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},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 s(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/678276c4.928d3fdc.js b/zh-CN/assets/js/678276c4.928d3fdc.js
deleted file mode 100644
index 9e01319..0000000
--- a/zh-CN/assets/js/678276c4.928d3fdc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4084],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},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 s(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/6875c492.80aa4ffd.js b/zh-CN/assets/js/6875c492.80aa4ffd.js
new file mode 100644
index 0000000..e4f35dc
--- /dev/null
+++ b/zh-CN/assets/js/6875c492.80aa4ffd.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8610],{8665:function(e,t,a){a.d(t,{Z:function(){return b}});var r=a(3366),n=a(7294),l=a(6010),i=a(2434),s=a(9960),m="sidebar_a9qW",o="sidebarItemTitle_uKok",c="sidebarItemList_Kvuv",g="sidebarItem_CF0Q",u="sidebarItemLink_miNk",d="sidebarItemLinkActive_RRTD",p=a(5999);function h(e){var t=e.sidebar;return 0===t.items.length?null:n.createElement("nav",{className:(0,l.Z)(m,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/6875c492.da6aeccf.js b/zh-CN/assets/js/6875c492.da6aeccf.js
deleted file mode 100644
index fb0fd6f..0000000
--- a/zh-CN/assets/js/6875c492.da6aeccf.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8610],{8665:function(e,t,a){a.d(t,{Z:function(){return v}});var r=a(3366),l=a(7294),n=a(6010),s=a(2434),i=a(9960),m="sidebar_a9qW",o="sidebarItemTitle_uKok",c="sidebarItemList_Kvuv",u="sidebarItem_CF0Q",g="sidebarItemLink_miNk",d="sidebarItemLinkActive_RRTD",p=a(5999);function h(e){var t=e.sidebar;return 0===t.items.length?null:l.createElement("nav",{className:(0,n.Z)(m,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/7161e803.becb222d.js b/zh-CN/assets/js/7161e803.becb222d.js
new file mode 100644
index 0000000..b2cba06
--- /dev/null
+++ b/zh-CN/assets/js/7161e803.becb222d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9876],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return m}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(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/7161e803.ef68dd55.js b/zh-CN/assets/js/7161e803.ef68dd55.js
deleted file mode 100644
index 6387240..0000000
--- a/zh-CN/assets/js/7161e803.ef68dd55.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9876],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return m}});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(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/7485f6a9.8253b98a.js b/zh-CN/assets/js/7485f6a9.8253b98a.js
deleted file mode 100644
index 87d2e5f..0000000
--- a/zh-CN/assets/js/7485f6a9.8253b98a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3977],{3905:function(e,t,n){n.d(t,{Zo:function(){return m},kt:function(){return c}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/7485f6a9.c04de0c6.js b/zh-CN/assets/js/7485f6a9.c04de0c6.js
new file mode 100644
index 0000000..28d4123
--- /dev/null
+++ b/zh-CN/assets/js/7485f6a9.c04de0c6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3977],{3905:function(e,t,n){n.d(t,{Zo:function(){return m},kt:function(){return c}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/7b140064.4e45c323.js b/zh-CN/assets/js/7b140064.4e45c323.js
new file mode 100644
index 0000000..73d3847
--- /dev/null
+++ b/zh-CN/assets/js/7b140064.4e45c323.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[276],{3905:function(e,n,t){t.d(n,{Zo:function(){return r},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,n [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/7b140064.7dbe71f7.js b/zh-CN/assets/js/7b140064.7dbe71f7.js
deleted file mode 100644
index e59f142..0000000
--- a/zh-CN/assets/js/7b140064.7dbe71f7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[276],{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,n [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/805ad1eb.2d544ca8.js b/zh-CN/assets/js/805ad1eb.2d544ca8.js
new file mode 100644
index 0000000..883301e
--- /dev/null
+++ b/zh-CN/assets/js/805ad1eb.2d544ca8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2741],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/805ad1eb.7d0f05df.js b/zh-CN/assets/js/805ad1eb.7d0f05df.js
deleted file mode 100644
index e247892..0000000
--- a/zh-CN/assets/js/805ad1eb.7d0f05df.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2741],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/813ff6f3.3f36f37e.js b/zh-CN/assets/js/813ff6f3.3f36f37e.js
deleted file mode 100644
index 6de7df6..0000000
--- a/zh-CN/assets/js/813ff6f3.3f36f37e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7740],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return b}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/813ff6f3.7e381853.js b/zh-CN/assets/js/813ff6f3.7e381853.js
new file mode 100644
index 0000000..fecf63d
--- /dev/null
+++ b/zh-CN/assets/js/813ff6f3.7e381853.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7740],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return b}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/assets/js/8359373c.0a6f0a61.js b/zh-CN/assets/js/8359373c.8d8c7d7c.js
similarity index 56%
rename from assets/js/8359373c.0a6f0a61.js
rename to zh-CN/assets/js/8359373c.8d8c7d7c.js
index 2534462..a13ee77 100644
--- a/assets/js/8359373c.0a6f0a61.js
+++ b/zh-CN/assets/js/8359373c.8d8c7d7c.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7336],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return m}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7336],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return m}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/8359373c.99a77b84.js b/zh-CN/assets/js/8359373c.99a77b84.js
deleted file mode 100644
index 1515eb7..0000000
--- a/zh-CN/assets/js/8359373c.99a77b84.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7336],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return m}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/848a415b.547560f0.js b/zh-CN/assets/js/848a415b.547560f0.js
deleted file mode 100644
index acca760..0000000
--- a/zh-CN/assets/js/848a415b.547560f0.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9045],{3905:function(e,t,n){n.d(t,{Zo:function(){return m},kt:function(){return k}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/848a415b.b89bb1be.js b/zh-CN/assets/js/848a415b.b89bb1be.js
new file mode 100644
index 0000000..3531a63
--- /dev/null
+++ b/zh-CN/assets/js/848a415b.b89bb1be.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9045],{3905:function(e,t,n){n.d(t,{Zo:function(){return m},kt:function(){return k}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/84cba358.1292c20d.js b/zh-CN/assets/js/84cba358.1292c20d.js
deleted file mode 100644
index ba612ba..0000000
--- a/zh-CN/assets/js/84cba358.1292c20d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4317],{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/84cba358.ad3d9d30.js b/zh-CN/assets/js/84cba358.ad3d9d30.js
new file mode 100644
index 0000000..642c121
--- /dev/null
+++ b/zh-CN/assets/js/84cba358.ad3d9d30.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4317],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return d}});var a=n(7294);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(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/88649cc7.288d3a24.js b/zh-CN/assets/js/88649cc7.288d3a24.js
new file mode 100644
index 0000000..d30a0e0
--- /dev/null
+++ b/zh-CN/assets/js/88649cc7.288d3a24.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7421],{5617:function(e){e.exports=JSON.parse('{"permalink":"/zh-CN/blog/tags/hdfs","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/zh-CN/assets/js/8a166697.76264046.js b/zh-CN/assets/js/8a166697.76264046.js
deleted file mode 100644
index baf6483..0000000
--- a/zh-CN/assets/js/8a166697.76264046.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1922],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return f}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/8a166697.ba9ae280.js b/zh-CN/assets/js/8a166697.ba9ae280.js
new file mode 100644
index 0000000..ccb15ea
--- /dev/null
+++ b/zh-CN/assets/js/8a166697.ba9ae280.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1922],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return f}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/8d5ab53b.68c7aded.js b/zh-CN/assets/js/8d5ab53b.68c7aded.js
new file mode 100644
index 0000000..4d2070b
--- /dev/null
+++ b/zh-CN/assets/js/8d5ab53b.68c7aded.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2660],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/8d5ab53b.d8cab7e1.js b/zh-CN/assets/js/8d5ab53b.d8cab7e1.js
deleted file mode 100644
index 489c21b..0000000
--- a/zh-CN/assets/js/8d5ab53b.d8cab7e1.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2660],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return m}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/8d99b0e8.cc0abffb.js b/zh-CN/assets/js/8d99b0e8.cc0abffb.js
new file mode 100644
index 0000000..399503a
--- /dev/null
+++ b/zh-CN/assets/js/8d99b0e8.cc0abffb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1522],{3905:function(t,e,n){n.d(e,{Zo:function(){return m},kt:function(){return k}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/8d99b0e8.cf7ae945.js b/zh-CN/assets/js/8d99b0e8.cf7ae945.js
deleted file mode 100644
index 1942500..0000000
--- a/zh-CN/assets/js/8d99b0e8.cf7ae945.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1522],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return k}});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/90d6291e.4fc31970.js b/zh-CN/assets/js/90d6291e.4fc31970.js
deleted file mode 100644
index be86884..0000000
--- a/zh-CN/assets/js/90d6291e.4fc31970.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2919],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/90d6291e.e281c82c.js b/zh-CN/assets/js/90d6291e.e281c82c.js
new file mode 100644
index 0000000..899ae85
--- /dev/null
+++ b/zh-CN/assets/js/90d6291e.e281c82c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2919],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return f}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/9236f7b3.3d1036c7.js b/zh-CN/assets/js/9236f7b3.3d1036c7.js
deleted file mode 100644
index 7c31efd..0000000
--- a/zh-CN/assets/js/9236f7b3.3d1036c7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1052],{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/9236f7b3.b788ed22.js b/zh-CN/assets/js/9236f7b3.b788ed22.js
new file mode 100644
index 0000000..4bcaf54
--- /dev/null
+++ b/zh-CN/assets/js/9236f7b3.b788ed22.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1052],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return d}});var a=n(7294);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(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/985c5321.8a35d328.js b/zh-CN/assets/js/985c5321.8a35d328.js
new file mode 100644
index 0000000..c3e8cfa
--- /dev/null
+++ b/zh-CN/assets/js/985c5321.8a35d328.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7365],{3104:function(e){e.exports=JSON.parse('{"permalink":"/zh-CN/blog/tags/click-house","page":1,"postsPerPage":10,"totalPages":1,"totalCount":3,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/zh-CN/assets/js/9adfc895.d40e9990.js b/zh-CN/assets/js/9adfc895.d40e9990.js
deleted file mode 100644
index dc7fc6a..0000000
--- a/zh-CN/assets/js/9adfc895.d40e9990.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5699],{3905:function(e,n,t){t.d(n,{Zo:function(){return u},kt:function(){return f}});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/9adfc895.e40467f7.js b/zh-CN/assets/js/9adfc895.e40467f7.js
new file mode 100644
index 0000000..c899c02
--- /dev/null
+++ b/zh-CN/assets/js/9adfc895.e40467f7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5699],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return f}});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/9b228c45.2d17db41.js b/zh-CN/assets/js/9b228c45.2d17db41.js
new file mode 100644
index 0000000..c1454a0
--- /dev/null
+++ b/zh-CN/assets/js/9b228c45.2d17db41.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8827],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/9b228c45.fe624122.js b/zh-CN/assets/js/9b228c45.fe624122.js
deleted file mode 100644
index 8610ad1..0000000
--- a/zh-CN/assets/js/9b228c45.fe624122.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8827],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/9da46b7e.5187c901.js b/zh-CN/assets/js/9da46b7e.5187c901.js
deleted file mode 100644
index 13bfe2c..0000000
--- a/zh-CN/assets/js/9da46b7e.5187c901.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6175],{3905:function(e,n,t){t.d(n,{Zo:function(){return s},kt:function(){return h}});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/9da46b7e.edb83460.js b/zh-CN/assets/js/9da46b7e.edb83460.js
new file mode 100644
index 0000000..bd94240
--- /dev/null
+++ b/zh-CN/assets/js/9da46b7e.edb83460.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6175],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return m}});var a=t(7294);function r(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 a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/9e48300a.23951627.js b/zh-CN/assets/js/9e48300a.23951627.js
new file mode 100644
index 0000000..b15fb2a
--- /dev/null
+++ b/zh-CN/assets/js/9e48300a.23951627.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9311],{6438:function(e){e.exports=JSON.parse('{"permalink":"/zh-CN/blog/tags/kafka","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/zh-CN/assets/js/a09c2993.7316ccab.js b/zh-CN/assets/js/a09c2993.7316ccab.js
deleted file mode 100644
index 74c7ae0..0000000
--- a/zh-CN/assets/js/a09c2993.7316ccab.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4128],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},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 r(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/a09c2993.dde50380.js b/zh-CN/assets/js/a09c2993.dde50380.js
new file mode 100644
index 0000000..9aa2ab4
--- /dev/null
+++ b/zh-CN/assets/js/a09c2993.dde50380.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4128],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},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 o(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/a18cd306.47e1f2d5.js b/zh-CN/assets/js/a18cd306.47e1f2d5.js
deleted file mode 100644
index 0f5f009..0000000
--- a/zh-CN/assets/js/a18cd306.47e1f2d5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8075],{3905:function(e,n,t){t.d(n,{Zo:function(){return l},kt:function(){return m}});var r=t(7294);function o(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 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/a18cd306.f56a3008.js b/zh-CN/assets/js/a18cd306.f56a3008.js
new file mode 100644
index 0000000..7d37fce
--- /dev/null
+++ b/zh-CN/assets/js/a18cd306.f56a3008.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8075],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return m}});var r=t(7294);function o(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 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/a227202a.3a5a750a.js b/zh-CN/assets/js/a227202a.3a5a750a.js
deleted file mode 100644
index 3274667..0000000
--- a/zh-CN/assets/js/a227202a.3a5a750a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8405],{3905:function(e,n,t){t.d(n,{Zo:function(){return s},kt:function(){return h}});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/a227202a.7a86f4c7.js b/zh-CN/assets/js/a227202a.7a86f4c7.js
new file mode 100644
index 0000000..249d187
--- /dev/null
+++ b/zh-CN/assets/js/a227202a.7a86f4c7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8405],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return m}});var a=t(7294);function r(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 a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/a281a1a5.0cb475df.js b/zh-CN/assets/js/a281a1a5.0cb475df.js
deleted file mode 100644
index f3ec1ac..0000000
--- a/zh-CN/assets/js/a281a1a5.0cb475df.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/a281a1a5.3e9a69cc.js b/zh-CN/assets/js/a281a1a5.3e9a69cc.js
new file mode 100644
index 0000000..b3f4464
--- /dev/null
+++ b/zh-CN/assets/js/a281a1a5.3e9a69cc.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/a67c5390.1760f636.js b/zh-CN/assets/js/a67c5390.1760f636.js
deleted file mode 100644
index a6ff4ed..0000000
--- a/zh-CN/assets/js/a67c5390.1760f636.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4193],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/a67c5390.66f937d1.js b/zh-CN/assets/js/a67c5390.66f937d1.js
new file mode 100644
index 0000000..a7015ef
--- /dev/null
+++ b/zh-CN/assets/js/a67c5390.66f937d1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4193],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function u(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/a6aa9e1f.5efb6f3e.js b/zh-CN/assets/js/a6aa9e1f.5efb6f3e.js
new file mode 100644
index 0000000..a39715e
--- /dev/null
+++ b/zh-CN/assets/js/a6aa9e1f.5efb6f3e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3089],{8665:function(e,t,a){a.d(t,{Z:function(){return b}});var r=a(3366),n=a(7294),l=a(6010),i=a(2434),s=a(9960),m="sidebar_a9qW",o="sidebarItemTitle_uKok",c="sidebarItemList_Kvuv",u="sidebarItem_CF0Q",d="sidebarItemLink_miNk",g="sidebarItemLinkActive_RRTD",p=a(5999);function v(e){var t=e.sidebar;return 0===t.items.length?null:n.createElement("nav",{className:(0,l.Z)(m,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/a6aa9e1f.855241f5.js b/zh-CN/assets/js/a6aa9e1f.855241f5.js
deleted file mode 100644
index 52840e3..0000000
--- a/zh-CN/assets/js/a6aa9e1f.855241f5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3089],{8665:function(e,t,a){a.d(t,{Z:function(){return E}});var r=a(3366),n=a(7294),l=a(6010),i=a(2434),m=a(9960),s="sidebar_a9qW",o="sidebarItemTitle_uKok",c="sidebarItemList_Kvuv",u="sidebarItem_CF0Q",d="sidebarItemLink_miNk",g="sidebarItemLinkActive_RRTD",p=a(5999);function v(e){var t=e.sidebar;return 0===t.items.length?null:n.createElement("nav",{className:(0,l.Z)(s,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/a7c50264.97edbc52.js b/zh-CN/assets/js/a7c50264.97edbc52.js
new file mode 100644
index 0000000..ee38394
--- /dev/null
+++ b/zh-CN/assets/js/a7c50264.97edbc52.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6347],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/a7c50264.f6824b57.js b/zh-CN/assets/js/a7c50264.f6824b57.js
deleted file mode 100644
index 040fcff..0000000
--- a/zh-CN/assets/js/a7c50264.f6824b57.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6347],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/a7dfdb02.9cd3b30b.js b/zh-CN/assets/js/a7dfdb02.9cd3b30b.js
new file mode 100644
index 0000000..99c0837
--- /dev/null
+++ b/zh-CN/assets/js/a7dfdb02.9cd3b30b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7320],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var a=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/a7dfdb02.b2ca2892.js b/zh-CN/assets/js/a7dfdb02.b2ca2892.js
deleted file mode 100644
index 956f104..0000000
--- a/zh-CN/assets/js/a7dfdb02.b2ca2892.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7320],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return c}});var a=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/a872c320.204c766d.js b/zh-CN/assets/js/a872c320.204c766d.js
new file mode 100644
index 0000000..b56fbb7
--- /dev/null
+++ b/zh-CN/assets/js/a872c320.204c766d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5118],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(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/a872c320.2e3c023b.js b/zh-CN/assets/js/a872c320.2e3c023b.js
deleted file mode 100644
index ef2aa9c..0000000
--- a/zh-CN/assets/js/a872c320.2e3c023b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5118],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(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/aa061128.1f32b3ec.js b/zh-CN/assets/js/aa061128.1f32b3ec.js
deleted file mode 100644
index b9567d7..0000000
--- a/zh-CN/assets/js/aa061128.1f32b3ec.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1229],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return m}});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/aa061128.d4bf26c7.js b/zh-CN/assets/js/aa061128.d4bf26c7.js
new file mode 100644
index 0000000..3ffa6ff
--- /dev/null
+++ b/zh-CN/assets/js/aa061128.d4bf26c7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1229],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/abbc9aab.35afabb2.js b/zh-CN/assets/js/abbc9aab.35afabb2.js
deleted file mode 100644
index 1c1bca8..0000000
--- a/zh-CN/assets/js/abbc9aab.35afabb2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8848],{3905:function(t,n,e){e.d(n,{Zo:function(){return p},kt:function(){return m}});var r=e(7294);function a(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function l(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/abbc9aab.ff66e575.js b/zh-CN/assets/js/abbc9aab.ff66e575.js
new file mode 100644
index 0000000..3aec1cf
--- /dev/null
+++ b/zh-CN/assets/js/abbc9aab.ff66e575.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8848],{3905:function(t,n,e){e.d(n,{Zo:function(){return p},kt:function(){return m}});var r=e(7294);function a(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function l(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/b0936712.1c61027c.js b/zh-CN/assets/js/b0936712.1c61027c.js
deleted file mode 100644
index e947f4e..0000000
--- a/zh-CN/assets/js/b0936712.1c61027c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3168],{3905:function(e,t,r){r.d(t,{Zo:function(){return s},kt:function(){return k}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/b0936712.ba4a422a.js b/zh-CN/assets/js/b0936712.ba4a422a.js
new file mode 100644
index 0000000..38ce306
--- /dev/null
+++ b/zh-CN/assets/js/b0936712.ba4a422a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3168],{3905:function(e,t,r){r.d(t,{Zo:function(){return s},kt:function(){return k}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/b23b9205.4a61a5d8.js b/zh-CN/assets/js/b23b9205.4a61a5d8.js
new file mode 100644
index 0000000..a08fa06
--- /dev/null
+++ b/zh-CN/assets/js/b23b9205.4a61a5d8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3179],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/b23b9205.dc42495a.js b/zh-CN/assets/js/b23b9205.dc42495a.js
deleted file mode 100644
index f81e5a7..0000000
--- a/zh-CN/assets/js/b23b9205.dc42495a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3179],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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/be86fbab.1dfd5a5b.js b/zh-CN/assets/js/be86fbab.1dfd5a5b.js
new file mode 100644
index 0000000..f7be33b
--- /dev/null
+++ b/zh-CN/assets/js/be86fbab.1dfd5a5b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4036],{1303:function(e){e.exports=JSON.parse('{"permalink":"/zh-CN/blog/tags/spark","page":1,"postsPerPage":10,"totalPages":1,"totalCount":3,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/zh-CN/assets/js/c0212c48.55c283fd.js b/zh-CN/assets/js/c0212c48.55c283fd.js
deleted file mode 100644
index 94b45d1..0000000
--- a/zh-CN/assets/js/c0212c48.55c283fd.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8008],{3905:function(e,t,n){n.d(t,{Zo:function(){return m},kt:function(){return u}});var o=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/c0212c48.a417943d.js b/zh-CN/assets/js/c0212c48.a417943d.js
new file mode 100644
index 0000000..59c1a0c
--- /dev/null
+++ b/zh-CN/assets/js/c0212c48.a417943d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8008],{3905:function(e,t,n){n.d(t,{Zo:function(){return m},kt:function(){return u}});var o=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/c64563e9.203d47ea.js b/zh-CN/assets/js/c64563e9.203d47ea.js
new file mode 100644
index 0000000..d306b30
--- /dev/null
+++ b/zh-CN/assets/js/c64563e9.203d47ea.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4435],{3905:function(t,e,n){n.d(e,{Zo:function(){return u},kt:function(){return k}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/c64563e9.ed59eefd.js b/zh-CN/assets/js/c64563e9.ed59eefd.js
deleted file mode 100644
index ef29cce..0000000
--- a/zh-CN/assets/js/c64563e9.ed59eefd.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4435],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return k}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/c6675f54.20808dc1.js b/zh-CN/assets/js/c6675f54.20808dc1.js
new file mode 100644
index 0000000..1b05b3b
--- /dev/null
+++ b/zh-CN/assets/js/c6675f54.20808dc1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[239],{3905:function(n,e,t){t.d(e,{Zo:function(){return c},kt:function(){return m}});var o=t(7294);function r(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function i(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(n);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(n,e [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/c6675f54.392a5737.js b/zh-CN/assets/js/c6675f54.392a5737.js
deleted file mode 100644
index 2508dfe..0000000
--- a/zh-CN/assets/js/c6675f54.392a5737.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[239],{3905:function(e,n,t){t.d(n,{Zo:function(){return s},kt:function(){return m}});var o=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/c7c2bd87.a4b35679.js b/zh-CN/assets/js/c7c2bd87.a4b35679.js
new file mode 100644
index 0000000..b0c655e
--- /dev/null
+++ b/zh-CN/assets/js/c7c2bd87.a4b35679.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[892],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return f}});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 i(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,n [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/c7c2bd87.cf286731.js b/zh-CN/assets/js/c7c2bd87.cf286731.js
deleted file mode 100644
index 6330612..0000000
--- a/zh-CN/assets/js/c7c2bd87.cf286731.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[892],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},kt:function(){return f}});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 i(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,n [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/cb4af717.1ed1998c.js b/zh-CN/assets/js/cb4af717.1ed1998c.js
deleted file mode 100644
index ee7a3d1..0000000
--- a/zh-CN/assets/js/cb4af717.1ed1998c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2154],{3905:function(e,n,t){t.d(n,{Zo:function(){return c},kt:function(){return m}});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 o(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/cb4af717.cb3b8811.js b/zh-CN/assets/js/cb4af717.cb3b8811.js
new file mode 100644
index 0000000..b722bad
--- /dev/null
+++ b/zh-CN/assets/js/cb4af717.cb3b8811.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2154],{3905:function(e,n,t){t.d(n,{Zo:function(){return p},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 o(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/cc9db67d.38692bc8.js b/zh-CN/assets/js/cc9db67d.38692bc8.js
deleted file mode 100644
index 1f9bfee..0000000
--- a/zh-CN/assets/js/cc9db67d.38692bc8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3298],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/cc9db67d.8b227c6c.js b/zh-CN/assets/js/cc9db67d.8b227c6c.js
new file mode 100644
index 0000000..79468b4
--- /dev/null
+++ b/zh-CN/assets/js/cc9db67d.8b227c6c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3298],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/ccc49370.70cdb5bf.js b/zh-CN/assets/js/ccc49370.70cdb5bf.js
new file mode 100644
index 0000000..5529813
--- /dev/null
+++ b/zh-CN/assets/js/ccc49370.70cdb5bf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6103],{8665:function(e,t,a){a.d(t,{Z:function(){return b}});var n=a(3366),l=a(7294),r=a(6010),i=a(2434),o=a(9960),s="sidebar_a9qW",m="sidebarItemTitle_uKok",c="sidebarItemList_Kvuv",u="sidebarItem_CF0Q",d="sidebarItemLink_miNk",g="sidebarItemLinkActive_RRTD",p=a(5999);function v(e){var t=e.sidebar;return 0===t.items.length?null:l.createElement("nav",{className:(0,r.Z)(s,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/ccc49370.ed48f4c5.js b/zh-CN/assets/js/ccc49370.ed48f4c5.js
deleted file mode 100644
index 546cfd4..0000000
--- a/zh-CN/assets/js/ccc49370.ed48f4c5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6103],{8665:function(e,t,a){a.d(t,{Z:function(){return b}});var n=a(3366),l=a(7294),r=a(6010),i=a(2434),o=a(9960),s="sidebar_a9qW",m="sidebarItemTitle_uKok",c="sidebarItemList_Kvuv",u="sidebarItem_CF0Q",d="sidebarItemLink_miNk",g="sidebarItemLinkActive_RRTD",v=a(5999);function p(e){var t=e.sidebar;return 0===t.items.length?null:l.createElement("nav",{className:(0,r.Z)(s,"thin-scrollbar"),"aria [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/cd7aea4a.a830d1b5.js b/zh-CN/assets/js/cd7aea4a.a830d1b5.js
new file mode 100644
index 0000000..f4c13b4
--- /dev/null
+++ b/zh-CN/assets/js/cd7aea4a.a830d1b5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3795],{3905:function(t,n,e){e.d(n,{Zo:function(){return s},kt:function(){return f}});var r=e(7294);function a(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function o(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/cd7aea4a.aea29e01.js b/zh-CN/assets/js/cd7aea4a.aea29e01.js
deleted file mode 100644
index d4291c2..0000000
--- a/zh-CN/assets/js/cd7aea4a.aea29e01.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3795],{3905:function(n,t,e){e.d(t,{Zo:function(){return s},kt:function(){return f}});var r=e(7294);function a(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}function o(n,t){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(n, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/d050d262.7ed85664.js b/zh-CN/assets/js/d050d262.7ed85664.js
new file mode 100644
index 0000000..11d0135
--- /dev/null
+++ b/zh-CN/assets/js/d050d262.7ed85664.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1066],{4148:function(e){e.exports=JSON.parse('{"permalink":"/zh-CN/blog/tags/elasticsearch","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/zh-CN/assets/js/d238cbcc.89637916.js b/zh-CN/assets/js/d238cbcc.89637916.js
new file mode 100644
index 0000000..28893cb
--- /dev/null
+++ b/zh-CN/assets/js/d238cbcc.89637916.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3932],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return f}});var r=n(7294);function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/d238cbcc.eec32345.js b/zh-CN/assets/js/d238cbcc.eec32345.js
deleted file mode 100644
index 83feb76..0000000
--- a/zh-CN/assets/js/d238cbcc.eec32345.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3932],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/d968614a.b6684621.js b/zh-CN/assets/js/d968614a.b6684621.js
deleted file mode 100644
index 176d199..0000000
--- a/zh-CN/assets/js/d968614a.b6684621.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9216],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/d968614a.de11e006.js b/zh-CN/assets/js/d968614a.de11e006.js
new file mode 100644
index 0000000..a19d68c
--- /dev/null
+++ b/zh-CN/assets/js/d968614a.de11e006.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9216],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/dc4fba4b.16a3924b.js b/zh-CN/assets/js/dc4fba4b.16a3924b.js
new file mode 100644
index 0000000..47ae439
--- /dev/null
+++ b/zh-CN/assets/js/dc4fba4b.16a3924b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3259],{3905:function(e,t,n){n.d(t,{Zo:function(){return o},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(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/dc4fba4b.54599db9.js b/zh-CN/assets/js/dc4fba4b.54599db9.js
deleted file mode 100644
index f2f8aed..0000000
--- a/zh-CN/assets/js/dc4fba4b.54599db9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3259],{3905:function(e,t,n){n.d(t,{Zo:function(){return o},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(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/de73a401.15d16181.js b/zh-CN/assets/js/de73a401.15d16181.js
new file mode 100644
index 0000000..d9499d8
--- /dev/null
+++ b/zh-CN/assets/js/de73a401.15d16181.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6058],{3905:function(e,t,a){a.d(t,{Zo:function(){return s},kt:function(){return m}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/de73a401.1ede7ab9.js b/zh-CN/assets/js/de73a401.1ede7ab9.js
deleted file mode 100644
index 0f5498f..0000000
--- a/zh-CN/assets/js/de73a401.1ede7ab9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[6058],{3905:function(e,t,a){a.d(t,{Zo:function(){return s},kt:function(){return m}});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/e27978f7.733f05c3.js b/zh-CN/assets/js/e27978f7.733f05c3.js
deleted file mode 100644
index 630a5d7..0000000
--- a/zh-CN/assets/js/e27978f7.733f05c3.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4990],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return c}});var r=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 a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/e27978f7.a02fd609.js b/zh-CN/assets/js/e27978f7.a02fd609.js
new file mode 100644
index 0000000..486f671
--- /dev/null
+++ b/zh-CN/assets/js/e27978f7.a02fd609.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[4990],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return c}});var r=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 a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/e689fd89.0d069c19.js b/zh-CN/assets/js/e689fd89.0d069c19.js
deleted file mode 100644
index b3a652a..0000000
--- a/zh-CN/assets/js/e689fd89.0d069c19.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9555],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return c}});var r=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 a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/e689fd89.dc2186c9.js b/zh-CN/assets/js/e689fd89.dc2186c9.js
new file mode 100644
index 0000000..d9cb2e8
--- /dev/null
+++ b/zh-CN/assets/js/e689fd89.dc2186c9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9555],{3905:function(t,e,n){n.d(e,{Zo:function(){return s},kt:function(){return k}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/e6adb9dc.55f49ae3.js b/zh-CN/assets/js/e6adb9dc.55f49ae3.js
new file mode 100644
index 0000000..dad9272
--- /dev/null
+++ b/zh-CN/assets/js/e6adb9dc.55f49ae3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3454],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/e6adb9dc.f31a27d2.js b/zh-CN/assets/js/e6adb9dc.f31a27d2.js
deleted file mode 100644
index 763941a..0000000
--- a/zh-CN/assets/js/e6adb9dc.f31a27d2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3454],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/e8521944.76cfa230.js b/zh-CN/assets/js/e8521944.76cfa230.js
new file mode 100644
index 0000000..eba788b
--- /dev/null
+++ b/zh-CN/assets/js/e8521944.76cfa230.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1528],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/e8521944.c613d5e5.js b/zh-CN/assets/js/e8521944.c613d5e5.js
deleted file mode 100644
index 68af2ba..0000000
--- a/zh-CN/assets/js/e8521944.c613d5e5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[1528],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/e8f13f9b.541e4fe7.js b/zh-CN/assets/js/e8f13f9b.541e4fe7.js
new file mode 100644
index 0000000..0d9f7bc
--- /dev/null
+++ b/zh-CN/assets/js/e8f13f9b.541e4fe7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[2002],{6365:function(e){e.exports=JSON.parse('{"permalink":"/zh-CN/blog/tags/\u552f\u54c1\u4f1a","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/zh-CN/assets/js/eb1fff16.5d7d2fbf.js b/zh-CN/assets/js/eb1fff16.5d7d2fbf.js
deleted file mode 100644
index 5f3515c..0000000
--- a/zh-CN/assets/js/eb1fff16.5d7d2fbf.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3004],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/eb1fff16.817fc3c5.js b/zh-CN/assets/js/eb1fff16.817fc3c5.js
new file mode 100644
index 0000000..c8eb10f
--- /dev/null
+++ b/zh-CN/assets/js/eb1fff16.817fc3c5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3004],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/ebe76806.1461df4a.js b/zh-CN/assets/js/ebe76806.1461df4a.js
new file mode 100644
index 0000000..4d65662
--- /dev/null
+++ b/zh-CN/assets/js/ebe76806.1461df4a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8164],{6799:function(e){e.exports=JSON.parse('{"permalink":"/zh-CN/blog/tags/hive","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"previousPage":null,"nextPage":null,"blogDescription":"Blog","blogTitle":"Blog"}')}}]);
\ No newline at end of file
diff --git a/zh-CN/assets/js/ecbe7a3e.800aa5c1.js b/zh-CN/assets/js/ecbe7a3e.800aa5c1.js
new file mode 100644
index 0000000..8cc7b93
--- /dev/null
+++ b/zh-CN/assets/js/ecbe7a3e.800aa5c1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3365],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return f}});var r=n(7294);function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/ecbe7a3e.983970f5.js b/zh-CN/assets/js/ecbe7a3e.983970f5.js
deleted file mode 100644
index 2337798..0000000
--- a/zh-CN/assets/js/ecbe7a3e.983970f5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[3365],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return f}});var r=n(7294);function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/ece30e0c.3da051f6.js b/zh-CN/assets/js/ece30e0c.3da051f6.js
deleted file mode 100644
index d25a590..0000000
--- a/zh-CN/assets/js/ece30e0c.3da051f6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[842],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(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,t [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/ece30e0c.8674e103.js b/zh-CN/assets/js/ece30e0c.8674e103.js
new file mode 100644
index 0000000..05b7aa8
--- /dev/null
+++ b/zh-CN/assets/js/ece30e0c.8674e103.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[842],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return m}});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(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,t [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/f078bfe5.3f8c4c5f.js b/zh-CN/assets/js/f078bfe5.3f8c4c5f.js
new file mode 100644
index 0000000..2218f6c
--- /dev/null
+++ b/zh-CN/assets/js/f078bfe5.3f8c4c5f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7004],{3905:function(t,e,n){n.d(e,{Zo:function(){return d},kt:function(){return m}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/f078bfe5.cbe4d994.js b/zh-CN/assets/js/f078bfe5.cbe4d994.js
deleted file mode 100644
index 824f2ea..0000000
--- a/zh-CN/assets/js/f078bfe5.cbe4d994.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7004],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return m}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/f16ebba6.405659dc.js b/zh-CN/assets/js/f16ebba6.405659dc.js
new file mode 100644
index 0000000..9bae689
--- /dev/null
+++ b/zh-CN/assets/js/f16ebba6.405659dc.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7615],{3905:function(t,e,n){n.d(e,{Zo:function(){return p},kt:function(){return k}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/f16ebba6.715ee47c.js b/zh-CN/assets/js/f16ebba6.715ee47c.js
deleted file mode 100644
index b2bbacc..0000000
--- a/zh-CN/assets/js/f16ebba6.715ee47c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[7615],{3905:function(t,e,n){n.d(e,{Zo:function(){return d},kt:function(){return k}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/f3f42ef4.1e8bc409.js b/zh-CN/assets/js/f3f42ef4.1e8bc409.js
new file mode 100644
index 0000000..c15f151
--- /dev/null
+++ b/zh-CN/assets/js/f3f42ef4.1e8bc409.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9698],{3905:function(e,t,n){n.d(t,{Zo:function(){return c},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/f3f42ef4.78176c9e.js b/zh-CN/assets/js/f3f42ef4.78176c9e.js
deleted file mode 100644
index 23b6675..0000000
--- a/zh-CN/assets/js/f3f42ef4.78176c9e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[9698],{3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/f6f539a6.d0537afa.js b/zh-CN/assets/js/f6f539a6.d0537afa.js
deleted file mode 100644
index 7485861..0000000
--- a/zh-CN/assets/js/f6f539a6.d0537afa.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8466],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/f6f539a6.ddcb6edf.js b/zh-CN/assets/js/f6f539a6.ddcb6edf.js
new file mode 100644
index 0000000..5d69712
--- /dev/null
+++ b/zh-CN/assets/js/f6f539a6.ddcb6edf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[8466],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/f7c0b826.c6fa7e40.js b/zh-CN/assets/js/f7c0b826.c6fa7e40.js
deleted file mode 100644
index 19d33f1..0000000
--- a/zh-CN/assets/js/f7c0b826.c6fa7e40.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5886],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/f7c0b826.ece71ef2.js b/zh-CN/assets/js/f7c0b826.ece71ef2.js
new file mode 100644
index 0000000..28f15bc
--- /dev/null
+++ b/zh-CN/assets/js/f7c0b826.ece71ef2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[5886],{3905:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return m}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e, [...]
\ No newline at end of file
diff --git a/zh-CN/assets/js/main.ad359cf2.js b/zh-CN/assets/js/main.ad359cf2.js
new file mode 100644
index 0000000..d5849d0
--- /dev/null
+++ b/zh-CN/assets/js/main.ad359cf2.js
@@ -0,0 +1,2 @@
+/*! For license information please see main.ad359cf2.js.LICENSE.txt */
+(self.webpackChunkseatunnel_website=self.webpackChunkseatunnel_website||[]).push([[179],{8726:function(e,t,n){"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.as [...]
\ No newline at end of file
diff --git a/assets/js/main.2f1ceddd.js.LICENSE.txt b/zh-CN/assets/js/main.ad359cf2.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.2f1ceddd.js.LICENSE.txt
rename to zh-CN/assets/js/main.ad359cf2.js.LICENSE.txt
diff --git a/zh-CN/assets/js/main.d82eeb79.js b/zh-CN/assets/js/main.d82eeb79.js
deleted file mode 100644
index 3673633..0000000
--- a/zh-CN/assets/js/main.d82eeb79.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.d82eeb79.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.5dfac47b.js b/zh-CN/assets/js/runtime~main.5dfac47b.js
deleted file mode 100644
index 27c6bae..0000000
--- a/zh-CN/assets/js/runtime~main.5dfac47b.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(){"use strict";var e,a,c,f,b,d={},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 d[e].call(c.exports,c,c.exports,n),c.loaded=!0,c.exports}n.m=d,n.c=t,e=[],n.O=function(a,c,f,b){if(!c){var d=1/0;for(u=0;u<e.length;u++){c=e[u][0],f=e[u][1],b=e[u][2];for(var t=!0,r=0;r<c.length;r++)(!1&b||d>=b)&&Object.keys(n.O).every((function(e){return n.O[e](c[r])}))?c.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.7fcf8955.js b/zh-CN/assets/js/runtime~main.7fcf8955.js
new file mode 100644
index 0000000..b2fa49d
--- /dev/null
+++ b/zh-CN/assets/js/runtime~main.7fcf8955.js
@@ -0,0 +1 @@
+!function(){"use strict";var e,a,c,f,b,d={},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 d[e].call(c.exports,c,c.exports,n),c.loaded=!0,c.exports}n.m=d,n.c=t,e=[],n.O=function(a,c,f,b){if(!c){var d=1/0;for(u=0;u<e.length;u++){c=e[u][0],f=e[u][1],b=e[u][2];for(var t=!0,r=0;r<c.length;r++)(!1&b||d>=b)&&Object.keys(n.O).every((function(e){return n.O[e](c[r])}))?c.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/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"
index 9275be8..b81c055 100644
--- "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"	
@@ -3,43 +3,43 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">SeaTunnel 在唯品会的实践 | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/SeaTunnel 在唯品会的实践"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default">< [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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这类在某一存储引擎中利用得比较多得数据类型,是否可以正 [...]
+<img loading="lazy" 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 loading="lazy" 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 loading="lazy" 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 loading="lazy" 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的使用。
+<img loading="lazy" 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">
+<img loading="lazy" 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 loading="lazy" alt="7" src="/zh-CN/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img loading="lazy" 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
+<img loading="lazy" 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 loading="lazy" 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。
+<img loading="lazy" alt="11" src="/zh-CN/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img loading="lazy" 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 loading="lazy" alt="13" src="/zh-CN/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img loading="lazy" 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 loading="lazy" 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个人群左右。
+<img loading="lazy" 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">
@@ -52,7 +52,7 @@ RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 daf0875..254b329 100644
--- a/zh-CN/blog/archive/index.html
+++ b/zh-CN/blog/archive/index.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Archive | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="Archive | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" name="description" content="Archive"><meta data-rh="true" property="og:description" content="Archive"><meta data-rh="true" property="og:url" content="htt [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
@@ -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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 fdced44..9843894 100644
--- a/zh-CN/blog/atom.xml
+++ b/zh-CN/blog/atom.xml
@@ -16,32 +16,32 @@
         <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这类在某一存储引擎中利用得比较多得数据类型,是否可以正 [...]
+<img loading="lazy" 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 loading="lazy" 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 loading="lazy" 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 loading="lazy" 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的使用。
+<img loading="lazy" 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">
+<img loading="lazy" 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 loading="lazy" alt="7" src="/zh-CN/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img loading="lazy" 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
+<img loading="lazy" 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 loading="lazy" 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。
+<img loading="lazy" alt="11" src="/zh-CN/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img loading="lazy" 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 loading="lazy" alt="13" src="/zh-CN/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img loading="lazy" 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 loading="lazy" 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个人群左右。
+<img loading="lazy" 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="唯品会"/>
@@ -63,7 +63,7 @@ RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>
         <link href="https://seatunnel.apache.org/zh-CN/blog/hive-to-clickhouse"/>
         <updated>2021-12-30T00:00:00.000Z</updated>
         <summary type="html"><![CDATA[ClickHouse是面向OLAP的分布式列式DBMS。我们部门目前已经把所有数据分析相关的日志数据存储至ClickHouse这个优秀的数据仓库之中,当前日数据量达到了300亿。]]></summary>
-        <content type="html"><![CDATA[<p>ClickHouse是面向OLAP的分布式列式DBMS。我们部门目前已经把所有数据分析相关的日志数据存储至ClickHouse这个优秀的数据仓库之中,当前日数据量达到了300亿。</p><p>在之前的文章 <a href="/zh-CN/blog/i18n/zh-CN/docusaurus-plugin-content-blog/current/2021-12-30-hdfs-to-clickhouse.mdtent-blog/current/2021-12-30-hdfs-to-clickhouse.md">如何快速地把HDFS中的数据导入ClickHouse</a> 中我们提到过使用 Seatunnel <a href="https://github.com/apache/incubator-seatunnel" target="_blank" rel="noopener noreferrer">https://github.com/apache/incubator-seatunnel [...]
+        <content type="html"><![CDATA[<p>ClickHouse是面向OLAP的分布式列式DBMS。我们部门目前已经把所有数据分析相关的日志数据存储至ClickHouse这个优秀的数据仓库之中,当前日数据量达到了300亿。</p><p>在之前的文章 <a href="/zh-CN/blog/i18n/zh-CN/docusaurus-plugin-content-blog/current/2021-12-30-hdfs-to-clickhouse.mdtent-blog/current/2021-12-30-hdfs-to-clickhouse.md">如何快速地把HDFS中的数据导入ClickHouse</a> 中我们提到过使用 Seatunnel <a href="https://github.com/apache/incubator-seatunnel" target="_blank" rel="noopener noreferrer">https://github.com/apache/incubator-seatunnel [...]
         <category label="Hive" term="Hive"/>
         <category label="ClickHouse" term="ClickHouse"/>
     </entry>
@@ -73,7 +73,7 @@ RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>
         <link href="https://seatunnel.apache.org/zh-CN/blog/spark-execute-elasticsearch"/>
         <updated>2021-12-30T00:00:00.000Z</updated>
         <summary type="html"><![CDATA[说到数据写入 Elasticsearch,最先想到的肯定是Logstash。Logstash因为其简单上手、可扩展、可伸缩等优点被广大用户接受。但是尺有所短,寸有所长,Logstash肯定也有它无法适用的应用场景,比如:]]></summary>
-        <content type="html"><![CDATA[<p>说到数据写入 Elasticsearch,最先想到的肯定是Logstash。Logstash因为其简单上手、可扩展、可伸缩等优点被广大用户接受。但是尺有所短,寸有所长,Logstash肯定也有它无法适用的应用场景,比如:</p><ul><li>海量数据ETL</li><li>海量数据聚合</li><li>多源数据处理</li></ul><p>为了满足这些场景,很多同学都会选择Spark,借助Spark算子进行数据处理,最后将处理结果写入Elasticsearch。</p><p>我们部门之前利用Spark对Nginx日志进行分析,统计我们的Web服务访问情况,将Nginx日志每分钟聚合一次最后将结果写入Elasticsearch,然后利用Kibana配置实时监控Dashboard。Elasticsearch和Kibana都很方便、实用,但是随着类似需求越来越多,如何快速通过Spark将数据写入Elasticsearch成为了我们的一大问题。</p><p>今天给大家推荐一款能够实现数据快速写入 [...]
+        <content type="html"><![CDATA[<p>说到数据写入 Elasticsearch,最先想到的肯定是Logstash。Logstash因为其简单上手、可扩展、可伸缩等优点被广大用户接受。但是尺有所短,寸有所长,Logstash肯定也有它无法适用的应用场景,比如:</p><ul><li>海量数据ETL</li><li>海量数据聚合</li><li>多源数据处理</li></ul><p>为了满足这些场景,很多同学都会选择Spark,借助Spark算子进行数据处理,最后将处理结果写入Elasticsearch。</p><p>我们部门之前利用Spark对Nginx日志进行分析,统计我们的Web服务访问情况,将Nginx日志每分钟聚合一次最后将结果写入Elasticsearch,然后利用Kibana配置实时监控Dashboard。Elasticsearch和Kibana都很方便、实用,但是随着类似需求越来越多,如何快速通过Spark将数据写入Elasticsearch成为了我们的一大问题。</p><p>今天给大家推荐一款能够实现数据快速写入 [...]
         <category label="Spark" term="Spark"/>
         <category label="Kafka" term="Kafka"/>
         <category label="Elasticsearch" term="Elasticsearch"/>
diff --git a/zh-CN/blog/hdfs-to-clickhouse/index.html b/zh-CN/blog/hdfs-to-clickhouse/index.html
index 4fab268..37d15e4 100644
--- a/zh-CN/blog/hdfs-to-clickhouse/index.html
+++ b/zh-CN/blog/hdfs-to-clickhouse/index.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">如何快速地把 HDFS 中的数据导入 ClickHouse | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/hdfs-to-clickhouse"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:docusaurus_tag" conten [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
@@ -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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 9d60953..01eea52 100644
--- a/zh-CN/blog/hive-to-clickhouse/index.html
+++ b/zh-CN/blog/hive-to-clickhouse/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">如何快速地把 Hive 中的数据导入 ClickHouse | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/hive-to-clickhouse"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:docusaurus_tag" conten [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 7206c98..dac0a1b 100644
--- a/zh-CN/blog/index.html
+++ b/zh-CN/blog/index.html
@@ -3,45 +3,45 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Blog | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="Blog | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" name="description" content="Blog"><meta data-rh="true" property="og:description" content="Blog"><meta data-rh="true" property="og:url" content="https://seatunn [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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这类在某一存储引擎中利用得比较多得数据类型,是否可以正 [...]
+<img loading="lazy" 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 loading="lazy" 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 loading="lazy" 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 loading="lazy" 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的使用。
+<img loading="lazy" 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">
+<img loading="lazy" 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 loading="lazy" alt="7" src="/zh-CN/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img loading="lazy" 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
+<img loading="lazy" 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 loading="lazy" 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。
+<img loading="lazy" alt="11" src="/zh-CN/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img loading="lazy" 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 loading="lazy" alt="13" src="/zh-CN/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img loading="lazy" 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 loading="lazy" 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个人群左右。
+<img loading="lazy" 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 [...]
+为了完成这样的需求,我们在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 [...]
@@ -63,7 +63,7 @@ RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 9741eae..316d344 100644
--- a/zh-CN/blog/rss.xml
+++ b/zh-CN/blog/rss.xml
@@ -16,32 +16,32 @@
             <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这类在某一存储引擎中利用得比较多得数据类型,是否可以正 [...]
+<img loading="lazy" 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 loading="lazy" 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 loading="lazy" 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 loading="lazy" 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的使用。
+<img loading="lazy" 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">
+<img loading="lazy" 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 loading="lazy" alt="7" src="/zh-CN/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img loading="lazy" 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
+<img loading="lazy" 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 loading="lazy" 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。
+<img loading="lazy" alt="11" src="/zh-CN/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img loading="lazy" 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 loading="lazy" alt="13" src="/zh-CN/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img loading="lazy" 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 loading="lazy" 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个人群左右。
+<img loading="lazy" 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>
@@ -63,7 +63,7 @@ RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>
             <guid>hive-to-clickhouse</guid>
             <pubDate>Thu, 30 Dec 2021 00:00:00 GMT</pubDate>
             <description><![CDATA[ClickHouse是面向OLAP的分布式列式DBMS。我们部门目前已经把所有数据分析相关的日志数据存储至ClickHouse这个优秀的数据仓库之中,当前日数据量达到了300亿。]]></description>
-            <content:encoded><![CDATA[<p>ClickHouse是面向OLAP的分布式列式DBMS。我们部门目前已经把所有数据分析相关的日志数据存储至ClickHouse这个优秀的数据仓库之中,当前日数据量达到了300亿。</p><p>在之前的文章 <a href="/zh-CN/blog/i18n/zh-CN/docusaurus-plugin-content-blog/current/2021-12-30-hdfs-to-clickhouse.mdtent-blog/current/2021-12-30-hdfs-to-clickhouse.md">如何快速地把HDFS中的数据导入ClickHouse</a> 中我们提到过使用 Seatunnel <a href="https://github.com/apache/incubator-seatunnel" target="_blank" rel="noopener noreferrer">https://github.com/apache/incubator-seatunnel [...]
+            <content:encoded><![CDATA[<p>ClickHouse是面向OLAP的分布式列式DBMS。我们部门目前已经把所有数据分析相关的日志数据存储至ClickHouse这个优秀的数据仓库之中,当前日数据量达到了300亿。</p><p>在之前的文章 <a href="/zh-CN/blog/i18n/zh-CN/docusaurus-plugin-content-blog/current/2021-12-30-hdfs-to-clickhouse.mdtent-blog/current/2021-12-30-hdfs-to-clickhouse.md">如何快速地把HDFS中的数据导入ClickHouse</a> 中我们提到过使用 Seatunnel <a href="https://github.com/apache/incubator-seatunnel" target="_blank" rel="noopener noreferrer">https://github.com/apache/incubator-seatunnel [...]
             <category>Hive</category>
             <category>ClickHouse</category>
         </item>
@@ -73,7 +73,7 @@ RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</p><p>
             <guid>spark-execute-elasticsearch</guid>
             <pubDate>Thu, 30 Dec 2021 00:00:00 GMT</pubDate>
             <description><![CDATA[说到数据写入 Elasticsearch,最先想到的肯定是Logstash。Logstash因为其简单上手、可扩展、可伸缩等优点被广大用户接受。但是尺有所短,寸有所长,Logstash肯定也有它无法适用的应用场景,比如:]]></description>
-            <content:encoded><![CDATA[<p>说到数据写入 Elasticsearch,最先想到的肯定是Logstash。Logstash因为其简单上手、可扩展、可伸缩等优点被广大用户接受。但是尺有所短,寸有所长,Logstash肯定也有它无法适用的应用场景,比如:</p><ul><li>海量数据ETL</li><li>海量数据聚合</li><li>多源数据处理</li></ul><p>为了满足这些场景,很多同学都会选择Spark,借助Spark算子进行数据处理,最后将处理结果写入Elasticsearch。</p><p>我们部门之前利用Spark对Nginx日志进行分析,统计我们的Web服务访问情况,将Nginx日志每分钟聚合一次最后将结果写入Elasticsearch,然后利用Kibana配置实时监控Dashboard。Elasticsearch和Kibana都很方便、实用,但是随着类似需求越来越多,如何快速通过Spark将数据写入Elasticsearch成为了我们的一大问题。</p><p>今天给大家推荐一款能够实现数据快速写入 [...]
+            <content:encoded><![CDATA[<p>说到数据写入 Elasticsearch,最先想到的肯定是Logstash。Logstash因为其简单上手、可扩展、可伸缩等优点被广大用户接受。但是尺有所短,寸有所长,Logstash肯定也有它无法适用的应用场景,比如:</p><ul><li>海量数据ETL</li><li>海量数据聚合</li><li>多源数据处理</li></ul><p>为了满足这些场景,很多同学都会选择Spark,借助Spark算子进行数据处理,最后将处理结果写入Elasticsearch。</p><p>我们部门之前利用Spark对Nginx日志进行分析,统计我们的Web服务访问情况,将Nginx日志每分钟聚合一次最后将结果写入Elasticsearch,然后利用Kibana配置实时监控Dashboard。Elasticsearch和Kibana都很方便、实用,但是随着类似需求越来越多,如何快速通过Spark将数据写入Elasticsearch成为了我们的一大问题。</p><p>今天给大家推荐一款能够实现数据快速写入 [...]
             <category>Spark</category>
             <category>Kafka</category>
             <category>Elasticsearch</category>
diff --git a/zh-CN/blog/spark-execute-elasticsearch/index.html b/zh-CN/blog/spark-execute-elasticsearch/index.html
index 771e21b..52334ca 100644
--- a/zh-CN/blog/spark-execute-elasticsearch/index.html
+++ b/zh-CN/blog/spark-execute-elasticsearch/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">如何使用 Spark 快速将数据写入 Elasticsearch | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/spark-execute-elasticsearch"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:docusaurus [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 79914ae..644bed8 100644
--- a/zh-CN/blog/spark-execute-tidb/index.html
+++ b/zh-CN/blog/spark-execute-tidb/index.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">怎么用 Spark 在 TiDB 上做 OLAP 分析 | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/spark-execute-tidb"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:docusaurus_tag" content= [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
@@ -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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 e82602d..e25fda1 100644
--- a/zh-CN/blog/spark-structured-streaming/index.html
+++ b/zh-CN/blog/spark-structured-streaming/index.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">如何支持的 Spark StructuredStreaming | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/spark-structured-streaming"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:docusaurus_t [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 <!-- --> <!-- --> <!-- -->二、可以做实时的聚合,例如实时计算每天每个商品的销售总额;<br>
@@ -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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 47874f7..aac6e4c 100644
--- a/zh-CN/blog/tags/click-house/index.html
+++ b/zh-CN/blog/tags/click-house/index.html
@@ -3,45 +3,45 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;ClickHouse&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;ClickHouse&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/tags/click-hou [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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这类在某一存储引擎中利用得比较多得数据类型,是否可以正 [...]
+<img loading="lazy" 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 loading="lazy" 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 loading="lazy" 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 loading="lazy" 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的使用。
+<img loading="lazy" 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">
+<img loading="lazy" 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 loading="lazy" alt="7" src="/zh-CN/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img loading="lazy" 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
+<img loading="lazy" 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 loading="lazy" 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。
+<img loading="lazy" alt="11" src="/zh-CN/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img loading="lazy" 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 loading="lazy" alt="13" src="/zh-CN/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img loading="lazy" 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 loading="lazy" 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个人群左右。
+<img loading="lazy" 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_  [...]
+为了完成这样的需求,我们在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>
@@ -52,7 +52,7 @@ RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 7ad62e6..a3828dc 100644
--- a/zh-CN/blog/tags/elasticsearch/index.html
+++ b/zh-CN/blog/tags/elasticsearch/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;Elasticsearch&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;Elasticsearch&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/tags/ela [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 fc402d6..d880e74 100644
--- a/zh-CN/blog/tags/hdfs/index.html
+++ b/zh-CN/blog/tags/hdfs/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;HDFS&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;HDFS&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/tags/hdfs"><meta data-rh=" [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 1c20570..c69a11a 100644
--- a/zh-CN/blog/tags/hive/index.html
+++ b/zh-CN/blog/tags/hive/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;Hive&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;Hive&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/tags/hive"><meta data-rh=" [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 a43f22c..c1fd1dd 100644
--- a/zh-CN/blog/tags/index.html
+++ b/zh-CN/blog/tags/index.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Tags | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="Tags | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/tags"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" na [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
@@ -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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 449b661..408e41c 100644
--- a/zh-CN/blog/tags/kafka/index.html
+++ b/zh-CN/blog/tags/kafka/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;Kafka&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;Kafka&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/tags/kafka"><meta data-r [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 3c0a81d..9067075 100644
--- a/zh-CN/blog/tags/spark/index.html
+++ b/zh-CN/blog/tags/spark/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;Spark&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;Spark&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/tags/spark"><meta data-r [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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 [...]
@@ -22,7 +22,7 @@
 此时我们就需要把两个流数据关联到一起做计算,而 Seatunnel 最近也支持了此功能,让我们一起看一下该怎么做:</p><p>点击topic数据格式</p><div class="codeBlockContainer_I0IT theme-code-block"><div class="codeBlockContent_wNvx"><pre tabindex="0" class="prism-code language-text codeBlock_jd64 thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#F8F8F2"><span class="token plain">{&quot;ad_id&quot;:&quot;abc&quot;,&quot;click_time&quot;:1553216320,&quot;user_id&quot;: [...]
 如果你对这两个也感兴趣的话,可以阅读我们以前发布的文章《<a href="/zh-CN/blog/tags/i18n/zh-CN/docusaurus-plugin-content-blog/current/2021-12-30-hive-to-clickhouse.mdtent-blog/current/2021-12-30-hive-to-clickhouse.md">如何快速地将Hive中的数据导入ClickHouse</a>》、
 《<a href="/zh-CN/blog/tags/i18n/zh-CN/docusaurus-plugin-content-blog/current/2021-12-30-spark-execute-tidb.mdtent-blog/current/2021-12-30-spark-execute-tidb.md">优秀的数据工程师,怎么用Spark在TiDB上做OLAP分析</a>》、
-《<a href="/zh-CN/blog/tags/i18n/zh-CN/docusaurus-plugin-content-blog/2021-12-30-spark-execute-elasticsearch.md/current/2021-12-30-spark-execute-elasticsearch.md">如何使用Spark快速将数据写入Elasticsearch</a>》</p><p>希望了解 Seatunnel 和 HBase, ClickHouse、Elasticsearch、Kafka、MySQL 等数据源结合使用的更多功能和案例,可以直接进入官网 <a href="https://seatunnel.apache.org/" target="_blank" rel="noopener noreferrer">https://seatunnel.apache.org/</a></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="联系我们">联系我们<a class="hash-link" h [...]
+《<a href="/zh-CN/blog/tags/i18n/zh-CN/docusaurus-plugin-content-blog/2021-12-30-spark-execute-elasticsearch.md/current/2021-12-30-spark-execute-elasticsearch.md">如何使用Spark快速将数据写入Elasticsearch</a>》</p><p>希望了解 Seatunnel 和 HBase, ClickHouse、Elasticsearch、Kafka、MySQL 等数据源结合使用的更多功能和案例,可以直接进入官网 <a href="https://seatunnel.apache.org/" target="_blank" rel="noopener noreferrer">https://seatunnel.apache.org/</a></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="联系我们">联系我们<a class="hash-link" h [...]
                 <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>
@@ -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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 2410544..4694492 100644
--- a/zh-CN/blog/tags/structured-streaming/index.html
+++ b/zh-CN/blog/tags/structured-streaming/index.html
@@ -3,13 +3,13 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;StructuredStreaming&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;StructuredStreaming&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/b [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 <!-- --> <!-- --> <!-- -->二、可以做实时的聚合,例如实时计算每天每个商品的销售总额;<br>
@@ -22,7 +22,7 @@
 此时我们就需要把两个流数据关联到一起做计算,而 Seatunnel 最近也支持了此功能,让我们一起看一下该怎么做:</p><p>点击topic数据格式</p><div class="codeBlockContainer_I0IT theme-code-block"><div class="codeBlockContent_wNvx"><pre tabindex="0" class="prism-code language-text codeBlock_jd64 thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#F8F8F2"><span class="token plain">{&quot;ad_id&quot;:&quot;abc&quot;,&quot;click_time&quot;:1553216320,&quot;user_id&quot;: [...]
 如果你对这两个也感兴趣的话,可以阅读我们以前发布的文章《<a href="/zh-CN/blog/tags/i18n/zh-CN/docusaurus-plugin-content-blog/current/2021-12-30-hive-to-clickhouse.mdtent-blog/current/2021-12-30-hive-to-clickhouse.md">如何快速地将Hive中的数据导入ClickHouse</a>》、
 《<a href="/zh-CN/blog/tags/i18n/zh-CN/docusaurus-plugin-content-blog/current/2021-12-30-spark-execute-tidb.mdtent-blog/current/2021-12-30-spark-execute-tidb.md">优秀的数据工程师,怎么用Spark在TiDB上做OLAP分析</a>》、
-《<a href="/zh-CN/blog/tags/i18n/zh-CN/docusaurus-plugin-content-blog/2021-12-30-spark-execute-elasticsearch.md/current/2021-12-30-spark-execute-elasticsearch.md">如何使用Spark快速将数据写入Elasticsearch</a>》</p><p>希望了解 Seatunnel 和 HBase, ClickHouse、Elasticsearch、Kafka、MySQL 等数据源结合使用的更多功能和案例,可以直接进入官网 <a href="https://seatunnel.apache.org/" target="_blank" rel="noopener noreferrer">https://seatunnel.apache.org/</a></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="联系我们">联系我们<a class="hash-link" h [...]
+《<a href="/zh-CN/blog/tags/i18n/zh-CN/docusaurus-plugin-content-blog/2021-12-30-spark-execute-elasticsearch.md/current/2021-12-30-spark-execute-elasticsearch.md">如何使用Spark快速将数据写入Elasticsearch</a>》</p><p>希望了解 Seatunnel 和 HBase, ClickHouse、Elasticsearch、Kafka、MySQL 等数据源结合使用的更多功能和案例,可以直接进入官网 <a href="https://seatunnel.apache.org/" target="_blank" rel="noopener noreferrer">https://seatunnel.apache.org/</a></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="联系我们">联系我们<a class="hash-link" h [...]
                 <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>
@@ -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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 6b8e550..fc3377c 100644
--- a/zh-CN/blog/tags/ti-db/index.html
+++ b/zh-CN/blog/tags/ti-db/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;TiDB&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;TiDB&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/tags/ti-db"><meta data-rh= [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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"
index 7fa2899..6948d76 100644
--- "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"
@@ -3,45 +3,45 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">One post tagged with &quot;唯品会&quot; | Apache SeaTunnel</title><meta data-rh="true" property="og:title" content="One post tagged with &quot;唯品会&quot; | Apache SeaTunnel"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/blog/tags/唯品会"><meta data-rh="tru [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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这类在某一存储引擎中利用得比较多得数据类型,是否可以正 [...]
+<img loading="lazy" 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 loading="lazy" 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 loading="lazy" 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 loading="lazy" 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的使用。
+<img loading="lazy" 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">
+<img loading="lazy" 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 loading="lazy" alt="7" src="/zh-CN/assets/images/7-70fd49824f2fe94faa0ed91b9e31fdf6.png" width="2037" height="1440"></p><p>运行SeaTunnel,执行sh脚本文件、配置conf文件地址和yarn信息,后即可。
+<img loading="lazy" 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
+<img loading="lazy" 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 loading="lazy" 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。
+<img loading="lazy" alt="11" src="/zh-CN/assets/images/11-8f601d01cedafe8901b091b5ddcefd59.png" width="2035" height="1440"></p><p>图中是SeaTunnel配置,我们把source配置为Clickhouse、sink配置为Hive,数据校验也配置在Hive内。
+<img loading="lazy" 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 loading="lazy" alt="13" src="/zh-CN/assets/images/13-c93b070b1abe679688f557f3b6bcfc52.png" width="2036" height="1440"></p><p>SeaTunnel任务类型集成到平台中,图中是数坊的定时任务截图,可以看到选中的部分,是一个配置好的SeaTunnel任务,负责人、最近一次耗时,前后依赖任务的血缘信息,消耗的资源信息。下面展示了历史运行实例信息。
+<img loading="lazy" 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 loading="lazy" 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个人群左右。
+<img loading="lazy" 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_  [...]
+为了完成这样的需求,我们在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>
@@ -52,7 +52,7 @@ RDD以HashPartitioner进行分区将数据打散,防止数据倾斜。</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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 0e61d64..b8980fb 100644
--- a/zh-CN/community/contribution_guide/committer/index.html
+++ b/zh-CN/community/contribution_guide/committer/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Become Apache SeaTunnel Committer | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/community/contribution_guide/committer"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:ver [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 To get started contributing to SeaTunnel, learn how to contribute – anyone can submit patches, documentation and examples to the project.</p><p>The PPMC regularly adds new committers from the active contributors, based on their contributions to SeaTunnel. The qualifications for new committers include:</p><p>Sustained contributions to SeaTunnel: Committers should have a history of major contributions to SeaTunnel. An ideal committer will have contributed broadly throughout the project, an [...]
 Quality of contributions: Committers more than any other community member should submit simple, well-tested, and well-designed patches. In addition, they should show sufficient expertise to be able to review patches, including making sure they fit within SeaTunnel’s engineering practices (testability, documentation, API stability, code style, etc). The committership is collectively responsible for the software quality and maintainability of SeaTunnel. Note that contributions to critical  [...]
 Community involvement: Committers should have a constructive and friendly attitude in all community interactions. They should also be active on the dev and user list and help mentor newer contributors and users. In design discussions, committers should maintain a professional and diplomatic approach, even in the face of disagreement.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="committer">Committer<a class="hash-link" href="#committer" title="Direct link to heading">​</a></h2><h [...]
@@ -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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 99ae2df..613a7bb 100644
--- a/zh-CN/community/contribution_guide/contribute/index.html
+++ b/zh-CN/community/contribution_guide/contribute/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">参与贡献 | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/community/contribution_guide/contribute"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="current"><met [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 9fe27bf..f2c48c5 100644
--- a/zh-CN/community/contribution_guide/subscribe/index.html
+++ b/zh-CN/community/contribution_guide/subscribe/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">订阅邮件列表 | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/community/contribution_guide/subscribe"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="current"><me [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 10ffc21..e03ce5b 100644
--- a/zh-CN/community/submit_guide/document/index.html
+++ b/zh-CN/community/submit_guide/document/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">文档须知 | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/community/submit_guide/document"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="current"><meta data-r [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 位于 <code>src/pages/home</code></p><div class="codeBlockContainer_I0IT theme-code-block"><div class="codeBlockContent_wNvx"><pre tabindex="0" class="prism-code language-text codeBlock_jd64 thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#F8F8F2"><span class="token plain">├─home</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│      languages.json 首页中英文的配置  </spa [...]
 位于 <code>src/pages/team</code></p><div class="codeBlockContainer_I0IT theme-code-block"><div class="codeBlockContent_wNvx"><pre tabindex="0" class="prism-code language-text codeBlock_jd64 thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#F8F8F2"><span class="token plain">├─team</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">│ languages.json</span><br></span><sp [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
@@ -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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 0530e17..97010cc 100644
--- a/zh-CN/community/submit_guide/license/index.html
+++ b/zh-CN/community/submit_guide/license/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">License 须知 | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/community/submit_guide/license"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="current"><meta d [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 本文将为您讲解 ASF—License 以及参与 Seatunnel 如何过早的规避掉 License 风险。</p><p>注:本文仅适用于 Apache 项目。</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="apache-项目可接受的-license">Apache 项目可接受的 License<a class="hash-link" href="#apache-项目可接受的-license" title="Direct link to heading">​</a></h3><p>当您想要为 Seatunnel(亦或其他 Apache 项目)增添一个新的功能,这个功能涉及到其他开源软件的引用,那么您必须注意,目前 Apache 项目支持遵从以下协议的开源软件(如果有遗漏,欢迎补充):</p><p><a href="https://apache.org/legal/resolved.html" target="_blank" rel="noopener noreferrer">ASF第三方许可证策</a></ [...]
 copyright notice that is included in or attached to the work.</p><p>关于具体的各个开源协议使用协议,在此不做过多篇幅一一介绍,有兴趣可以自行查询了解。</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="seatunnel-license-检测规则">Seatunnel-License 检测规则<a class="hash-link" href="#seatunnel-license-检测规则" title="Direct link to heading">​</a></h3><p><strong>TODO</strong></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incub [...]
                 <img style="height:50px;margin-bottom: 10px" alt="Apache Software Foundation" src="/zh-CN/image/incubator-logo.svg">
@@ -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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 60deff7..a5b8fd5 100644
--- a/zh-CN/community/submit_guide/submit-code/index.html
+++ b/zh-CN/community/submit_guide/submit-code/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">提交代码 | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/community/submit_guide/submit-code"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="current"><meta dat [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/developement/FAQ/index.html b/zh-CN/docs/developement/FAQ/index.html
index 9f2ef71..405c064 100644
--- a/zh-CN/docs/developement/FAQ/index.html
+++ b/zh-CN/docs/developement/FAQ/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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">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/docs/developement/FAQ"><meta data-react-helmet="true" name="docusaurus_locale" content="zh-CN"><meta data-react-helmet="true" name="docusaurus_ [...]
-<link rel="preload" href="/zh-CN/assets/js/runtime~main.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">FAQ | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/developement/FAQ"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" na [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 <a href="https://www.cnblogs.com/jasondan/p/spark-specific-jdk-version.html" target="_blank" rel="noopener noreferrer">https://www.cnblogs.com/jasondan/p/spark-specific-jdk-version.html</a></p></li></ul><p><strong>FAQ 14.</strong> What should I do if OOM always appears when running SeaTunnel in Spark local<!-- -->[*]<!-- --> mode?</p><p>If you run in local mode, you need to modify the start-seatunnel.sh startup script after  spark-submit, add a parameter <code>--driver-memory 4g</code> . [...]
                 <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  [...]
@@ -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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/zh-CN/docs/developement/NewLicenseGuide/index.html b/zh-CN/docs/developement/NewLicenseGuide/index.html
index f3fb15e..b609cef 100644
--- a/zh-CN/docs/developement/NewLicenseGuide/index.html
+++ b/zh-CN/docs/developement/NewLicenseGuide/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">How to add a new License Guide | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/developement/NewLicenseGuide"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" co [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 <a href="https://seatunnel.apache.org/community/submit_guide/license" target="_blank" rel="noopener noreferrer">License Notice</a> in submit guide.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-seatunnel-website/edit/main/docs/developement/NewLicenseGuide.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" w [...]
                 <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  [...]
@@ -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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 dfd3168..cf7cc52 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
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Command usage instructions | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/commands/start-seatunnel-flink.sh"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:vers [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 8882be1..66aa159 100644
--- a/zh-CN/docs/flink/configuration/ConfigExamples/index.html
+++ b/zh-CN/docs/flink/configuration/ConfigExamples/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Config Examples | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/ConfigExamples"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="cu [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 2930405..be3c9c8 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/Console/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/Console/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Console | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/Console"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="curr [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 06c5a8d..06a61e6 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/Doris/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/Doris/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Doris | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/Doris"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="current" [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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>< [...]
 <a href="https://doris.apache.org/administrator-guide/load-data/stream-load-manual.html" target="_blank" rel="noopener noreferrer">More Doris stream_load Configurations</a></p><h3 class="anchor anchorWithStickyNavbar_mojV" id="parallelism-int">parallelism <!-- -->[Int]<a class="hash-link" href="#parallelism-int" title="Direct link to heading">​</a></h3><p>The parallelism of an individual operator, for DorisSink</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="examples">Examples<a cl [...]
                 <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  [...]
@@ -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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 d745e6a..17528a7 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/Druid/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/Druid/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Druid | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/Druid"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="current" [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 d42646c..1399546 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/Elasticsearch/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/Elasticsearch/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Elasticsearch | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/Elasticsearch"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" c [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 5253c29..9ca5963 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/File/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/File/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">File | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/File"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="current">< [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 c487feb..11912f4 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/InfluxDb/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/InfluxDb/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">InfluxDB | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/InfluxDb"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="cu [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 37a61bd..56a9c7a 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/Jdbc/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/Jdbc/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Jdbc | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/Jdbc"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="current">< [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 9064b13..f018a1b 100644
--- a/zh-CN/docs/flink/configuration/sink-plugins/Kafka/index.html
+++ b/zh-CN/docs/flink/configuration/sink-plugins/Kafka/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Kafka | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/Kafka"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="current" [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 514a20d..a446c5c 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
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Common Options | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/sink-plugins/sink-plugin"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" co [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 8f5b921..510421f 100644
--- a/zh-CN/docs/flink/configuration/source-plugins/Druid/index.html
+++ b/zh-CN/docs/flink/configuration/source-plugins/Druid/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Druid | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/Druid"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="curren [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 811c0c5..c259501 100644
--- a/zh-CN/docs/flink/configuration/source-plugins/Fake/index.html
+++ b/zh-CN/docs/flink/configuration/source-plugins/Fake/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Fake | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/Fake"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="current" [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 0467d25..e3d1017 100644
--- a/zh-CN/docs/flink/configuration/source-plugins/File/index.html
+++ b/zh-CN/docs/flink/configuration/source-plugins/File/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">File | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/File"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="current" [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 8b49eb7..4792837 100644
--- a/zh-CN/docs/flink/configuration/source-plugins/InfluxDb/index.html
+++ b/zh-CN/docs/flink/configuration/source-plugins/InfluxDb/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">InfluxDb | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/InfluxDb"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content=" [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 e0d2b0d..f60661a 100644
--- a/zh-CN/docs/flink/configuration/source-plugins/Jdbc/index.html
+++ b/zh-CN/docs/flink/configuration/source-plugins/Jdbc/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Jdbc | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/Jdbc"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="current" [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 d61c70e..072ca08 100644
--- a/zh-CN/docs/flink/configuration/source-plugins/Kafka/index.html
+++ b/zh-CN/docs/flink/configuration/source-plugins/Kafka/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Kafka | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/Kafka"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="curren [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 43b4649..e214929 100644
--- a/zh-CN/docs/flink/configuration/source-plugins/Socket/index.html
+++ b/zh-CN/docs/flink/configuration/source-plugins/Socket/index.html
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Socket | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/Socket"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version" content="curr [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
+<link rel="preload" href="/zh-CN/assets/js/main.ad359cf2.js" as="script">
 </head>
-<body>
+<body class="navigation-with-keyboard">
 <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.5dfac47b.js"></script>
-<script src="/zh-CN/assets/js/main.d82eeb79.js"></script>
+<script src="/zh-CN/assets/js/runtime~main.7fcf8955.js"></script>
+<script src="/zh-CN/assets/js/main.ad359cf2.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 af092f2..9d5ddae 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
@@ -3,15 +3,15 @@
 <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">
+<meta name="generator" content="Docusaurus v2.0.0-beta.16">
 <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.5dfac47b.js" as="script">
-<link rel="preload" href="/zh-CN/assets/js/main.d82eeb79.js" as="script">
+<link rel="alternate" type="application/atom+xml" href="/zh-CN/blog/atom.xml" title="Apache SeaTunnel Atom Feed"><title data-rh="true">Common Options | Apache SeaTunnel</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://seatunnel.apache.org/zh-CN/docs/flink/configuration/source-plugins/source-plugin"><meta data-rh="true" name="docsearch:language" content="zh-CN"><meta data-rh="true" name="docsearch:version [...]
+<link rel="preload" href="/zh-CN/assets/js/runtime~main.7fcf8955.js" as="script">
... 2005 lines suppressed ...