README.md 12.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
<p>
<p align="center">
  <a href="https://tdengine.com" target="_blank">
  <img
    src="docs/assets/tdengine.svg"
    alt="TDengine"
    width="500"
  />
  </a>
</p>
<p>

L
liuyq-617 已提交
13
[![Build Status](https://cloud.drone.io/api/badges/taosdata/TDengine/status.svg?ref=refs/heads/master)](https://cloud.drone.io/taosdata/TDengine)
14
[![Build status](https://ci.appveyor.com/api/projects/status/kf3pwh2or5afsgl9/branch/master?svg=true)](https://ci.appveyor.com/project/sangshuduo/tdengine-2n8ge/branch/master)
15
[![Coverage Status](https://coveralls.io/repos/github/taosdata/TDengine/badge.svg?branch=develop)](https://coveralls.io/github/taosdata/TDengine?branch=develop)
S
Shuduo Sang 已提交
16
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/4201/badge)](https://bestpractices.coreinfrastructure.org/projects/4201)
17

18
English | [简体中文](README-CN.md) | We are hiring, check [here](https://tdengine.com/careers)
涛思数据(TDengine)'s avatar
涛思数据(TDengine) 已提交
19

H
hzcheng 已提交
20 21
# What is TDengine?

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
22
TDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, and Industrial IoT. It enables efficient, real-time data ingestion, processing, and monitoring of TB and even PB scale data per day, generated by billions of sensors and data collectors. TDengine differentiates itself from other time-seires databases with the following advantages:
23

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
24
- **High-Performance**: TDengine is the only time-series database to solve the high cardinality issue to support billions of data collection points while out performing other time-series databases for data ingestion, querying and data compression.
25

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
26
- **Simplified Solution**: Through built-in caching, stream processing and data subscription features, TDengine provides a simplified solution for time-series data processing. It reduces system design complexity and operation costs significantly.
27

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
28
- **Cloud Native**: Through native distributed design, sharding and partitioning, separation of compute and storage, RAFT, support for kubernetes deployment and full observability, TDengine is a cloud native Time-Series Database and can be deployed on public, private or hybrid clouds.
H
hzcheng 已提交
29

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
30
- **Ease of Use**: For administrators, TDengine significantly reduces the effort to deploy and maintain. For developers, it provides a simple interface, simplified solution and seamless integrations for third party tools. For data users, it gives easy data access. 
H
hzcheng 已提交
31

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
32
- **Easy Data Analytics**: Through super tables, storage and compute separation, data partitioning by time interval, pre-computation and other means, TDengine makes it easy to explore, format, and get access to data in a highly efficient way. 
H
hzcheng 已提交
33

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
34
- **Open Source**: TDengine’s core modules, including cluster feature, are all available under open source licenses. It has gathered 18.8k stars on GitHub. There is an active developer community, and over 139k running instances worldwide.
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
35

H
hzcheng 已提交
36
# Documentation
37

W
update  
wenzhouwww@live.cn 已提交
38
For user manual, system design and architecture, please refer to [TDengine Documentation](https://docs.taosdata.com) ([TDengine 文档](https://docs.taosdata.com))
H
hzcheng 已提交
39 40

# Building
H
hzcheng 已提交
41

42 43
At the moment, TDengine server supports running on Linux, Windows systems.Any OS application can also choose the RESTful interface of taosAdapter to connect the taosd service . TDengine supports X64/ARM64 CPU , and it will support MIPS64, Alpha64, ARM32, RISC-V and other CPU architectures in the future.

arielyangpan's avatar
arielyangpan 已提交
44
You can choose to install through source code according to your needs, [container](https://docs.taosdata.com/get-started/docker/), [installation package](https://docs.taosdata.com/get-started/package/) or [Kubernetes](https://docs.taosdata.com/deployment/k8s/) to install. This quick guide only applies to installing from source.
45 46

TDengine provide a few useful tools such as taosBenchmark (was named taosdemo) and taosdump. They were part of TDengine. By default, TDengine compiling does not include taosTools. You can use `cmake .. -DBUILD_TOOLS=true` to make them be compiled with TDengine.
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
47

48
To build TDengine, use [CMake](https://cmake.org/) 3.0.2 or higher versions in the project directory.
49

50
## Install build tools
51

wafwerar's avatar
wafwerar 已提交
52
### Ubuntu 18.04 and above or Debian
53 54

```bash
55
sudo apt-get install -y gcc cmake build-essential git libssl-dev
56 57
```

58 59 60 61
#### Install build dependencies for taosTools

To build the [taosTools](https://github.com/taosdata/taos-tools) on Ubuntu/Debian, the following packages need to be installed.

62
```bash
63 64 65
sudo apt install build-essential libjansson-dev libsnappy-dev liblzma-dev libz-dev pkg-config
```

wafwerar's avatar
wafwerar 已提交
66
### CentOS 7.9
67 68 69 70 71 72

```bash
sudo yum install epel-release
sudo yum update
sudo yum install -y gcc gcc-c++ make cmake3 git openssl-devel
sudo ln -sf /usr/bin/cmake3 /usr/bin/cmake
73 74
```

W
update  
wenzhouwww@live.cn 已提交
75
### CentOS 8 & Fedora
76

77
```bash
78
sudo dnf install -y gcc gcc-c++ make cmake epel-release git openssl-devel
J
johnnyhou327 已提交
79
```
80

81 82
#### Install build dependencies for taosTools on CentOS

83 84 85 86 87 88
#### CentOS 7.9

```
sudo yum install -y zlib-devel xz-devel snappy-devel jansson jansson-devel pkgconfig libatomic libstdc++-static openssl-devel
```

arielyangpan's avatar
arielyangpan 已提交
89
#### CentOS 8/Rocky Linux
90 91 92 93 94 95

```
sudo yum install -y epel-release
sudo yum install -y dnf-plugins-core
sudo yum config-manager --set-enabled powertools
sudo yum install -y zlib-devel xz-devel snappy-devel jansson jansson-devel pkgconfig libatomic libstdc++-static openssl-devel
96 97
```

98
Note: Since snappy lacks pkg-config support (refer to [link](https://github.com/google/snappy/pull/86)), it leads a cmake prompt libsnappy not found. But snappy still works well.
99

arielyangpan's avatar
arielyangpan 已提交
100 101
If the PowerTools installation fails, you can try to use:

102
```
arielyangpan's avatar
arielyangpan 已提交
103
sudo yum config-manager --set-enabled powertools
104 105
```

106 107
### Setup golang environment

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
108
TDengine includes a few components like taosAdapter developed by Go language. Please refer to golang.org official documentation for golang environment setup.
109 110 111 112 113 114 115 116

Please use version 1.14+. For the user in China, we recommend using a proxy to accelerate package downloading.

```
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
```

117 118 119 120 121 122
The default will not build taosAdapter, but you can use the following command to build taosAdapter as the service for RESTful interface.

```
cmake .. -DBUILD_HTTP=false
```

123 124
### Setup rust environment

arielyangpan's avatar
arielyangpan 已提交
125
TDengine includes a few components developed by Rust language. Please refer to rust-lang.org official documentation for rust environment setup.
126

127 128
## Get the source codes

129
First of all, you may clone the source codes from github:
130

131 132
```bash
git clone https://github.com/taosdata/TDengine.git
B
Bison "goldeagle" Fan 已提交
133
cd TDengine
L
lihui 已提交
134
```
135

136
You can modify the file ~/.gitconfig to use ssh protocol instead of https for better download speed. You will need to upload ssh public key to GitHub first. Please refer to GitHub official documentation for detail.
137 138 139 140 141 142

```
[url "git@github.com:"]
    insteadOf = https://github.com/
```

143 144 145 146
## Special Note

[JDBC Connector](https://github.com/taosdata/taos-connector-jdbc)[Go Connector](https://github.com/taosdata/driver-go)[Python Connector](https://github.com/taosdata/taos-connector-python)[Node.js Connector](https://github.com/taosdata/taos-connector-node)[C# Connector](https://github.com/taosdata/taos-connector-dotnet)[Rust Connector](https://github.com/taosdata/taos-connector-rust) and [Grafana plugin](https://github.com/taosdata/grafanaplugin) has been moved to standalone repository.

147 148
## Build TDengine

149 150
### On Linux platform

151 152
You can run the bash script `build.sh` to build both TDengine and taosTools including taosBenchmark and taosdump as below:

153
```bash
154 155 156 157 158 159 160 161 162 163 164 165
./build.sh
```

It equals to execute following commands:

```bash
mkdir debug
cd debug
cmake .. -DBUILD_TOOLS=true
make
```

sangshuduo's avatar
sangshuduo 已提交
166
You can use Jemalloc as memory allocator instead of glibc:
167

sangshuduo's avatar
sangshuduo 已提交
168 169 170 171 172
```
apt install autoconf
cmake .. -DJEMALLOC_ENABLED=true
```

wafwerar's avatar
wafwerar 已提交
173 174
TDengine build script can detect the host machine's architecture on X86-64, X86, arm64 platform.
You can also specify CPUTYPE option like aarch64 too if the detection result is not correct:
L
lihui 已提交
175

H
huili 已提交
176
aarch64:
177

178
```bash
H
huili 已提交
179
cmake .. -DCPUTYPE=aarch64 && cmake --build .
H
huili 已提交
180
```
H
huili 已提交
181

182 183
### On Windows platform

184
If you use the Visual Studio 2013, please open a command window by executing "cmd.exe".
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
185
Please specify "amd64" for 64 bits Windows or specify "x86" for 32 bits Windows when you execute vcvarsall.bat.
186

187
```cmd
188
mkdir debug && cd debug
189
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" < amd64 | x86 >
190 191 192 193
cmake .. -G "NMake Makefiles"
nmake
```

194
If you use the Visual Studio 2019 or 2017:
195 196

please open a command window by executing "cmd.exe".
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
197
Please specify "x64" for 64 bits Windows or specify "x86" for 32 bits Windows when you execute vcvarsall.bat.
198 199

```cmd
200 201 202 203 204 205
mkdir debug && cd debug
"c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" < x64 | x86 >
cmake .. -G "NMake Makefiles"
nmake
```

206
Or, you can simply open a command window by clicking Windows Start -> "Visual Studio < 2019 | 2017 >" folder -> "x64 Native Tools Command Prompt for VS < 2019 | 2017 >" or "x86 Native Tools Command Prompt for VS < 2019 | 2017 >" depends what architecture your Windows is, then execute commands as follows:
207

208
```cmd
209 210 211 212 213
mkdir debug && cd debug
cmake .. -G "NMake Makefiles"
nmake
```

wafwerar's avatar
wafwerar 已提交
214
<!-- ### On macOS platform
215 216 217 218 219 220

Please install XCode command line tools and cmake. Verified with XCode 11.4+ on Catalina and Big Sur.

```shell
mkdir debug && cd debug
cmake .. && cmake --build .
wafwerar's avatar
wafwerar 已提交
221
``` -->
222

H
Hongze Cheng 已提交
223
# Installing
224

225 226 227 228
## On Linux platform

After building successfully, TDengine can be installed by

229
```bash
230
sudo make install
H
Hongze Cheng 已提交
231
```
232

arielyangpan's avatar
arielyangpan 已提交
233
Users can find more information about directories installed on the system in the [directory and files](https://docs.taosdata.com/reference/directory/) section.
234

W
update  
wenzhouwww@live.cn 已提交
235
Installing from source code will also configure service management for TDengine.Users can also choose to [install from packages](https://docs.taosdata.com/get-started/package/) for it.
H
hzcheng 已提交
236

H
Hongze Cheng 已提交
237
To start the service after installation, in a terminal, use:
238

239 240
```bash
sudo systemctl start taosd
H
hzcheng 已提交
241 242
```

W
update  
wenzhouwww@live.cn 已提交
243
Then users can use the TDengine CLI to connect the TDengine server. In a terminal, use:
244

245
```bash
H
hzcheng 已提交
246 247 248
taos
```

W
update  
wenzhouwww@live.cn 已提交
249
If TDengine CLI connects the server successfully, welcome messages and version info are printed. Otherwise, an error message is shown.
H
hzcheng 已提交
250

251 252 253 254 255 256 257 258
## On Windows platform

After building successfully, TDengine can be installed by:

```cmd
nmake install
```

sangshuduo's avatar
sangshuduo 已提交
259
<!-- 
260 261 262 263 264 265 266
## On macOS platform

After building successfully, TDengine can be installed by:

```bash
sudo make install
```
sangshuduo's avatar
sangshuduo 已提交
267
-->
268

269 270
## Quick Run

271
If you don't want to run TDengine as a service, you can run it in current shell. For example, to quickly start a TDengine server after building, run the command below in terminal: (We take Linux as an example, command on Windows will be `taosd.exe`)
272

273 274 275 276
```bash
./build/bin/taosd -c test/cfg
```

W
update  
wenzhouwww@live.cn 已提交
277
In another terminal, use the TDengine CLI to connect the server:
278

279 280 281 282
```bash
./build/bin/taos -c test/cfg
```

283
option "-c test/cfg" specifies the system configuration file directory.
284

H
hzcheng 已提交
285
# Try TDengine
286

W
update  
wenzhouwww@live.cn 已提交
287
It is easy to run SQL commands from TDengine CLI which is the same as other SQL databases.
288

H
hzcheng 已提交
289
```sql
290 291 292 293 294 295 296 297 298 299 300
CREATE DATABASE demo;
USE demo;
CREATE TABLE t (ts TIMESTAMP, speed INT);
INSERT INTO t VALUES('2019-07-15 00:00:00', 10);
INSERT INTO t VALUES('2019-07-15 01:00:00', 20);
SELECT * FROM t;
          ts          |   speed   |
===================================
 19-07-15 00:00:00.000|         10|
 19-07-15 01:00:00.000|         20|
Query OK, 2 row(s) in set (0.001700s)
H
hzcheng 已提交
301 302 303
```

# Developing with TDengine
304 305

## Official Connectors
306

arielyangpan's avatar
arielyangpan 已提交
307
TDengine provides abundant developing tools for users to develop on TDengine. Follow the links below to find your desired connectors and relevant documentation.
H
hzcheng 已提交
308

309 310 311 312 313 314 315 316
- [Java](https://docs.taosdata.com/reference/connector/java/)
- [C/C++](https://docs.taosdata.com/reference/connector/cpp/)
- [Python](https://docs.taosdata.com/reference/connector/python/)
- [Go](https://docs.taosdata.com/reference/connector/go/)
- [Node.js](https://docs.taosdata.com/reference/connector/node/)
- [Rust](https://docs.taosdata.com/reference/connector/rust/)
- [C#](https://docs.taosdata.com/reference/connector/csharp/)
- [RESTful API](https://docs.taosdata.com/reference/rest-api/)
H
hzcheng 已提交
317

W
winshining 已提交
318
# Contribute to TDengine
H
hzcheng 已提交
319 320

Please follow the [contribution guidelines](CONTRIBUTING.md) to contribute to the project.
L
lihui 已提交
321 322 323 324

# Join TDengine WeChat Group

Add WeChat “tdengine” to join the group,you can communicate with other users.