GreptimeDB: the next-generation hybrid timeseries/analytics processing database in the cloud.
To compile GreptimeDB from source, you'll need the following:
- Rust
- Protobuf
The easiest way to install Rust is to use rustup
, which will check our rust-toolchain
file and install correct Rust version for you.
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.
docker build --network host -f docker/Dockerfile -t greptimedb .
// 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
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
-
Connecting DB by mysql client:
# The datanode listen on port 3306 by default. mysql -h 127.0.0.1 -P 3306
-
Create table:
CREATE TABLE monitor ( host STRING, ts TIMESTAMP, cpu DOUBLE DEFAULT 0, memory DOUBLE, TIME INDEX (ts), PRIMARY KEY(host)) ENGINE=mito WITH(regions=1);
-
Insert data:
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);
-
Query data:
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
.
Please refer to contribution guidelines for more information.