README.md 12.6 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

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
18
English | [简体中文](README-CN.md) | [Lean more about TSDB](https://tdengine.com/tsdb)
涛思数据(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](https://tdengine.com/tsdb/) 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](https://tdengine.com/tdengine/high-performance-time-series-database/)**: 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](https://tdengine.com/tdengine/simplified-time-series-data-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](https://tdengine.com/tdengine/cloud-native-time-series-database/)**: 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](https://docs.tdengine.com/get-started/docker/)**: 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](https://tdengine.com/tdengine/time-series-data-analytics-made-easy/)**: 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](https://tdengine.com/tdengine/open-source-time-series-database/)**: 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

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
36 37
For a full list of TDengine competitive advantages, please [check here](https://tdengine.com/tdengine/)

H
hzcheng 已提交
38
# Documentation
39

W
wade zhang 已提交
40
For user manual, system design and architecture, please refer to [TDengine Documentation](https://docs.tdengine.com) ([TDengine 文档](https://docs.taosdata.com))
H
hzcheng 已提交
41 42

# Building
H
hzcheng 已提交
43

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
44
At the moment, TDengine server supports running on Linux and Windows systems. Any application can also choose the RESTful interface provided by 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.
45

W
wade zhang 已提交
46
You can choose to install through source code, [container](https://docs.tdengine.com/get-started/docker/), [installation package](https://docs.tdengine.com/get-started/package/) or [Kubernetes](https://docs.tdengine.com/deployment/k8s/). This quick guide only applies to installing from source.
47 48

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) 已提交
49

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

52
## Install build tools
53

wafwerar's avatar
wafwerar 已提交
54
### Ubuntu 18.04 and above or Debian
55 56

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

60 61 62 63
#### 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.

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

wafwerar's avatar
wafwerar 已提交
68
### CentOS 7.9
69 70 71 72 73 74

```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
75 76
```

W
update  
wenzhouwww@live.cn 已提交
77
### CentOS 8 & Fedora
78

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

83 84
#### Install build dependencies for taosTools on CentOS

85 86 87 88 89 90
#### 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 已提交
91
#### CentOS 8/Rocky Linux
92 93 94 95 96 97

```
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
98 99
```

100
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.
101

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

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

108 109
### Setup golang environment

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

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
```

119 120 121 122 123 124
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
```

125 126
### Setup rust environment

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

129 130
## Get the source codes

131
First of all, you may clone the source codes from github:
132

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

138
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.
139 140 141 142 143 144

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

145 146 147 148
## 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.

149 150
## Build TDengine

151 152
### On Linux platform

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

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

It equals to execute following commands:

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

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

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

wafwerar's avatar
wafwerar 已提交
175 176
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 已提交
177

H
huili 已提交
178
aarch64:
179

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

184 185
### On Windows platform

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

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

196
If you use the Visual Studio 2019 or 2017:
197 198

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

```cmd
202 203 204 205 206 207
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
```

208
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:
209

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

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

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 已提交
223
``` -->
224

H
Hongze Cheng 已提交
225
# Installing
226

227 228 229 230
## On Linux platform

After building successfully, TDengine can be installed by

231
```bash
232
sudo make install
H
Hongze Cheng 已提交
233
```
234

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

W
update  
wenzhouwww@live.cn 已提交
237
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 已提交
238

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

241 242
```bash
sudo systemctl start taosd
H
hzcheng 已提交
243 244
```

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

247
```bash
H
hzcheng 已提交
248 249 250
taos
```

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

253 254 255 256 257 258 259 260
## On Windows platform

After building successfully, TDengine can be installed by:

```cmd
nmake install
```

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

After building successfully, TDengine can be installed by:

```bash
sudo make install
```
sangshuduo's avatar
sangshuduo 已提交
269
-->
270

271 272
## Quick Run

273
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`)
274

275 276 277 278
```bash
./build/bin/taosd -c test/cfg
```

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

281 282 283 284
```bash
./build/bin/taos -c test/cfg
```

285
option "-c test/cfg" specifies the system configuration file directory.
286

H
hzcheng 已提交
287
# Try TDengine
288

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

H
hzcheng 已提交
291
```sql
292 293 294 295 296 297 298 299 300 301 302
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 已提交
303 304 305
```

# Developing with TDengine
306 307

## Official Connectors
308

arielyangpan's avatar
arielyangpan 已提交
309
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 已提交
310

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

W
winshining 已提交
320
# Contribute to TDengine
H
hzcheng 已提交
321 322

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

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
324
# Join TDengine User Community
L
lihui 已提交
325

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
326 327
- Join [TDengine Discord Channel](https://discord.com/invite/VZdSuUg4pS?utm_id=discord)
- Join wechat group by adding WeChat “tdengine”