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`应该和水印嵌入过程使用的值保持一致。