README.md 13.7 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) | [TDengine Cloud](https://cloud.tdengine.com) | [Learn more about TSDB](https://tdengine.com/tsdb/)
涛思数据(TDengine)'s avatar
涛思数据(TDengine) 已提交
19

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

wafwerar's avatar
wafwerar 已提交
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-series databases with the following advantages:
23

D
danielclow 已提交
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

D
danielclow 已提交
30
- **[Ease of Use](https://tdengine.com/tdengine/easy-time-series-data-platform/)**: 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
For a full list of TDengine competitive advantages, please [check here](https://tdengine.com/tdengine/). The easiest way to experience TDengine is through [TDengine Cloud](https://cloud.tdengine.com). 
陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
37

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

wafwerar's avatar
wafwerar 已提交
44
At the moment, TDengine server supports running on Linux/Windows/macOS 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
```

wafwerar's avatar
wafwerar 已提交
108
### macOS
wafwerar's avatar
wafwerar 已提交
109 110

```
wafwerar's avatar
wafwerar 已提交
111
brew install argp-standalone pkgconfig
wafwerar's avatar
wafwerar 已提交
112 113
```

114 115
### Setup golang environment

陶建辉(Jeff)'s avatar
陶建辉(Jeff) 已提交
116
TDengine includes a few components like taosAdapter developed by Go language. Please refer to golang.org official documentation for golang environment setup.
117 118 119 120 121 122 123 124

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

125 126 127 128 129 130
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
```

131 132
### Setup rust environment

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

135 136
## Get the source codes

137
First of all, you may clone the source codes from github:
138

139 140
```bash
git clone https://github.com/taosdata/TDengine.git
B
Bison "goldeagle" Fan 已提交
141
cd TDengine
L
lihui 已提交
142
```
143

144
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.
145 146 147 148 149 150

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

151 152 153 154
## 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.

155 156
## Build TDengine

157 158
### On Linux platform

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

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

It equals to execute following commands:

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

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

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

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

H
huili 已提交
184
aarch64:
185

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

190 191
### On Windows platform

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

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

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

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

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

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

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

wafwerar's avatar
wafwerar 已提交
222
### On macOS platform
223 224 225 226 227 228

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 已提交
229
```
230

H
Hongze Cheng 已提交
231
# Installing
232

233 234 235 236
## On Linux platform

After building successfully, TDengine can be installed by

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

D
danielclow 已提交
241
Users can find more information about directories installed on the system in the [directory and files](https://docs.tdengine.com/reference/directory/) section.
242

D
danielclow 已提交
243
Installing from source code will also configure service management for TDengine.Users can also choose to [install from packages](https://docs.tdengine.com/get-started/package/) for it.
H
hzcheng 已提交
244

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

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

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

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

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

259 260 261 262 263 264 265 266
## On Windows platform

After building successfully, TDengine can be installed by:

```cmd
nmake install
```

wafwerar's avatar
wafwerar 已提交
267

268 269 270 271 272 273 274
## On macOS platform

After building successfully, TDengine can be installed by:

```bash
sudo make install
```
wafwerar's avatar
wafwerar 已提交
275 276 277 278 279 280 281 282

Users can find more information about directories installed on the system in the [directory and files](https://docs.tdengine.com/reference/directory/) section.

Installing from source code will also configure service management for TDengine.Users can also choose to [install from packages](https://docs.tdengine.com/get-started/package/) for it.

To start the service after installation, double-click the /applications/TDengine to start the program, or in a terminal, use:

```bash
wafwerar's avatar
wafwerar 已提交
283
launchctl start com.tdengine.taosd
wafwerar's avatar
wafwerar 已提交
284 285 286 287 288 289 290 291 292
```

Then users can use the TDengine CLI to connect the TDengine server. In a terminal, use:

```bash
taos
```

If TDengine CLI connects the server successfully, welcome messages and version info are printed. Otherwise, an error message is shown.
293

294 295
## Quick Run

296
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`)
297

298 299 300 301
```bash
./build/bin/taosd -c test/cfg
```

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

304 305 306 307
```bash
./build/bin/taos -c test/cfg
```

308
option "-c test/cfg" specifies the system configuration file directory.
309

H
hzcheng 已提交
310
# Try TDengine
311

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

H
hzcheng 已提交
314
```sql
315 316 317 318 319 320 321 322 323 324 325
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 已提交
326 327 328
```

# Developing with TDengine
329 330

## Official Connectors
331

arielyangpan's avatar
arielyangpan 已提交
332
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 已提交
333

W
wade zhang 已提交
334 335 336 337 338 339 340 341
- [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 已提交
342

W
winshining 已提交
343
# Contribute to TDengine
H
hzcheng 已提交
344 345

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

347
# Join the TDengine Community
L
lihui 已提交
348

349 350 351 352 353 354
For more information about TDengine, you can follow us on social media and join our Discord server:

- [Discord](https://discord.com/invite/VZdSuUg4pS)
- [Twitter](https://twitter.com/TaosData)
- [LinkedIn](https://www.linkedin.com/company/tdengine/)
- [YouTube](https://www.youtube.com/channel/UCmp-1U6GS_3V3hjir6Uq5DQ)