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

haonan pushed a commit to branch NewDoc
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/NewDoc by this push:
     new 9178d89  change table format to md
9178d89 is described below

commit 9178d8947e164631d10ca49f37a9b585f64b7c13
Author: HTHou <[email protected]>
AuthorDate: Thu Mar 4 14:55:15 2021 +0800

    change table format to md
---
 .../UserGuide/Ecosystem Integration/Spark IoTDB.md |  41 ++-
 .../Ecosystem Integration/Spark TsFile.md          | 171 ++++++-------
 docs/zh/UserGuide/System Tools/Sync Tool.md        | 276 ++++++++-------------
 docs/zh/UserGuide/System Tools/Watermark Tool.md   |  16 +-
 4 files changed, 200 insertions(+), 304 deletions(-)

diff --git a/docs/zh/UserGuide/Ecosystem Integration/Spark IoTDB.md 
b/docs/zh/UserGuide/Ecosystem Integration/Spark IoTDB.md
index ff182d1..4c83fbf 100644
--- a/docs/zh/UserGuide/Ecosystem Integration/Spark IoTDB.md    
+++ b/docs/zh/UserGuide/Ecosystem Integration/Spark IoTDB.md    
@@ -33,7 +33,7 @@ Spark和Java所需的版本如下:
 
 mvn clean scala:compile compile install
 
-#### 1. Maven依赖
+#### Maven依赖
 
 ```
     <dependency>
@@ -43,7 +43,7 @@ mvn clean scala:compile compile install
     </dependency>
 ```
 
-#### 2. Spark-shell用户指南
+#### Spark-shell用户指南
 
 ```
 spark-shell --jars 
spark-iotdb-connector-0.10.0.jar,iotdb-jdbc-0.10.0-jar-with-dependencies.jar
@@ -73,31 +73,26 @@ df.printSchema()
 df.show()
 ```
 
-#### 3. 模式推断
+#### 模式推断
 
 以下TsFile结构为例:TsFile模式中有三个度量:状态,温度和硬件。 这三种测量的基本信息如下:
 
-<center>
-<table style="text-align:center">
-       <tr><th colspan="2">名称</th><th colspan="2">类型</th><th 
colspan="2">编码</th></tr>
-       <tr><td colspan="2">状态</td><td colspan="2">Boolean</td><td 
colspan="2">PLAIN</td></tr>
-       <tr><td colspan="2">温度</td><td colspan="2">Float</td><td 
colspan="2">RLE</td></tr>
-       <tr><td colspan="2">硬件</td><td colspan="2">Text</td><td 
colspan="2">PLAIN</td></tr>
-</table>
-</center>
+|名称|类型|编码|
+|--- |--- |--- |
+|状态|Boolean|PLAIN|
+|温度|Float|RLE|
+|硬件|Text|PLAIN|
 
 TsFile中的现有数据如下:
 
-<center>
-<table style="text-align:center">
-       <tr><th colspan="4">device:root.ln.wf01.wt01</th><th 
colspan="4">device:root.ln.wf02.wt02</th></tr>
-       <tr><th colspan="2">状态</th><th colspan="2">温度</th><th 
colspan="2">硬件</th><th colspan="2">状态</th></tr>
-       
<tr><th>时间</th><th>值</td><th>时间</th><th>值</th><th>时间</th><th>值</th><th>时间</th><th>值</th></tr>
-       
<tr><td>1</td><td>True</td><td>1</td><td>2.2</td><td>2</td><td>"aaa"</td><td>1</td><td>True</td></tr>
-       
<tr><td>3</td><td>True</td><td>2</td><td>2.2</td><td>4</td><td>"bbb"</td><td>2</td><td>False</td></tr>
-       <tr><td>5</td><td> False 
</td><td>3</td><td>2.1</td><td>6</td><td>"ccc"</td><td>4</td><td>True</td></tr>
-</table>
-</center>
+ * d1:root.ln.wf01.wt01
+ * d2:root.ln.wf02.wt02
+
+time|d1.status|time|d1.temperature |time       | d2.hardware   |time|d2.status
+---- | ---- | ---- | ---- | ---- | ----  | ---- | ---- | ---- 
+1|True |1|2.2|2|"aaa"|1|True
+3|True |2|2.2|4|"bbb"|2|False
+5|False|3      |2.1|6  |"ccc"|4|True
 
 
 宽(默认)表形式如下:
@@ -124,7 +119,7 @@ TsFile中的现有数据如下:
 | 5    | root.ln.wf02.wt01 | false | null | null |
 | 6    | root.ln.wf02.wt02 | null  | ccc  | null |
 
-#### 4. 在宽和窄表之间转换
+#### 在宽和窄表之间转换
 
    * 从宽到窄
 
@@ -143,7 +138,7 @@ import org.apache.iotdb.spark.db._
 val wide_df = Transformer.toWideForm(spark, narrow_df)
 ```
 
- * 5. Java用户指南
+#### Java用户指南
 
 ```
 import org.apache.spark.sql.Dataset;
diff --git a/docs/zh/UserGuide/Ecosystem Integration/Spark TsFile.md 
b/docs/zh/UserGuide/Ecosystem Integration/Spark TsFile.md
index 6a53c1f..353c999 100644
--- a/docs/zh/UserGuide/Ecosystem Integration/Spark TsFile.md   
+++ b/docs/zh/UserGuide/Ecosystem Integration/Spark TsFile.md   
@@ -21,7 +21,7 @@
 
 ## Spark-TsFile
 
-### 1. About TsFile-Spark-Connector
+### About TsFile-Spark-Connector
 
 TsFile-Spark-Connector对Tsfile类型的外部数据源实现Spark的支持。 这使用户可以通过Spark读取,写入和查询Tsfile。
 
@@ -31,7 +31,7 @@ TsFile-Spark-Connector对Tsfile类型的外部数据源实现Spark的支持。 
 - 将本地文件系统或hdfs中特定目录中的所有文件加载到Spark中
 - 将数据从Spark写入TsFile
 
-### 2. System Requirements
+### System Requirements
 
 | Spark Version | Scala Version | Java Version | TsFile   |
 | ------------- | ------------- | ------------ | -------- |
@@ -39,7 +39,7 @@ TsFile-Spark-Connector对Tsfile类型的外部数据源实现Spark的支持。 
 
 > 注意:有关如何下载和使用TsFile的更多信息,请参见以下链接:https://github.com/apache/iotdb/tree/master/tsfile
 
-### 3. 快速开始
+### 快速开始
 
 #### 本地模式
 
@@ -67,7 +67,7 @@ TsFile-Spark-Connector对Tsfile类型的外部数据源实现Spark的支持。 
 - 多个jar包用逗号分隔,没有任何空格。
 - 有关如何获取TsFile的信息,请参见https://github.com/apache/iotdb/tree/master/tsfile。
 
-### 4. 数据类型对应
+### 数据类型对应
 
 | TsFile数据类型 | SparkSQL数据类型 |
 | -------------- | ---------------- |
@@ -78,31 +78,27 @@ TsFile-Spark-Connector对Tsfile类型的外部数据源实现Spark的支持。 
 | DOUBLE         | DoubleType       |
 | TEXT           | StringType       |
 
-### 5. 模式推断
+### 模式推断
 
 显示TsFile的方式取决于架构。 以以下TsFile结构为例:TsFile模式中有三个度量:状态,温度和硬件。 这三种测量的基本信息如下:
 
-<center>
-<table style="text-align:center">
-       <tr><th colspan="2">名称</th><th colspan="2">类型</th><th 
colspan="2">编码</th></tr>
-       <tr><td colspan="2">状态</td><td colspan="2">Boolean</td><td 
colspan="2">PLAIN</td></tr>
-       <tr><td colspan="2">温度</td><td colspan="2">Float</td><td 
colspan="2">RLE</td></tr>
-       <tr><td colspan="2">硬件</td><td colspan="2">Text</td><td 
colspan="2">PLAIN</td></tr>
-</table>
-</center>
+|名称 | 类型 | 编码 |
+| ---- | ---- | ---- | 
+|状态 | Boolean|PLAIN|
+|温度 | Float|RLE|
+|硬件|Text|PLAIN|
+
 
 TsFile中的现有数据如下:
 
-<center>
-<table style="text-align:center">
-       <tr><th colspan="4">device:root.ln.wf01.wt01</th><th 
colspan="4">device:root.ln.wf02.wt02</th></tr>
-       <tr><th colspan="2">status</th><th colspan="2">temperature</th><th 
colspan="2">hardware</th><th colspan="2">status</th></tr>
-       
<tr><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th><th>time</th><th>value</th></tr>
-       
<tr><td>1</td><td>True</td><td>1</td><td>2.2</td><td>2</td><td>"aaa"</td><td>1</td><td>True</td></tr>
-       
<tr><td>3</td><td>True</td><td>2</td><td>2.2</td><td>4</td><td>"bbb"</td><td>2</td><td>False</td></tr>
-       <tr><td>5</td><td> False 
</td><td>3</td><td>2.1</td><td>6</td><td>"ccc"</td><td>4</td><td>True</td></tr>
-</table>
-</center>
+ * d1:root.ln.wf01.wt01
+ * d2:root.ln.wf02.wt02
+
+time|d1.status|time|d1.temperature |time       | d2.hardware   |time|d2.status
+---- | ---- | ---- | ---- | ---- | ----  | ---- | ---- | ---- 
+1|True |1|2.2|2|"aaa"|1|True
+3|True |2|2.2|4|"bbb"|2|False
+5|False|3      |2.1|6  |"ccc"|4|True
 
 相应的SparkSQL表如下:
 
@@ -129,7 +125,7 @@ TsFile中的现有数据如下:
 | 6    | root.ln.wf02.wt02 | null   | ccc      | null        |
 
 
-### 6. Scala API
+### Scala API
 
 注意:请记住预先分配必要的读写权限。
 
@@ -235,30 +231,24 @@ newDf.show
 
 显示TsFile的方式与TsFile Schema有关。 以以下TsFile结构为例:TsFile架构中有三个度量:状态,温度和硬件。 
这三个度量的基本信息如下:
 
-<center>
-<table style="text-align:center">
-       <tr><th colspan="2">名称</th><th colspan="2">类型</th><th 
colspan="2">编码</th></tr>
-       <tr><td colspan="2">状态</td><td colspan="2">Boolean</td><td 
colspan="2">PLAIN</td></tr>
-       <tr><td colspan="2">温度</td><td colspan="2">Float</td><td 
colspan="2">RLE</td></tr>
-       <tr><td colspan="2">硬件</td><td colspan="2">Text</td><td 
colspan="2">PLAIN</td></tr>
-</table>
-<span>测量的基本信息</span>
-</center>
+|名称 | 类型 | 编码 |
+| ---- | ---- | ---- | 
+|状态 | Boolean|PLAIN|
+|温度 | Float|RLE|
+|硬件|Text|PLAIN|
 
 文件中的现有数据如下:
 
-<center>
-<table style="text-align:center">
-       <tr><th colspan="4">delta\_object:root.ln.wf01.wt01</th><th 
colspan="4">delta\_object:root.ln.wf02.wt02</th><th 
colspan="4">delta\_object:root.sgcc.wf03.wt01</th></tr>
-       <tr><th colspan="2">status</th><th colspan="2">temperature</th><th 
colspan="2">hardware</th><th colspan="2">status</th><th 
colspan="2">status</th><th colspan="2">temperature</th></tr>
-       
<tr><th>time</th><th>value</td><th>time</th><th>value</td><th>time</th><th>value</th><th>time</th><th>value</td><th>time</th><th>value</td><th>time</th><th>value</th></tr>
-       
<tr><td>1</td><td>True</td><td>1</td><td>2.2</td><td>2</td><td>"aaa"</td><td>1</td><td>True</td><td>2</td><td>True</td><td>3</td><td>3.3</td></tr>
-       
<tr><td>3</td><td>True</td><td>2</td><td>2.2</td><td>4</td><td>"bbb"</td><td>2</td><td>False</td><td>3</td><td>True</td><td>6</td><td>6.6</td></tr>
-       <tr><td>5</td><td> False 
</td><td>3</td><td>2.1</td><td>6</td><td>"ccc"</td><td>4</td><td>True</td><td>4</td><td>True</td><td>8</td><td>8.8</td></tr>
-       <tr><td>7</td><td> True 
</td><td>4</td><td>2.0</td><td>8</td><td>"ddd"</td><td>5</td><td>False</td><td>6</td><td>True</td><td>9</td><td>9.9</td></tr>
-</table>
-<span>一组时间序列数据</span>
-</center>
+ * delta_object1: root.ln.wf01.wt01
+ * delta_object2: root.ln.wf02.wt02
+ * delta_object3: :root.sgcc.wf03.wt01
+
+time|delta_object1.status|time|delta_object1.temperature |time | 
delta_object2.hardware        |time|delta_object2.status 
|time|delta_object3.status|time|delta_object3.temperature 
+---- | ---- | ---- | ---- | ---- | ----  | ---- | ---- | ---- | ----  | ---- | 
---- | ---- 
+1|True |1|2.2|2|"aaa"|1|True|2|True|3|3.3
+3|True |2|2.2|4|"bbb"|2|False|3|True|6|6.6
+5|False|3      |2.1|6  |"ccc"|4|True|4|True|8|8.8
+7|True|4|2.0|8|"ddd"|5|False|6|True|9|9.9
 
 有两种显示方法:
 
@@ -271,30 +261,27 @@ newDf.show
 
 接下来,为每个度量创建一列以存储特定数据。 SparkSQL表结构如下:
 
-<center>
-       <table style="text-align:center">
-       <tr><th>time(LongType)</th><th> 
delta\_object(StringType)</th><th>status(BooleanType)</th><th>temperature(FloatType)</th><th>hardware(StringType)</th></tr>
-       <tr><td>1</td><td> root.ln.wf01.wt01 
</td><td>True</td><td>2.2</td><td>null</td></tr>
-       <tr><td>1</td><td> root.ln.wf02.wt02 
</td><td>True</td><td>null</td><td>null</td></tr>
-       <tr><td>2</td><td> root.ln.wf01.wt01 
</td><td>null</td><td>2.2</td><td>null</td></tr>
-       <tr><td>2</td><td> root.ln.wf02.wt02 
</td><td>False</td><td>null</td><td>"aaa"</td></tr>
-       <tr><td>2</td><td> root.sgcc.wf03.wt01 
</td><td>True</td><td>null</td><td>null</td></tr>
-       <tr><td>3</td><td> root.ln.wf01.wt01 
</td><td>True</td><td>2.1</td><td>null</td></tr>
-       <tr><td>3</td><td> root.sgcc.wf03.wt01 
</td><td>True</td><td>3.3</td><td>null</td></tr>
-       <tr><td>4</td><td> root.ln.wf01.wt01 
</td><td>null</td><td>2.0</td><td>null</td></tr>
-       <tr><td>4</td><td> root.ln.wf02.wt02 
</td><td>True</td><td>null</td><td>"bbb"</td></tr>
-       <tr><td>4</td><td> root.sgcc.wf03.wt01 
</td><td>True</td><td>null</td><td>null</td></tr>
-       <tr><td>5</td><td> root.ln.wf01.wt01 
</td><td>False</td><td>null</td><td>null</td></tr>
-       <tr><td>5</td><td> root.ln.wf02.wt02 
</td><td>False</td><td>null</td><td>null</td></tr>
-       <tr><td>5</td><td> root.sgcc.wf03.wt01 
</td><td>True</td><td>null</td><td>null</td></tr>
-       <tr><td>6</td><td> root.ln.wf02.wt02 
</td><td>null</td><td>null</td><td>"ccc"</td></tr>
-       <tr><td>6</td><td> root.sgcc.wf03.wt01 
</td><td>null</td><td>6.6</td><td>null</td></tr>
-       <tr><td>7</td><td> root.ln.wf01.wt01 
</td><td>True</td><td>null</td><td>null</td></tr>
-       <tr><td>8</td><td> root.ln.wf02.wt02 
</td><td>null</td><td>null</td><td>"ddd"</td></tr>
-       <tr><td>8</td><td> root.sgcc.wf03.wt01 
</td><td>null</td><td>8.8</td><td>null</td></tr>
-       <tr><td>9</td><td> root.sgcc.wf03.wt01 
</td><td>null</td><td>9.9</td><td>null</td></tr>
-       </table>
-</center>
+|time(LongType)|delta\_object(StringType)|status(BooleanType)|temperature(FloatType)|hardware(StringType)|
+|--- |--- |--- |--- |--- |
+|1|root.ln.wf01.wt01|True|2.2|null|
+|1|root.ln.wf02.wt02|True|null|null|
+|2|root.ln.wf01.wt01|null|2.2|null|
+|2|root.ln.wf02.wt02|False|null|"aaa"|
+|2|root.sgcc.wf03.wt01|True|null|null|
+|3|root.ln.wf01.wt01|True|2.1|null|
+|3|root.sgcc.wf03.wt01|True|3.3|null|
+|4|root.ln.wf01.wt01|null|2.0|null|
+|4|root.ln.wf02.wt02|True|null|"bbb"|
+|4|root.sgcc.wf03.wt01|True|null|null|
+|5|root.ln.wf01.wt01|False|null|null|
+|5|root.ln.wf02.wt02|False|null|null|
+|5|root.sgcc.wf03.wt01|True|null|null|
+|6|root.ln.wf02.wt02|null|null|"ccc"|
+|6|root.sgcc.wf03.wt01|null|6.6|null|
+|7|root.ln.wf01.wt01|True|null|null|
+|8|root.ln.wf02.wt02|null|null|"ddd"|
+|8|root.sgcc.wf03.wt01|null|8.8|null|
+|9|root.sgcc.wf03.wt01|null|9.9|null|
 
 
 
@@ -306,31 +293,27 @@ newDf.show
 
 那么SparkSQL表结构如下:
 
-<center>
-       <table style="text-align:center">
-       <tr><th>time(LongType)</th><th> group(StringType)</th><th> 
field(StringType)</th><th> 
device(StringType)</th><th>status(BooleanType)</th><th>temperature(FloatType)</th><th>hardware(StringType)</th></tr>
-       <tr><td>1</td><td> ln </td><td> wf01 </td><td> wt01 
</td><td>True</td><td>2.2</td><td>null</td></tr>
-       <tr><td>1</td><td> ln </td><td> wf02 </td><td> wt02 
</td><td>True</td><td>null</td><td>null</td></tr>
-       <tr><td>2</td><td> ln </td><td> wf01 </td><td> wt01 
</td><td>null</td><td>2.2</td><td>null</td></tr>
-       <tr><td>2</td><td> ln </td><td> wf02 </td><td> wt02 
</td><td>False</td><td>null</td><td>"aaa"</td></tr>
-       <tr><td>2</td><td> sgcc </td><td> wf03 </td><td> wt01 
</td><td>True</td><td>null</td><td>null</td></tr>
-       <tr><td>3</td><td> ln </td><td> wf01 </td><td> wt01 
</td><td>True</td><td>2.1</td><td>null</td></tr>
-       <tr><td>3</td><td> sgcc </td><td> wf03 </td><td> wt01 
</td><td>True</td><td>3.3</td><td>null</td></tr>
-       <tr><td>4</td><td> ln </td><td> wf01 </td><td> wt01 
</td><td>null</td><td>2.0</td><td>null</td></tr>
-       <tr><td>4</td><td> ln </td><td> wf02 </td><td> wt02 
</td><td>True</td><td>null</td><td>"bbb"</td></tr>
-       <tr><td>4</td><td> sgcc </td><td> wf03 </td><td> wt01 
</td><td>True</td><td>null</td><td>null</td></tr>
-       <tr><td>5</td><td> ln </td><td> wf01 </td><td> wt01 
</td><td>False</td><td>null</td><td>null</td></tr>
-       <tr><td>5</td><td> ln </td><td> wf02 </td><td> wt02 
</td><td>False</td><td>null</td><td>null</td></tr>
-       <tr><td>5</td><td> sgcc </td><td> wf03 </td><td> wt01 
</td><td>True</td><td>null</td><td>null</td></tr>
-       <tr><td>6</td><td> ln </td><td> wf02 </td><td> wt02 
</td><td>null</td><td>null</td><td>"ccc"</td></tr>
-       <tr><td>6</td><td> sgcc </td><td> wf03 </td><td> wt01 
</td><td>null</td><td>6.6</td><td>null</td></tr>
-       <tr><td>7</td><td> ln </td><td> wf01 </td><td> wt01 
</td><td>True</td><td>null</td><td>null</td></tr>
-       <tr><td>8</td><td> ln </td><td> wf02 </td><td> wt02 
</td><td>null</td><td>null</td><td>"ddd"</td></tr>
-       <tr><td>8</td><td> sgcc </td><td> wf03 </td><td> wt01 
</td><td>null</td><td>8.8</td><td>null</td></tr>
-       <tr><td>9</td><td> sgcc </td><td> wf03 </td><td> wt01 
</td><td>null</td><td>9.9</td><td>null</td></tr>
-       </table>
-
-</center>
+|time(LongType)|group(StringType)|field(StringType)|device(StringType)|status(BooleanType)|temperature(FloatType)|hardware(StringType)|
+|--- |--- |--- |--- |--- |--- |--- |
+|1|ln|wf01|wt01|True|2.2|null|
+|1|ln|wf02|wt02|True|null|null|
+|2|ln|wf01|wt01|null|2.2|null|
+|2|ln|wf02|wt02|False|null|"aaa"|
+|2|sgcc|wf03|wt01|True|null|null|
+|3|ln|wf01|wt01|True|2.1|null|
+|3|sgcc|wf03|wt01|True|3.3|null|
+|4|ln|wf01|wt01|null|2.0|null|
+|4|ln|wf02|wt02|True|null|"bbb"|
+|4|sgcc|wf03|wt01|True|null|null|
+|5|ln|wf01|wt01|False|null|null|
+|5|ln|wf02|wt02|False|null|null|
+|5|sgcc|wf03|wt01|True|null|null|
+|6|ln|wf02|wt02|null|null|"ccc"|
+|6|sgcc|wf03|wt01|null|6.6|null|
+|7|ln|wf01|wt01|True|null|null|
+|8|ln|wf02|wt02|null|null|"ddd"|
+|8|sgcc|wf03|wt01|null|8.8|null|
+|9|sgcc|wf03|wt01|null|9.9|null|
 
 
TsFile-Spark-Connector可以通过SparkSQL在SparkSQL中以表的形式显示一个或多个tsfile。它还允许用户指定一个目录或使用通配符来匹配多个目录。如果有多个tsfile,那么所有tsfile中的度量值的并集将保留在表中,并且具有相同名称的度量值在默认情况下具有相同的数据类型。注意,如果存在名称相同但数据类型不同的情况,TsFile-Spark-Connector将不能保证结果的正确性。
 
diff --git a/docs/zh/UserGuide/System Tools/Sync Tool.md 
b/docs/zh/UserGuide/System Tools/Sync Tool.md
index c6554ce..dbfe686 100644
--- a/docs/zh/UserGuide/System Tools/Sync Tool.md       
+++ b/docs/zh/UserGuide/System Tools/Sync Tool.md       
@@ -49,200 +49,118 @@
 #### 同步工具接收端
 
同步工具接收端的参数配置位于IoTDB的配置文件iotdb-engine.properties中,其安装目录为$IOTDB_HOME/conf/iotdb-engine.properties。在该配置文件中,有四个参数和同步接收端有关,配置说明如下:
 
-<table>
-   <tr>
-      <td colspan="2">参数名: is_sync_enable</td>
-   </tr>
-   <tr>
-      <td width="20%">描述</td>
-      <td>同步功能开关,配置为true表示接收端允许接收同步的数据并加载,设置为false的时候表示接收端不允许接收同步的数据</td>
-   </tr>
-   <tr>
-      <td>类型</td>
-      <td>Boolean</td>
-   </tr>
-   <tr>
-      <td>默认值</td>
-      <td>false</td>
-   </tr>
-   <tr>
-      <td>改后生效方式</td>
-      <td>重启服务器生效</td>
-   </tr>
-</table>
-
-<table>
-   <tr>
-      <td colspan="2">参数名: IP_white_list</td>
-   </tr>
-   <tr>
-      <td width="20%">描述</td>
-      
<td>设置同步功能发送端IP地址的白名单,以网段的形式表示,多个网段之间用逗号分隔。发送端向接收端同步数据时,只有当该发送端IP地址处于该白名单设置的网段范围内,接收端才允许同步操作。如果白名单为空,则接收端不允许任何发送端同步数据。默认接收端接受全部IP的同步请求。</td>
-   </tr>
-   <tr>
-      <td>类型</td>
-      <td>String</td>
-   </tr>
-   <tr>
-      <td>默认值</td>
-      <td>0.0.0.0/0</td>
-   </tr>
-   <tr>
-      <td>改后生效方式</td>
-      <td>重启服务器生效</td>
-   </tr>
-</table>
-
-<table>
-   <tr>
-      <td colspan="2">参数名: sync_server_port</td>
-   </tr>
-   <tr>
-      <td width="20%">描述</td>
-      
<td>同步接收端服务器监听接口,请确认该端口不是系统保留端口并且未被占用。参数is_sync_enable设置为true时有效,参数is_sync_enable设置为false时无效</td>
-   </tr>
-   <tr>
-      <td>类型</td>
-      <td>Short Int : [0,65535]</td>
-   </tr>
-   <tr>
-      <td>默认值</td>
-      <td>5555</td>
-   </tr>
-   <tr>
-      <td>改后生效方式</td>
-      <td>重启服务器生效</td>
-   </tr>
-</table>
+
+|参数名|is_sync_enable|
+|--- |--- |
+|描述|同步功能开关,配置为true表示接收端允许接收同步的数据并加载,设置为false的时候表示接收端不允许接收同步的数据|
+|类型|Boolean|
+|默认值|false|
+|改后生效方式|重启服务器生效|
+
+|参数名|IP_white_list|
+|--- |--- |
+|描述|设置同步功能发送端IP地址的白名单,以网段的形式表示,多个网段之间用逗号分隔。发送端向接收端同步数据时,只有当该发送端IP地址处于该白名单设置的网段范围内,接收端才允许同步操作。如果白名单为空,则接收端不允许任何发送端同步数据。默认接收端接受全部IP的同步请求。|
+|类型|String|
+|默认值|0.0.0.0/0|
+|改后生效方式|重启服务器生效|
+
+|参数名|sync_server_port|
+|--- |--- |
+|描述|同步接收端服务器监听接口,请确认该端口不是系统保留端口并且未被占用。参数is_sync_enable设置为true时有效,参数is_sync_enable设置为false时无效|
+|类型|Short Int : [0,65535]|
+|默认值|5555|
+|改后生效方式|重启服务器生效|
 
 #### 同步工具发送端
 
同步功能发送端的参数配置在一个单独的配置文件中,其安装目录为```$IOTDB_HOME/conf/iotdb-sync-client.properties```。在该配置文件中,有五个参数和同步发送端有关,配置说明如下:
-<table>
-   <tr>
-      <td colspan="2">参数名: server_ip</td>
-   </tr>
-   <tr>
-      <td width="20%">描述</td>
-      <td>同步接收端的IP地址</td>
-   </tr>
-   <tr>
-      <td>类型</td>
-      <td>String</td>
-   </tr>
-   <tr>
-      <td>默认值</td>
-      <td>127.0.0.1</td>
-   </tr>
-   <tr>
-      <td>改后生效方式</td>
-      <td>重启同步功能发送端生效</td>
-   </tr>
-</table>
-
-<table>
-   <tr>
-      <td colspan="2">参数名: server_port</td>
-   </tr>
-   <tr>
-      <td width="20%">描述</td>
-      <td>同步接收端服务器监听端口,需要保证该端口和同步接收端配置的监听端口一致</td>
-   </tr>
-   <tr>
-      <td>类型</td>
-      <td>Short Int : [0,65535]</td>
-   </tr>
-   <tr>
-      <td>默认值</td>
-      <td>5555</td>
-   </tr>
-   <tr>
-      <td>改后生效方式</td>
-      <td>重启同步功能发送端生效</td>
-   </tr>
-</table>
-
-<table>
-   <tr>
-      <td colspan="2">参数名: sync_period_in_second</td>
-   </tr>
-   <tr>
-      <td width="20%">描述</td>
-      <td>同步周期,两次同步任务开始时间的间隔,单位为秒(s)</td>
-   </tr>
-   <tr>
-      <td>类型</td>
-      <td>Int : [0,2147483647]</td>
-   </tr>
-   <tr>
-      <td>默认值</td>
-      <td>600</td>
-   </tr>
-   <tr>
-      <td>改后生效方式</td>
-      <td>重启同步功能发送端生效</td>
-   </tr>
-</table>
-
-<table>
-   <tr>
-      <td colspan="2">参数名: sync_storage_groups</td>
-   </tr>
-   <tr>
-      <td width="20%">描述</td>
-      <td>进行同步的存储组列表,存储组间用逗号分隔;若列表设置为空表示同步所有存储组,默认为空</td>
-   </tr>
-   <tr>
-      <td>类型</td>
-      <td>String</td>
-   </tr>
-   <tr>
-      <td>示例</td>
-      <td>root.sg1, root.sg2</td>
-   </tr>
-   <tr>
-      <td>改后生效方式</td>
-      <td>重启同步功能发送端生效</td>
-   </tr>
-</table>
-
-<table>
-   <tr>
-      <td colspan="2">参数名: max_number_of_sync_file_retry</td>
-   </tr>
-   <tr>
-      <td width="20%">描述</td>
-      <td>发送端同步文件到接收端失败时的最大重试次数</td>
-   </tr>
-   <tr>
-      <td>类型</td>
-      <td>Int : [0,2147483647]</td>
-   </tr>
-   <tr>
-      <td>示例</td>
-      <td>5</td>
-   </tr>
-   <tr>
-      <td>改后生效方式</td>
-      <td>重启同步功能发送端生效</td>
-   </tr>
-</table>
+
+|参数名|server_ip|
+|--- |--- |
+|描述|同步接收端的IP地址|
+|类型|String|
+|默认值|127.0.0.1|
+|改后生效方式|重启同步功能发送端生效|
+
+|参数名|server_port|
+|--- |--- |
+|描述|同步接收端服务器监听端口,需要保证该端口和同步接收端配置的监听端口一致|
+|类型|Short Int : [0,65535]|
+|默认值|5555|
+|改后生效方式|重启同步功能发送端生效|
+
+|参数名|sync_period_in_second|
+|--- |--- |
+|描述|同步周期,两次同步任务开始时间的间隔,单位为秒(s)|
+|类型|Int : [0,2147483647]|
+|默认值|600|
+|改后生效方式|重启同步功能发送端生效|
+
+|参数名|sync_storage_groups|
+|--- |--- |
+|描述|进行同步的存储组列表,存储组间用逗号分隔;若列表设置为空表示同步所有存储组,默认为空|
+|类型|String|
+|示例|root.sg1, root.sg2|
+|改后生效方式|重启同步功能发送端生效|
+
+|参数名|max_number_of_sync_file_retry|
+|--- |--- |
+|描述|发送端同步文件到接收端失败时的最大重试次数|
+|类型|Int : [0,2147483647]|
+|示例|5|
+|改后生效方式|重启同步功能发送端生效|
 
 ### 使用方式
 
 #### 启动同步功能接收端
 
 1. 配置接收端的参数,例如:
-<img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; 
margin-right:auto; display:block;" 
src="https://user-images.githubusercontent.com/26211279/64172919-a32cb100-ce88-11e9-821c-33369bff6d34.png";>
-2. 启动IoTDB引擎,同步功能接收端会同时启动,启动时LOG日志会出现`IoTDB: start SYNC ServerService 
successfully`字样,表示同步接收端启动成功,如图所示:
-<img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; 
margin-right:auto; display:block;" 
src="https://user-images.githubusercontent.com/26211279/59494513-df6ef780-8ebf-11e9-83e1-ee8ae64b76d0.png";>
+
+```
+       ####################
+       ### Sync Server Configuration
+       ####################
+
+       # Whether to open the sync_server_port for receiving data from sync 
client, the default is closed
+       is_sync_enable=false
+
+       # Sync server port to listen
+       sync_server_port=5555
+
+       # White IP list of Sync client.
+       # Please use the form of network segment to present the range of IP, 
for example: 192.168.0.0/16
+       # If there are more than one IP segment, please separate them by commas
+       # The default is to allow all IP to sync
+       ip_white_list=0.0.0.0/0
+```
+
+2. 启动IoTDB引擎,同步功能接收端会同时启动,启动时LOG日志会出现`IoTDB: start SYNC ServerService 
successfully`字样,表示同步接收端启动成功.
 
 #### 关闭同步功能接收端
 
 关闭IoTDB,同步功能接收端会同时关闭。
 
 #### 启动同步功能发送端
-1. 配置发送端的参数, 如图所示:
-<img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; 
margin-right:auto; display:block;" 
src="https://user-images.githubusercontent.com/26211279/64172668-15e95c80-ce88-11e9-9700-dff7daf06bb7.png";>
+1. 配置发送端的参数
+
+```
+       # Sync receiver server address
+       server_ip=127.0.0.1
+
+       # Sync receiver server port
+       server_port=5555
+
+       # The period time of sync process, the time unit is second.
+       sync_period_in_second=600
+
+       # This parameter represents storage groups that participate in the 
synchronization task, which distinguishes each storage group by comma.
+       # If the list is empty, it means that all storage groups participate in 
synchronization.
+       # By default, it is empty list.
+       # sync_storage_groups = root.sg1, root.sg2
+
+       # The maximum number of retry when syncing a file to receiver fails.
+       max_number_of_sync_file_retry=5
+
+```
 2. 启动同步功能发送端
 
 用户可以使用```$IOTDB_HOME/bin```文件夹下的脚本启动同步功能的发送端
diff --git a/docs/zh/UserGuide/System Tools/Watermark Tool.md 
b/docs/zh/UserGuide/System Tools/Watermark Tool.md
index 4b55076..6e23347 100644
--- a/docs/zh/UserGuide/System Tools/Watermark Tool.md  
+++ b/docs/zh/UserGuide/System Tools/Watermark Tool.md  
@@ -21,9 +21,9 @@ under the License.
 
 这个工具提供了 1)IoTDB查询结果水印嵌入功能,2)可疑数据的水印检测功能。
 
-### 1. 水印嵌入
+### 水印嵌入
 
-#### 1.1 配置
+#### 配置
 
 IoTDB默认关闭水印嵌入功能。为了使用这个功能,第一步要做的事情是修改配置文件`iotdb-engine.properties`中的以下各项:
 
@@ -45,7 +45,7 @@ IoTDB默认关闭水印嵌入功能。为了使用这个功能,第一步要做
   - 
GroupBasedLSBMethod使用LSB嵌入。`embed_lsb_num`控制了允许嵌入水印的最低有效位的数量。`embed_lsb_num`越大,数值的可变化范围就越大。
 - `watermark_secret_key`, 
`watermark_bit_string`和`watermark_method`都不应该被攻击者获得。您需要自己负责配置文件`iotdb-engine.properties`的安全管理。
 
-#### 1.2 使用示例
+#### 使用示例
 
  * 第一步:创建一个新用户Alice,授予读权限,然后查询
 
@@ -161,7 +161,7 @@ sql用法:`revoke watermark_embedding from Alice`
 
 只有root用户有权限运行该指令。在root撤销Alice的水印嵌入之后,Alice的所有查询结果就又是数据库中的原始数据了。
 
-### 2. 水印检测
+### 水印检测
 
 `detect-watermark.sh` 和 `detect-watermark.bat` 是给不同平台提供的功能相同的工具脚本。
 
@@ -184,10 +184,10 @@ sql用法:`revoke watermark_embedding from Alice`
 
 - `filePath`: 您可以使用export-csv工具来生成这样的数据文件。第一行是表头, 第一列是时间列。文件中的数据示例如下:
 
-  | Time                          | root.vehicle.d0.s1 | root.vehicle.d0.s1 |
-  | ----------------------------- | ------------------ | ------------------ |
-  | 1970-01-01T08:00:00.001+08:00 | 100                | null               |
-  | ...                           | ...                | ...                |
+| Time                          | root.vehicle.d0.s1 | root.vehicle.d0.s1 |
+| ----------------------------- | ------------------ | ------------------ |
+| 1970-01-01T08:00:00.001+08:00 | 100                | null               |
+| ...                           | ...                | ...                |
 
 - `watermark_secret_key`, `watermark_bit_string`, 
`embed_row_cycle`和`embed_lsb_num`应该和水印嵌入过程使用的值保持一致。
 

Reply via email to