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

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

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

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
23
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 database with the following advantages:
24

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
25
- **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.
26

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
27
- **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.
28

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
29
- **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.
30

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
31
- **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. 
32

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
33
- **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 已提交
34

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

H
hzcheng 已提交
37
# Documentation
38

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

# Building
H
hzcheng 已提交
42

43 44
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.

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
45
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 [Kubenetes](https://docs.taosdata.com/deployment/k8s/) to install. This quick guide only applies to installing from source.   
46 47

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

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

51
## Install build tools
52

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

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

59 60
#### Install build dependencies for taosTools

61

62 63
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 85
#### Install build dependencies for taosTools on CentOS


86 87 88 89 90 91
#### CentOS 7.9

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

W
update  
wenzhouwww@live.cn 已提交
92
#### CentOS 8/Rocky Linux 
93 94 95 96 97 98

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

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

103 104 105 106 107
If the powertools installation fails, you can try to use:
```
sudo yum config-manager --set-enabled Powertools
```

108 109
### Setup golang environment

110

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

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

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

126 127
### Setup rust environment

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
128
TDengine includes a few compoments developed by Rust language. Please refer to rust-lang.org official documentation for rust environment setup.
129

130 131
## Get the source codes

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

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

139

140
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.
141 142 143 144 145 146

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

147 148 149 150 151
## 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.

152 153
## Build TDengine

154 155
### On Linux platform

156

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

159
```bash
160 161 162 163 164 165 166 167 168 169 170 171
./build.sh
```

It equals to execute following commands:

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

J
John Zhuang 已提交
172

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

sangshuduo's avatar
sangshuduo 已提交
175 176 177 178 179
```
apt install autoconf
cmake .. -DJEMALLOC_ENABLED=true
```

wafwerar's avatar
wafwerar 已提交
180 181
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 已提交
182

H
huili 已提交
183
aarch64:
184

185
```bash
H
huili 已提交
186
cmake .. -DCPUTYPE=aarch64 && cmake --build .
H
huili 已提交
187
```
H
huili 已提交
188

189 190
### On Windows platform

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

194
```cmd
195
mkdir debug && cd debug
196
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" < amd64 | x86 >
197 198 199 200
cmake .. -G "NMake Makefiles"
nmake
```

201
If you use the Visual Studio 2019 or 2017:
202 203

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

```cmd
207 208 209 210 211 212
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
```

213
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:
214

215
```cmd
216 217 218 219 220
mkdir debug && cd debug
cmake .. -G "NMake Makefiles"
nmake
```

221
### On macOS platform
222 223 224 225 226 227 228 229

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

H
Hongze Cheng 已提交
230
# Installing
231

232 233 234 235
## On Linux platform

After building successfully, TDengine can be installed by

236
```bash
237
sudo make install
H
Hongze Cheng 已提交
238
```
239

W
update  
wenzhouwww@live.cn 已提交
240
Users can find more information about directories installed on the system in the [directory and files](https://docs.taosdata.com/reference/directory/) section.  
241

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

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

246 247
```bash
sudo systemctl start taosd
H
hzcheng 已提交
248 249
```

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

252
```bash
H
hzcheng 已提交
253 254 255
taos
```

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

258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273
## On Windows platform

After building successfully, TDengine can be installed by:

```cmd
nmake install
```

## On macOS platform

After building successfully, TDengine can be installed by:

```bash
sudo make install
```

274 275
## Quick Run

276
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`)
277

278 279 280 281
```bash
./build/bin/taosd -c test/cfg
```

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

284 285 286 287
```bash
./build/bin/taos -c test/cfg
```

288
option "-c test/cfg" specifies the system configuration file directory.
289

H
hzcheng 已提交
290
# Try TDengine
291

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

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

# Developing with TDengine
309 310

## Official Connectors
311

312
TDengine provides abundant developing tools for users to develop on TDengine.  include C/C++、Java、Python、Go、Node.js、C# 、RESTful  ,Follow the links below to find your desired connectors and relevant documentation.
H
hzcheng 已提交
313

314 315 316 317 318 319 320 321
- [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 已提交
322

W
winshining 已提交
323
# Contribute to TDengine
H
hzcheng 已提交
324 325

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

# Join TDengine WeChat Group

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