Files
greptimedb/README.md
Yong cab20cfd3e docs: add 'SQL Operations' section (#190)
Signed-off-by: zyy17 <zyylsxm@gmail.com>

Signed-off-by: zyy17 <zyylsxm@gmail.com>
2022-08-19 17:26:07 +08:00

2.6 KiB

GreptimeDB

codecov

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
  • OpenSSL

Rust

The easiest way to install Rust is to use rustup, 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.

OpenSSL

For Ubuntu:

sudo apt install libssl-dev

For RedHat-based: Fedora, Oracle Linux, etc:

sudo dnf install openssl-devel

For macOS:

brew install openssl

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

SQL Operations

  1. Connecting DB by mysql client:

    # The datanode listen on port 3306 by default.
    mysql -h 127.0.0.1 -P 3306
    
  2. Create table:

    CREATE TABLE monitor (
      host STRING,
      ts BIGINT,
      cpu DOUBLE DEFAULT 0,
      memory DOUBLE,
      TIME INDEX (ts),
      PRIMARY KEY(ts,host)) ENGINE=mito WITH(regions=1);
    
  3. 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);
    
  4. 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.