mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-25 01:10:37 +00:00
139 lines
3.3 KiB
Markdown
139 lines
3.3 KiB
Markdown
# GreptimeDB
|
|
|
|
[](https://codecov.io/gh/GrepTimeTeam/greptimedb)
|
|
|
|
GreptimeDB: the next-generation hybrid timeseries/analytics processing database in the cloud.
|
|
|
|
## Getting Started
|
|
|
|
### Prerequisites
|
|
|
|
To compile GreptimeDB from source, you'll need the following:
|
|
- Rust
|
|
- Protobuf
|
|
|
|
#### Rust
|
|
|
|
The easiest way to install Rust is to use [`rustup`](https://rustup.rs/), which will check our `rust-toolchain` file and install correct Rust version for you.
|
|
|
|
#### Protobuf
|
|
|
|
`protoc` is required for compiling `.proto` files. `protobuf` is available from
|
|
major package manager on macos and linux distributions. You can find an
|
|
installation instructions [here](https://grpc.io/docs/protoc-installation/).
|
|
|
|
### Build the Docker Image
|
|
|
|
```
|
|
docker build --network host -f docker/Dockerfile -t greptimedb .
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Start Datanode
|
|
|
|
```
|
|
// Start datanode with default options.
|
|
cargo run -- datanode start
|
|
|
|
OR
|
|
|
|
// Start datanode with `http-addr` option.
|
|
cargo run -- datanode start --http-addr=0.0.0.0:9999
|
|
|
|
OR
|
|
|
|
// Start datanode with `log-dir` and `log-level` options.
|
|
cargo run -- --log-dir=logs --log-level=debug datanode start
|
|
```
|
|
|
|
Start datanode with config file:
|
|
|
|
```
|
|
cargo run -- --log-dir=logs --log-level=debug datanode start -c ./config/datanode.example.toml
|
|
```
|
|
|
|
Start datanode by runing docker container:
|
|
|
|
```
|
|
docker run -p 3000:3000 \
|
|
-p 3001:3001 \
|
|
-p 3306:3306 \
|
|
greptimedb
|
|
```
|
|
|
|
### Start Frontend
|
|
|
|
Frontend should connect to Datanode, so **Datanode must have been started** at first!
|
|
|
|
```
|
|
// Connects to local Datanode at its default GRPC port: 3001
|
|
|
|
// Start Frontend with default options.
|
|
cargo run -- frontend start
|
|
|
|
OR
|
|
|
|
// Start Frontend with `mysql-addr` option.
|
|
cargo run -- frontend start --mysql-addr=0.0.0.0:9999
|
|
|
|
OR
|
|
|
|
// Start datanode with `log-dir` and `log-level` options.
|
|
cargo run -- --log-dir=logs --log-level=debug frontend start
|
|
```
|
|
|
|
Start datanode with config file:
|
|
|
|
```
|
|
cargo run -- --log-dir=logs --log-level=debug frontend start -c ./config/frontend.example.toml
|
|
```
|
|
|
|
### SQL Operations
|
|
|
|
1. Connecting DB by [mysql client](https://dev.mysql.com/downloads/mysql/):
|
|
|
|
```
|
|
# The datanode listen on port 3306 by default.
|
|
mysql -h 127.0.0.1 -P 3306
|
|
```
|
|
|
|
2. Create table:
|
|
|
|
```SQL
|
|
CREATE TABLE monitor (
|
|
host STRING,
|
|
ts TIMESTAMP,
|
|
cpu DOUBLE DEFAULT 0,
|
|
memory DOUBLE,
|
|
TIME INDEX (ts),
|
|
PRIMARY KEY(host)) ENGINE=mito WITH(regions=1);
|
|
```
|
|
|
|
3. Insert data:
|
|
|
|
```SQL
|
|
INSERT INTO monitor(host, cpu, memory, ts) VALUES ('host1', 66.6, 1024, 1660897955);
|
|
INSERT INTO monitor(host, cpu, memory, ts) VALUES ('host2', 77.7, 2048, 1660897956);
|
|
INSERT INTO monitor(host, cpu, memory, ts) VALUES ('host3', 88.8, 4096, 1660897957);
|
|
```
|
|
|
|
4. Query data:
|
|
|
|
```SQL
|
|
mysql> SELECT * FROM monitor;
|
|
+-------+------------+------+--------+
|
|
| host | ts | cpu | memory |
|
|
+-------+------------+------+--------+
|
|
| host1 | 1660897955 | 66.6 | 1024 |
|
|
| host2 | 1660897956 | 77.7 | 2048 |
|
|
| host3 | 1660897957 | 88.8 | 4096 |
|
|
+-------+------------+------+--------+
|
|
3 rows in set (0.01 sec)
|
|
```
|
|
You can delete your data by removing `/tmp/greptimedb`.
|
|
|
|
## Contributing
|
|
|
|
Please refer to [contribution guidelines](CONTRIBUTING.md) for more information.
|