未验证 提交 6d0117c3 编写于 作者: J Jialin Qiao 提交者: GitHub

reorganize documents (#946)

* reorganize documents to fit the website
上级 5394f532
......@@ -19,30 +19,65 @@
-->
<!-- TOC -->
# 一、How to contribute
## Outline
- How to develop IoTDB in IDE
- IDEA
- Eclipse
- Debugging IoTDB
## Resources
<!-- /TOC -->
# How to develop IoTDB in IDE
Home Page:https://iotdb.apache.org/
There are many ways to compile the source code of IoTDB,
e.g., modify and compile with IDEA or Eclipse.
Repository:https://github.com/apache/incubator-iotdb/tree/master
Once all UTs are passed after you modify codes, your modification basically works!
Quick start:http://iotdb.apache.org/document/master/UserGuide/0-Get%20Started/1-QuickStart.html
## IDEA
Jira:https://issues.apache.org/jira/projects/IOTDB/issues/IOTDB-9?filter=allopenissues
Wiki:https://cwiki.apache.org/confluence/display/IOTDB/Home
## Subscribe mail list
Discuss: dev@iotdb.apache.org
send an email to dev-subscribe@iotdb.apache.org, then reply again.
Jira report: notifications@iotdb.apache.org
send an email to notifications-subscribe@iotdb.apache.org, then reply again.
## Issue report
Jira or Github issue.
The jira issue change will auto sent an email to notifications@iotdb.apache.org
## Contribute Documents
All documents in website is in docs in repository
Doc version -> branch
* In progress -> master
* major_version.x -> rel/major_version (e.g., 0.9.x -> rel/0.9)
Note:
* The pictures in markdown could be put into https://github.com/thulab/iotdb/issues/543 to get url
## Contribute codes
* Leave a comment in the jira issue you want to work.
* Import code style in idea: java-google-style.xml
* Submit PR, use [IOTDB-issue number] as prefix
## Import IoTDB in IDE
### IDEA
* "File" -> "Open" -> choose the root path of IoTDB source code.
* use `mvn clean compile -Dmaven.test.skip=true`to get target.
* mark directory ***server/target/generated-sources/antlr4*** as source code
* mark directory ***service-rpc/target/generated-sources/thrift*** as source code
## Eclipse
### Eclipse
Using Eclipse to develop IoTDB is also simple but requires some plugins of Eclipse.
......@@ -55,11 +90,24 @@ After the command is done, you can import IoTDB as an existing project:
- If your Eclipse version is fashion enough (e.g., you are using the latest version of Eclipse),
you can just choose menu "import" -> "Maven" -> "Existing Maven Projects".
## Debugging IoTDB
The main class of IoTDB server is `org.apache.iotdb.db.service.IoTDB`.
The main class of IoTDB cli is `org.apache.iotdb.client.Client`
(or `org.apache.iotdb.client.WinClient` on Win OS).
The client needs parameter: "-h 127.0.0.1 -p 6667 -u root -pw root"
You can run/debug IoTDB by using the two classes as the entrance.
Another way to understand IoTDB is to read and try Unit Tests.
* The implementation of RPC in the server ```server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl```
* JDBC.execute() -> TSServiceImpl.executeStatement(TSExecuteStatementReq req)
* JDBC.executeQuery() -> TSServiceImpl.executeQueryStatement(TSExecuteStatementReq req)
* Session.insert() -> TSServiceImpl.insert(TSInsertReq req)
* Storage Engine: org.apache.iotdb.db.engine.StorageEngine
* Query Engine: org.apache.iotdb.db.qp.Planner
<!--
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.
-->
# Chapter 0: Architecture
* 1-Architecture
# Chapter 1: TsFile
* 1-TsFile
* 2-Format
* 3-Write
* 4-Read
# Chapter 2: QueryEngine
* 1-QueryEngine
* 2-Planner
* 3-PlanExecutor
# Chapter 3: SchemaManager
* 1-SchemaManager
# Chapter 4: StorageEngine
* 1-StorageEngine
* 2-WAL
* 3-FlushManager
* 4-MergeManager
* 5-DataPartition
* 6-DataManipulation
# Chapter 5: DataQuery
* 1-DataQuery
* 2-SeriesReader
* 3-RawDataQuery
* 4-AggregationQuery
* 5-GroupByQuery
# Chapter 6: Tools
* 1-Sync
# Chapter 7: Connector
* 2-Hive-TsFile
* 3-Spark-TsFile
* 4-Spark-IOTDB
\ No newline at end of file
......@@ -23,9 +23,9 @@
To make this manual more practical, we will use a specific scenario example to illustrate how to operate IoTDB databases at all stages of use. See [this page](https://github.com/apache/incubator-iotdb/blob/master/docs/Documentation/OtherMaterial-Sample%20Data.txt) for a look. For convenience, we also provide you with a sample data file in real scenario to import into the IoTDB system for trial and operation.
Download file: [IoTDB-SampleData.txt](https://raw.githubusercontent.com/apache/incubator-iotdb/master/docs/Documentation/OtherMaterial-Sample%20Data.txt).
Download file: [SampleData.txt](https://github.com/apache/incubator-iotdb/tree/master/docs/SampleData.txt).
According to the data attribute layers described in [sample data](https://raw.githubusercontent.com/apache/incubator-iotdb/master/docs/Documentation/OtherMaterial-Sample%20Data.txt), we can express it as an attribute hierarchy structure based on the coverage of attributes and the subordinate relationship between them, as shown in Figure 2.1 below. Its hierarchical relationship is: power group layer - power plant layer - device layer - sensor layer. ROOT is the root node, and each node of sensor layer is called a leaf node. In the process of using IoTDB, you can directly connect the attributes on the path from ROOT node to each leaf node with ".", thus forming the name of a timeseries in IoTDB. For example, The left-most path in Figure 2.1 can generate a timeseries named `ROOT.ln.wf01.wt01.status`.
According to the data attribute layers described in the SampleData, we can express it as an attribute hierarchy structure based on the coverage of attributes and the subordinate relationship between them, as shown in Figure 2.1 below. Its hierarchical relationship is: power group layer - power plant layer - device layer - sensor layer. ROOT is the root node, and each node of sensor layer is called a leaf node. In the process of using IoTDB, you can directly connect the attributes on the path from ROOT node to each leaf node with ".", thus forming the name of a timeseries in IoTDB. For example, The left-most path in Figure 2.1 can generate a timeseries named `ROOT.ln.wf01.wt01.status`.
<center><img style="width:100%; max-width:800px; max-height:600px; margin-left:auto; margin-right:auto; display:block;" src="https://user-images.githubusercontent.com/13203019/51577327-7aa50780-1ef4-11e9-9d75-cadabb62444e.jpg"></center>
......
......@@ -29,6 +29,10 @@ IoTDB 官网:https://iotdb.apache.org/
快速上手:http://iotdb.apache.org/document/master/UserGuide/0-Get%20Started/1-QuickStart.html
Jira 任务管理:https://issues.apache.org/jira/projects/IOTDB/issues/IOTDB-9?filter=allopenissues
Wiki 文档管理:https://cwiki.apache.org/confluence/display/IOTDB/Home
## 订阅邮件列表
邮件列表是 Apache 项目进行技术讨论和用户沟通的地方,关注邮件列表就可以收到邮件了。
......@@ -39,7 +43,7 @@ IoTDB 官网:https://iotdb.apache.org/
## 新功能、Bug 反馈、改进等
所有希望 IoTDB 做的功能或修的 bug,都可以在 Jira 上提 issue:https://issues.apache.org/jira/projects/IOTDB/issues/IOTDB-9?filter=allopenissues
所有希望 IoTDB 做的功能或修的 bug,都可以在 Jira 上提 issue
可以选择 issue 类型:bug、improvement、new feature等。新建的 issue 会自动向邮件列表中同步邮件,之后的讨论可在 jira 上留言,也可以在邮件列表进行。当问题解决后请关闭 issue。
......@@ -68,7 +72,6 @@ IoTDB 所有官网上的内容都在项目根目录的 docs 中:
注意事项:
* Markdown 中的图片可上传至 https://github.com/thulab/iotdb/issues/543 获得 url
* 新增加的系统设计文档和用户手册的 md 文件,需要在英文版对应的根目录下的 0-Content.md 中增加索引
## 贡献代码
......@@ -84,16 +87,33 @@ IoTDB 所有官网上的内容都在项目根目录的 docs 中:
* 根据其他人的审阅意见进行修改,继续更新,直到合并
* 关闭 jira issue
## 二、IoTDB 调试方式
# 二、IoTDB 调试方式
## 导入代码
### Intellij idea
推荐使用 Intellij idea。```mvn clean package -DskipTests``` 之后把 ```server/target/generated-sources/antlr4``````service-rpc/target/generated-sources/thrift``` 标记为 ```Source Root```
### Eclipse
如果是 eclipse 2019 之前的版本,需要现在 IoTDB 根目录执行 `mvn eclipse:eclipse -DskipTests`
import -> General -> Existing Projects into Workspace -> 选择 IoTDB 根目录
如果 eclipse 2019 之后的版本
import -> Maven -> Existing Maven Projects
## 调试代码
* 服务器主函数:```server/src/main/java/org/apache/iotdb/db/service/IoTDB```,可以debug模式启动
* 客户端:```client/src/main/java/org/apache/iotdb/client/```,linux 用 Clinet,windows 用 WinClint,可以直接启动,需要参数"-h 127.0.0.1 -p 6667 -u root -pw root"
* 服务器的 rpc 实现(主要用来客户端和服务器通信,一般在这里开始打断点):```server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl```
* jdbc所有语句:executeStatement(TSExecuteStatementReq req)
* jdbc查询语句:executeQueryStatement(TSExecuteStatementReq req) * native写入接口:insert(TSInsertReq req)
* jdbc查询语句:executeQueryStatement(TSExecuteStatementReq req)
* native写入接口:insert(TSInsertReq req)
* 存储引擎 org.apache.iotdb.db.engine.StorageEngine
* 查询引擎 org.apache.iotdb.db.qp.QueryProcessor
* 查询引擎 org.apache.iotdb.db.qp.Planner
......@@ -19,7 +19,7 @@
-->
# How to vote for a release (如何给发布版本投票)
# 给发布版本投票
For non-Chinese users, please read https://cwiki.apache.org/confluence/display/IOTDB/Validating+a+staged+Release
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册