You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kyuubi.apache.org by dn...@apache.org on 2026/09/23 22:26:56 UTC

(kyuubi) branch branch-1.12 updated: [KYUUBI #7434][DOC] Reformat connector docs from RST to Markdown

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

dnskr pushed a commit to branch branch-1.12
in repository https://gitbox.apache.org/repos/asf/kyuubi.git


The following commit(s) were added to refs/heads/branch-1.12 by this push:
     new c437fb46f7 [KYUUBI #7434][DOC] Reformat connector docs from RST to Markdown
c437fb46f7 is described below

commit c437fb46f70fbbb25a422ab4d0b83c16b1c6125d
Author: Denis Krivenko <dn...@gmail.com>
AuthorDate: Thu Sep 24 00:20:22 2026 +0200

    [KYUUBI #7434][DOC] Reformat connector docs from RST to Markdown
    
    The changes are needed to unify the format used for documentation, as described in the issue https://github.com/apache/kyuubi/issues/7434.
    
    The PR **does not** change page contents (only very minimal adjustments) to ensure an easier review of the migration.
    
    The pages contain out-of-date information and broken links, requiring a comprehensive review and updates in a separate PRs.
    
    Tested by building the documentation and comparing the pages against the live site.
    
    Assisted-by: Qwen Coder
    
    Closes #7744 from dnskr/rst-to-md-connector-pages.
    
    Closes #7434
    
    930326650 [Denis Krivenko] [DOC] Fix substitution on TPC-H Spark connector page
    d7586c267 [Denis Krivenko] [DOC] Reformat connector docs from RST to Markdown
    
    Authored-by: Denis Krivenko <dn...@gmail.com>
    Signed-off-by: Denis Krivenko <dn...@gmail.com>
    (cherry picked from commit 031890d34c173f5cc382626f6604b9a13087034c)
    Signed-off-by: Denis Krivenko <dn...@gmail.com>
---
 docs/connector/flink/hudi.md                       | 108 +++++++
 docs/connector/flink/hudi.rst                      | 117 -------
 docs/connector/flink/iceberg.md                    | 116 +++++++
 docs/connector/flink/iceberg.rst                   | 121 -------
 docs/connector/flink/index.md                      |  27 ++
 docs/connector/flink/index.rst                     |  24 --
 docs/connector/flink/paimon.md                     | 102 ++++++
 docs/connector/flink/paimon.rst                    | 110 -------
 docs/connector/hive/iceberg.md                     |  94 ++++++
 docs/connector/hive/iceberg.rst                    | 103 ------
 docs/connector/hive/index.md                       |  26 ++
 docs/connector/hive/index.rst                      |  23 --
 docs/connector/hive/paimon.md                      |  94 ++++++
 docs/connector/hive/paimon.rst                     | 100 ------
 docs/connector/index.md                            |  50 +++
 docs/connector/index.rst                           |  42 ---
 docs/connector/spark/delta_lake.md                 |  84 +++++
 docs/connector/spark/delta_lake.rst                |  95 ------
 docs/connector/spark/delta_lake_with_azure_blob.md | 327 +++++++++++++++++++
 .../connector/spark/delta_lake_with_azure_blob.rst | 349 ---------------------
 docs/connector/spark/hudi.md                       |  98 ++++++
 docs/connector/spark/hudi.rst                      | 110 -------
 docs/connector/spark/iceberg.md                    | 115 +++++++
 docs/connector/spark/iceberg.rst                   | 124 --------
 docs/connector/spark/index.md                      |  46 +++
 docs/connector/spark/index.rst                     |  43 ---
 docs/connector/spark/kudu.md                       |   1 +
 docs/connector/spark/paimon.md                     |  97 ++++++
 docs/connector/spark/paimon.rst                    | 111 -------
 docs/connector/spark/tidb.md                       |  95 ++++++
 docs/connector/spark/tidb.rst                      | 103 ------
 docs/connector/spark/tpcds.md                      |  98 ++++++
 docs/connector/spark/tpcds.rst                     | 108 -------
 docs/connector/spark/tpch.md                       |  95 ++++++
 docs/connector/spark/tpch.rst                      | 104 ------
 docs/connector/trino/hudi.md                       |  75 +++++
 docs/connector/trino/hudi.rst                      |  80 -----
 docs/connector/trino/iceberg.md                    |  87 +++++
 docs/connector/trino/iceberg.rst                   |  92 ------
 docs/connector/trino/index.md                      |  27 ++
 docs/connector/trino/index.rst                     |  24 --
 docs/connector/trino/paimon.md                     |  81 +++++
 docs/connector/trino/paimon.rst                    |  92 ------
 docs/quick_start/quick_start_with_data_agent.md    |   2 +-
 44 files changed, 1944 insertions(+), 2076 deletions(-)

diff --git a/docs/connector/flink/hudi.md b/docs/connector/flink/hudi.md
new file mode 100644
index 0000000000..e074458a2b
--- /dev/null
+++ b/docs/connector/flink/hudi.md
@@ -0,0 +1,108 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Hudi
+
+[Apache Hudi](https://hudi.apache.org/) (pronounced "hoodie") is the next-generation streaming data lake platform.
+Apache Hudi brings core warehouse and database functionality directly to a data lake.
+
+```{tip}
+This article assumes that you have mastered the basic knowledge and operation of [Hudi](https://hudi.apache.org/).
+For the knowledge about Hudi not mentioned in this article, you can obtain it from its [Official Documentation](https://hudi.apache.org/docs/overview).
+```
+
+By using Kyuubi, we can run SQL queries towards Hudi which is more convenient, easy to understand,
+and easy to expand than directly using flink to manipulate Hudi.
+
+## Hudi Integration
+
+To enable the integration of kyuubi flink sql engine and Hudi through Catalog APIs, you need to:
+
+- Referencing the Hudi [dependencies](#dependencies)
+
+### Dependencies
+
+The **classpath** of kyuubi flink sql engine with Hudi supported consists of:
+
+1. kyuubi-flink-sql-engine-{{ release }}_2.12.jar, the engine jar deployed with a Kyuubi distribution
+2. A copy of Flink distribution
+3. `hudi-flink<flink.version>-bundle-<hudi.version>.jar` (example: `hudi-flink1.20-bundle-1.0.1.jar`), which can be found in the [Maven Central](https://mvnrepository.com/artifact/org.apache.hudi)
+
+In order to make the Hudi packages visible for the runtime classpath of engines, we can use one of these methods:
+
+1. Put the Hudi packages into `$flink_HOME/lib` directly
+2. Set `pipeline.jars=/path/to/hudi-flink-bundle`
+
+## Hudi Operations
+
+Taking `Create Table` as an example:
+
+```sql
+CREATE TABLE t1 (
+  id INT PRIMARY KEY NOT ENFORCED,
+  name STRING,
+  price DOUBLE
+) WITH (
+  'connector' = 'hudi',
+  'path' = 's3://bucket-name/hudi/',
+  'table.type' = 'MERGE_ON_READ' -- this creates a MERGE_ON_READ table, by default is COPY_ON_WRITE
+);
+```
+
+Taking `Query Data` as an example:
+
+```sql
+SELECT * FROM t1;
+```
+
+Taking `Insert and Update Data` as an example:
+
+```sql
+INSERT INTO t1 VALUES (1, 'Lucas' , 2.71828);
+```
+
+Taking `Streaming Query` as an example:
+
+```sql
+CREATE TABLE t1 (
+  uuid VARCHAR(20) PRIMARY KEY NOT ENFORCED,
+  name VARCHAR(10),
+  age INT,
+  ts TIMESTAMP(3),
+  `partition` VARCHAR(20)
+)
+PARTITIONED BY (`partition`)
+WITH (
+  'connector' = 'hudi',
+  'path' = '${path}',
+  'table.type' = 'MERGE_ON_READ',
+  'read.streaming.enabled' = 'true',  -- this option enable the streaming read
+  'read.start-commit' = '20210316134557', -- specifies the start commit instant time
+  'read.streaming.check-interval' = '4' -- specifies the check interval for finding new source commits, default 60s.
+);
+
+-- Then query the table in stream mode
+SELECT * FROM t1;
+```
+
+Taking `Delete Data`:
+
+The streaming query can implicitly auto delete data.
+When consuming data in streaming query,
+Hudi Flink source can also accepts the change logs from the underneath data source,
+it can then applies the UPDATE and DELETE by per-row level.
+
diff --git a/docs/connector/flink/hudi.rst b/docs/connector/flink/hudi.rst
deleted file mode 100644
index 4d766eb2ef..0000000000
--- a/docs/connector/flink/hudi.rst
+++ /dev/null
@@ -1,117 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-`Hudi`_
-========
-
-Apache Hudi (pronounced “hoodie”) is the next generation streaming data lake platform.
-Apache Hudi brings core warehouse and database functionality directly to a data lake.
-
-.. tip::
-   This article assumes that you have mastered the basic knowledge and operation of `Hudi`_.
-   For the knowledge about Hudi not mentioned in this article,
-   you can obtain it from its `Official Documentation`_.
-
-By using Kyuubi, we can run SQL queries towards Hudi which is more convenient, easy to understand,
-and easy to expand than directly using flink to manipulate Hudi.
-
-Hudi Integration
-----------------
-
-To enable the integration of kyuubi flink sql engine and Hudi through
-Catalog APIs, you need to:
-
-- Referencing the Hudi :ref:`dependencies<flink-hudi-deps>`
-
-.. _flink-hudi-deps:
-
-Dependencies
-************
-
-The **classpath** of kyuubi flink sql engine with Hudi supported consists of
-
-1. kyuubi-flink-sql-engine-\ |release|\ _2.12.jar, the engine jar deployed with a Kyuubi distribution
-2. a copy of flink distribution
-3. hudi-flink<flink.version>-bundle-<hudi.version>.jar (example: hudi-flink1.18-bundle-1.0.1.jar), which can be found in the `Maven Central`_
-
-In order to make the Hudi packages visible for the runtime classpath of engines, we can use one of these methods:
-
-1. Put the Hudi packages into ``$flink_HOME/lib`` directly
-2. Set ``pipeline.jars=/path/to/hudi-flink-bundle``
-
-Hudi Operations
----------------
-
-Taking ``Create Table`` as a example,
-
-.. code-block:: sql
-
-   CREATE TABLE t1 (
-     id INT PRIMARY KEY NOT ENFORCED,
-     name STRING,
-     price DOUBLE
-   ) WITH (
-     'connector' = 'hudi',
-     'path' = 's3://bucket-name/hudi/',
-     'table.type' = 'MERGE_ON_READ' -- this creates a MERGE_ON_READ table, by default is COPY_ON_WRITE
-   );
-
-Taking ``Query Data`` as a example,
-
-.. code-block:: sql
-
-   SELECT * FROM t1;
-
-Taking ``Insert and Update Data`` as a example,
-
-.. code-block:: sql
-
-   INSERT INTO t1 VALUES (1, 'Lucas' , 2.71828);
-
-Taking ``Streaming Query`` as a example,
-
-.. code-block:: sql
-
-   CREATE TABLE t1 (
-     uuid VARCHAR(20) PRIMARY KEY NOT ENFORCED,
-     name VARCHAR(10),
-     age INT,
-     ts TIMESTAMP(3),
-     `partition` VARCHAR(20)
-   )
-   PARTITIONED BY (`partition`)
-   WITH (
-     'connector' = 'hudi',
-     'path' = '${path}',
-     'table.type' = 'MERGE_ON_READ',
-     'read.streaming.enabled' = 'true',  -- this option enable the streaming read
-     'read.start-commit' = '20210316134557', -- specifies the start commit instant time
-     'read.streaming.check-interval' = '4' -- specifies the check interval for finding new source commits, default 60s.
-   );
-
-   -- Then query the table in stream mode
-   SELECT * FROM t1;
-
-Taking ``Delete Data``,
-
-The streaming query can implicitly auto delete data.
-When consuming data in streaming query,
-Hudi Flink source can also accepts the change logs from the underneath data source,
-it can then applies the UPDATE and DELETE by per-row level.
-
-
-.. _Hudi: https://hudi.apache.org/
-.. _Official Documentation: https://hudi.apache.org/docs/overview
-.. _Maven Central: https://mvnrepository.com/artifact/org.apache.hudi
diff --git a/docs/connector/flink/iceberg.md b/docs/connector/flink/iceberg.md
new file mode 100644
index 0000000000..fd9f70ae54
--- /dev/null
+++ b/docs/connector/flink/iceberg.md
@@ -0,0 +1,116 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Iceberg
+
+[Apache Iceberg](https://iceberg.apache.org/) is an open table format for huge analytic datasets.
+Iceberg adds tables to compute engines including Spark, Trino, PrestoDB, Flink, Hive and Impala
+using a high-performance table format that works just like a SQL table.
+
+```{tip}
+This article assumes that you have mastered the basic knowledge and operation of [Iceberg](https://iceberg.apache.org/).
+For the knowledge about Iceberg not mentioned in this article,
+you can obtain it from its [Official Documentation](https://iceberg.apache.org/docs/latest/).
+```
+
+By using kyuubi, we can run SQL queries towards Iceberg which is more
+convenient, easy to understand, and easy to expand than directly using
+flink to manipulate Iceberg.
+
+## Iceberg Integration
+
+To enable the integration of kyuubi flink sql engine and Iceberg through
+Catalog APIs, you need to:
+
+- Referencing the Iceberg [dependencies](#dependencies)
+
+### Dependencies
+
+The **classpath** of kyuubi flink sql engine with Iceberg supported consists of:
+
+1. kyuubi-flink-sql-engine-{{ release }}_2.12.jar, the engine jar deployed with a Kyuubi distribution
+2. A copy of Flink distribution
+3. `iceberg-flink-runtime-<flink.version>-<iceberg.version>.jar` (example: `iceberg-flink-runtime-1.20-1.7.0.jar`), which can be found in the [Maven Central](https://mvnrepository.com/artifact/org.apache.iceberg)
+
+In order to make the Iceberg packages visible for the runtime classpath of engines, we can use one of these methods:
+
+1. Put the Iceberg packages into `$FLINK_HOME/lib` directly
+2. Set `pipeline.jars=/path/to/iceberg-flink-runtime`
+
+```{warning}
+Please mind the compatibility of different Iceberg and Flink versions, which
+can be confirmed on the page of [Iceberg multi engine support](https://iceberg.apache.org/multi-engine-support/).
+```
+
+## Iceberg Operations
+
+Taking `CREATE CATALOG` as an example:
+
+```sql
+CREATE CATALOG hive_catalog WITH (
+  'type'='iceberg',
+  'catalog-type'='hive',
+  'uri'='thrift://localhost:9083',
+  'warehouse'='hdfs://nn:8020/warehouse/path'
+);
+USE CATALOG hive_catalog;
+```
+
+Taking `CREATE DATABASE` as an example:
+
+```sql
+CREATE DATABASE iceberg_db;
+USE iceberg_db;
+```
+
+Taking `CREATE TABLE` as an example:
+
+```sql
+CREATE TABLE `hive_catalog`.`default`.`sample` (
+  id BIGINT COMMENT 'unique id',
+  data STRING
+);
+```
+
+Taking `Batch Read` as an example:
+
+```sql
+SET execution.runtime-mode = batch;
+SELECT * FROM sample;
+```
+
+Taking `Streaming Read` as an example:
+
+```sql
+SET execution.runtime-mode = streaming;
+SELECT * FROM sample /*+ OPTIONS('streaming'='true', 'monitor-interval'='1s')*/ ;
+```
+
+Taking `INSERT INTO` as an example:
+
+```sql
+INSERT INTO `hive_catalog`.`default`.`sample` VALUES (1, 'a');
+INSERT INTO `hive_catalog`.`default`.`sample` SELECT id, data from other_kafka_table;
+```
+
+Taking `INSERT OVERWRITE` as an example, Flink streaming job does not support INSERT OVERWRITE.
+
+```sql
+INSERT OVERWRITE `hive_catalog`.`default`.`sample` VALUES (1, 'a');
+INSERT OVERWRITE `hive_catalog`.`default`.`sample` PARTITION(data='a') SELECT 6;
+```
+
diff --git a/docs/connector/flink/iceberg.rst b/docs/connector/flink/iceberg.rst
deleted file mode 100644
index 7b956365e0..0000000000
--- a/docs/connector/flink/iceberg.rst
+++ /dev/null
@@ -1,121 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-`Iceberg`_
-==========
-
-Apache Iceberg is an open table format for huge analytic datasets.
-Iceberg adds tables to compute engines including Spark, Trino, PrestoDB, Flink, Hive and Impala
-using a high-performance table format that works just like a SQL table.
-
-.. tip::
-   This article assumes that you have mastered the basic knowledge and operation of `Iceberg`_.
-   For the knowledge about Iceberg not mentioned in this article,
-   you can obtain it from its `Official Documentation`_.
-
-By using kyuubi, we can run SQL queries towards Iceberg which is more
-convenient, easy to understand, and easy to expand than directly using
-flink to manipulate Iceberg.
-
-Iceberg Integration
--------------------
-
-To enable the integration of kyuubi flink sql engine and Iceberg through Catalog APIs, you need to:
-
-- Referencing the Iceberg :ref:`dependencies<flink-iceberg-deps>`
-
-.. _flink-iceberg-deps:
-
-Dependencies
-************
-
-The **classpath** of kyuubi flink sql engine with Iceberg supported consists of
-
-1. kyuubi-flink-sql-engine-\ |release|\ _2.12.jar, the engine jar deployed with a Kyuubi distribution
-2. a copy of flink distribution
-3. iceberg-flink-runtime-<flink.version>-<iceberg.version>.jar (example: iceberg-flink-runtime-1.18-1.7.0.jar), which can be found in the `Maven Central`_
-
-In order to make the Iceberg packages visible for the runtime classpath of engines, we can use one of these methods:
-
-1. Put the Iceberg packages into ``$FLINK_HOME/lib`` directly
-2. Set ``pipeline.jars=/path/to/iceberg-flink-runtime``
-
-.. warning::
-   Please mind the compatibility of different Iceberg and Flink versions, which can be confirmed on the page of `Iceberg multi engine support`_.
-
-Iceberg Operations
-------------------
-
-Taking ``CREATE CATALOG`` as a example,
-
-.. code-block:: sql
-
-   CREATE CATALOG hive_catalog WITH (
-     'type'='iceberg',
-     'catalog-type'='hive',
-     'uri'='thrift://localhost:9083',
-     'warehouse'='hdfs://nn:8020/warehouse/path'
-   );
-   USE CATALOG hive_catalog;
-
-Taking ``CREATE DATABASE`` as a example,
-
-.. code-block:: sql
-
-   CREATE DATABASE iceberg_db;
-   USE iceberg_db;
-
-Taking ``CREATE TABLE`` as a example,
-
-.. code-block:: sql
-
-   CREATE TABLE `hive_catalog`.`default`.`sample` (
-     id BIGINT COMMENT 'unique id',
-     data STRING
-   );
-
-Taking ``Batch Read`` as a example,
-
-.. code-block:: sql
-
-   SET execution.runtime-mode = batch;
-   SELECT * FROM sample;
-
-Taking ``Streaming Read`` as a example,
-
-.. code-block:: sql
-
-   SET execution.runtime-mode = streaming;
-   SELECT * FROM sample /*+ OPTIONS('streaming'='true', 'monitor-interval'='1s')*/ ;
-
-Taking ``INSERT INTO`` as a example,
-
-.. code-block:: sql
-
-   INSERT INTO `hive_catalog`.`default`.`sample` VALUES (1, 'a');
-   INSERT INTO `hive_catalog`.`default`.`sample` SELECT id, data from other_kafka_table;
-
-Taking ``INSERT OVERWRITE`` as a example,
-Flink streaming job does not support INSERT OVERWRITE.
-
-.. code-block:: sql
-
-   INSERT OVERWRITE `hive_catalog`.`default`.`sample` VALUES (1, 'a');
-   INSERT OVERWRITE `hive_catalog`.`default`.`sample` PARTITION(data='a') SELECT 6;
-
-.. _Iceberg: https://iceberg.apache.org/
-.. _Official Documentation: https://iceberg.apache.org/docs/latest/
-.. _Maven Central: https://mvnrepository.com/artifact/org.apache.iceberg
-.. _Iceberg multi engine support: https://iceberg.apache.org/multi-engine-support/
diff --git a/docs/connector/flink/index.md b/docs/connector/flink/index.md
new file mode 100644
index 0000000000..699e67c070
--- /dev/null
+++ b/docs/connector/flink/index.md
@@ -0,0 +1,27 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Connectors For Flink SQL Query Engine
+
+```{toctree}
+:maxdepth: 2
+
+paimon
+hudi
+iceberg
+```
+
diff --git a/docs/connector/flink/index.rst b/docs/connector/flink/index.rst
deleted file mode 100644
index e7d40fd43b..0000000000
--- a/docs/connector/flink/index.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-Connectors For Flink SQL Query Engine
-=====================================
-
-.. toctree::
-    :maxdepth: 2
-
-    paimon
-    hudi
-    iceberg
diff --git a/docs/connector/flink/paimon.md b/docs/connector/flink/paimon.md
new file mode 100644
index 0000000000..cbe22b5810
--- /dev/null
+++ b/docs/connector/flink/paimon.md
@@ -0,0 +1,102 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Apache Paimon
+
+[Apache Paimon](https://paimon.apache.org/) is a streaming data lake platform that supports high-speed data ingestion, change data tracking, and efficient real-time analytics.
+
+```{tip}
+This article assumes that you have mastered the basic knowledge and operation of [Apache Paimon](https://paimon.apache.org/).
+For the knowledge not mentioned in this article, you can obtain it from its [Official Documentation](https://paimon.apache.org/docs/master/).
+```
+
+By using kyuubi, we can run SQL queries towards Apache Paimon which is more
+convenient, easy to understand, and easy to expand than directly using flink.
+
+## Apache Paimon Integration
+
+To enable the integration of kyuubi flink sql engine and Apache Paimon, you need to:
+
+- Referencing the Apache Paimon [dependencies](#dependencies)
+
+### Dependencies
+
+The **classpath** of kyuubi flink sql engine with Apache Paimon supported consists of:
+
+1. kyuubi-flink-sql-engine-{{ release }}_2.12.jar, the engine jar deployed with a Kyuubi distribution
+2. A copy of Flink distribution
+3. `paimon-flink-<version>.jar` (example: `paimon-flink-1.20-0.8.1.jar`), which can be found in the [Apache Paimon Supported Engines Flink](https://paimon.apache.org/docs/master/flink/installation#choose-an-artifact)
+4. `flink-shaded-hadoop-2-uber-<version>.jar`, which code can be found in the [Pre-bundled Hadoop Jar](https://flink.apache.org/downloads/#additional-components)
+
+In order to make the Apache Paimon packages visible for the runtime classpath of engines, you need to:
+
+1. Put the Apache Paimon packages into `$FLINK_HOME/lib` directly
+2. Setting the `HADOOP_CLASSPATH` environment variable or copy the [Pre-bundled Hadoop Jar](https://flink.apache.org/downloads/#additional-components) to `flink/lib`.
+
+```{warning}
+Please mind the compatibility of different Apache Paimon and Flink versions,
+which can be confirmed on the page of [Apache Paimon multi engine support](https://paimon.apache.org/docs/master/engines/overview/).
+```
+
+## Apache Paimon Operations
+
+Taking `CREATE CATALOG` as an example:
+
+```sql
+CREATE CATALOG my_catalog WITH (
+    'type'='paimon',
+    'warehouse'='file:/tmp/paimon'
+);
+
+USE CATALOG my_catalog;
+```
+
+Taking `CREATE TABLE` as an example:
+
+```sql
+CREATE TABLE MyTable (
+  user_id BIGINT,
+  item_id BIGINT,
+  behavior STRING,
+  dt STRING,
+  PRIMARY KEY (dt, user_id) NOT ENFORCED
+) PARTITIONED BY (dt) WITH (
+  'bucket' = '4'
+);
+```
+
+Taking `Query Table` as an example:
+
+```sql
+SET 'execution.runtime-mode' = 'batch';
+SELECT * FROM orders WHERE catalog_id=1025;
+```
+
+Taking `Streaming Query` as an example:
+
+```sql
+SET 'execution.runtime-mode' = 'streaming';
+SELECT * FROM MyTable /*+ OPTIONS ('log.scan'='latest') */;
+```
+
+Taking `Rescale Bucket` as an example:
+
+```sql
+ALTER TABLE my_table SET ('bucket' = '4');
+INSERT OVERWRITE my_table PARTITION (dt = '2022-01-01');
+```
+
diff --git a/docs/connector/flink/paimon.rst b/docs/connector/flink/paimon.rst
deleted file mode 100644
index e960df0fce..0000000000
--- a/docs/connector/flink/paimon.rst
+++ /dev/null
@@ -1,110 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-Apache Paimon
-=============
-
-`Apache Paimon`_ is a streaming data lake platform that supports high-speed data ingestion, change data tracking, and efficient real-time analytics.
-
-.. tip::
-   This article assumes that you have mastered the basic knowledge and operation of `Apache Paimon`_.
-   For the knowledge not mentioned in this article,
-   you can obtain it from its `Official Documentation`_.
-
-By using kyuubi, we can run SQL queries towards Apache Paimon which is more
-convenient, easy to understand, and easy to expand than directly using flink.
-
-Apache Paimon Integration
--------------------------
-
-To enable the integration of kyuubi flink sql engine and Apache Paimon, you need to:
-
-- Referencing the Apache Paimon :ref:`dependencies<flink-paimon-deps>`
-
-.. _flink-paimon-deps:
-
-Dependencies
-************
-
-The **classpath** of kyuubi flink sql engine with Apache Paimon supported consists of
-
-1. kyuubi-flink-sql-engine-\ |release|\ _2.12.jar, the engine jar deployed with a Kyuubi distribution
-2. a copy of flink distribution
-3. paimon-flink-<version>.jar (example: paimon-flink-1.18-0.8.1.jar), which can be found in the `Apache Paimon Supported Engines Flink`_
-4. flink-shaded-hadoop-2-uber-<version>.jar, which code can be found in the `Pre-bundled Hadoop Jar`_
-
-In order to make the Apache Paimon packages visible for the runtime classpath of engines, you need to:
-
-1. Put the Apache Paimon packages into ``$FLINK_HOME/lib`` directly
-2. Setting the HADOOP_CLASSPATH environment variable or copy the `Pre-bundled Hadoop Jar`_ to flink/lib.
-
-.. warning::
-   Please mind the compatibility of different Apache Paimon and Flink versions, which can be confirmed on the page of `Apache Paimon multi engine support`_.
-
-Apache Paimon Operations
-------------------------
-
-Taking ``CREATE CATALOG`` as a example,
-
-.. code-block:: sql
-
-   CREATE CATALOG my_catalog WITH (
-       'type'='paimon',
-       'warehouse'='file:/tmp/paimon'
-   );
-
-   USE CATALOG my_catalog;
-
-Taking ``CREATE TABLE`` as a example,
-
-.. code-block:: sql
-
-   CREATE TABLE MyTable (
-     user_id BIGINT,
-     item_id BIGINT,
-     behavior STRING,
-     dt STRING,
-     PRIMARY KEY (dt, user_id) NOT ENFORCED
-   ) PARTITIONED BY (dt) WITH (
-     'bucket' = '4'
-   );
-
-Taking ``Query Table`` as a example,
-
-.. code-block:: sql
-
-   SET 'execution.runtime-mode' = 'batch';
-   SELECT * FROM orders WHERE catalog_id=1025;
-
-Taking ``Streaming Query`` as a example,
-
-.. code-block:: sql
-
-   SET 'execution.runtime-mode' = 'streaming';
-   SELECT * FROM MyTable /*+ OPTIONS ('log.scan'='latest') */;
-
-Taking ``Rescale Bucket`` as a example,
-
-.. code-block:: sql
-
-   ALTER TABLE my_table SET ('bucket' = '4');
-   INSERT OVERWRITE my_table PARTITION (dt = '2022-01-01');
-
-
-.. _Apache Paimon: https://paimon.apache.org/
-.. _Official Documentation: https://paimon.apache.org/docs/master/
-.. _Apache Paimon Supported Engines Flink: https://paimon.apache.org/docs/master/engines/flink/#preparing-paimon-jar-file
-.. _Pre-bundled Hadoop Jar: https://flink.apache.org/downloads/#additional-components
-.. _Apache Paimon multi engine support: https://paimon.apache.org/docs/master/engines/overview/
diff --git a/docs/connector/hive/iceberg.md b/docs/connector/hive/iceberg.md
new file mode 100644
index 0000000000..b387959ddb
--- /dev/null
+++ b/docs/connector/hive/iceberg.md
@@ -0,0 +1,94 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Iceberg
+
+[Apache Iceberg](https://iceberg.apache.org/) is an open table format for huge analytic datasets.
+Iceberg adds tables to compute engines including Spark, Trino, PrestoDB, Flink, Hive and Impala
+using a high-performance table format that works just like a SQL table.
+
+```{tip}
+This article assumes that you have mastered the basic knowledge and operation of [Iceberg](https://iceberg.apache.org/).
+For the knowledge about Iceberg not mentioned in this article, 
+you can obtain it from its [Official Documentation](https://iceberg.apache.org/docs/latest/).
+```
+
+By using kyuubi, we can run SQL queries towards Iceberg which is more
+convenient, easy to understand, and easy to expand than directly using
+hive to manipulate Iceberg.
+
+## Iceberg Integration
+
+To enable the integration of Kyuubi Hive SQL engine and Iceberg, you need to:
+
+- Referencing the Iceberg [dependencies](#dependencies)
+- Setting the Hive extension and catalog [configurations](#configurations)
+
+### Dependencies
+
+The **classpath** of Kyuubi Hive SQL engine with Iceberg supported consists of:
+
+1. kyuubi-hive-sql-engine-{{ release }}_2.12.jar, the engine jar deployed with a Kyuubi distribution
+2. A copy of Hive distribution
+3. `iceberg-hive-runtime-<hive.version>_<scala.version>-<iceberg.version>.jar` (example: `iceberg-hive-runtime-3.2_2.12-0.14.0.jar`), which can be found in the [Maven Central](https://mvnrepository.com/artifact/org.apache.iceberg)
+
+In order to make the Iceberg packages visible for the runtime classpath of engines, we can use the method:
+
+1. Execute `ADD JAR` statement in the Kyuubi to add dependencies to Hive's auxiliary classpath. For example:
+
+   ```sql
+   ADD JAR /path/to/iceberg-hive-runtime.jar;
+   ```
+
+```{warning}
+Please mind the compatibility of different Iceberg and Hive versions, which can
+be confirmed on the page of [Iceberg multi engine support](https://iceberg.apache.org/multi-engine-support/).
+```
+
+### Configurations
+
+To activate functionality of Iceberg, we can set the following configurations:
+Set `iceberg.engine.hive.enabled=true` in the Hadoop configuration. For example, setting this in the `hive-site.xml`.
+
+## Iceberg Operations
+
+Taking `CREATE TABLE` as an example:
+
+```sql
+CREATE TABLE x (i int) STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler';
+CREATE EXTERNAL TABLE x (i int) STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler';
+```
+
+Taking `SELECT` as an example:
+
+```sql
+SELECT * FROM foo;
+```
+
+Taking `INSERT` as an example:
+
+```sql
+INSERT INTO foo VALUES (1, 'a'), (2, 'b'), (3, 'c');
+INSERT OVERWRITE TABLE target SELECT * FROM source;
+```
+
+Taking `ALTER` as an example:
+
+```sql
+ALTER TABLE t SET TBLPROPERTIES('...'='...');
+```
+
diff --git a/docs/connector/hive/iceberg.rst b/docs/connector/hive/iceberg.rst
deleted file mode 100644
index 64ee88875a..0000000000
--- a/docs/connector/hive/iceberg.rst
+++ /dev/null
@@ -1,103 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-`Iceberg`_
-==========
-
-Apache Iceberg is an open table format for huge analytic datasets.
-Iceberg adds tables to compute engines including Spark, Trino, PrestoDB, Flink, Hive and Impala
-using a high-performance table format that works just like a SQL table.
-
-.. tip::
-   This article assumes that you have mastered the basic knowledge and operation of `Iceberg`_.
-   For the knowledge about Iceberg not mentioned in this article,
-   you can obtain it from its `Official Documentation`_.
-
-By using kyuubi, we can run SQL queries towards Iceberg which is more
-convenient, easy to understand, and easy to expand than directly using
-hive to manipulate Iceberg.
-
-Iceberg Integration
--------------------
-
-To enable the integration of kyuubi hive sql engine and Iceberg, you need to:
-
-- Referencing the Iceberg :ref:`dependencies<hive-iceberg-deps>`
-- Setting the hive extension and catalog :ref:`configurations<hive-iceberg-conf>`
-
-.. _hive-iceberg-deps:
-
-Dependencies
-************
-
-The **classpath** of kyuubi hive sql engine with Iceberg supported consists of
-
-1. kyuubi-hive-sql-engine-\ |release|\ _2.12.jar, the engine jar deployed with a Kyuubi distribution
-2. a copy of hive distribution
-3. iceberg-hive-runtime-<hive.version>_<scala.version>-<iceberg.version>.jar (example: iceberg-hive-runtime-3.2_2.12-0.14.0.jar), which can be found in the `Maven Central`_
-
-In order to make the Iceberg packages visible for the runtime classpath of engines, we can use the method:
-
-1. Execute ADD JAR statement in the Kyuubi to add dependencies to Hive’s auxiliary classpath. For example:
-
-.. code-block:: sql
-
-   ADD JAR /path/to/iceberg-hive-runtime.jar;
-
-.. warning::
-   Please mind the compatibility of different Iceberg and Hive versions, which can be confirmed on the page of `Iceberg multi engine support`_.
-
-.. _hive-iceberg-conf:
-
-Configurations
-**************
-
-To activate functionality of Iceberg, we can set the following configurations:
-Set ``iceberg.engine.hive.enabled=true`` in the Hadoop configuration. For example, setting this in the hive-site.xml
-
-Iceberg Operations
-------------------
-
-Taking ``CREATE TABLE`` as a example,
-
-.. code-block:: sql
-
-   CREATE TABLE x (i int) STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler';
-   CREATE EXTERNAL TABLE x (i int) STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler';
-
-Taking ``SELECT`` as a example,
-
-.. code-block:: sql
-
-   SELECT * FROM foo;
-
-Taking ``INSERT`` as a example,
-
-.. code-block:: sql
-
-   INSERT INTO foo VALUES (1, 'a'), (2, 'b'), (3, 'c');
-   INSERT OVERWRITE TABLE target SELECT * FROM source;
-
-Taking ``ALTER`` as a example,
-
-.. code-block:: sql
-
-   ALTER TABLE t SET TBLPROPERTIES('...'='...');
-
-
-.. _Iceberg: https://iceberg.apache.org/
-.. _Official Documentation: https://iceberg.apache.org/docs/latest/
-.. _Maven Central: https://mvnrepository.com/artifact/org.apache.iceberg
-.. _Iceberg multi engine support: https://iceberg.apache.org/multi-engine-support/
diff --git a/docs/connector/hive/index.md b/docs/connector/hive/index.md
new file mode 100644
index 0000000000..e32cf48919
--- /dev/null
+++ b/docs/connector/hive/index.md
@@ -0,0 +1,26 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Connectors For Hive SQL Query Engine
+
+```{toctree}
+:maxdepth: 2
+
+paimon
+iceberg
+```
+
diff --git a/docs/connector/hive/index.rst b/docs/connector/hive/index.rst
deleted file mode 100644
index d96f8b0418..0000000000
--- a/docs/connector/hive/index.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-Connectors for Hive SQL Query Engine
-====================================
-
-.. toctree::
-    :maxdepth: 2
-
-    paimon
-    iceberg
diff --git a/docs/connector/hive/paimon.md b/docs/connector/hive/paimon.md
new file mode 100644
index 0000000000..c4ddc315e4
--- /dev/null
+++ b/docs/connector/hive/paimon.md
@@ -0,0 +1,94 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Apache Paimon
+
+[Apache Paimon](https://paimon.apache.org/) is a streaming data lake platform that
+supports high-speed data ingestion, change data tracking and efficient real-time analytics.
+
+```{tip}
+This article assumes that you have mastered the basic knowledge and operation of [Apache Paimon](https://paimon.apache.org/).
+For the knowledge about Apache Paimon not mentioned in this article, you can obtain it from its [Official Documentation](https://paimon.apache.org/docs/master/).
+```
+
+By using Kyuubi, we can run SQL queries towards Apache Paimon which is more
+convenient, easy to understand, and easy to expand than directly using
+Hive to manipulate Apache Paimon.
+
+## Apache Paimon Integration
+
+To enable the integration of Kyuubi Hive SQL engine and Apache Paimon, you need to:
+
+- Referencing the Apache Paimon [dependencies](#dependencies)
+- Setting the environment variable [configurations](#configurations)
+
+### Dependencies
+
+The **classpath** of Kyuubi Hive SQL engine with Iceberg supported consists of:
+
+1. kyuubi-hive-sql-engine-{{ release }}_2.12.jar, the engine jar deployed with a Kyuubi distribution
+2. A copy of Hive distribution
+3. `paimon-hive-connector-<hive.binary.version>-<paimon.version>.jar` (example: `paimon-hive-connector-3.1-0.4-SNAPSHOT.jar`), which can be found in the [Apache Paimon Supported Engines Hive](https://paimon.apache.org/docs/master/engines/hive/)
+
+In order to make the Hive packages visible for the runtime classpath of engines, we can use one of these methods:
+
+1. You can create an `auxlib` folder under the root directory of Hive, and copy `paimon-hive-connector-3.1-<paimon.version>.jar` into `auxlib`.
+2. Execute `ADD JAR` statement in the Kyuubi to add dependencies to Hive's auxiliary classpath. For example:
+
+   ```sql
+   ADD JAR /path/to/paimon-hive-connector-3.1-<paimon.version>.jar;
+   ```
+
+```{warning}
+The second method is not recommended. If you're using the MR execution engine
+and running a join statement, you may be faced with the exception
+`org.apache.hive.com.esotericsoftware.kryo.kryoexception: unable to find class.`
+```
+
+```{warning}
+Please mind the compatibility of different Apache Paimon and Hive versions,
+which can be confirmed on the page of [Apache Paimon multi engine support](https://paimon.apache.org/docs/master/engines/overview/).
+```
+
+### Configurations
+
+If you are using HDFS, make sure that the environment variable `HADOOP_HOME` or `HADOOP_CONF_DIR` is set.
+
+## Apache Paimon Operations
+
+Apache Paimon only supports only reading table store tables through Hive.
+A common scenario is to write data with Spark or Flink and read data with Hive.
+You can follow this document [Apache Paimon Quick Start with Paimon Hive Catalog](https://paimon.apache.org/docs/master/engines/hive/#quick-start-with-paimon-hive-catalog)
+to write data to a table which can also be accessed directly from Hive, and then
+use Kyuubi Hive SQL engine to query the table with the following SQL `SELECT` statement.
+
+Taking `Query Data` as an example:
+
+```sql
+SELECT a, b FROM test_table ORDER BY a;
+```
+
+Taking `Query External Table` as an example:
+
+```sql
+CREATE EXTERNAL TABLE external_test_table
+STORED BY 'org.apache.paimon.hive.PaimonStorageHandler'
+LOCATION '/path/to/table/store/warehouse/default.db/test_table';
+
+SELECT a, b FROM test_table ORDER BY a;
+```
+
diff --git a/docs/connector/hive/paimon.rst b/docs/connector/hive/paimon.rst
deleted file mode 100644
index 188285c2d8..0000000000
--- a/docs/connector/hive/paimon.rst
+++ /dev/null
@@ -1,100 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-Apache Paimon
-=============
-
-`Apache Paimon`_ is a streaming data lake platform that supports high-speed data ingestion, change data tracking and efficient real-time analytics.
-
-.. tip::
-   This article assumes that you have mastered the basic knowledge and operation of `Apache Paimon`_.
-   For the knowledge about Apache Paimon not mentioned in this article,
-   you can obtain it from its `Official Documentation`_.
-
-By using Kyuubi, we can run SQL queries towards Apache Paimon which is more
-convenient, easy to understand, and easy to expand than directly using
-Hive to manipulate Apache Paimon.
-
-Apache Paimon Integration
--------------------------
-
-To enable the integration of kyuubi hive sql engine and Apache Paimon, you need to:
-
-- Referencing the Apache Paimon :ref:`dependencies<hive-paimon-deps>`
-- Setting the environment variable :ref:`configurations<hive-paimon-conf>`
-
-.. _hive-paimon-deps:
-
-Dependencies
-************
-
-The **classpath** of kyuubi hive sql engine with Iceberg supported consists of
-
-1. kyuubi-hive-sql-engine-\ |release|\ _2.12.jar, the engine jar deployed with a Kyuubi distribution
-2. a copy of hive distribution
-3. paimon-hive-connector-<hive.binary.version>-<paimon.version>.jar (example: paimon-hive-connector-3.1-0.4-SNAPSHOT.jar), which can be found in the `Apache Paimon Supported Engines Hive`_
-
-In order to make the Hive packages visible for the runtime classpath of engines, we can use one of these methods:
-
-1. You can create an auxlib folder under the root directory of Hive, and copy paimon-hive-connector-3.1-<paimon.version>.jar into auxlib.
-2. Execute ADD JAR statement in the Kyuubi to add dependencies to Hive’s auxiliary classpath. For example:
-
-.. code-block:: sql
-
-   ADD JAR /path/to/paimon-hive-connector-3.1-<paimon.version>.jar;
-
-.. warning::
-    The second method is not recommended. If you’re using the MR execution engine and running a join statement, you may be faced with the exception
-    ``org.apache.hive.com.esotericsoftware.kryo.kryoexception: unable to find class.``
-
-.. warning::
-   Please mind the compatibility of different Apache Paimon and Hive versions, which can be confirmed on the page of `Apache Paimon multi engine support`_.
-
-.. _hive-paimon-conf:
-
-Configurations
-**************
-
-If you are using HDFS, make sure that the environment variable HADOOP_HOME or HADOOP_CONF_DIR is set.
-
-Apache Paimon Operations
-------------------------
-
-Apache Paimon only supports only reading table store tables through Hive.
-A common scenario is to write data with Spark or Flink and read data with Hive.
-You can follow this document `Apache Paimon Quick Start with Paimon Hive Catalog`_  to write data to a table which can also be accessed directly from Hive.
-and then use Kyuubi Hive SQL engine to query the table with the following SQL ``SELECT`` statement.
-
-Taking ``Query Data`` as an example,
-
-.. code-block:: sql
-
-    SELECT a, b FROM test_table ORDER BY a;
-
-Taking ``Query External Table`` as an example,
-
-.. code-block:: sql
-
-    CREATE EXTERNAL TABLE external_test_table
-    STORED BY 'org.apache.paimon.hive.PaimonStorageHandler'
-    LOCATION '/path/to/table/store/warehouse/default.db/test_table';
-
-    SELECT a, b FROM test_table ORDER BY a;
-
-.. _Apache Paimon: https://paimon.apache.org/
-.. _Official Documentation: https://paimon.apache.org/docs/master/
-.. _Apache Paimon Quick Start with Paimon Hive Catalog: https://paimon.apache.org/docs/master/engines/hive/#quick-start-with-paimon-hive-catalog
-.. _Apache Paimon Supported Engines Hive: https://paimon.apache.org/docs/master/engines/hive/
-.. _Apache Paimon multi engine support: https://paimon.apache.org/docs/master/engines/overview/
diff --git a/docs/connector/index.md b/docs/connector/index.md
new file mode 100644
index 0000000000..da16a2a5e6
--- /dev/null
+++ b/docs/connector/index.md
@@ -0,0 +1,50 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Connectors
+
+This section describes the connectors available for different kyuubi engines to access data from various data sources.
+
+```{note}
+Is your connector missing?
+[Report an feature request](https://kyuubi.apache.org/issue_tracking.html) or help us document it.
+```
+
+```{toctree}
+:maxdepth: 2
+
+spark/index
+```
+
+```{toctree}
+:maxdepth: 2
+
+flink/index
+```
+
+```{toctree}
+:maxdepth: 2
+
+hive/index
+```
+
+```{toctree}
+:maxdepth: 2
+
+trino/index
+```
+
diff --git a/docs/connector/index.rst b/docs/connector/index.rst
deleted file mode 100644
index f7911e6fe7..0000000000
--- a/docs/connector/index.rst
+++ /dev/null
@@ -1,42 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-Connectors
-==========
-
-This section describes the connectors available for different kyuubi engines to access data from various data sources.
-
-.. note:: Is your connector missing?
-   `Report an feature request <https://kyuubi.apache.org/issue_tracking.html>`_ or help us document it.
-
-.. toctree::
-    :maxdepth: 2
-
-    spark/index
-
-.. toctree::
-    :maxdepth: 2
-
-    flink/index
-
-.. toctree::
-    :maxdepth: 2
-
-    hive/index
-
-.. toctree::
-    :maxdepth: 2
-
-    trino/index
diff --git a/docs/connector/spark/delta_lake.md b/docs/connector/spark/delta_lake.md
new file mode 100644
index 0000000000..7d0c62a99f
--- /dev/null
+++ b/docs/connector/spark/delta_lake.md
@@ -0,0 +1,84 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Delta Lake
+
+[Delta Lake](https://delta.io/) is an open-source project that enables building a Lakehouse
+Architecture on top of existing storage systems such as S3, ADLS, GCS, and HDFS.
+
+```{tip}
+This article assumes that you have mastered the basic knowledge and operation of [Delta Lake](https://delta.io/).
+For the knowledge about Delta Lake not mentioned in this article, you can obtain it from its
+[Official Documentation](https://docs.delta.io/latest/index.html).
+```
+
+By using kyuubi, we can run SQL queries towards Delta Lake which is more
+convenient, easy to understand, and easy to expand than directly using
+spark to manipulate Delta Lake.
+
+## Delta Lake Integration
+
+To enable the integration of Kyuubi Spark SQL engine and Delta Lake through Spark DataSource V2 API, you need to:
+
+- Referencing the Delta Lake [dependencies](#dependencies)
+- Setting the Spark extension and catalog [configurations](#configurations)
+
+### Dependencies
+
+The **classpath** of Kyuubi Spark SQL engine with Delta Lake supported consists of:
+
+1. kyuubi-spark-sql-engine-{{ release }}_2.12.jar, the engine jar deployed with a Kyuubi distribution
+2. A copy of Spark distribution
+3. `delta-core` & `delta-storage`, which can be found in the [Maven Central](https://mvnrepository.com/artifact/io.delta/delta-core)
+
+In order to make the delta packages visible for the runtime classpath of engines, we can use one of these methods:
+
+1. Put the delta packages into `$SPARK_HOME/jars` directly
+2. Set `spark.jars=/path/to/delta-core,/path/to/delta-storage`
+
+```{warning}
+Please mind the compatibility of different Delta Lake and Spark versions, which
+can be confirmed on the page of [delta release notes](https://github.com/delta-io/delta/releases).
+```
+
+### Configurations
+
+To activate the functionality of Delta Lake, we can set the following configurations:
+
+```properties
+spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension
+spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog
+```
+
+## Delta Lake Operations
+
+As for end-users, who only use a pure SQL interface, there aren't much differences between
+using a delta table and a regular hive table. Unless you are going to use some advanced
+features, but they are still SQL, just more syntax added.
+
+Taking `CREATE A TABLE` as an example:
+
+```sql
+CREATE TABLE IF NOT EXISTS kyuubi_delta (
+  id INT,
+  name STRING,
+  org STRING,
+  url STRING,
+  start TIMESTAMP
+) USING DELTA;
+```
+
diff --git a/docs/connector/spark/delta_lake.rst b/docs/connector/spark/delta_lake.rst
deleted file mode 100644
index b306358017..0000000000
--- a/docs/connector/spark/delta_lake.rst
+++ /dev/null
@@ -1,95 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-`Delta Lake`_
-=============
-
-Delta Lake is an open-source project that enables building a Lakehouse
-Architecture on top of existing storage systems such as S3, ADLS, GCS,
-and HDFS.
-
-.. tip::
-   This article assumes that you have mastered the basic knowledge and
-   operation of `Delta Lake`_.
-   For the knowledge about Delta Lake not mentioned in this article,
-   you can obtain it from its `Official Documentation`_.
-
-By using kyuubi, we can run SQL queries towards Delta Lake which is more
-convenient, easy to understand, and easy to expand than directly using
-spark to manipulate Delta Lake.
-
-Delta Lake Integration
-----------------------
-
-To enable the integration of Kyuubi Spark SQL engine and Delta Lake through
-Spark DataSource V2 API, you need to:
-
-- Referencing the Delta Lake :ref:`dependencies<spark-delta-lake-deps>`
-- Setting the Spark extension and catalog :ref:`configurations<spark-delta-lake-conf>`
-
-.. _spark-delta-lake-deps:
-
-Dependencies
-************
-
-The **classpath** of Kyuubi Spark SQL engine with Delta Lake supported consists of
-
-1. kyuubi-spark-sql-engine-\ |release|\ _2.12.jar, the engine jar deployed with a Kyuubi distribution
-2. a copy of Spark distribution
-3. delta-core & delta-storage, which can be found in the `Maven Central`_
-
-In order to make the delta packages visible for the runtime classpath of engines, we can use one of these methods:
-
-1. Put the delta packages into ``$SPARK_HOME/jars`` directly
-2. Set ``spark.jars=/path/to/delta-core,/path/to/delta-storage``
-
-.. warning::
-   Please mind the compatibility of different Delta Lake and Spark versions, which can be confirmed on the page of `delta release notes`_.
-
-.. _spark-delta-lake-conf:
-
-Configurations
-**************
-
-To activate functionality of Delta Lake, we can set the following configurations:
-
-.. code-block:: properties
-
-   spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension
-   spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog
-
-Delta Lake Operations
----------------------
-
-As for end-users, who only use a pure SQL interface, there aren't much differences between
-using a delta table and a regular hive table. Unless you are going to use some advanced
-features, but they are still SQL, just more syntax added.
-
-Taking ``CREATE A TABLE`` as a example,
-
-.. code-block:: sql
-
-   CREATE TABLE IF NOT EXISTS kyuubi_delta (
-     id INT,
-     name STRING,
-     org STRING,
-     url STRING,
-     start TIMESTAMP
-   ) USING DELTA;
-
-.. _Delta Lake: https://delta.io/
-.. _Official Documentation: https://docs.delta.io/latest/index.html
-.. _Maven Central: https://mvnrepository.com/artifact/io.delta/delta-core
-.. _Delta release notes: https://github.com/delta-io/delta/releases
\ No newline at end of file
diff --git a/docs/connector/spark/delta_lake_with_azure_blob.md b/docs/connector/spark/delta_lake_with_azure_blob.md
new file mode 100644
index 0000000000..24e2125028
--- /dev/null
+++ b/docs/connector/spark/delta_lake_with_azure_blob.md
@@ -0,0 +1,327 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Delta Lake With Microsoft Azure Blob Storage
+
+## Registration And Configuration
+
+### Register An Account And Log In
+
+Regarding the Microsoft Azure account, please contact your organization or register an account as an individual.
+For details, please refer to the [Microsoft Azure official website](https://azure.microsoft.com/en-gb/).
+
+### Create Storage Container
+
+After logging in with your Microsoft Azure account, please follow the steps below to create a data storage container:
+
+![Azure create new container](../../imgs/deltalake/azure_create_new_container.png)
+
+### Get Access Key
+
+![Azure create azure access key](../../imgs/deltalake/azure_create_azure_access_key.png)
+
+## Deploy Spark
+
+### Download Spark Package
+
+Download spark package that matches your environment from [spark official website](https://spark.apache.org/downloads.html).
+And then unpackage:
+
+```bash
+tar -xzvf spark-3.2.0-bin-hadoop3.2.tgz
+```
+
+### Config Spark
+
+Enter the `$SPARK_HOME/conf` directory and execute:
+
+```shell
+cp spark-defaults.conf.template spark-defaults.conf
+```
+
+Add following configuration to spark-defaults.conf, please refer to your own local configuration for specific personalized configuration:
+
+```properties
+spark.master                     spark://<YOUR_HOST>:7077
+spark.sql.extensions             io.delta.sql.DeltaSparkSessionExtension
+spark.sql.catalog.spark_catalog  org.apache.spark.sql.delta.catalog.DeltaCatalog
+```
+
+Create a new file named `core-site.xml` under `$SPARK_HOME/conf` directory, and add following configuration:
+
+```xml
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<configuration>
+<property>
+    <name>fs.AbstractFileSystem.wasb.Impl</name>
+    <value>org.apache.hadoop.fs.azure.Wasb</value>
+ </property>
+ <property>
+  <name>fs.azure.account.key.YOUR_AZURE_ACCOUNT.blob.core.windows.net</name>
+  <value>YOUR_AZURE_ACCOUNT_ACCESS_KEY</value>
+ </property>
+ <property>
+    <name>fs.azure.block.blob.with.compaction.dir</name>
+    <value>/hbase/WALs,/tmp/myblobfiles</value>
+ </property>
+ <property>
+    <name>fs.azure</name>
+    <value>org.apache.hadoop.fs.azure.NativeAzureFileSystem</value>
+ </property>
+<property>
+    <name>fs.azure.enable.append.support</name>
+    <value>true</value>
+ </property>
+</configuration>
+```
+
+### Copy Dependencies To Spark
+
+Copy jar packages required by delta lake and microsoft azure to ./spark/jars directory:
+
+```shell
+wget https://repo1.maven.org/maven2/io/delta/delta-core_2.12/1.0.0/delta-core_2.12-1.0.0.jar -O ./spark/jars/delta-core_2.12-1.0.0.jar
+wget https://repo1.maven.org/maven2/com/microsoft/azure/azure-storage/8.6.6/azure-storage-8.6.6.jar -O ./spark/jars/azure-storage-8.6.6.jar
+wget https://repo1.maven.org/maven2/com/azure/azure-storage-blob/12.14.2/azure-storage-blob-12.14.2.jar -O ./spark/jars/azure-storage-blob-12.14.2.jar
+wget https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-azure/3.1.1/hadoop-azure-3.1.1.jar -O ./spark/jars/hadoop-azure-3.1.1.jar
+```
+
+### Start Spark Standalone Cluster
+
+```shell
+./spark/sbin/start-master.sh -h <YOUR_HOST> -p 7077 --webui-port 9090
+./spark/sbin/start-worker.sh spark://<YOUR_HOST>:7077
+```
+
+### Test The Connectivity Of Spark And Delta Lake
+
+Start spark shell:
+
+```shell
+./bin/spark-shell
+```
+
+Generate a piece of random data and push them to delta lake:
+
+```scala
+scala> val data = spark.range(1000, 2000)
+scala> data.write.format("delta").mode("overwrite").save("wasbs://<YOUR_CONTAINER_NAME>@<YOUR_AZURE_ACCOUNT>.blob.core.windows.net/<YOUR_TABLE_NAME>")
+```
+
+After this, you can check your data on azure web UI.
+For example, my container name is 1000 and table name is alexDemo20211127:
+
+![Azure spark connection test storage](../../imgs/deltalake/azure_spark_connection_test_storage.png)
+
+You can also check data by reading back the data from delta lake:
+
+```scala
+scala> val df=spark.read.format("delta").load("wasbs://<YOUR_CONTAINER_NAME>@<YOUR_AZURE_ACCOUNT>.blob.core.windows.net/<YOUR_TABLE_NAME>")
+scala> df.show()
+```
+
+If there is no problem with the above, it proves that spark has been built with delta lake.
+
+## Deploy Kyuubi
+
+### Install Kyuubi
+
+1. Download the latest version of kyuubi from [kyuubi download page](https://kyuubi.apache.org/releases.html).
+
+2. Unpackage
+
+   ```{parsed-literal}
+   tar -xzvf apache-kyuubi-{{ release }}-bin.tgz
+   ```
+
+### Config Kyuubi
+
+Enter the ./kyuubi/conf directory
+
+```shell
+cp kyuubi-defaults.conf.template kyuubi-defaults.conf
+vim kyuubi-defaults.conf
+```
+
+Add the following content:
+
+```properties
+spark.master                    spark://<YOUR_HOST>:7077
+kyuubi.authentication           NONE
+kyuubi.frontend.bind.host       <YOUR_HOST>
+kyuubi.frontend.bind.port       10009
+# If you use your own zk cluster, you need to configure your zk host port.
+# kyuubi.ha.addresses    <YOUR_HOST>:2181
+```
+
+### Start Kyuubi
+
+```shell
+bin/kyuubi start
+```
+
+Check kyuubi log, in order to check kyuubi start status and find the jdbc connection url:
+
+```text
+2021-11-26 17:49:50.235 INFO service.ThriftFrontendService: Starting and exposing JDBC connection at: jdbc:kyuubi://HOST:10009/
+2021-11-26 17:49:50.265 INFO client.ServiceDiscovery: Created a /kyuubi/serviceUri=host:10009;version=1.3.1-incubating;sequence=0000000037 on ZooKeeper for KyuubiServer uri: host:10009
+2021-11-26 17:49:50.267 INFO server.KyuubiServer: Service[KyuubiServer] is started.
+```
+
+You can get the jdbc connection url by the log above.
+
+### Test The Connectivity Of Kyuubi And Delta Lake
+
+Use `$KYUUBI_HOME/bin/kyuubi-beeline` tool,
+
+```shell
+./bin/kyuubi-beeline -u 'jdbc:kyuubi://<YOUR_HOST>:10009/'
+```
+
+At the same time, you can also check whether the engine is running on the spark UI:
+
+![Kyuubi start status spark UI](../../imgs/deltalake/kyuubi_start_status_spark_UI.png)
+
+When the engine started, it will expose a thrift endpoint and register itself into
+ZooKeeper, Kyuubi server can get the connection info from ZooKeeper and establish the connection to the engine.
+So, you can check the registration details in zookeeper path '/kyuubi_USER/anonymous'.
+
+## Dealing Delta Lake Data By Using Kyuubi Examples
+
+Operate delta-lake data through SQL:
+
+### Create Table
+
+```sql
+-- Create or replace table with path
+CREATE OR REPLACE TABLE delta.`wasbs://1000@azure_account.blob.core.windows.net/alexDemo20211129` (
+  date DATE,
+  eventId STRING,
+  eventType STRING,
+  data STRING)
+USING DELTA
+PARTITIONED BY (date);
+```
+
+### Insert Data
+
+#### Append Mode
+
+```sql
+INSERT INTO delta.`wasbs://1000@azure_account.blob.core.windows.net/alexDemo20211129` (
+    date,
+    eventId,
+    eventType,
+    data)
+VALUES
+    (now(),'001','test','Hello World!'),
+    (now(),'002','test','Hello World!'),
+    (now(),'003','test','Hello World!');
+```
+
+Result:
+
+```text
++-------------+----------+------------+---------------+
+|    date     | eventId  | eventType  |     data      |
++-------------+----------+------------+---------------+
+| 2021-11-29  | 001      | test       | Hello World!  |
+| 2021-11-29  | 003      | test       | Hello World!  |
+| 2021-11-29  | 002      | test       | Hello World!  |
++-------------+----------+------------+---------------+
+```
+
+#### Overwrite Mode
+
+```sql
+INSERT OVERWRITE TABLE delta.`wasbs://1000@azure_account.blob.core.windows.net/alexDemo20211129`(
+    date,
+    eventId,
+    eventType,
+    data)
+VALUES
+(now(),'001','test','hello kyuubi'),
+(now(),'002','test','hello kyuubi');
+```
+
+Result:
+
+```text
++-------------+----------+------------+---------------+
+|    date     | eventId  | eventType  |     data      |
++-------------+----------+------------+---------------+
+| 2021-11-29  | 002      | test       | hello kyuubi  |
+| 2021-11-29  | 001      | test       | hello kyuubi  |
++-------------+----------+------------+---------------+
+```
+
+### Delete Table Data
+
+```sql
+DELETE FROM
+   delta.`wasbs://1000@azure_account.blob.core.windows.net/alexDemo20211129`
+WHERE eventId = 002;
+```
+
+Result:
+
+```text
++-------------+----------+------------+---------------+
+|    date     | eventId  | eventType  |     data      |
++-------------+----------+------------+---------------+
+| 2021-11-29  | 001      | test       | hello kyuubi  |
++-------------+----------+------------+---------------+
+```
+
+### Update Table Data
+
+```sql
+UPDATE
+    delta.`wasbs://1000@azure_account.blob.core.windows.net/alexDemo20211129`
+SET data = 'This is a test for update data.'
+WHERE eventId = 001;
+```
+
+Result:
+
+```text
++-------------+----------+------------+----------------------------------+
+|    date     | eventId  | eventType  |               data               |
++-------------+----------+------------+----------------------------------+
+| 2021-11-29  | 001      | test       | This is a test for update data.  |
++-------------+----------+------------+----------------------------------+
+```
+
+### Select Table Data
+
+```sql
+SELECT *
+FROM
+    delta.`wasbs://1000@azure_account.blob.core.windows.net/alexDemo20211129`;
+```
+
+Result:
+
+```text
++-------------+----------+------------+----------------------------------+
+|    date     | eventId  | eventType  |               data               |
++-------------+----------+------------+----------------------------------+
+| 2021-11-29  | 001      | test       | This is a test for update data.  |
++-------------+----------+------------+----------------------------------+
+```
+
diff --git a/docs/connector/spark/delta_lake_with_azure_blob.rst b/docs/connector/spark/delta_lake_with_azure_blob.rst
deleted file mode 100644
index 4955bdc213..0000000000
--- a/docs/connector/spark/delta_lake_with_azure_blob.rst
+++ /dev/null
@@ -1,349 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-Delta Lake with Microsoft Azure Blob Storage
-============================================
-
-Registration And Configuration
-----------------------------------------------
-
-Register An Account And Log In
-******************************
-
-Regarding the Microsoft Azure account, please contact your organization or register
-an account as an individual. For details, please refer to the `Microsoft Azure official
-website`_.
-
-Create Storage Container
-************************
-
-After logging in with your Microsoft Azure account, please follow the steps below to create a data storage container:
-
-.. image:: ../../imgs/deltalake/azure_create_new_container.png
-
-Get Access Key
-**************
-
-.. image:: ../../imgs/deltalake/azure_create_azure_access_key.png
-
-Deploy Spark
-------------
-
-Download Spark Package
-**********************
-
-Download spark package that matches your environment from `spark official website`_.
-And then unpackage:
-```shell
-tar -xzvf spark-3.2.0-bin-hadoop3.2.tgz
-```
-
-Config Spark
-************
-
-Enter the ``$SPARK_HOME/conf`` directory and execute:
-
-.. code-block:: shell
-
-   cp spark-defaults.conf.template spark-defaults.conf
-
-Add following configuration to spark-defaults.conf, please refer to your own local configuration for specific personalized configuration:
-
-.. code-block:: properties
-
-   spark.master                     spark://<YOUR_HOST>:7077
-   spark.sql.extensions             io.delta.sql.DeltaSparkSessionExtension
-   spark.sql.catalog.spark_catalog  org.apache.spark.sql.delta.catalog.DeltaCatalog
-
-Create a new file named ``core-site.xml`` under ``$SPARK_HOME/conf`` directory, and add following configuration:
-
-.. code-block:: xml
-
-   <?xml version="1.0" encoding="UTF-8"?>
-   <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-   <configuration>
-   <property>
-       <name>fs.AbstractFileSystem.wasb.Impl</name>
-       <value>org.apache.hadoop.fs.azure.Wasb</value>
-    </property>
-    <property>
-     <name>fs.azure.account.key.YOUR_AZURE_ACCOUNT.blob.core.windows.net</name>
-     <value>YOUR_AZURE_ACCOUNT_ACCESS_KEY</value>
-    </property>
-    <property>
-       <name>fs.azure.block.blob.with.compaction.dir</name>
-       <value>/hbase/WALs,/tmp/myblobfiles</value>
-    </property>
-    <property>
-       <name>fs.azure</name>
-       <value>org.apache.hadoop.fs.azure.NativeAzureFileSystem</value>
-    </property>
-   <property>
-       <name>fs.azure.enable.append.support</name>
-       <value>true</value>
-    </property>
-   </configuration>
-
-
-Copy Dependencies To Spark
-**************************
-
-Copy jar packages required by delta lake and microsoft azure to ./spark/jars directory:
-
-.. code-block:: shell
-
-   wget https://repo1.maven.org/maven2/io/delta/delta-core_2.12/1.0.0/delta-core_2.12-1.0.0.jar -O ./spark/jars/delta-core_2.12-1.0.0.jar
-   wget https://repo1.maven.org/maven2/com/microsoft/azure/azure-storage/8.6.6/azure-storage-8.6.6.jar -O ./spark/jars/azure-storage-8.6.6.jar
-   wget https://repo1.maven.org/maven2/com/azure/azure-storage-blob/12.14.2/azure-storage-blob-12.14.2.jar -O ./spark/jars/azure-storage-blob-12.14.2.jar
-   wget https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-azure/3.1.1/hadoop-azure-3.1.1.jar -O ./spark/jars/hadoop-azure-3.1.1.jar
-
-Start Spark Standalone cluster
-******************************
-
-.. code-block:: shell
-
-   ./spark/sbin/start-master.sh -h <YOUR_HOST> -p 7077 --webui-port 9090
-   ./spark/sbin/start-worker.sh spark://<YOUR_HOST>:7077
-
-Test The connectivity Of Spark And Delta Lake
-*********************************************
-
-Start spark shell:
-
-.. code-block:: shell
-
-   ./bin/spark-shell
-
-Generate a piece of random data and push them to delta lake:
-
-.. code-block:: scala
-
-   scala> val data = spark.range(1000, 2000)
-   scala> data.write.format("delta").mode("overwrite").save("wasbs://<YOUR_CONTAINER_NAME>@<YOUR_AZURE_ACCOUNT>.blob.core.windows.net/<YOUR_TABLE_NAME>")
-
-After this, you can check your data on azure web UI. For example, my container name is 1000 and table name is alexDemo20211127:
-
-.. image:: ../../imgs/deltalake/azure_spark_connection_test_storage.png
-
-You can also check data by reading back the data from delta lake:
-
-.. code-block:: scala
-
-   scala> val df=spark.read.format("delta").load("wasbs://<YOUR_CONTAINER_NAME>@<YOUR_AZURE_ACCOUNT>.blob.core.windows.net/<YOUR_TABLE_NAME>")
-   scala> df.show()
-
-If there is no problem with the above, it proves that spark has been built with delta lake.
-
-Deploy Kyuubi
--------------
-
-Install Kyuubi
-**************
-
-1.Download the latest version of kyuubi from `kyuubi download page`_.
-
-2.Unpackage
-
-   tar -xzvf  apache-kyuubi-|release|-bin.tgz
-
-Config Kyuubi
-*************
-
-Enter the ./kyuubi/conf directory
-
-.. code-block:: shell
-
-   cp kyuubi-defaults.conf.template kyuubi-defaults.conf
-   vim kyuubi-defaults.conf
-
-Add the following content:
-
-.. code-block:: properties
-
-   spark.master                    spark://<YOUR_HOST>:7077
-   kyuubi.authentication           NONE
-   kyuubi.frontend.bind.host       <YOUR_HOST>
-   kyuubi.frontend.bind.port       10009
-   # If you use your own zk cluster, you need to configure your zk host port.
-   # kyuubi.ha.addresses    <YOUR_HOST>:2181
-
-Start Kyuubi
-************
-
-.. code-block:: shell
-
-   bin/kyuubi start
-
-Check kyuubi log, in order to check kyuubi start status and find the jdbc connection url:
-
-.. code-block::
-
-   2021-11-26 17:49:50.235 INFO service.ThriftFrontendService: Starting and exposing JDBC connection at: jdbc:kyuubi://HOST:10009/
-   2021-11-26 17:49:50.265 INFO client.ServiceDiscovery: Created a /kyuubi/serviceUri=host:10009;version=1.3.1-incubating;sequence=0000000037 on ZooKeeper for KyuubiServer uri: host:10009
-   2021-11-26 17:49:50.267 INFO server.KyuubiServer: Service[KyuubiServer] is started.
-
-You can get the jdbc connection url by the log above.
-
-Test The Connectivity Of Kyuubi And Delta Lake
-**********************************************
-
-Use ``$KYUUBI_HOME/bin/kyuubi-beeline`` tool,
-
-.. code-block:: shell
-
-   ./bin/kyuubi-beeline -u 'jdbc:kyuubi://<YOUR_HOST>:10009/'
-
-At the same time, you can also check whether the engine is running on the spark UI:
-
-.. image:: ../../imgs/deltalake/kyuubi_start_status_spark_UI.png
-
-When the engine started, it will expose a thrift endpoint and register itself into ZooKeeper, Kyuubi server can get the connection info from ZooKeeper and establish the connection to the engine.
-So, you can check the registration details in zookeeper path '/kyuubi_USER/anonymous'.
-
-Dealing Delta Lake Data By Using Kyuubi Examples
-------------------------------------------------
-
-Operate delta-lake data through SQL:  
-
-Create Table
-************
-
-.. code-block:: sql
-
-   -- Create or replace table with path
-   CREATE OR REPLACE TABLE delta.`wasbs://1000@azure_account.blob.core.windows.net/alexDemo20211129` (
-     date DATE,
-     eventId STRING,
-     eventType STRING,
-     data STRING)
-   USING DELTA
-   PARTITIONED BY (date);
-
-Insert Data
-***********
-
-Append Mode
-^^^^^^^^^^^
-
-.. code-block:: sql
-
-   INSERT INTO delta.`wasbs://1000@azure_account.blob.core.windows.net/alexDemo20211129` (
-       date,
-       eventId,
-       eventType,
-       data)
-   VALUES
-       (now(),'001','test','Hello World!'),
-       (now(),'002','test','Hello World!'),
-       (now(),'003','test','Hello World!');
-
-Result:
-
-.. code-block:: text
-
-   +-------------+----------+------------+---------------+
-   |    date     | eventId  | eventType  |     data      |
-   +-------------+----------+------------+---------------+
-   | 2021-11-29  | 001      | test       | Hello World!  |
-   | 2021-11-29  | 003      | test       | Hello World!  |
-   | 2021-11-29  | 002      | test       | Hello World!  |
-   +-------------+----------+------------+---------------+
-
-Overwrite Mode
-^^^^^^^^^^^^^^
-
-.. code-block:: sql
-
-   INSERT OVERWRITE TABLE delta.`wasbs://1000@azure_account.blob.core.windows.net/alexDemo20211129`(
-       date,
-       eventId,
-       eventType,
-       data)
-   VALUES
-   (now(),'001','test','hello kyuubi'),
-   (now(),'002','test','hello kyuubi');
-
-Result:
-
-.. code-block:: text
-
-   +-------------+----------+------------+---------------+
-   |    date     | eventId  | eventType  |     data      |
-   +-------------+----------+------------+---------------+
-   | 2021-11-29  | 002      | test       | hello kyuubi  |
-   | 2021-11-29  | 001      | test       | hello kyuubi  |
-   +-------------+----------+------------+---------------+
-
-Delete Table Data
-*****************
-
-.. code-block:: sql
-
-   DELETE FROM
-      delta.`wasbs://1000@azure_account.blob.core.windows.net/alexDemo20211129`
-   WHERE eventId = 002;
-
-Result:
-
-.. code-block:: text
-
-   +-------------+----------+------------+---------------+
-   |    date     | eventId  | eventType  |     data      |
-   +-------------+----------+------------+---------------+
-   | 2021-11-29  | 001      | test       | hello kyuubi  |
-   +-------------+----------+------------+---------------+
-
-Update table data
-*****************
-
-.. code-block:: sql
-
-   UPDATE
-       delta.`wasbs://1000@azure_account.blob.core.windows.net/alexDemo20211129`
-   SET data = 'This is a test for update data.'
-   WHERE eventId = 001;
-
-Result:
-
-.. code-block:: text
-
-   +-------------+----------+------------+----------------------------------+
-   |    date     | eventId  | eventType  |               data               |
-   +-------------+----------+------------+----------------------------------+
-   | 2021-11-29  | 001      | test       | This is a test for update data.  |
-   +-------------+----------+------------+----------------------------------+
-
-Select table data
-*****************
-
-.. code-block:: sql
-
-   SELECT *
-   FROM
-       delta.`wasbs://1000@azure_account.blob.core.windows.net/alexDemo20211129`;
-
-Result:
-
-.. code-block:: text
-
-   +-------------+----------+------------+----------------------------------+
-   |    date     | eventId  | eventType  |               data               |
-   +-------------+----------+------------+----------------------------------+
-   | 2021-11-29  | 001      | test       | This is a test for update data.  |
-   +-------------+----------+------------+----------------------------------+
-
-.. _Microsoft Azure official website: https://azure.microsoft.com/en-gb/
-.. _spark official website: https://spark.apache.org/downloads.html
-.. _kyuubi download page: https://kyuubi.apache.org/releases.html
diff --git a/docs/connector/spark/hudi.md b/docs/connector/spark/hudi.md
new file mode 100644
index 0000000000..0d0c10db45
--- /dev/null
+++ b/docs/connector/spark/hudi.md
@@ -0,0 +1,98 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Hudi
+
+[Apache Hudi](https://hudi.apache.org/) (pronounced "hoodie") is the next generation streaming data lake platform.
+Apache Hudi brings core warehouse and database functionality directly to a data lake.
+
+```{tip}
+This article assumes that you have mastered the basic knowledge and operation of [Hudi](https://hudi.apache.org/).
+For the knowledge about Hudi not mentioned in this article, you can obtain it from its [Official Documentation](https://hudi.apache.org/docs/overview).
+```
+
+By using Kyuubi, we can run SQL queries towards Hudi which is more convenient, easy to understand,
+and easy to expand than directly using Spark to manipulate Hudi.
+
+## Hudi Integration
+
+To enable the integration of Kyuubi Spark SQL engine and Hudi through Spark DataSource V2 API, you need to:
+
+- Referencing the Hudi [dependencies](#dependencies)
+- Setting the Spark extension and catalog [configurations](#configurations)
+
+### Dependencies
+
+The **classpath** of Kyuubi Spark SQL engine with Hudi supported consists of:
+
+1. kyuubi-spark-sql-engine-{{ release }}_2.12.jar, the engine jar deployed with a Kyuubi distribution
+2. A copy of Spark distribution
+3. `hudi-spark<spark.version>-bundle_<scala.version>-<hudi.version>.jar` (example: `hudi-spark3.5-bundle_2.12:1.0.1.jar`), which can be found in the [Maven Central](https://mvnrepository.com/artifact/org.apache.hudi)
+
+In order to make the Hudi packages visible for the runtime classpath of engines, we can use one of these methods:
+
+1. Put the Hudi packages into `$SPARK_HOME/jars` directly
+2. Set `spark.jars=/path/to/hudi-spark-bundle`
+
+### Configurations
+
+To activate the functionality of Hudi, we can set the following configurations:
+
+```properties
+# Spark 3.2 to 3.5
+spark.serializer=org.apache.spark.serializer.KryoSerializer
+spark.kryo.registrator=org.apache.spark.HoodieSparkKryoRegistrar
+spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension
+spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog
+```
+
+## Hudi Operations
+
+Taking `Create Table` as an example:
+
+```sql
+CREATE TABLE hudi_cow_nonpcf_tbl (
+  uuid INT,
+  name STRING,
+  price DOUBLE
+) USING HUDI;
+```
+
+Taking `Query Data` as an example:
+
+```sql
+SELECT * FROM hudi_cow_nonpcf_tbl WHERE id < 20;
+```
+
+Taking `Insert Data` as an example:
+
+```sql
+INSERT INTO hudi_cow_nonpcf_tbl SELECT 1, 'a1', 20;
+```
+
+Taking `Update Data` as an example:
+
+```sql
+UPDATE hudi_cow_nonpcf_tbl SET name = 'foo', price = price * 2 WHERE id = 1;
+```
+
+Taking `Delete Data` as an example:
+
+```sql
+DELETE FROM hudi_cow_nonpcf_tbl WHERE uuid = 1;
+```
+
diff --git a/docs/connector/spark/hudi.rst b/docs/connector/spark/hudi.rst
deleted file mode 100644
index f9dc3f18f1..0000000000
--- a/docs/connector/spark/hudi.rst
+++ /dev/null
@@ -1,110 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-`Hudi`_
-========
-
-Apache Hudi (pronounced “hoodie”) is the next generation streaming data lake platform.
-Apache Hudi brings core warehouse and database functionality directly to a data lake.
-
-.. tip::
-   This article assumes that you have mastered the basic knowledge and operation of `Hudi`_.
-   For the knowledge about Hudi not mentioned in this article,
-   you can obtain it from its `Official Documentation`_.
-
-By using Kyuubi, we can run SQL queries towards Hudi which is more convenient, easy to understand,
-and easy to expand than directly using Spark to manipulate Hudi.
-
-Hudi Integration
-----------------
-
-To enable the integration of Kyuubi Spark SQL engine and Hudi through
-Spark DataSource V2 API, you need to:
-
-- Referencing the Hudi :ref:`dependencies<spark-hudi-deps>`
-- Setting the Spark extension and catalog :ref:`configurations<spark-hudi-conf>`
-
-.. _spark-hudi-deps:
-
-Dependencies
-************
-
-The **classpath** of Kyuubi Spark SQL engine with Hudi supported consists of
-
-1. kyuubi-spark-sql-engine-\ |release|\ _2.12.jar, the engine jar deployed with a Kyuubi distribution
-2. a copy of Spark distribution
-3. hudi-spark<spark.version>-bundle_<scala.version>-<hudi.version>.jar (example: hudi-spark3.5-bundle_2.12:1.0.1.jar), which can be found in the `Maven Central`_
-
-In order to make the Hudi packages visible for the runtime classpath of engines, we can use one of these methods:
-
-1. Put the Hudi packages into ``$SPARK_HOME/jars`` directly
-2. Set ``spark.jars=/path/to/hudi-spark-bundle``
-
-.. _spark-hudi-conf:
-
-Configurations
-**************
-
-To activate functionality of Hudi, we can set the following configurations:
-
-.. code-block:: properties
-
-   # Spark 3.2 to 3.5
-   spark.serializer=org.apache.spark.serializer.KryoSerializer
-   spark.kryo.registrator=org.apache.spark.HoodieSparkKryoRegistrar
-   spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension
-   spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.HoodieCatalog
-
-Hudi Operations
----------------
-
-Taking ``Create Table`` as a example,
-
-.. code-block:: sql
-
-   CREATE TABLE hudi_cow_nonpcf_tbl (
-     uuid INT,
-     name STRING,
-     price DOUBLE
-   ) USING HUDI;
-
-Taking ``Query Data`` as a example,
-
-.. code-block:: sql
-
-   SELECT * FROM hudi_cow_nonpcf_tbl WHERE id < 20;
-
-Taking ``Insert Data`` as a example,
-
-.. code-block:: sql
-
-   INSERT INTO hudi_cow_nonpcf_tbl SELECT 1, 'a1', 20;
-
-
-Taking ``Update Data`` as a example,
-
-.. code-block:: sql
-
-   UPDATE hudi_cow_nonpcf_tbl SET name = 'foo', price = price * 2 WHERE id = 1;
-
-Taking ``Delete Data`` as a example,
-
-.. code-block:: sql
-
-   DELETE FROM hudi_cow_nonpcf_tbl WHERE uuid = 1;
-
-.. _Hudi: https://hudi.apache.org/
-.. _Official Documentation: https://hudi.apache.org/docs/overview
-.. _Maven Central: https://mvnrepository.com/artifact/org.apache.hudi
diff --git a/docs/connector/spark/iceberg.md b/docs/connector/spark/iceberg.md
new file mode 100644
index 0000000000..6292685841
--- /dev/null
+++ b/docs/connector/spark/iceberg.md
@@ -0,0 +1,115 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Iceberg
+
+[Apache Iceberg](https://iceberg.apache.org/) is an open table format for huge analytic datasets.
+Iceberg adds tables to compute engines including Spark, Trino, PrestoDB, Flink, Hive and Impala
+using a high-performance table format that works just like a SQL table.
+
+```{tip}
+This article assumes that you have mastered the basic knowledge and operation of [Iceberg](https://iceberg.apache.org/).
+For the knowledge about Iceberg not mentioned in this article, 
+you can obtain it from its [Official Documentation](https://iceberg.apache.org/docs/latest/).
+```
+
+By using kyuubi, we can run SQL queries towards Iceberg which is more
+convenient, easy to understand, and easy to expand than directly using
+spark to manipulate Iceberg.
+
+## Iceberg Integration
+
+To enable the integration of Kyuubi Spark SQL engine and Iceberg through Spark DataSource V2 API, you need to:
+
+- Referencing the Iceberg [dependencies](#dependencies)
+- Setting the Spark extension and catalog [configurations](#configurations)
+
+### Dependencies
+
+The **classpath** of Kyuubi Spark SQL engine with Iceberg supported consists of:
+
+1. kyuubi-spark-sql-engine-{{ release }}_2.12.jar, the engine jar deployed with a Kyuubi distribution
+2. A copy of Spark distribution
+3. `iceberg-spark-runtime-<spark.version>_<scala.version>-<iceberg.version>.jar` (example: `iceberg-spark-runtime-3.5_2.12-1.7.0.jar`), which can be found in the [Maven Central](https://mvnrepository.com/artifact/org.apache.iceberg)
+
+In order to make the Iceberg packages visible for the runtime classpath of engines, we can use one of these methods:
+
+1. Put the Iceberg packages into `$SPARK_HOME/jars` directly
+2. Set `spark.jars=/path/to/iceberg-spark-runtime`
+
+```{warning}
+Please mind the compatibility of different Iceberg and Spark versions, which
+can be confirmed on the page of [Iceberg multi engine support](https://iceberg.apache.org/multi-engine-support/).
+```
+
+### Configurations
+
+To activate the functionality of Iceberg, we can set the following configurations:
+
+```properties
+spark.sql.catalog.spark_catalog=org.apache.iceberg.spark.SparkCatalog
+spark.sql.catalog.spark_catalog.type=hive
+spark.sql.catalog.spark_catalog.uri=thrift://metastore-host:port
+spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
+```
+
+## Iceberg Operations
+
+Taking `CREATE TABLE` as an example:
+
+```sql
+CREATE TABLE foo (
+  id bigint COMMENT 'unique id',
+  data string)
+USING iceberg;
+```
+
+Taking `SELECT` as an example:
+
+```sql
+SELECT * FROM foo;
+```
+
+Taking `INSERT` as an example:
+
+```sql
+INSERT INTO foo VALUES (1, 'a'), (2, 'b'), (3, 'c');
+```
+
+Taking `UPDATE` as an example, Spark 3.1 added support for UPDATE queries that update matching rows in tables.
+
+```sql
+UPDATE foo SET data = 'd', id = 4 WHERE id >= 3 and id < 4;
+```
+
+Taking `DELETE FROM` as an example, Spark 3 added support for DELETE FROM queries to remove data from tables.
+
+```sql
+DELETE FROM foo WHERE id >= 1 and id < 2;
+```
+
+Taking `MERGE INTO` as an example:
+
+```sql
+MERGE INTO target_table t
+USING source_table s
+ON t.id = s.id
+WHEN MATCHED AND s.opType = 'delete' THEN DELETE
+WHEN MATCHED AND s.opType = 'update' THEN UPDATE SET id = s.id, data = s.data
+WHEN NOT MATCHED AND s.opType = 'insert' THEN INSERT (id, data) VALUES (s.id, s.data);
+```
+
diff --git a/docs/connector/spark/iceberg.rst b/docs/connector/spark/iceberg.rst
deleted file mode 100644
index 2969d355b6..0000000000
--- a/docs/connector/spark/iceberg.rst
+++ /dev/null
@@ -1,124 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-`Iceberg`_
-==========
-
-Apache Iceberg is an open table format for huge analytic datasets.
-Iceberg adds tables to compute engines including Spark, Trino, PrestoDB, Flink, Hive and Impala
-using a high-performance table format that works just like a SQL table.
-
-.. tip::
-   This article assumes that you have mastered the basic knowledge and operation of `Iceberg`_.
-   For the knowledge about Iceberg not mentioned in this article,
-   you can obtain it from its `Official Documentation`_.
-
-By using kyuubi, we can run SQL queries towards Iceberg which is more
-convenient, easy to understand, and easy to expand than directly using
-spark to manipulate Iceberg.
-
-Iceberg Integration
--------------------
-
-To enable the integration of Kyuubi Spark SQL engine and Iceberg through
-Spark DataSource V2 API, you need to:
-
-- Referencing the Iceberg :ref:`dependencies<spark-iceberg-deps>`
-- Setting the Spark extension and catalog :ref:`configurations<spark-iceberg-conf>`
-
-.. _spark-iceberg-deps:
-
-Dependencies
-************
-
-The **classpath** of Kyuubi Spark SQL engine with Iceberg supported consists of
-
-1. kyuubi-spark-sql-engine-\ |release|\ _2.12.jar, the engine jar deployed with a Kyuubi distribution
-2. a copy of Spark distribution
-3. iceberg-spark-runtime-<spark.version>_<scala.version>-<iceberg.version>.jar (example: iceberg-spark-runtime-3.5_2.12-1.7.0.jar), which can be found in the `Maven Central`_
-
-In order to make the Iceberg packages visible for the runtime classpath of engines, we can use one of these methods:
-
-1. Put the Iceberg packages into ``$SPARK_HOME/jars`` directly
-2. Set ``spark.jars=/path/to/iceberg-spark-runtime``
-
-.. warning::
-   Please mind the compatibility of different Iceberg and Spark versions, which can be confirmed on the page of `Iceberg multi engine support`_.
-
-.. _spark-iceberg-conf:
-
-Configurations
-**************
-
-To activate functionality of Iceberg, we can set the following configurations:
-
-.. code-block:: properties
-
-   spark.sql.catalog.spark_catalog=org.apache.iceberg.spark.SparkCatalog
-   spark.sql.catalog.spark_catalog.type=hive
-   spark.sql.catalog.spark_catalog.uri=thrift://metastore-host:port
-   spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
-
-Iceberg Operations
-------------------
-
-Taking ``CREATE TABLE`` as a example,
-
-.. code-block:: sql
-
-   CREATE TABLE foo (
-     id bigint COMMENT 'unique id',
-     data string)
-   USING iceberg;
-
-Taking ``SELECT`` as a example,
-
-.. code-block:: sql
-
-   SELECT * FROM foo;
-
-Taking ``INSERT`` as a example,
-
-.. code-block:: sql
-
-   INSERT INTO foo VALUES (1, 'a'), (2, 'b'), (3, 'c');
-
-Taking ``UPDATE`` as a example, Spark 3.1 added support for UPDATE queries that update matching rows in tables.
-
-.. code-block:: sql
-
-   UPDATE foo SET data = 'd', id = 4 WHERE id >= 3 and id < 4;
-
-Taking ``DELETE FROM`` as a example, Spark 3 added support for DELETE FROM queries to remove data from tables.
-
-.. code-block:: sql
-
-   DELETE FROM foo WHERE id >= 1 and id < 2;
-
-Taking ``MERGE INTO`` as a example,
-
-.. code-block:: sql
-
-   MERGE INTO target_table t
-   USING source_table s
-   ON t.id = s.id
-   WHEN MATCHED AND s.opType = 'delete' THEN DELETE
-   WHEN MATCHED AND s.opType = 'update' THEN UPDATE SET id = s.id, data = s.data
-   WHEN NOT MATCHED AND s.opType = 'insert' THEN INSERT (id, data) VALUES (s.id, s.data);
-
-.. _Iceberg: https://iceberg.apache.org/
-.. _Official Documentation: https://iceberg.apache.org/docs/latest/
-.. _Maven Central: https://mvnrepository.com/artifact/org.apache.iceberg
-.. _Iceberg multi engine support: https://iceberg.apache.org/multi-engine-support/
diff --git a/docs/connector/spark/index.md b/docs/connector/spark/index.md
new file mode 100644
index 0000000000..8d88d65422
--- /dev/null
+++ b/docs/connector/spark/index.md
@@ -0,0 +1,46 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Connectors for Spark SQL Query Engine
+
+The Kyuubi Spark SQL Query Engine uses Spark DataSource APIs(V1/V2) to access
+data from different data sources.
+
+By default, it provides accessibility to hive warehouses with various file formats
+supported, such as parquet, orc, json, etc.
+
+Also,it can easily integrate with other third-party libraries, such as Hudi,
+Iceberg, Delta Lake, Kudu, Apache Paimon, HBase,Cassandra, etc.
+
+We also provide sample data sources like TDC-DS, TPC-H for testing and benchmarking
+purpose.
+
+```{toctree}
+:maxdepth: 2
+
+delta_lake
+delta_lake_with_azure_blob
+hudi
+iceberg
+kudu
+hive
+paimon
+tidb
+tpcds
+tpch
+```
+
diff --git a/docs/connector/spark/index.rst b/docs/connector/spark/index.rst
deleted file mode 100644
index 6527570801..0000000000
--- a/docs/connector/spark/index.rst
+++ /dev/null
@@ -1,43 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-Connectors for Spark SQL Query Engine
-=====================================
-
-The Kyuubi Spark SQL Query Engine uses Spark DataSource APIs(V1/V2) to access
-data from different data sources.
-
-By default, it provides accessibility to hive warehouses with various file formats
-supported, such as parquet, orc, json, etc.
-
-Also,it can easily integrate with other third-party libraries, such as Hudi,
-Iceberg, Delta Lake, Kudu, Apache Paimon, HBase,Cassandra, etc.
-
-We also provide sample data sources like TDC-DS, TPC-H for testing and benchmarking
-purpose.
-
-.. toctree::
-    :maxdepth: 2
-
-    delta_lake
-    delta_lake_with_azure_blob
-    hudi
-    iceberg
-    kudu
-    hive
-    paimon
-    tidb
-    tpcds
-    tpch
diff --git a/docs/connector/spark/kudu.md b/docs/connector/spark/kudu.md
index a47b1f4880..5e1f37e3f0 100644
--- a/docs/connector/spark/kudu.md
+++ b/docs/connector/spark/kudu.md
@@ -186,3 +186,4 @@ No rows selected (0.611 seconds)
 [https://kudu.apache.org/docs/developing.html#_kudu_integration_with_spark](https://kudu.apache.org/docs/developing.html#_kudu_integration_with_spark)
 [https://github.com/apache/kyuubi](https://github.com/apache/kyuubi)
 [https://spark.apache.org/docs/latest/sql-data-sources.html](https://spark.apache.org/docs/latest/sql-data-sources.html)
+
diff --git a/docs/connector/spark/paimon.md b/docs/connector/spark/paimon.md
new file mode 100644
index 0000000000..56e4450070
--- /dev/null
+++ b/docs/connector/spark/paimon.md
@@ -0,0 +1,97 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Apache Paimon
+
+[Apache Paimon](https://paimon.apache.org/) is a streaming data lake platform that supports high-speed data ingestion, change data tracking and efficient real-time analytics.
+
+```{tip}
+This article assumes that you have mastered the basic knowledge and operation of [Apache Paimon](https://paimon.apache.org/).
+For the knowledge about Apache Paimon not mentioned in this article, 
+you can obtain it from its [Official Documentation](https://paimon.apache.org/docs/master/).
+```
+
+By using kyuubi, we can run SQL queries towards Apache Paimon which is more
+convenient, easy to understand, and easy to expand than directly using
+spark to manipulate Apache Paimon.
+
+## Apache Paimon Integration
+
+To enable the integration of Kyuubi Spark SQL engine and Apache Paimon through Spark DataSource V2 API, you need to:
+
+- Referencing the Apache Paimon [dependencies](#dependencies)
+- Setting the Spark extension and catalog [configurations](#configurations)
+
+### Dependencies
+
+The **classpath** of Kyuubi Spark SQL engine with Apache Paimon consists of:
+
+1. kyuubi-spark-sql-engine-{{ release }}_2.12.jar, the engine jar deployed with a Kyuubi distribution
+2. A copy of Spark distribution
+3. `paimon-spark-<version>.jar` (example: `paimon-spark-3.5-0.8.1.jar`), which can be found in the [Apache Paimon Supported Engines Spark3](https://paimon.apache.org/docs/master/engines/spark3/)
+
+In order to make the Apache Paimon packages visible for the runtime classpath of engines, we can use one of these methods:
+
+1. Put the Apache Paimon packages into `$SPARK_HOME/jars` directly
+2. Set `spark.jars=/path/to/paimon-spark-<version>.jar`
+
+```{warning}
+Please mind the compatibility of different Apache Paimon and Spark versions,
+which can be confirmed on the page of [Apache Paimon multi engine support](https://paimon.apache.org/docs/master/engines/overview/).
+```
+
+### Configurations
+
+To activate functionality of Apache Paimon, we can set the following configurations:
+
+```properties
+spark.sql.catalog.paimon=org.apache.paimon.spark.SparkCatalog
+spark.sql.catalog.paimon.warehouse=file:/tmp/paimon
+```
+
+## Apache Paimon Operations
+
+Taking `CREATE NAMESPACE` as an example:
+
+```sql
+CREATE DATABASE paimon.default;
+USE paimon.default;
+```
+
+Taking `CREATE TABLE` as an example:
+
+```sql
+create table my_table (
+    k int,
+    v string
+) tblproperties (
+    'primary-key' = 'k'
+);
+```
+
+Taking `SELECT` as an example:
+
+```sql
+SELECT * FROM my_table;
+```
+
+Taking `INSERT` as an example:
+
+```sql
+INSERT INTO my_table VALUES (1, 'Hi Again'), (3, 'Test');
+```
+
diff --git a/docs/connector/spark/paimon.rst b/docs/connector/spark/paimon.rst
deleted file mode 100644
index 4a57c1d00c..0000000000
--- a/docs/connector/spark/paimon.rst
+++ /dev/null
@@ -1,111 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-Apache Paimon
-=============
-
-`Apache Paimon`_ is a streaming data lake platform that supports high-speed data ingestion, change data tracking and efficient real-time analytics.
-
-.. tip::
-   This article assumes that you have mastered the basic knowledge and operation of `Apache Paimon`_.
-   For the knowledge about Apache Paimon not mentioned in this article,
-   you can obtain it from its `Official Documentation`_.
-
-By using kyuubi, we can run SQL queries towards Apache Paimon which is more
-convenient, easy to understand, and easy to expand than directly using
-spark to manipulate Apache Paimon.
-
-Apache Paimon Integration
--------------------------
-
-To enable the integration of Kyuubi Spark SQL engine and Apache Paimon through
-Spark DataSource V2 API, you need to:
-
-- Referencing the Apache Paimon :ref:`dependencies<spark-paimon-deps>`
-- Setting the Spark extension and catalog :ref:`configurations<spark-paimon-conf>`
-
-.. _spark-paimon-deps:
-
-Dependencies
-************
-
-The **classpath** of Kyuubi Spark SQL engine with Apache Paimon consists of
-
-1. kyuubi-spark-sql-engine-\ |release|\ _2.12.jar, the engine jar deployed with a Kyuubi distribution
-2. a copy of Spark distribution
-3. paimon-spark-<version>.jar (example: paimon-spark-3.5-0.8.1.jar), which can be found in the `Apache Paimon Supported Engines Spark3`_
-
-In order to make the Apache Paimon packages visible for the runtime classpath of engines, we can use one of these methods:
-
-1. Put the Apache Paimon packages into ``$SPARK_HOME/jars`` directly
-2. Set ``spark.jars=/path/to/paimon-spark-<version>.jar``
-
-.. warning::
-   Please mind the compatibility of different Apache Paimon and Spark versions, which can be confirmed on the page of `Apache Paimon multi engine support`_.
-
-.. _spark-paimon-conf:
-
-Configurations
-**************
-
-To activate functionality of Apache Paimon, we can set the following configurations:
-
-.. code-block:: properties
-
-   spark.sql.catalog.paimon=org.apache.paimon.spark.SparkCatalog
-   spark.sql.catalog.paimon.warehouse=file:/tmp/paimon
-
-Apache Paimon Operations
-------------------------
-
-
-Taking ``CREATE NAMESPACE`` as a example,
-
-.. code-block:: sql
-
-   CREATE DATABASE paimon.default;
-   USE paimon.default;
-
-Taking ``CREATE TABLE`` as a example,
-
-.. code-block:: sql
-
-   create table my_table (
-       k int,
-       v string
-   ) tblproperties (
-       'primary-key' = 'k'
-   );
-
-Taking ``SELECT`` as a example,
-
-.. code-block:: sql
-
-   SELECT * FROM my_table;
-
-
-Taking ``INSERT`` as a example,
-
-.. code-block:: sql
-
-   INSERT INTO my_table VALUES (1, 'Hi Again'), (3, 'Test');
-
-
-
-
-.. _Apache Paimon: https://paimon.apache.org/
-.. _Official Documentation: https://paimon.apache.org/docs/master/
-.. _Apache Paimon Supported Engines Spark3: https://paimon.apache.org/docs/master/engines/spark3/
-.. _Apache Paimon multi engine support: https://paimon.apache.org/docs/master/engines/overview/
diff --git a/docs/connector/spark/tidb.md b/docs/connector/spark/tidb.md
new file mode 100644
index 0000000000..e56bd805f7
--- /dev/null
+++ b/docs/connector/spark/tidb.md
@@ -0,0 +1,95 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# TiDB
+
+[TiDB](https://docs.pingcap.com/tidb/stable/overview) is an open-source NewSQL database that supports Hybrid Transactional and Analytical Processing (HTAP) workloads.
+
+TiSpark is a thin layer built for running Apache Spark on top of TiDB/TiKV to answer complex OLAP
+queries. It enjoys the merits of both the Spark platform and the distributed clusters
+of TiKV while seamlessly integrated to TiDB to provide one-stop HTAP solutions for online
+transactions and analyses.
+
+```{tip}
+This article assumes that you have mastered the basic knowledge and operation of TiDB and TiSpark.
+For the knowledge not mentioned in this article, you can obtain it from TiDB [Official Documentation](https://docs.pingcap.com/tidb/stable/overview).
+```
+
+By using kyuubi, we can run SQL queries towards TiDB/TiKV which is more
+convenient, easy to understand, and easy to expand than directly using
+spark to manipulate TiDB/TiKV.
+
+## TiDB Integration
+
+To enable the integration of Kyuubi Spark SQL engine and TiDB through Spark DataSource V2 API, you need to:
+
+- Referencing the TiSpark [dependencies](#dependencies)
+- Setting the Spark extension and catalog [configurations](#configurations)
+
+### Dependencies
+
+The classpath of Kyuubi Spark SQL engine with TiDB supported consists of:
+
+1. kyuubi-spark-sql-engine-{{ release }}_2.12.jar, the engine jar deployed with a Kyuubi distribution
+2. A copy of Spark distribution
+3. `tispark-assembly-<spark.version>_<scala.version>-<tispark.version>.jar` (example: `tispark-assembly-3.2_2.12-3.0.1.jar`), which can be found in the [Maven Central](https://repo1.maven.org/maven2/com/pingcap/tispark/)
+
+In order to make the TiSpark packages visible for the runtime classpath of engines, we can use one of these methods:
+
+1. Put the TiSpark packages into `$SPARK_HOME/jars` directly
+2. Set `spark.jars=/path/to/tispark-assembly`
+
+```{warning}
+Please mind the compatibility of different TiDB, TiSpark and Spark versions,
+which can be confirmed on the page of [TiSpark Environment setup](https://docs.pingcap.com/tidb/stable/tispark-overview#environment-setup).
+```
+
+### Configurations
+
+To activate the functionality of TiSpark, we can set the following configurations:
+
+```properties
+spark.tispark.pd.addresses $pd_host:$pd_port
+spark.sql.extensions org.apache.spark.sql.TiExtensions
+spark.sql.catalog.tidb_catalog  org.apache.spark.sql.catalyst.catalog.TiCatalog
+spark.sql.catalog.tidb_catalog.pd.addresses $pd_host:$pd_port
+```
+
+The `spark.tispark.pd.addresses` and `spark.sql.catalog.tidb_catalog.pd.addresses` configurations allow you to put in multiple PD servers.
+Specify the port number for each of them.
+
+For example, when you have multiple PD servers on `10.16.20.1,10.16.20.2,10.16.20.3` with the port `2379`, put it as `10.16.20.1:2379,10.16.20.2:2379,10.16.20.3:2379`.
+
+## TiDB Operations
+
+Taking `SELECT` as an example:
+
+```sql
+SELECT * FROM foo;
+```
+
+Taking `DELETE FROM` as an example, Spark 3 added support for DELETE FROM queries to remove data from tables.
+
+```sql
+DELETE FROM foo WHERE id >= 1 and id < 2;
+```
+
+```{note}
+As for now (TiSpark 3.0.1), TiSpark does not support `CREATE TABLE`,
+`INSERT INTO/OVERWRITE` operations through Apache Spark Datasource V2 and Catalog APIs.
+```
+
diff --git a/docs/connector/spark/tidb.rst b/docs/connector/spark/tidb.rst
deleted file mode 100644
index fa73134b5b..0000000000
--- a/docs/connector/spark/tidb.rst
+++ /dev/null
@@ -1,103 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-`TiDB`_
-==========
-
-TiDB is an open-source NewSQL database that supports Hybrid Transactional and Analytical Processing
-(HTAP) workloads.
-
-TiSpark is a thin layer built for running Apache Spark on top of TiDB/TiKV to answer complex OLAP
-queries. It enjoys the merits of both the Spark platform and the distributed clusters
-of TiKV while seamlessly integrated to TiDB to provide one-stop HTAP solutions for online
-transactions and analyses.
-
-.. tip::
-   This article assumes that you have mastered the basic knowledge and operation of TiDB and TiSpark.
-   For the knowledge not mentioned in this article, you can obtain it from TiDB `Official Documentation`_.
-
-By using kyuubi, we can run SQL queries towards TiDB/TiKV which is more
-convenient, easy to understand, and easy to expand than directly using
-spark to manipulate TiDB/TiKV.
-
-TiDB Integration
--------------------
-
-To enable the integration of Kyuubi Spark SQL engine and TiDB through
-Spark DataSource V2 API, you need to:
-
-- Referencing the TiSpark :ref:`dependencies<spark-tidb-deps>`
-- Setting the Spark extension and catalog :ref:`configurations<spark-tidb-conf>`
-
-.. _spark-tidb-deps:
-
-Dependencies
-************
-The classpath of Kyuubi Spark SQL engine with TiDB supported consists of
-
-1. kyuubi-spark-sql-engine-\ |release|\ _2.12.jar, the engine jar deployed with a Kyuubi distribution
-2. a copy of Spark distribution
-3. tispark-assembly-<spark.version>_<scala.version>-<tispark.version>.jar (example: tispark-assembly-3.2_2.12-3.0.1.jar), which can be found in the `Maven Central`_
-
-In order to make the TiSpark packages visible for the runtime classpath of engines, we can use one of these methods:
-
-1. Put the TiSpark packages into ``$SPARK_HOME/jars`` directly
-2. Set ``spark.jars=/path/to/tispark-assembly``
-
-.. warning::
-   Please mind the compatibility of different TiDB, TiSpark and Spark versions, which can be confirmed on the page of `TiSpark Environment setup`_.
-
-.. _spark-tidb-conf:
-
-Configurations
-**************
-
-To activate functionality of TiSpark, we can set the following configurations:
-
-.. code-block:: properties
-
-   spark.tispark.pd.addresses $pd_host:$pd_port
-   spark.sql.extensions org.apache.spark.sql.TiExtensions
-   spark.sql.catalog.tidb_catalog  org.apache.spark.sql.catalyst.catalog.TiCatalog
-   spark.sql.catalog.tidb_catalog.pd.addresses $pd_host:$pd_port
-
-The `spark.tispark.pd.addresses` and `spark.sql.catalog.tidb_catalog.pd.addresses` configurations
-allow you to put in multiple PD servers. Specify the port number for each of them.
-
-For example, when you have multiple PD servers on `10.16.20.1,10.16.20.2,10.16.20.3` with the port `2379`,
-put it as `10.16.20.1:2379,10.16.20.2:2379,10.16.20.3:2379`.
-
-TiDB Operations
-------------------
-
-Taking ``SELECT`` as a example,
-
-.. code-block:: sql
-
-   SELECT * FROM foo;
-
-Taking ``DELETE FROM`` as a example, Spark 3 added support for DELETE FROM queries to remove data from tables.
-
-.. code-block:: sql
-
-   DELETE FROM foo WHERE id >= 1 and id < 2;
-
-.. note::
-   As for now (TiSpark 3.0.1), TiSpark does not support ``CREATE TABLE``, ``INSERT INTO/OVERWRITE`` operations
-   through Apache Spark Datasource V2 and Catalog APIs.
-
-.. _Official Documentation: https://docs.pingcap.com/tidb/stable/overview
-.. _Maven Central: https://repo1.maven.org/maven2/com/pingcap/tispark/
-.. _TiSpark Environment setup: https://docs.pingcap.com/tidb/stable/tispark-overview#environment-setup
\ No newline at end of file
diff --git a/docs/connector/spark/tpcds.md b/docs/connector/spark/tpcds.md
new file mode 100644
index 0000000000..a45fc12d43
--- /dev/null
+++ b/docs/connector/spark/tpcds.md
@@ -0,0 +1,98 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# TPC-DS
+
+The TPC-DS is a decision support benchmark. It consists of a suite of business oriented ad-hoc queries and concurrent
+data modifications. The queries and the data populating the database have been chosen to have broad industry-wide
+relevance.
+
+```{tip}
+This article assumes that you have mastered the basic knowledge and operation of TPC-DS.
+For the knowledge about TPC-DS not mentioned in this article, you can obtain it from its [Official Documentation](https://www.tpc.org/tpcds/).
+```
+
+This connector can be used to test the capabilities and query syntax of Spark without configuring access to an external
+data source. When you query a TPC-DS table, the connector generates the data on the fly using a deterministic algorithm.
+
+Goto [Try Kyuubi](https://try.kyuubi.cloud/) to explore TPC-DS data instantly!
+
+## TPC-DS Integration
+
+To enable the integration of Kyuubi Spark SQL engine and TPC-DS through Spark DataSource V2 API, you need to:
+
+- Referencing the TPC-DS connector [dependencies](#dependencies)
+- Setting the Spark catalog [configurations](#configurations)
+
+### Dependencies
+
+The **classpath** of Kyuubi Spark SQL engine with TPC-DS supported consists of
+
+1. kyuubi-spark-sql-engine-{{ release }}_2.12.jar, the engine jar deployed with a Kyuubi distribution
+2. A copy of Spark distribution
+3. kyuubi-spark-connector-tpcds-{{ release }}_2.12.jar, which can be found in the [Maven Central](https://repo1.maven.org/maven2/org/apache/kyuubi/kyuubi-spark-connector-tpcds_2.12/)
+
+In order to make the TPC-DS connector package visible for the runtime classpath of engines, we can use one of these methods:
+
+1. Put the TPC-DS connector package into `$SPARK_HOME/jars` directly
+2. Set spark.jars=kyuubi-spark-connector-tpcds-{{ release }}_2.12.jar
+
+### Configurations
+
+To add TPC-DS tables as a catalog, we can set the following configurations in `$SPARK_HOME/conf/spark-defaults.conf`:
+
+```properties
+# (required) Register a catalog named `tpcds` for the spark engine.
+spark.sql.catalog.tpcds=org.apache.kyuubi.spark.connector.tpcds.TPCDSCatalog
+
+# (optional) Excluded database list from the catalog, all available databases are:
+#            sf0, tiny, sf1, sf10, sf30, sf100, sf300, sf1000, sf3000, sf10000, sf30000, sf100000.
+spark.sql.catalog.tpcds.excludeDatabases=sf10000,sf30000
+
+# (optional) When true, use CHAR/VARCHAR, otherwise use STRING. It affects output of the table schema,
+#            e.g. `SHOW CREATE TABLE <table>`, `DESC <table>`.
+spark.sql.catalog.tpcds.useAnsiStringType=false
+
+# (optional) TPCDS changed table schemas in v2.6.0, turn off this option to use old table schemas.
+#            See detail at: https://www.tpc.org/tpc_documents_current_versions/pdf/tpc-ds_v3.2.0.pdf
+spark.sql.catalog.tpcds.useTableSchema_2_6=true
+
+# (optional) Maximum bytes per task, consider reducing it if you want higher parallelism.
+spark.sql.catalog.tpcds.read.maxPartitionBytes=128m
+```
+
+## TPC-DS Operations
+
+Listing databases under `tpcds` catalog.
+
+```sql
+SHOW DATABASES IN tpcds;
+```
+
+Listing tables under `tpcds.sf1` database.
+
+```sql
+SHOW TABLES IN tpcds.sf1;
+```
+
+Switch current database to `tpcds.sf1` and run a query against it.
+
+```sql
+USE tpcds.sf1;
+SELECT * FROM store;
+```
+
diff --git a/docs/connector/spark/tpcds.rst b/docs/connector/spark/tpcds.rst
deleted file mode 100644
index 24281bf05a..0000000000
--- a/docs/connector/spark/tpcds.rst
+++ /dev/null
@@ -1,108 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-TPC-DS
-======
-
-The TPC-DS is a decision support benchmark. It consists of a suite of business oriented ad-hoc queries and concurrent
-data modifications. The queries and the data populating the database have been chosen to have broad industry-wide
-relevance.
-
-.. tip::
-   This article assumes that you have mastered the basic knowledge and operation of `TPC-DS`_.
-   For the knowledge about TPC-DS not mentioned in this article, you can obtain it from its `Official Documentation`_.
-
-This connector can be used to test the capabilities and query syntax of Spark without configuring access to an external
-data source. When you query a TPC-DS table, the connector generates the data on the fly using a deterministic algorithm.
-
-Goto `Try Kyuubi`_ to explore TPC-DS data instantly!
-
-TPC-DS Integration
-------------------
-
-To enable the integration of Kyuubi Spark SQL engine and TPC-DS through
-Spark DataSource V2 API, you need to:
-
-- Referencing the TPC-DS connector :ref:`dependencies<spark-tpcds-deps>`
-- Setting the Spark catalog :ref:`configurations<spark-tpcds-conf>`
-
-.. _spark-tpcds-deps:
-
-Dependencies
-************
-
-The **classpath** of Kyuubi Spark SQL engine with TPC-DS supported consists of
-
-1. kyuubi-spark-sql-engine-\ |release|\ _2.12.jar, the engine jar deployed with a Kyuubi distribution
-2. a copy of Spark distribution
-3. kyuubi-spark-connector-tpcds-\ |release|\ _2.12.jar, which can be found in the `Maven Central`_
-
-In order to make the TPC-DS connector package visible for the runtime classpath of engines, we can use one of these methods:
-
-1. Put the TPC-DS connector package into ``$SPARK_HOME/jars`` directly
-2. Set spark.jars=kyuubi-spark-connector-tpcds-\ |release|\ _2.12.jar
-
-.. _spark-tpcds-conf:
-
-Configurations
-**************
-
-To add TPC-DS tables as a catalog, we can set the following configurations in ``$SPARK_HOME/conf/spark-defaults.conf``:
-
-.. code-block:: properties
-
-   # (required) Register a catalog named `tpcds` for the spark engine.
-   spark.sql.catalog.tpcds=org.apache.kyuubi.spark.connector.tpcds.TPCDSCatalog
-
-   # (optional) Excluded database list from the catalog, all available databases are:
-   #            sf0, tiny, sf1, sf10, sf30, sf100, sf300, sf1000, sf3000, sf10000, sf30000, sf100000.
-   spark.sql.catalog.tpcds.excludeDatabases=sf10000,sf30000
-
-   # (optional) When true, use CHAR/VARCHAR, otherwise use STRING. It affects output of the table schema,
-   #            e.g. `SHOW CREATE TABLE <table>`, `DESC <table>`.
-   spark.sql.catalog.tpcds.useAnsiStringType=false
-
-   # (optional) TPCDS changed table schemas in v2.6.0, turn off this option to use old table schemas.
-   #            See detail at: https://www.tpc.org/tpc_documents_current_versions/pdf/tpc-ds_v3.2.0.pdf
-   spark.sql.catalog.tpcds.useTableSchema_2_6=true
-
-   # (optional) Maximum bytes per task, consider reducing it if you want higher parallelism.
-   spark.sql.catalog.tpcds.read.maxPartitionBytes=128m
-
-TPC-DS Operations
------------------
-
-Listing databases under `tpcds` catalog.
-
-.. code-block:: sql
-
-   SHOW DATABASES IN tpcds;
-
-Listing tables under `tpcds.sf1` database.
-
-.. code-block:: sql
-
-   SHOW TABLES IN tpcds.sf1;
-
-Switch current database to `tpcds.sf1` and run a query against it.
-
-.. code-block:: sql
-
-   USE tpcds.sf1;
-   SELECT * FROM store;
-
-.. _Official Documentation: https://www.tpc.org/tpcds/
-.. _Try Kyuubi: https://try.kyuubi.cloud/
-.. _Maven Central: https://repo1.maven.org/maven2/org/apache/kyuubi/kyuubi-spark-connector-tpcds_2.12/
diff --git a/docs/connector/spark/tpch.md b/docs/connector/spark/tpch.md
new file mode 100644
index 0000000000..e187c9388d
--- /dev/null
+++ b/docs/connector/spark/tpch.md
@@ -0,0 +1,95 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# TPC-H
+
+The TPC-H is a decision support benchmark. It consists of a suite of business
+oriented ad-hoc queries and concurrent data modifications. The queries and the
+data populating the database have been chosen to have broad industry-wide
+relevance.
+
+```{tip}
+This article assumes that you have mastered the basic knowledge and operation of TPC-H.
+For the knowledge about TPC-H not mentioned in this article, you can obtain it from its [Official Documentation](https://www.tpc.org/tpch/).
+```
+
+This connector can be used to test the capabilities and query syntax of Spark without configuring access to an external data source.
+When you query a TPC-H table, the connector generates the data on the fly using a deterministic algorithm.
+
+Goto [Try Kyuubi](https://try.kyuubi.cloud/) to explore TPC-H data instantly!
+
+## TPC-H Integration
+
+To enable the integration of Kyuubi Spark SQL engine and TPC-H through Spark DataSource V2 API, you need to:
+
+- Referencing the TPC-H connector [dependencies](#dependencies)
+- Setting the Spark catalog [configurations](#configurations)
+
+### Dependencies
+
+The **classpath** of Kyuubi Spark SQL engine with TPC-H supported consists of:
+
+1. kyuubi-spark-sql-engine-{{ release }}_2.12.jar, the engine jar deployed with a Kyuubi distribution
+2. A copy of Spark distribution
+3. kyuubi-spark-connector-tpch-{{ release }}_2.12.jar, which can be found in the [Maven Central](https://repo1.maven.org/maven2/org/apache/kyuubi/kyuubi-spark-connector-tpch_2.12/)
+
+In order to make the TPC-H connector package visible for the runtime classpath of engines, we can use one of these methods:
+
+1. Put the TPC-H connector package into `$SPARK_HOME/jars` directly
+2. Set spark.jars=kyuubi-spark-connector-tpch-{{ release }}_2.12.jar
+
+### Configurations
+
+To add TPC-H tables as a catalog, we can set the following configurations in `$SPARK_HOME/conf/spark-defaults.conf`:
+
+```properties
+# (required) Register a catalog named `tpch` for the spark engine.
+spark.sql.catalog.tpch=org.apache.kyuubi.spark.connector.tpch.TPCHCatalog
+
+# (optional) Excluded database list from the catalog, all available databases are:
+#            sf0, tiny, sf1, sf10, sf30, sf100, sf300, sf1000, sf3000, sf10000, sf30000, sf100000.
+spark.sql.catalog.tpch.excludeDatabases=sf10000,sf30000
+
+# (optional) When true, use CHAR/VARCHAR, otherwise use STRING. It affects output of the table schema,
+#            e.g. `SHOW CREATE TABLE <table>`, `DESC <table>`.
+spark.sql.catalog.tpch.useAnsiStringType=false
+
+# (optional) Maximum bytes per task, consider reducing it if you want higher parallelism.
+spark.sql.catalog.tpch.read.maxPartitionBytes=128m
+```
+
+## TPC-H Operations
+
+Listing databases under `tpch` catalog:
+
+```sql
+SHOW DATABASES IN tpch;
+```
+
+Listing tables under `tpch.sf1` database:
+
+```sql
+SHOW TABLES IN tpch.sf1;
+```
+
+Switch current database to `tpch.sf1` and run a query against it:
+
+```sql
+USE tpch.sf1;
+SELECT * FROM orders;
+```
+
diff --git a/docs/connector/spark/tpch.rst b/docs/connector/spark/tpch.rst
deleted file mode 100644
index 100a221f05..0000000000
--- a/docs/connector/spark/tpch.rst
+++ /dev/null
@@ -1,104 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-TPC-H
-=====
-
-The TPC-H is a decision support benchmark. It consists of a suite of business oriented ad-hoc queries and concurrent
-data modifications. The queries and the data populating the database have been chosen to have broad industry-wide
-relevance.
-
-.. tip::
-   This article assumes that you have mastered the basic knowledge and operation of `TPC-H`_.
-   For the knowledge about TPC-H not mentioned in this article, you can obtain it from its `Official Documentation`_.
-
-This connector can be used to test the capabilities and query syntax of Spark without configuring access to an external
-data source. When you query a TPC-H table, the connector generates the data on the fly using a deterministic algorithm.
-
-Goto `Try Kyuubi`_ to explore TPC-H data instantly!
-
-TPC-H Integration
-------------------
-
-To enable the integration of Kyuubi Spark SQL engine and TPC-H through
-Spark DataSource V2 API, you need to:
-
-- Referencing the TPC-H connector :ref:`dependencies<spark-tpch-deps>`
-- Setting the Spark catalog :ref:`configurations<spark-tpch-conf>`
-
-.. _spark-tpch-deps:
-
-Dependencies
-************
-
-The **classpath** of Kyuubi Spark SQL engine with TPC-H supported consists of
-
-1. kyuubi-spark-sql-engine-\ |release|\ _2.12.jar, the engine jar deployed with a Kyuubi distribution
-2. a copy of Spark distribution
-3. kyuubi-spark-connector-tpch-\ |release|\ _2.12.jar, which can be found in the `Maven Central`_
-
-In order to make the TPC-H connector package visible for the runtime classpath of engines, we can use one of these methods:
-
-1. Put the TPC-H connector package into ``$SPARK_HOME/jars`` directly
-2. Set spark.jars=kyuubi-spark-connector-tpch-\ |release|\ _2.12.jar
-
-.. _spark-tpch-conf:
-
-Configurations
-**************
-
-To add TPC-H tables as a catalog, we can set the following configurations in ``$SPARK_HOME/conf/spark-defaults.conf``:
-
-.. code-block:: properties
-
-   # (required) Register a catalog named `tpch` for the spark engine.
-   spark.sql.catalog.tpch=org.apache.kyuubi.spark.connector.tpch.TPCHCatalog
-
-   # (optional) Excluded database list from the catalog, all available databases are:
-   #            sf0, tiny, sf1, sf10, sf30, sf100, sf300, sf1000, sf3000, sf10000, sf30000, sf100000.
-   spark.sql.catalog.tpch.excludeDatabases=sf10000,sf30000
-
-   # (optional) When true, use CHAR/VARCHAR, otherwise use STRING. It affects output of the table schema,
-   #            e.g. `SHOW CREATE TABLE <table>`, `DESC <table>`.
-   spark.sql.catalog.tpch.useAnsiStringType=false
-
-   # (optional) Maximum bytes per task, consider reducing it if you want higher parallelism.
-   spark.sql.catalog.tpch.read.maxPartitionBytes=128m
-
-TPC-H Operations
-----------------
-
-Listing databases under `tpch` catalog.
-
-.. code-block:: sql
-
-   SHOW DATABASES IN tpch;
-
-Listing tables under `tpch.sf1` database.
-
-.. code-block:: sql
-
-   SHOW TABLES IN tpch.sf1;
-
-Switch current database to `tpch.sf1` and run a query against it.
-
-.. code-block:: sql
-
-   USE tpch.sf1;
-   SELECT * FROM orders;
-
-.. _Official Documentation: https://www.tpc.org/tpch/
-.. _Try Kyuubi: https://try.kyuubi.cloud/
-.. _Maven Central: https://repo1.maven.org/maven2/org/apache/kyuubi/kyuubi-spark-connector-tpch_2.12/
\ No newline at end of file
diff --git a/docs/connector/trino/hudi.md b/docs/connector/trino/hudi.md
new file mode 100644
index 0000000000..7213691d24
--- /dev/null
+++ b/docs/connector/trino/hudi.md
@@ -0,0 +1,75 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Hudi
+
+[Apache Hudi](https://hudi.apache.org/) (pronounced "hoodie") is the next-generation streaming data lake platform.
+Apache Hudi brings core warehouse and database functionality directly to a data lake.
+
+```{tip}
+This article assumes that you have mastered the basic knowledge and operation of [Hudi](https://hudi.apache.org/).
+For the knowledge about Hudi not mentioned in this article, 
+you can obtain it from its [Official Documentation](https://hudi.apache.org/docs/overview).
+```
+
+By using Kyuubi, we can run SQL queries towards Hudi which is more convenient, easy to understand,
+and easy to expand than directly using Trino to manipulate Hudi.
+
+## Hudi Integration
+
+To enable the integration of Kyuubi Trino SQL engine and Hudi, you need to:
+
+- Setting the Trino extension and catalog [configurations](#configurations)
+
+### Configurations
+
+Catalogs are registered by creating a file of catalog properties in the `$TRINO_SERVER_HOME/etc/catalog` directory.
+For example, we can create a `$TRINO_SERVER_HOME/etc/catalog/hudi.properties` with the following contents to mount the Hudi connector as a Hudi catalog:
+
+```properties
+connector.name=hudi
+hive.metastore.uri=thrift://example.net:9083
+```
+
+Note: You need to replace `$TRINO_SERVER_HOME` above to your Trino server home path like `/opt/trino-server-406`.
+
+More configuration properties can be found in the [Hudi connector in Trino document](https://trino.io/docs/current/connector/hudi.html).
+
+```{tip}
+Trino version 398 or higher, it is recommended to use the Hudi connector.
+You don't need to install any dependencies in version 398 or higher.
+```
+
+## Hudi Operations
+
+The globally available and read operation statements are supported in Trino.
+These statements can be found in [Trino SQL Support](https://trino.io/docs/current/language/sql-support.html).
+Currently, Trino cannot write data to a Hudi table.
+A common scenario is to write data with Spark/Flink and read data with Trino.
+You can use the Kyuubi Trino SQL engine to query the table with the following SQL `SELECT` statement.
+
+Taking `Query Data` as an example:
+
+```sql
+USE example.example_schema;
+
+SELECT symbol, max(ts)
+FROM stock_ticks_cow
+GROUP BY symbol
+HAVING symbol = 'GOOG';
+```
+
diff --git a/docs/connector/trino/hudi.rst b/docs/connector/trino/hudi.rst
deleted file mode 100644
index 5c965a0b64..0000000000
--- a/docs/connector/trino/hudi.rst
+++ /dev/null
@@ -1,80 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-`Hudi`_
-========
-
-Apache Hudi (pronounced “hoodie”) is the next generation streaming data lake platform.
-Apache Hudi brings core warehouse and database functionality directly to a data lake.
-
-.. tip::
-   This article assumes that you have mastered the basic knowledge and operation of `Hudi`_.
-   For the knowledge about Hudi not mentioned in this article,
-   you can obtain it from its `Official Documentation`_.
-
-By using Kyuubi, we can run SQL queries towards Hudi which is more convenient, easy to understand,
-and easy to expand than directly using Trino to manipulate Hudi.
-
-Hudi Integration
-----------------
-
-To enable the integration of Kyuubi Trino SQL engine and Hudi, you need to:
-
-- Setting the Trino extension and catalog :ref:`configurations<trino-hudi-conf>`
-
-.. _trino-hudi-conf:
-
-Configurations
-**************
-
-Catalogs are registered by creating a file of catalog properties in the `$TRINO_SERVER_HOME/etc/catalog` directory.
-For example, we can create a `$TRINO_SERVER_HOME/etc/catalog/hudi.properties` with the following contents to mount the Hudi connector as a Hudi catalog:
-
-.. code-block:: properties
-
-   connector.name=hudi
-   hive.metastore.uri=thrift://example.net:9083
-
-Note: You need to replace $TRINO_SERVER_HOME above to your Trino server home path like `/opt/trino-server-406`.
-
-More configuration properties can be found in the `Hudi connector in Trino document`_.
-
-.. tip::
-   Trino version 398 or higher, it is recommended to use the Hudi connector.
-   You don't need to install any dependencies in version 398 or higher.
-
-Hudi Operations
----------------
-The globally available and read operation statements are supported in Trino.
-These statements can be found in `Trino SQL Support`_.
-Currently, Trino cannot write data to a Hudi table.
-A common scenario is to write data with Spark/Flink and read data with Trino.
-You can use the Kyuubi Trino SQL engine to query the table with the following SQL ``SELECT`` statement.
-
-Taking ``Query Data`` as a example,
-
-.. code-block:: sql
-
-    USE example.example_schema;
-
-    SELECT symbol, max(ts)
-    FROM stock_ticks_cow
-    GROUP BY symbol
-    HAVING symbol = 'GOOG';
-
-.. _Hudi: https://hudi.apache.org/
-.. _Official Documentation: https://hudi.apache.org/docs/overview
-.. _Hudi connector in Trino document: https://trino.io/docs/current/connector/hudi.html
-.. _Trino SQL Support: https://trino.io/docs/current/language/sql-support.html#
diff --git a/docs/connector/trino/iceberg.md b/docs/connector/trino/iceberg.md
new file mode 100644
index 0000000000..921938fc60
--- /dev/null
+++ b/docs/connector/trino/iceberg.md
@@ -0,0 +1,87 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Iceberg
+
+[Apache Iceberg](https://iceberg.apache.org/) is an open table format for huge analytic datasets.
+Iceberg adds tables to compute engines including Spark, Trino, PrestoDB, Flink, Hive and Impala
+using a high-performance table format that works just like a SQL table.
+
+```{tip}
+This article assumes that you have mastered the basic knowledge and operation of [Iceberg](https://iceberg.apache.org/).
+For the knowledge about Iceberg not mentioned in this article, 
+you can obtain it from its [Official Documentation](https://trino.io/docs/current/connector/iceberg.html).
+```
+
+By using kyuubi, we can run SQL queries towards Iceberg which is more
+convenient, easy to understand, and easy to expand than directly using
+Trino to manipulate Iceberg.
+
+## Iceberg Integration
+
+To enable the integration of Kyuubi Trino SQL engine and Iceberg through Catalog APIs, you need to:
+
+- Setting the Trino extension and catalog [configurations](#configurations)
+
+### Configurations
+
+To activate the functionality of Iceberg, we can set the following configurations:
+
+```properties
+connector.name=iceberg
+hive.metastore.uri=thrift://localhost:9083
+```
+
+## Iceberg Operations
+
+Taking `CREATE TABLE` as an example:
+
+```sql
+CREATE TABLE orders (
+  orderkey bigint,
+  orderstatus varchar,
+  totalprice double,
+  orderdate date
+) WITH (
+  format = 'ORC'
+);
+```
+
+Taking `SELECT` as an example:
+
+```sql
+SELECT * FROM new_orders;
+```
+
+Taking `INSERT` as an example:
+
+```sql
+INSERT INTO cities VALUES (1, 'San Francisco');
+```
+
+Taking `UPDATE` as an example:
+
+```sql
+UPDATE purchases SET status = 'OVERDUE' WHERE ship_date IS NULL;
+```
+
+Taking `DELETE FROM` as an example:
+
+```sql
+DELETE FROM lineitem WHERE shipmode = 'AIR';
+```
+
diff --git a/docs/connector/trino/iceberg.rst b/docs/connector/trino/iceberg.rst
deleted file mode 100644
index 6fc09bc951..0000000000
--- a/docs/connector/trino/iceberg.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-`Iceberg`_
-==========
-
-Apache Iceberg is an open table format for huge analytic datasets.
-Iceberg adds tables to compute engines including Spark, Trino, PrestoDB, Flink, Hive and Impala
-using a high-performance table format that works just like a SQL table.
-
-.. tip::
-   This article assumes that you have mastered the basic knowledge and operation of `Iceberg`_.
-   For the knowledge about Iceberg not mentioned in this article,
-   you can obtain it from its `Official Documentation`_.
-
-By using kyuubi, we can run SQL queries towards Iceberg which is more
-convenient, easy to understand, and easy to expand than directly using
-Trino to manipulate Iceberg.
-
-Iceberg Integration
--------------------
-
-To enable the integration of kyuubi trino sql engine and Iceberg through Catalog APIs, you need to:
-
-- Setting the Trino extension and catalog :ref:`configurations`
-
-.. _configurations:
-
-Configurations
-**************
-
-To activate functionality of Iceberg, we can set the following configurations:
-
-.. code-block:: properties
-
-   connector.name=iceberg
-   hive.metastore.uri=thrift://localhost:9083
-
-Iceberg Operations
-------------------
-
-Taking ``CREATE TABLE`` as a example,
-
-.. code-block:: sql
-
-   CREATE TABLE orders (
-     orderkey bigint,
-     orderstatus varchar,
-     totalprice double,
-     orderdate date
-   ) WITH (
-     format = 'ORC'
-   );
-
-Taking ``SELECT`` as a example,
-
-.. code-block:: sql
-
-   SELECT * FROM new_orders;
-
-Taking ``INSERT`` as a example,
-
-.. code-block:: sql
-
-   INSERT INTO cities VALUES (1, 'San Francisco');
-
-Taking ``UPDATE`` as a example,
-
-.. code-block:: sql
-
-   UPDATE purchases SET status = 'OVERDUE' WHERE ship_date IS NULL;
-
-Taking ``DELETE FROM`` as a example,
-
-.. code-block:: sql
-
-   DELETE FROM lineitem WHERE shipmode = 'AIR';
-
-.. _Iceberg: https://iceberg.apache.org/
-.. _Official Documentation: https://trino.io/docs/current/connector/iceberg.html#
diff --git a/docs/connector/trino/index.md b/docs/connector/trino/index.md
new file mode 100644
index 0000000000..3444d0783a
--- /dev/null
+++ b/docs/connector/trino/index.md
@@ -0,0 +1,27 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Connectors For Trino SQL Engine
+
+```{toctree}
+:maxdepth: 2
+
+paimon
+hudi
+iceberg
+```
+
diff --git a/docs/connector/trino/index.rst b/docs/connector/trino/index.rst
deleted file mode 100644
index 290966a5cf..0000000000
--- a/docs/connector/trino/index.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-Connectors For Trino SQL Engine
-=====================================
-
-.. toctree::
-    :maxdepth: 2
-
-    paimon
-    hudi
-    iceberg
\ No newline at end of file
diff --git a/docs/connector/trino/paimon.md b/docs/connector/trino/paimon.md
new file mode 100644
index 0000000000..bb8de13f84
--- /dev/null
+++ b/docs/connector/trino/paimon.md
@@ -0,0 +1,81 @@
+<!--
+- Licensed to the Apache Software Foundation (ASF) under one or more
+- contributor license agreements.  See the NOTICE file distributed with
+- this work for additional information regarding copyright ownership.
+- The ASF licenses this file to You under the Apache License, Version 2.0
+- (the "License"); you may not use this file except in compliance with
+- the License.  You may obtain a copy of the License at
+-
+-   http://www.apache.org/licenses/LICENSE-2.0
+-
+- Unless required by applicable law or agreed to in writing, software
+- distributed under the License is distributed on an "AS IS" BASIS,
+- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- See the License for the specific language governing permissions and
+- limitations under the License.
+-->
+
+# Apache Paimon
+
+[Apache Paimon](https://paimon.apache.org/) is a streaming data lake platform that supports high-speed data ingestion, change data tracking and efficient real-time analytics.
+
+```{tip}
+This article assumes that you have mastered the basic knowledge and operation of [Apache Paimon](https://paimon.apache.org/).
+For the knowledge about Apache Paimon not mentioned in this article, 
+you can obtain it from its [Official Documentation](https://paimon.apache.org/docs/master/).
+```
+
+By using kyuubi, we can run SQL queries towards Apache Paimon which is more
+convenient, easy to understand, and easy to expand than directly using
+Trino to manipulate Apache Paimon.
+
+## Apache Paimon Integration
+
+To enable the integration of Kyuubi Trino SQL engine and Apache Paimon, you need to:
+
+- Referencing the Apache Paimon [dependencies](#dependencies)
+- Setting the Trino extension and catalog [configurations](#configurations)
+
+### Dependencies
+
+The **classpath** of Kyuubi Trino SQL engine with Apache Paimon supported consists of:
+
+1. kyuubi-trino-sql-engine-{{ release }}_2.12.jar, the engine jar deployed with a Kyuubi distribution
+2. A copy of Trino distribution
+3. `paimon-trino-<version>.jar` (example: `paimon-trino-0.2.jar`), which code can be found in the [Source Code](https://github.com/apache/paimon-trino)
+4. `flink-shaded-hadoop-2-uber-<version>.jar`, which code can be found in the [Pre-bundled Hadoop](https://flink.apache.org/downloads/#additional-components)
+
+In order to make the Apache Paimon packages visible for the runtime classpath of engines, you need to:
+
+1. Build the `paimon-trino-<version>.jar` by reference to [Apache Paimon Trino README](https://github.com/apache/paimon-trino)
+2. Put the `paimon-trino-<version>.jar` and `flink-shaded-hadoop-2-uber-<version>.jar` packages into `$TRINO_SERVER_HOME/plugin/tablestore` directly
+
+```{warning}
+Please mind the compatibility of different Apache Paimon and Trino versions,
+which can be confirmed on the page of [Apache Paimon multi engine support](https://paimon.apache.org/docs/master/engines/overview/).
+```
+
+### Configurations
+
+To activate the functionality of Apache Paimon, we can set the following configurations:
+
+Catalogs are registered by creating a catalog properties file in the `$TRINO_SERVER_HOME/etc/catalog` directory.
+For example, create `$TRINO_SERVER_HOME/etc/catalog/tablestore.properties` with the following contents to mount the tablestore connector as the tablestore catalog:
+
+```properties
+connector.name=tablestore
+warehouse=file:///tmp/warehouse
+```
+
+## Apache Paimon Operations
+
+Apache Paimon supports reading table store tables through Trino.
+A common scenario is to write data with Spark or Flink and read data with Trino.
+You can follow this document [Apache Paimon Engines Flink Quick Start](https://paimon.apache.org/docs/master/engines/flink/#quick-start) to
+write data to a table store table and then use Kyuubi Trino SQL engine to query
+the table with the following SQL `SELECT` statement.
+
+```sql
+SELECT * FROM tablestore.default.t1
+```
+
diff --git a/docs/connector/trino/paimon.rst b/docs/connector/trino/paimon.rst
deleted file mode 100644
index d5fa2e5e54..0000000000
--- a/docs/connector/trino/paimon.rst
+++ /dev/null
@@ -1,92 +0,0 @@
-.. Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-..    http://www.apache.org/licenses/LICENSE-2.0
-
-.. Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-Apache Paimon
-=============
-
-`Apache Paimon`_ is a streaming data lake platform that supports high-speed data ingestion, change data tracking and efficient real-time analytics.
-
-.. tip::
-   This article assumes that you have mastered the basic knowledge and operation of `Apache Paimon`_.
-   For the knowledge about Apache Paimon not mentioned in this article,
-   you can obtain it from its `Official Documentation`_.
-
-By using kyuubi, we can run SQL queries towards Apache Paimon which is more
-convenient, easy to understand, and easy to expand than directly using
-trino to manipulate Apache Paimon.
-
-Apache Paimon Integration
--------------------------
-
-To enable the integration of kyuubi trino sql engine and Apache Paimon, you need to:
-
-- Referencing the Apache Paimon :ref:`dependencies<trino-paimon-deps>`
-- Setting the trino extension and catalog :ref:`configurations<trino-paimon-conf>`
-
-.. _trino-paimon-deps:
-
-Dependencies
-************
-
-The **classpath** of kyuubi trino sql engine with Apache Paimon supported consists of
-
-1. kyuubi-trino-sql-engine-\ |release|\ _2.12.jar, the engine jar deployed with a Kyuubi distribution
-2. a copy of trino distribution
-3. paimon-trino-<version>.jar (example: paimon-trino-0.2.jar), which code can be found in the `Source Code`_
-4. flink-shaded-hadoop-2-uber-<version>.jar, which code can be found in the `Pre-bundled Hadoop`_
-
-In order to make the Apache Paimon packages visible for the runtime classpath of engines, you need to:
-
-1. Build the paimon-trino-<version>.jar by reference to `Apache Paimon Trino README`_
-2. Put the paimon-trino-<version>.jar and flink-shaded-hadoop-2-uber-<version>.jar packages into ``$TRINO_SERVER_HOME/plugin/tablestore`` directly
-
-.. warning::
-   Please mind the compatibility of different Apache Paimon and Trino versions, which can be confirmed on the page of `Apache Paimon multi engine support`_.
-
-.. _trino-paimon-conf:
-
-Configurations
-**************
-
-To activate functionality of Apache Paimon, we can set the following configurations:
-
-Catalogs are registered by creating a catalog properties file in the $TRINO_SERVER_HOME/etc/catalog directory.
-For example, create $TRINO_SERVER_HOME/etc/catalog/tablestore.properties with the following contents to mount the tablestore connector as the tablestore catalog:
-
-.. code-block:: properties
-
-   connector.name=tablestore
-   warehouse=file:///tmp/warehouse
-
-Apache Paimon Operations
-------------------------
-
-Apache Paimon supports reading table store tables through Trino.
-A common scenario is to write data with Spark or Flink and read data with Trino.
-You can follow this document `Apache Paimon Engines Flink Quick Start`_  to write data to a table store table
-and then use kyuubi trino sql engine to query the table with the following SQL ``SELECT`` statement.
-
-
-.. code-block:: sql
-
-   SELECT * FROM tablestore.default.t1
-
-.. _Apache Paimon: https://paimon.apache.org/
-.. _Apache Paimon multi engine support: https://paimon.apache.org/docs/master/engines/overview/
-.. _Apache Paimon Engines Flink Quick Start: https://paimon.apache.org/docs/master/engines/flink/#quick-start
-.. _Official Documentation: https://paimon.apache.org/docs/master/
-.. _Source Code: https://github.com/apache/paimon-trino
-.. _Pre-bundled Hadoop: https://flink.apache.org/downloads/#additional-components
-.. _Apache Paimon Trino README: https://github.com/apache/paimon-trino
diff --git a/docs/quick_start/quick_start_with_data_agent.md b/docs/quick_start/quick_start_with_data_agent.md
index f1677b67db..6b00c141ef 100644
--- a/docs/quick_start/quick_start_with_data_agent.md
+++ b/docs/quick_start/quick_start_with_data_agent.md
@@ -56,7 +56,7 @@ Open `http://<kyuubi-host>:10099/ui` in a browser (the port comes from `kyuubi.f
 
 ### 3. Try it with the TPC-H demo dataset
 
-Kyuubi ships a [Spark TPC-H connector](../connector/spark/tpch.rst) that generates the standard TPC-H decision-support dataset on the fly — no external database needed. Add the following to `$SPARK_HOME/conf/spark-defaults.conf` (or `$KYUUBI_HOME/conf/kyuubi-defaults.conf` with the `spark.` prefix):
+Kyuubi ships a [Spark TPC-H connector](../connector/spark/tpch.md) that generates the standard TPC-H decision-support dataset on the fly — no external database needed. Add the following to `$SPARK_HOME/conf/spark-defaults.conf` (or `$KYUUBI_HOME/conf/kyuubi-defaults.conf` with the `spark.` prefix):
 
 ```
 spark.sql.catalog.tpch=org.apache.kyuubi.spark.connector.tpch.TPCHCatalog