You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by di...@apache.org on 2020/09/03 07:15:20 UTC

[flink] branch release-1.11 updated: [FLINK-19110][docs][python] Flatten current PyFlink documentation structure.

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

dianfu pushed a commit to branch release-1.11
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/release-1.11 by this push:
     new b9ca9bb  [FLINK-19110][docs][python] Flatten current PyFlink documentation structure.
b9ca9bb is described below

commit b9ca9bbf6f2192582c8d386d254691c3d2f61f86
Author: Wei Zhong <we...@gmail.com>
AuthorDate: Wed Sep 2 15:02:48 2020 +0800

    [FLINK-19110][docs][python] Flatten current PyFlink documentation structure.
    
    This closes #13312.
---
 docs/dev/python/faq.md                             |  4 +--
 docs/dev/python/faq.zh.md                          |  4 +--
 docs/dev/python/getting-started/index.md           | 24 --------------
 docs/dev/python/getting-started/index.zh.md        | 24 --------------
 docs/dev/python/getting-started/tutorial/index.md  | 24 --------------
 .../python/getting-started/tutorial/index.zh.md    | 24 --------------
 .../python/{getting-started => }/installation.md   |  4 +--
 .../{getting-started => }/installation.zh.md       |  4 +--
 .../built_in_functions.md                          |  0
 .../built_in_functions.zh.md                       |  0
 .../conversion_of_pandas.md                        |  2 +-
 .../conversion_of_pandas.zh.md                     |  2 +-
 .../dependency_management.md                       |  0
 .../dependency_management.zh.md                    |  0
 docs/dev/python/table-api-users-guide/index.md     | 38 ++++++++++++++++++++++
 .../table => table-api-users-guide}/index.zh.md    | 20 ++++++------
 .../intro_to_table_api.md}                         |  8 ++---
 .../intro_to_table_api.zh.md}                      |  8 ++---
 .../table => table-api-users-guide}/metrics.md     |  2 +-
 .../table => table-api-users-guide}/metrics.zh.md  |  2 +-
 .../python_config.md                               |  0
 .../python_config.zh.md                            |  0
 .../python_types.md                                |  0
 .../python_types.zh.md                             |  0
 .../table => table-api-users-guide}/udfs/index.md  |  0
 .../udfs/index.zh.md                               |  0
 .../udfs/python_udfs.md                            |  0
 .../udfs/python_udfs.zh.md                         |  0
 .../udfs/vectorized_python_udfs.md                 |  4 +--
 .../udfs/vectorized_python_udfs.zh.md              |  4 +--
 .../tutorial => }/table_api_tutorial.md            |  6 ++--
 .../tutorial => }/table_api_tutorial.zh.md         |  6 ++--
 docs/dev/python/user-guide/index.md                | 24 --------------
 docs/dev/python/user-guide/index.zh.md             | 24 --------------
 docs/dev/python/user-guide/table/index.md          | 38 ----------------------
 docs/dev/table/functions/udfs.md                   |  4 +--
 docs/dev/table/functions/udfs.zh.md                |  4 +--
 docs/dev/table/sql/alter.md                        |  2 +-
 docs/dev/table/sql/alter.zh.md                     |  2 +-
 docs/dev/table/sql/create.md                       |  2 +-
 docs/dev/table/sql/create.zh.md                    |  2 +-
 docs/dev/table/sqlClient.md                        |  2 +-
 docs/dev/table/sqlClient.zh.md                     |  2 +-
 docs/ops/python_shell.md                           |  2 +-
 docs/ops/python_shell.zh.md                        |  2 +-
 docs/try-flink/python_table_api.md                 |  2 +-
 docs/try-flink/python_table_api.zh.md              |  2 +-
 47 files changed, 92 insertions(+), 236 deletions(-)

diff --git a/docs/dev/python/faq.md b/docs/dev/python/faq.md
index 10b03c7..50c62a5 100644
--- a/docs/dev/python/faq.md
+++ b/docs/dev/python/faq.md
@@ -61,7 +61,7 @@ $ # specify the path of the python interpreter which is used to execute the pyth
 $ table_env.get_config().set_python_executable("venv.zip/venv/bin/python")
 {% endhighlight %}
 
-For details on the usage of `add_python_archive` and `set_python_executable`, you can refer to [the relevant documentation]({% link dev/python/user-guide/table/dependency_management.md %}#usage).
+For details on the usage of `add_python_archive` and `set_python_executable`, you can refer to [the relevant documentation]({% link dev/python/table-api-users-guide/dependency_management.md %}#usage).
 
 ## Adding Jar Files
 
@@ -76,7 +76,7 @@ table_env.get_config().get_configuration().set_string("pipeline.jars", "file:///
 table_env.get_config().get_configuration().set_string("pipeline.classpaths", "file:///my/jar/path/connector.jar;file:///my/jar/path/udf.jar")
 {% endhighlight %}
 
-For details about the APIs of adding Java dependency, you can refer to [the relevant documentation]({% link dev/python/user-guide/table/dependency_management.md %}#java-dependency)
+For details about the APIs of adding Java dependency, you can refer to [the relevant documentation]({% link dev/python/table-api-users-guide/dependency_management.md %}#java-dependency)
 
 ## Adding Python Files
 You can use the command-line arguments `pyfs` or the API `add_python_file` of `TableEnvironment` to add python file dependencies which could be python files, python packages or local directories.
diff --git a/docs/dev/python/faq.zh.md b/docs/dev/python/faq.zh.md
index f2fbb49..a2b7653 100644
--- a/docs/dev/python/faq.zh.md
+++ b/docs/dev/python/faq.zh.md
@@ -60,7 +60,7 @@ $ # 指定用于执行python UDF workers (用户自定义函数工作者) 的pyt
 $ table_env.get_config().set_python_executable("venv.zip/venv/bin/python")
 {% endhighlight %}
 
-如果需要了解`add_python_archive`和`set_python_executable`用法的详细信息,请参阅[相关文档]({% link dev/python/user-guide/table/dependency_management.zh.md %}#python-dependency)。
+如果需要了解`add_python_archive`和`set_python_executable`用法的详细信息,请参阅[相关文档]({% link dev/python/table-api-users-guide/dependency_management.zh.md %}#python-dependency)。
 
 ## 添加Jar文件
 
@@ -75,7 +75,7 @@ table_env.get_config().get_configuration().set_string("pipeline.jars", "file:///
 table_env.get_config().get_configuration().set_string("pipeline.classpaths", "file:///my/jar/path/connector.jar;file:///my/jar/path/udf.jar")
 {% endhighlight %}
 
-有关添加Java依赖项的API的详细信息,请参阅[相关文档]({% link dev/python/user-guide/table/dependency_management.zh.md %}#java-dependency)。
+有关添加Java依赖项的API的详细信息,请参阅[相关文档]({% link dev/python/table-api-users-guide/dependency_management.zh.md %}#java-dependency)。
 
 ## 添加Python文件
 您可以使用命令行参数`pyfs`或TableEnvironment的API `add_python_file`添加python文件依赖,这些依赖可以是python文件,python软件包或本地目录。
diff --git a/docs/dev/python/getting-started/index.md b/docs/dev/python/getting-started/index.md
deleted file mode 100644
index 94bced7..0000000
--- a/docs/dev/python/getting-started/index.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: "Getting Started"
-nav-id: python_start
-nav-parent_id: python
-nav-pos: 10
----
-<!--
-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.
--->
diff --git a/docs/dev/python/getting-started/index.zh.md b/docs/dev/python/getting-started/index.zh.md
deleted file mode 100644
index 81b7dc71..0000000
--- a/docs/dev/python/getting-started/index.zh.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: "新手入门"
-nav-id: python_start
-nav-parent_id: python
-nav-pos: 10
----
-<!--
-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.
--->
diff --git a/docs/dev/python/getting-started/tutorial/index.md b/docs/dev/python/getting-started/tutorial/index.md
deleted file mode 100644
index b862506..0000000
--- a/docs/dev/python/getting-started/tutorial/index.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: "Tutorial"
-nav-id: python_tutorial
-nav-parent_id: python_start
-nav-pos: 20
----
-<!--
-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.
--->
diff --git a/docs/dev/python/getting-started/tutorial/index.zh.md b/docs/dev/python/getting-started/tutorial/index.zh.md
deleted file mode 100644
index e81b7a2..0000000
--- a/docs/dev/python/getting-started/tutorial/index.zh.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: "教程"
-nav-id: python_tutorial
-nav-parent_id: python_start
-nav-pos: 20
----
-<!--
-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.
--->
diff --git a/docs/dev/python/getting-started/installation.md b/docs/dev/python/installation.md
similarity index 97%
rename from docs/dev/python/getting-started/installation.md
rename to docs/dev/python/installation.md
index ad85bb6..82c3737 100644
--- a/docs/dev/python/getting-started/installation.md
+++ b/docs/dev/python/installation.md
@@ -1,7 +1,7 @@
 ---
 title: "Installation"
-nav-parent_id: python_start
-nav-pos: 10
+nav-parent_id: python
+nav-pos: 15
 ---
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
diff --git a/docs/dev/python/getting-started/installation.zh.md b/docs/dev/python/installation.zh.md
similarity index 97%
rename from docs/dev/python/getting-started/installation.zh.md
rename to docs/dev/python/installation.zh.md
index 04ddeaf..3df0dc9 100644
--- a/docs/dev/python/getting-started/installation.zh.md
+++ b/docs/dev/python/installation.zh.md
@@ -1,7 +1,7 @@
 ---
 title: "环境安装"
-nav-parent_id: python_start
-nav-pos: 10
+nav-parent_id: python
+nav-pos: 15
 ---
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
diff --git a/docs/dev/python/user-guide/table/built_in_functions.md b/docs/dev/python/table-api-users-guide/built_in_functions.md
similarity index 100%
rename from docs/dev/python/user-guide/table/built_in_functions.md
rename to docs/dev/python/table-api-users-guide/built_in_functions.md
diff --git a/docs/dev/python/user-guide/table/built_in_functions.zh.md b/docs/dev/python/table-api-users-guide/built_in_functions.zh.md
similarity index 100%
rename from docs/dev/python/user-guide/table/built_in_functions.zh.md
rename to docs/dev/python/table-api-users-guide/built_in_functions.zh.md
diff --git a/docs/dev/python/user-guide/table/conversion_of_pandas.md b/docs/dev/python/table-api-users-guide/conversion_of_pandas.md
similarity index 96%
rename from docs/dev/python/user-guide/table/conversion_of_pandas.md
rename to docs/dev/python/table-api-users-guide/conversion_of_pandas.md
index 1912b40..2f9c629 100644
--- a/docs/dev/python/user-guide/table/conversion_of_pandas.md
+++ b/docs/dev/python/table-api-users-guide/conversion_of_pandas.md
@@ -62,7 +62,7 @@ table = t_env.from_pandas(pdf,
 
 It also supports converting a PyFlink Table to a Pandas DataFrame. Internally, it will materialize the results of the 
 table and serialize them into multiple Arrow batches of Arrow columnar format at client side. The maximum Arrow batch size
-is determined by the config option [python.fn-execution.arrow.batch.size]({% link dev/python/user-guide/table/python_config.md %}#python-fn-execution-arrow-batch-size).
+is determined by the config option [python.fn-execution.arrow.batch.size]({% link dev/python/table-api-users-guide/python_config.md %}#python-fn-execution-arrow-batch-size).
 The serialized data will then be converted to Pandas DataFrame. It will collect the content of the table to
 the client side and so please make sure that the content of the table could fit in memory before calling this method.
 
diff --git a/docs/dev/python/user-guide/table/conversion_of_pandas.zh.md b/docs/dev/python/table-api-users-guide/conversion_of_pandas.zh.md
similarity index 96%
rename from docs/dev/python/user-guide/table/conversion_of_pandas.zh.md
rename to docs/dev/python/table-api-users-guide/conversion_of_pandas.zh.md
index 870ba30..49fc721 100644
--- a/docs/dev/python/user-guide/table/conversion_of_pandas.zh.md
+++ b/docs/dev/python/table-api-users-guide/conversion_of_pandas.zh.md
@@ -60,7 +60,7 @@ table = t_env.from_pandas(pdf,
 
 除此之外,还支持将PyFlink表转换为Pandas DataFrame。在内部实现上,它将执行表的计算逻辑,得到物化之后的表的执行结果,并
 在客户端将其序列化为Arrow列存格式,最大Arrow批处理大小
-由配置选项[python.fn-execution.arrow.batch.size]({% link dev/python/user-guide/table/python_config.zh.md %}#python-fn-execution-arrow-batch-size) 确定。
+由配置选项[python.fn-execution.arrow.batch.size]({% link dev/python/table-api-users-guide/python_config.zh.md %}#python-fn-execution-arrow-batch-size) 确定。
 序列化后的数据将被转换为Pandas DataFrame。这意味着需要把表的内容收集到客户端,因此在调用此函数之前,请确保表的内容可以容纳在内存中。
 
 以下示例显示了如何将PyFlink表转换为Pandas DataFrame:
diff --git a/docs/dev/python/user-guide/table/dependency_management.md b/docs/dev/python/table-api-users-guide/dependency_management.md
similarity index 100%
rename from docs/dev/python/user-guide/table/dependency_management.md
rename to docs/dev/python/table-api-users-guide/dependency_management.md
diff --git a/docs/dev/python/user-guide/table/dependency_management.zh.md b/docs/dev/python/table-api-users-guide/dependency_management.zh.md
similarity index 100%
rename from docs/dev/python/user-guide/table/dependency_management.zh.md
rename to docs/dev/python/table-api-users-guide/dependency_management.zh.md
diff --git a/docs/dev/python/table-api-users-guide/index.md b/docs/dev/python/table-api-users-guide/index.md
new file mode 100644
index 0000000..5cc8d86
--- /dev/null
+++ b/docs/dev/python/table-api-users-guide/index.md
@@ -0,0 +1,38 @@
+---
+title: "Table API User's Guide"
+nav-id: python_tableapi
+nav-parent_id: python
+nav-pos: 25
+---
+<!--
+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.
+-->
+
+Python Table API allows users to develop [Table API]({% link dev/table/tableApi.md %}) programs using the Python language.
+Apache Flink has provided Python Table API support since 1.9.0.
+
+## Where to go next?
+
+- [Installation]({% link dev/python/installation.md %}): Introduction of how to set up the Python Table API execution environment.
+- [Python Data Types]({% link dev/python/table-api-users-guide/python_types.md %}): Introduction of Python data types.
+- [User-defined Functions]({% link dev/python/table-api-users-guide/udfs/python_udfs.md %}): Explanation of how to define Python user-defined functions.
+- [Vectorized User-defined Functions]({% link dev/python/table-api-users-guide/udfs/vectorized_python_udfs.md %}): Explanation of how to define vectorized Python user-defined functions.
+- [Conversions between PyFlink Table and Pandas DataFrame]({% link dev/python/table-api-users-guide/conversion_of_pandas.md %}): Explanation of how to convert between PyFlink Table and Pandas DataFrame.
+- [Dependency Management]({% link dev/python/table-api-users-guide/dependency_management.md %}): Specification of how to use third-part dependencies in a Python Table API program.
+- [Configuration]({% link dev/python/table-api-users-guide/python_config.md %}): Description of the config options available for Python Table API programs.
+- [Common Questions]({% link dev/python/faq.md %})
diff --git a/docs/dev/python/user-guide/table/index.zh.md b/docs/dev/python/table-api-users-guide/index.zh.md
similarity index 52%
rename from docs/dev/python/user-guide/table/index.zh.md
rename to docs/dev/python/table-api-users-guide/index.zh.md
index 32832a8..57c6d47 100644
--- a/docs/dev/python/user-guide/table/index.zh.md
+++ b/docs/dev/python/table-api-users-guide/index.zh.md
@@ -1,8 +1,8 @@
 ---
-title: "Table API"
+title: "Table API用户指南"
 nav-id: python_tableapi
-nav-parent_id: python_user_guide
-nav-pos: 20
+nav-parent_id: python
+nav-pos: 25
 ---
 <!--
 Licensed to the Apache Software Foundation (ASF) under one
@@ -29,11 +29,11 @@ Python Table API允许用户使用Python语言开发[Table API]({% link dev/tabl
 
 ## Where to go next?
 
-- [环境安装]({% link dev/python/getting-started/installation.zh.md %}): 介绍了如何设置Python Table API的执行环境。
-- [Python数据类型]({% link dev/python/user-guide/table/python_types.zh.md %}): 介绍Python数据类型。
-- [自定义函数]({% link dev/python/user-guide/table/udfs/python_udfs.zh.md %}): 有关如何定义Python用户自定义函数的说明。
-- [向量化自定义函数]({% link dev/python/user-guide/table/udfs/vectorized_python_udfs.zh.md %}): 有关如何定义向量化Python用户自定义函数的说明。
-- [PyFlink Table 和 Pandas DataFrame 互转]({% link dev/python/user-guide/table/conversion_of_pandas.zh.md %}): 介绍了PyFlink Table和Pandas DataFrame之间如何互转。
-- [依赖管理]({% link dev/python/user-guide/table/dependency_management.zh.md %}): 在Python Table API作业中如何使用第三方依赖。
-- [配置]({% link dev/python/user-guide/table/python_config.zh.md %}): 描述了Python Table API程序的配置项。
+- [环境安装]({% link dev/python/installation.zh.md %}): 介绍了如何设置Python Table API的执行环境。
+- [Python数据类型]({% link dev/python/table-api-users-guide/python_types.zh.md %}): 介绍Python数据类型。
+- [自定义函数]({% link dev/python/table-api-users-guide/udfs/python_udfs.zh.md %}): 有关如何定义Python用户自定义函数的说明。
+- [向量化自定义函数]({% link dev/python/table-api-users-guide/udfs/vectorized_python_udfs.zh.md %}): 有关如何定义向量化Python用户自定义函数的说明。
+- [PyFlink Table 和 Pandas DataFrame 互转]({% link dev/python/table-api-users-guide/conversion_of_pandas.zh.md %}): 介绍了PyFlink Table和Pandas DataFrame之间如何互转。
+- [依赖管理]({% link dev/python/table-api-users-guide/dependency_management.zh.md %}): 在Python Table API作业中如何使用第三方依赖。
+- [配置]({% link dev/python/table-api-users-guide/python_config.zh.md %}): 描述了Python Table API程序的配置项。
 - [常见问题]({% link dev/python/faq.zh.md %})
diff --git a/docs/dev/python/user-guide/table/10_minutes_to_table_api.md b/docs/dev/python/table-api-users-guide/intro_to_table_api.md
similarity index 97%
rename from docs/dev/python/user-guide/table/10_minutes_to_table_api.md
rename to docs/dev/python/table-api-users-guide/intro_to_table_api.md
index dfe3e4b..f5e2572 100644
--- a/docs/dev/python/user-guide/table/10_minutes_to_table_api.md
+++ b/docs/dev/python/table-api-users-guide/intro_to_table_api.md
@@ -114,9 +114,9 @@ The `TableEnvironment` is responsible for:
 * Creating `Table`s
 * Registering `Table`s as a temporary view
 * Executing SQL queries, see [SQL]({% link dev/table/sql/index.md %}) for more details
-* Registering user-defined (scalar, table, or aggregation) functions, see [General User-defined Functions]({% link dev/python/user-guide/table/udfs/python_udfs.md %}) and [Vectorized User-defined Functions]({% link dev/python/user-guide/table/udfs/vectorized_python_udfs.md %}) for more details
-* Configuring the job, see [Python Configuration]({% link dev/python/user-guide/table/python_config.md %}) for more details
-* Managing Python dependencies, see [Dependency Management]({% link dev/python/user-guide/table/dependency_management.md %}) for more details
+* Registering user-defined (scalar, table, or aggregation) functions, see [General User-defined Functions]({% link dev/python/table-api-users-guide/udfs/python_udfs.md %}) and [Vectorized User-defined Functions]({% link dev/python/table-api-users-guide/udfs/vectorized_python_udfs.md %}) for more details
+* Configuring the job, see [Python Configuration]({% link dev/python/table-api-users-guide/python_config.md %}) for more details
+* Managing Python dependencies, see [Dependency Management]({% link dev/python/table-api-users-guide/dependency_management.md %}) for more details
 * Submitting the jobs for execution
 
 Currently there are 2 planners available: flink planner and blink planner.
@@ -482,7 +482,7 @@ Emit Results
 
 ### Collect Results to Client
 
-You can call the "to_pandas" method to [convert a `Table` object to a pandas DataFrame]({% link dev/python/user-guide/table/conversion_of_pandas.md %}#convert-pyflink-table-to-pandas-dataframe):
+You can call the "to_pandas" method to [convert a `Table` object to a pandas DataFrame]({% link dev/python/table-api-users-guide/conversion_of_pandas.md %}#convert-pyflink-table-to-pandas-dataframe):
 
 {% highlight python %}
 
diff --git a/docs/dev/python/user-guide/table/10_minutes_to_table_api.zh.md b/docs/dev/python/table-api-users-guide/intro_to_table_api.zh.md
similarity index 97%
rename from docs/dev/python/user-guide/table/10_minutes_to_table_api.zh.md
rename to docs/dev/python/table-api-users-guide/intro_to_table_api.zh.md
index 75b680f..6a70bcd 100644
--- a/docs/dev/python/user-guide/table/10_minutes_to_table_api.zh.md
+++ b/docs/dev/python/table-api-users-guide/intro_to_table_api.zh.md
@@ -114,9 +114,9 @@ The `TableEnvironment` is responsible for:
 * Creating `Table`s
 * Registering `Table`s as a temporary view
 * Executing SQL queries, see [SQL]({% link dev/table/sql/index.zh.md %}) for more details
-* Registering user-defined (scalar, table, or aggregation) functions, see [General User-defined Functions]({% link dev/python/user-guide/table/udfs/python_udfs.zh.md %}) and [Vectorized User-defined Functions]({% link dev/python/user-guide/table/udfs/vectorized_python_udfs.zh.md %}) for more details
-* Configuring the job, see [Python Configuration]({% link dev/python/user-guide/table/python_config.zh.md %}) for more details
-* Managing Python dependencies, see [Dependency Management]({% link dev/python/user-guide/table/dependency_management.zh.md %}) for more details
+* Registering user-defined (scalar, table, or aggregation) functions, see [General User-defined Functions]({% link dev/python/table-api-users-guide/udfs/python_udfs.zh.md %}) and [Vectorized User-defined Functions]({% link dev/python/table-api-users-guide/udfs/vectorized_python_udfs.zh.md %}) for more details
+* Configuring the job, see [Python Configuration]({% link dev/python/table-api-users-guide/python_config.zh.md %}) for more details
+* Managing Python dependencies, see [Dependency Management]({% link dev/python/table-api-users-guide/dependency_management.zh.md %}) for more details
 * Submitting the jobs for execution
 
 Currently there are 2 planners available: flink planner and blink planner.
@@ -482,7 +482,7 @@ Emit Results
 
 ### Collect Results to Client
 
-You can call the "to_pandas" method to [convert a `Table` object to a pandas DataFrame]({% link dev/python/user-guide/table/conversion_of_pandas.zh.md %}#convert-pyflink-table-to-pandas-dataframe):
+You can call the "to_pandas" method to [convert a `Table` object to a pandas DataFrame]({% link dev/python/table-api-users-guide/conversion_of_pandas.zh.md %}#convert-pyflink-table-to-pandas-dataframe):
 
 {% highlight python %}
 
diff --git a/docs/dev/python/user-guide/table/metrics.md b/docs/dev/python/table-api-users-guide/metrics.md
similarity index 97%
rename from docs/dev/python/user-guide/table/metrics.md
rename to docs/dev/python/table-api-users-guide/metrics.md
index 5647598..4dd7a77 100644
--- a/docs/dev/python/user-guide/table/metrics.md
+++ b/docs/dev/python/table-api-users-guide/metrics.md
@@ -29,7 +29,7 @@ PyFlink exposes a metric system that allows gathering and exposing metrics to ex
 
 ## Registering metrics
 
-You can access the metric system from a [User-defined Function]({% link dev/python/user-guide/table/udfs/python_udfs.md %}) by calling `function_context.get_metric_group()` in the `open` method.
+You can access the metric system from a [User-defined Function]({% link dev/python/table-api-users-guide/udfs/python_udfs.md %}) by calling `function_context.get_metric_group()` in the `open` method.
 The `get_metric_group()` method returns a `MetricGroup` object on which you can create and register new metrics.
 
 ### Metric types
diff --git a/docs/dev/python/user-guide/table/metrics.zh.md b/docs/dev/python/table-api-users-guide/metrics.zh.md
similarity index 97%
rename from docs/dev/python/user-guide/table/metrics.zh.md
rename to docs/dev/python/table-api-users-guide/metrics.zh.md
index bbf7a6a..1e5b447 100644
--- a/docs/dev/python/user-guide/table/metrics.zh.md
+++ b/docs/dev/python/table-api-users-guide/metrics.zh.md
@@ -29,7 +29,7 @@ PyFlink支持指标系统,该指标系统允许收集指标并将其暴露给
 
 ## 注册指标
 
-您可以通过在[用户自定义函数]({% link dev/python/user-guide/table/udfs/python_udfs.zh.md %})的`open`方法中调用`function_context.get_metric_group()`来访问指标系统。
+您可以通过在[用户自定义函数]({% link dev/python/table-api-users-guide/udfs/python_udfs.zh.md %})的`open`方法中调用`function_context.get_metric_group()`来访问指标系统。
 `get_metric_group()`方法返回一个`MetricGroup`对象,您可以在该对象上创建和注册新指标。
 
 ### 指标类型
diff --git a/docs/dev/python/user-guide/table/python_config.md b/docs/dev/python/table-api-users-guide/python_config.md
similarity index 100%
rename from docs/dev/python/user-guide/table/python_config.md
rename to docs/dev/python/table-api-users-guide/python_config.md
diff --git a/docs/dev/python/user-guide/table/python_config.zh.md b/docs/dev/python/table-api-users-guide/python_config.zh.md
similarity index 100%
rename from docs/dev/python/user-guide/table/python_config.zh.md
rename to docs/dev/python/table-api-users-guide/python_config.zh.md
diff --git a/docs/dev/python/user-guide/table/python_types.md b/docs/dev/python/table-api-users-guide/python_types.md
similarity index 100%
rename from docs/dev/python/user-guide/table/python_types.md
rename to docs/dev/python/table-api-users-guide/python_types.md
diff --git a/docs/dev/python/user-guide/table/python_types.zh.md b/docs/dev/python/table-api-users-guide/python_types.zh.md
similarity index 100%
rename from docs/dev/python/user-guide/table/python_types.zh.md
rename to docs/dev/python/table-api-users-guide/python_types.zh.md
diff --git a/docs/dev/python/user-guide/table/udfs/index.md b/docs/dev/python/table-api-users-guide/udfs/index.md
similarity index 100%
rename from docs/dev/python/user-guide/table/udfs/index.md
rename to docs/dev/python/table-api-users-guide/udfs/index.md
diff --git a/docs/dev/python/user-guide/table/udfs/index.zh.md b/docs/dev/python/table-api-users-guide/udfs/index.zh.md
similarity index 100%
rename from docs/dev/python/user-guide/table/udfs/index.zh.md
rename to docs/dev/python/table-api-users-guide/udfs/index.zh.md
diff --git a/docs/dev/python/user-guide/table/udfs/python_udfs.md b/docs/dev/python/table-api-users-guide/udfs/python_udfs.md
similarity index 100%
rename from docs/dev/python/user-guide/table/udfs/python_udfs.md
rename to docs/dev/python/table-api-users-guide/udfs/python_udfs.md
diff --git a/docs/dev/python/user-guide/table/udfs/python_udfs.zh.md b/docs/dev/python/table-api-users-guide/udfs/python_udfs.zh.md
similarity index 100%
rename from docs/dev/python/user-guide/table/udfs/python_udfs.zh.md
rename to docs/dev/python/table-api-users-guide/udfs/python_udfs.zh.md
diff --git a/docs/dev/python/user-guide/table/udfs/vectorized_python_udfs.md b/docs/dev/python/table-api-users-guide/udfs/vectorized_python_udfs.md
similarity index 92%
rename from docs/dev/python/user-guide/table/udfs/vectorized_python_udfs.md
rename to docs/dev/python/table-api-users-guide/udfs/vectorized_python_udfs.md
index 0637b0d..4f94228 100644
--- a/docs/dev/python/user-guide/table/udfs/vectorized_python_udfs.md
+++ b/docs/dev/python/table-api-users-guide/udfs/vectorized_python_udfs.md
@@ -27,7 +27,7 @@ Vectorized Python user-defined functions are functions which are executed by tra
 The performance of vectorized Python user-defined functions are usually much higher than non-vectorized Python user-defined functions as the serialization/deserialization
 overhead and invocation overhead are much reduced. Besides, users could leverage the popular Python libraries such as Pandas, Numpy, etc for the vectorized Python user-defined functions implementation.
 These Python libraries are highly optimized and provide high-performance data structures and functions. It shares the similar way as the
-[non-vectorized user-defined functions]({% link dev/python/user-guide/table/udfs/python_udfs.md %}) on how to define vectorized user-defined functions.
+[non-vectorized user-defined functions]({% link dev/python/table-api-users-guide/udfs/python_udfs.md %}) on how to define vectorized user-defined functions.
 Users only need to add an extra parameter `udf_type="pandas"` in the decorator `udf` to mark it as a vectorized user-defined function.
 
 **NOTE:** Python UDF execution requires Python version (3.5, 3.6 or 3.7) with PyFlink installed. It's required on both the client side and the cluster side. 
@@ -40,7 +40,7 @@ Users only need to add an extra parameter `udf_type="pandas"` in the decorator `
 Vectorized Python scalar functions take `pandas.Series` as the inputs and return a `pandas.Series` of the same length as the output.
 Internally, Flink will split the input elements into batches, convert a batch of input elements into `Pandas.Series`
 and then call user-defined vectorized Python scalar functions for each batch of input elements. Please refer to the config option
-[python.fn-execution.arrow.batch.size]({% link dev/python/user-guide/table/python_config.md %}#python-fn-execution-arrow-batch-size) for more details
+[python.fn-execution.arrow.batch.size]({% link dev/python/table-api-users-guide/python_config.md %}#python-fn-execution-arrow-batch-size) for more details
 on how to configure the batch size.
 
 Vectorized Python scalar function could be used in any places where non-vectorized Python scalar functions could be used.
diff --git a/docs/dev/python/user-guide/table/udfs/vectorized_python_udfs.zh.md b/docs/dev/python/table-api-users-guide/udfs/vectorized_python_udfs.zh.md
similarity index 93%
rename from docs/dev/python/user-guide/table/udfs/vectorized_python_udfs.zh.md
rename to docs/dev/python/table-api-users-guide/udfs/vectorized_python_udfs.zh.md
index 134982f..d88e196 100644
--- a/docs/dev/python/user-guide/table/udfs/vectorized_python_udfs.zh.md
+++ b/docs/dev/python/table-api-users-guide/udfs/vectorized_python_udfs.zh.md
@@ -26,7 +26,7 @@ under the License.
 向量化Python用户自定义函数,是在执行时,通过在JVM和Python VM之间以Arrow列存格式批量传输数据,来执行的函数。
 向量化Python用户自定义函数的性能通常比非向量化Python用户自定义函数要高得多,因为向量化Python用户自定义函数可以大大减少序列化/反序列化的开销和调用开销。
 此外,用户可以利用流行的Python库(例如Pandas,Numpy等)来实现向量化Python用户自定义函数的逻辑。这些Python库通常经过高度优化,并提供了高性能的数据结构和功能。
-向量化用户自定义函数的定义,与[非向量化用户自定义函数]({% link dev/python/user-guide/table/udfs/python_udfs.zh.md %})具有相似的方式,
+向量化用户自定义函数的定义,与[非向量化用户自定义函数]({% link dev/python/table-api-users-guide/udfs/python_udfs.zh.md %})具有相似的方式,
 用户只需要在调用`udf`装饰器时添加一个额外的参数`udf_type="pandas"`,将其标记为一个向量化用户自定义函数即可。
 
 **注意:**要执行Python UDF,需要安装PyFlink的Python版本(3.5、3.6或3.7)。客户端和群集端都需要安装它。
@@ -39,7 +39,7 @@ under the License.
 向量化Python标量函数以`pandas.Series`类型的参数作为输入,并返回与输入长度相同的`pandas.Series`。
 在内部实现中,Flink会将输入数据拆分为多个批次,并将每一批次的输入数据转换为`Pandas.Series`类型,
 然后为每一批输入数据调用用户自定义的向量化Python标量函数。请参阅配置选项
-[python.fn-execution.arrow.batch.size,]({% link dev/python/user-guide/table/python_config.zh.md %}#python-fn-execution-arrow-batch-size)
+[python.fn-execution.arrow.batch.size,]({% link dev/python/table-api-users-guide/python_config.zh.md %}#python-fn-execution-arrow-batch-size)
 以获取有关如何配置批次大小的更多详细信息。
 
 向量化Python标量函数可以在任何可以使用非向量化Python标量函数的地方使用。
diff --git a/docs/dev/python/getting-started/tutorial/table_api_tutorial.md b/docs/dev/python/table_api_tutorial.md
similarity index 97%
rename from docs/dev/python/getting-started/tutorial/table_api_tutorial.md
rename to docs/dev/python/table_api_tutorial.md
index 401020c..0d61f49 100644
--- a/docs/dev/python/getting-started/tutorial/table_api_tutorial.md
+++ b/docs/dev/python/table_api_tutorial.md
@@ -1,6 +1,6 @@
 ---
 title: "Table API Tutorial"
-nav-parent_id: python_tutorial
+nav-parent_id: python
 nav-pos: 20
 ---
 <!--
@@ -24,14 +24,14 @@ under the License.
 
 This walkthrough will quickly get you started building a pure Python Flink project.
 
-Please refer to the Python Table API [installation guide]({% link dev/python/getting-started/installation.md %}) on how to set up the Python execution environments.
+Please refer to the Python Table API [installation guide]({% link dev/python/installation.md %}) on how to set up the Python execution environments.
 
 * This will be replaced by the TOC
 {:toc}
 
 ## Setting up a Python Project
 
-You can begin by creating a Python project and installing the PyFlink package following the [installation guide]({% link dev/python/getting-started/installation.md %}#installation-of-pyflink).
+You can begin by creating a Python project and installing the PyFlink package following the [installation guide]({% link dev/python/installation.md %}#installation-of-pyflink).
 
 ## Writing a Flink Python Table API Program
 
diff --git a/docs/dev/python/getting-started/tutorial/table_api_tutorial.zh.md b/docs/dev/python/table_api_tutorial.zh.md
similarity index 97%
rename from docs/dev/python/getting-started/tutorial/table_api_tutorial.zh.md
rename to docs/dev/python/table_api_tutorial.zh.md
index f94ab72..a780c4b 100644
--- a/docs/dev/python/getting-started/tutorial/table_api_tutorial.zh.md
+++ b/docs/dev/python/table_api_tutorial.zh.md
@@ -1,6 +1,6 @@
 ---
 title: "Table API 教程"
-nav-parent_id: python_tutorial
+nav-parent_id: python
 nav-pos: 20
 ---
 <!--
@@ -27,11 +27,11 @@ under the License.
 
 在该教程中,我们会从零开始,介绍如何创建一个Flink Python项目及运行Python Table API程序。
 
-关于Python执行环境的要求,请参考Python Table API[环境安装]({% link dev/python/getting-started/installation.zh.md %})。
+关于Python执行环境的要求,请参考Python Table API[环境安装]({% link dev/python/installation.zh.md %})。
 
 ## 创建一个Python Table API项目
 
-首先,使用您最熟悉的IDE创建一个Python项目,然后安装PyFlink包,请参考[PyFlink安装指南]({% link dev/python/getting-started/installation.zh.md %}#pyflink-安装)了解详细信息。
+首先,使用您最熟悉的IDE创建一个Python项目,然后安装PyFlink包,请参考[PyFlink安装指南]({% link dev/python/installation.zh.md %}#pyflink-安装)了解详细信息。
 
 ## 编写一个Flink Python Table API程序
 
diff --git a/docs/dev/python/user-guide/index.md b/docs/dev/python/user-guide/index.md
deleted file mode 100644
index 3ef5010..0000000
--- a/docs/dev/python/user-guide/index.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: "User Guide"
-nav-id: python_user_guide
-nav-parent_id: python
-nav-pos: 20
----
-<!--
-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.
--->
diff --git a/docs/dev/python/user-guide/index.zh.md b/docs/dev/python/user-guide/index.zh.md
deleted file mode 100644
index bef6459..0000000
--- a/docs/dev/python/user-guide/index.zh.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: "用户指南"
-nav-id: python_user_guide
-nav-parent_id: python
-nav-pos: 20
----
-<!--
-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.
--->
diff --git a/docs/dev/python/user-guide/table/index.md b/docs/dev/python/user-guide/table/index.md
deleted file mode 100644
index c8ec7a6..0000000
--- a/docs/dev/python/user-guide/table/index.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: "Table API"
-nav-id: python_tableapi
-nav-parent_id: python_user_guide
-nav-pos: 20
----
-<!--
-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.
--->
-
-Python Table API allows users to develop [Table API]({% link dev/table/tableApi.md %}) programs using the Python language.
-Apache Flink has provided Python Table API support since 1.9.0.
-
-## Where to go next?
-
-- [Installation]({% link dev/python/getting-started/installation.md %}): Introduction of how to set up the Python Table API execution environment.
-- [Python Data Types]({% link dev/python/user-guide/table/python_types.md %}): Introduction of Python data types.
-- [User-defined Functions]({% link dev/python/user-guide/table/udfs/python_udfs.md %}): Explanation of how to define Python user-defined functions.
-- [Vectorized User-defined Functions]({% link dev/python/user-guide/table/udfs/vectorized_python_udfs.md %}): Explanation of how to define vectorized Python user-defined functions.
-- [Conversions between PyFlink Table and Pandas DataFrame]({% link dev/python/user-guide/table/conversion_of_pandas.md %}): Explanation of how to convert between PyFlink Table and Pandas DataFrame.
-- [Dependency Management]({% link dev/python/user-guide/table/dependency_management.md %}): Specification of how to use third-part dependencies in a Python Table API program.
-- [Configuration]({% link dev/python/user-guide/table/python_config.md %}): Description of the config options available for Python Table API programs.
-- [Common Questions]({% link dev/python/faq.md %})
diff --git a/docs/dev/table/functions/udfs.md b/docs/dev/table/functions/udfs.md
index f32cbde..35cc645 100644
--- a/docs/dev/table/functions/udfs.md
+++ b/docs/dev/table/functions/udfs.md
@@ -722,7 +722,7 @@ env.sqlQuery("SELECT HashFunction(myField) FROM MyTable")
 
 </div>
 
-If you intend to implement or call functions in Python, please refer to the [Python Scalar Functions]({% link dev/python/user-guide/table/udfs/python_udfs.md %}#scalar-functions) documentation for more details.
+If you intend to implement or call functions in Python, please refer to the [Python Scalar Functions]({% link dev/python/table-api-users-guide/udfs/python_udfs.md %}#scalar-functions) documentation for more details.
 
 {% top %}
 
@@ -880,7 +880,7 @@ env.sqlQuery(
 
 If you intend to implement functions in Scala, do not implement a table function as a Scala `object`. Scala `object`s are singletons and will cause concurrency issues.
 
-If you intend to implement or call functions in Python, please refer to the [Python Table Functions]({% link dev/python/user-guide/table/udfs/python_udfs.md %}#table-functions) documentation for more details.
+If you intend to implement or call functions in Python, please refer to the [Python Table Functions]({% link dev/python/table-api-users-guide/udfs/python_udfs.md %}#table-functions) documentation for more details.
 
 {% top %}
 
diff --git a/docs/dev/table/functions/udfs.zh.md b/docs/dev/table/functions/udfs.zh.md
index ab2e8ee..18ad370 100644
--- a/docs/dev/table/functions/udfs.zh.md
+++ b/docs/dev/table/functions/udfs.zh.md
@@ -709,7 +709,7 @@ env.sqlQuery("SELECT HashFunction(myField) FROM MyTable")
 
 </div>
 
-如果你打算使用 Python 实现或调用标量函数,详情可参考 [Python 标量函数]({% link dev/python/user-guide/table/udfs/python_udfs.zh.md %}#标量函数scalarfunction)。
+如果你打算使用 Python 实现或调用标量函数,详情可参考 [Python 标量函数]({% link dev/python/table-api-users-guide/udfs/python_udfs.zh.md %}#标量函数scalarfunction)。
 
 {% top %}
 
@@ -867,7 +867,7 @@ env.sqlQuery(
 
 如果你打算使用 Scala,不要把表值函数声明为 Scala `object`,Scala `object` 是单例对象,将导致并发问题。
 
-如果你打算使用 Python 实现或调用表值函数,详情可参考 [Python 表值函数]({% link dev/python/user-guide/table/udfs/python_udfs.zh.md %}#表值函数)。
+如果你打算使用 Python 实现或调用表值函数,详情可参考 [Python 表值函数]({% link dev/python/table-api-users-guide/udfs/python_udfs.zh.md %}#表值函数)。
 
 {% top %}
 
diff --git a/docs/dev/table/sql/alter.md b/docs/dev/table/sql/alter.md
index 760fcaa..c5524d2 100644
--- a/docs/dev/table/sql/alter.md
+++ b/docs/dev/table/sql/alter.md
@@ -155,7 +155,7 @@ Alter a catalog function with the new identifier and optional language tag. If a
 
 If the language tag is JAVA/SCALA, the identifier is the full classpath of the UDF. For the implementation of Java/Scala UDF, please refer to [User-defined Functions]({{ site.baseurl }}/dev/table/functions/udfs.html) for more details.
 
-If the language tag is PYTHON, the identifier is the fully qualified name of the UDF, e.g. `pyflink.table.tests.test_udf.add`. For the implementation of Python UDF, please refer to [Python UDFs]({% link dev/python/user-guide/table/udfs/python_udfs.md %}) for more details.
+If the language tag is PYTHON, the identifier is the fully qualified name of the UDF, e.g. `pyflink.table.tests.test_udf.add`. For the implementation of Python UDF, please refer to [Python UDFs]({% link dev/python/table-api-users-guide/udfs/python_udfs.md %}) for more details.
 
 **TEMPORARY**
 
diff --git a/docs/dev/table/sql/alter.zh.md b/docs/dev/table/sql/alter.zh.md
index 9992753..5428f35 100644
--- a/docs/dev/table/sql/alter.zh.md
+++ b/docs/dev/table/sql/alter.zh.md
@@ -155,7 +155,7 @@ ALTER [TEMPORARY|TEMPORARY SYSTEM] FUNCTION
 
 如果 language tag 是 JAVA 或者 SCALA ,则 identifier 是 UDF 实现类的全限定名。关于 JAVA/SCALA UDF 的实现,请参考 [自定义函数]({{ site.baseurl }}/zh/dev/table/functions/udfs.html)。
 
-如果 language tag 是 PYTHON , 则 identifier 是 UDF 对象的全限定名,例如 `pyflink.table.tests.test_udf.add`。关于 PYTHON UDF 的实现,请参考 [Python UDFs]({% link dev/python/user-guide/table/udfs/python_udfs.zh.md %})。
+如果 language tag 是 PYTHON , 则 identifier 是 UDF 对象的全限定名,例如 `pyflink.table.tests.test_udf.add`。关于 PYTHON UDF 的实现,请参考 [Python UDFs]({% link dev/python/table-api-users-guide/udfs/python_udfs.zh.md %})。
 
 **TEMPORARY**
 
diff --git a/docs/dev/table/sql/create.md b/docs/dev/table/sql/create.md
index a7e02b0..5a449b5 100644
--- a/docs/dev/table/sql/create.md
+++ b/docs/dev/table/sql/create.md
@@ -407,7 +407,7 @@ Create a catalog function that has catalog and database namespaces with the iden
 
 If the language tag is JAVA/SCALA, the identifier is the full classpath of the UDF. For the implementation of Java/Scala UDF, please refer to [User-defined Functions]({{ site.baseurl }}/dev/table/functions/udfs.html) for more details.
 
-If the language tag is PYTHON, the identifier is the fully qualified name of the UDF, e.g. `pyflink.table.tests.test_udf.add`. For the implementation of Python UDF, please refer to [Python UDFs]({% link dev/python/user-guide/table/udfs/python_udfs.md %}) for more details.
+If the language tag is PYTHON, the identifier is the fully qualified name of the UDF, e.g. `pyflink.table.tests.test_udf.add`. For the implementation of Python UDF, please refer to [Python UDFs]({% link dev/python/table-api-users-guide/udfs/python_udfs.md %}) for more details.
 
 **TEMPORARY**
 
diff --git a/docs/dev/table/sql/create.zh.md b/docs/dev/table/sql/create.zh.md
index 188c10f..c0401d9 100644
--- a/docs/dev/table/sql/create.zh.md
+++ b/docs/dev/table/sql/create.zh.md
@@ -407,7 +407,7 @@ CREATE [TEMPORARY|TEMPORARY SYSTEM] FUNCTION
 
 如果 language tag 是 JAVA 或者 SCALA ,则 identifier 是 UDF 实现类的全限定名。关于 JAVA/SCALA UDF 的实现,请参考 [自定义函数]({{ site.baseurl }}/zh/dev/table/functions/udfs.html)。
 
-如果 language tag 是 PYTHON ,则 identifier 是 UDF 对象的全限定名,例如 `pyflink.table.tests.test_udf.add`。关于 PYTHON UDF 的实现,请参考 [Python UDFs]({% link dev/python/user-guide/table/udfs/python_udfs.zh.md %})。
+如果 language tag 是 PYTHON ,则 identifier 是 UDF 对象的全限定名,例如 `pyflink.table.tests.test_udf.add`。关于 PYTHON UDF 的实现,请参考 [Python UDFs]({% link dev/python/table-api-users-guide/udfs/python_udfs.zh.md %})。
 
 **TEMPORARY**
 
diff --git a/docs/dev/table/sqlClient.md b/docs/dev/table/sqlClient.md
index 5591440..4acecbe 100644
--- a/docs/dev/table/sqlClient.md
+++ b/docs/dev/table/sqlClient.md
@@ -469,7 +469,7 @@ The SQL Client allows users to create custom, user-defined functions to be used
 
 In order to provide a Java/Scala user-defined function, you need to first implement and compile a function class that extends `ScalarFunction`, `AggregateFunction` or `TableFunction` (see [User-defined Functions]({{ site.baseurl }}/dev/table/functions/udfs.html)). One or more functions can then be packaged into a dependency JAR for the SQL Client.
 
-In order to provide a Python user-defined function, you need to write a Python function and decorate it with the `pyflink.table.udf.udf` or `pyflink.table.udf.udtf` decorator (see [Python UDFs]({% link dev/python/user-guide/table/udfs/python_udfs.md %})). One or more functions can then be placed into a Python file. The Python file and related dependencies need to be specified via the configuration (see [Python Configuration]({% link dev/python/user-guide/table/python_config.md %})) in en [...]
+In order to provide a Python user-defined function, you need to write a Python function and decorate it with the `pyflink.table.udf.udf` or `pyflink.table.udf.udtf` decorator (see [Python UDFs]({% link dev/python/table-api-users-guide/udfs/python_udfs.md %})). One or more functions can then be placed into a Python file. The Python file and related dependencies need to be specified via the configuration (see [Python Configuration]({% link dev/python/table-api-users-guide/python_config.md  [...]
 
 All functions must be declared in an environment file before being called. For each item in the list of `functions`, one must specify
 
diff --git a/docs/dev/table/sqlClient.zh.md b/docs/dev/table/sqlClient.zh.md
index 540b3a1..69df6f0 100644
--- a/docs/dev/table/sqlClient.zh.md
+++ b/docs/dev/table/sqlClient.zh.md
@@ -469,7 +469,7 @@ SQL 客户端允许用户创建用户自定义的函数来进行 SQL 查询。
 
 为提供 Java/Scala 的自定义函数,你首先需要实现和编译函数类,该函数继承自 `ScalarFunction`、 `AggregateFunction` 或 `TableFunction`(见[自定义函数]({{ site.baseurl }}/zh/dev/table/functions/udfs.html))。一个或多个函数可以打包到 SQL 客户端的 JAR 依赖中。
 
-为提供 Python 的自定义函数,你需要编写 Python 函数并且用装饰器 `pyflink.table.udf.udf` 或 `pyflink.table.udf.udtf` 来装饰(见 [Python UDFs]({% link dev/python/user-guide/table/udfs/python_udfs.zh.md %})))。Python 文件中可以放置一个或多个函数。其Python 文件和相关依赖需要通过在环境配置文件中或命令行选项(见 [命令行用法]({{ site.baseurl }}/zh/ops/cli.html#usage))配置中特别指定(见 [Python 配置]({% link dev/python/user-guide/table/python_config.zh.md %}))。
+为提供 Python 的自定义函数,你需要编写 Python 函数并且用装饰器 `pyflink.table.udf.udf` 或 `pyflink.table.udf.udtf` 来装饰(见 [Python UDFs]({% link dev/python/table-api-users-guide/udfs/python_udfs.zh.md %})))。Python 文件中可以放置一个或多个函数。其Python 文件和相关依赖需要通过在环境配置文件中或命令行选项(见 [命令行用法]({{ site.baseurl }}/zh/ops/cli.html#usage))配置中特别指定(见 [Python 配置]({% link dev/python/table-api-users-guide/python_config.zh.md %}))。
 
 所有函数在被调用之前,必须在环境配置文件中提前声明。`functions` 列表中每个函数类都必须指定
 
diff --git a/docs/ops/python_shell.md b/docs/ops/python_shell.md
index 1bb058e..399f51b 100644
--- a/docs/ops/python_shell.md
+++ b/docs/ops/python_shell.md
@@ -27,7 +27,7 @@ It can be used in a local setup as well as in a cluster setup.
 See the [local setup page](deployment/local.html) for more information about how to setup a local Flink.
 You can also [build a local setup from source](../flinkDev/building.html).
 
-<span class="label label-info">Note</span> The Python Shell will run the command “python”. Please refer to the Python Table API [installation guide]({% link dev/python/getting-started/installation.md %}) on how to set up the Python execution environments.
+<span class="label label-info">Note</span> The Python Shell will run the command “python”. Please refer to the Python Table API [installation guide]({% link dev/python/installation.md %}) on how to set up the Python execution environments.
 
 To use the shell with an integrated Flink cluster, you can simply install PyFlink with PyPi and execute the shell directly:
 
diff --git a/docs/ops/python_shell.zh.md b/docs/ops/python_shell.zh.md
index 9189003..d8e1cf1 100644
--- a/docs/ops/python_shell.zh.md
+++ b/docs/ops/python_shell.zh.md
@@ -27,7 +27,7 @@ Flink附带了一个集成的交互式Python Shell。
 本地安装Flink,请看[本地安装](deployment/local.html)页面。
 您也可以从源码安装Flink,请看[从源码构建 Flink](../flinkDev/building.html)页面。
 
-<span class="label label-info">注意</span> Python Shell会调用“python”命令。关于Python执行环境的要求,请参考Python Table API[环境安装]({% link dev/python/getting-started/installation.zh.md %})。
+<span class="label label-info">注意</span> Python Shell会调用“python”命令。关于Python执行环境的要求,请参考Python Table API[环境安装]({% link dev/python/installation.zh.md %})。
 
 你可以通过PyPi安装PyFlink,然后使用Python Shell:
 
diff --git a/docs/try-flink/python_table_api.md b/docs/try-flink/python_table_api.md
index 2583c9f..31bd82f 100644
--- a/docs/try-flink/python_table_api.md
+++ b/docs/try-flink/python_table_api.md
@@ -28,4 +28,4 @@ under the License.
 
 ## Python Table API tutorial
 
-You can refer to the [Python Table API Tutorial]({% link dev/python/getting-started/tutorial/table_api_tutorial.md %}) Docs for more details.
+You can refer to the [Python Table API Tutorial]({% link dev/python/table_api_tutorial.md %}) Docs for more details.
diff --git a/docs/try-flink/python_table_api.zh.md b/docs/try-flink/python_table_api.zh.md
index 8952f5f..3d2dabb 100644
--- a/docs/try-flink/python_table_api.zh.md
+++ b/docs/try-flink/python_table_api.zh.md
@@ -29,4 +29,4 @@ under the License.
 
 ## Python Table API 教程
 
-详细信息请参考 [Python Table API 教程]({% link dev/python/getting-started/tutorial/table_api_tutorial.zh.md %})文档
+详细信息请参考 [Python Table API 教程]({% link dev/python/table_api_tutorial.zh.md %})文档