ceresdb - CeresDBは、時系列ワークロードと分析ワークロードの両方を処理できる、高性能で分散型のスキーマレスのクラウドネイティブ時系列データベースです。

(CeresDB is a high-performance, distributed, schema-less, cloud native time-series database that can handle both time-series and analytics workloads.)

Created at: 2022-05-26 14:22:14
Language: Rust
License: Apache-2.0

CeresDB

ライセンス OpenIssue ClosedIssue 出演者 フォーク

中文

CeresDBは、時系列ワークロードと分析ワークロードの両方を処理できる、高性能で分散型のスキーマレスのクラウドネイティブ時系列データベースです。

状態

プロジェクトは現在急速に開発中です。この初期段階は本番環境に対応しておらず、データが破損する可能性があります。

ロードマップ

ロードマップを見る

始めましょう

リポジトリのクローンを作成する

このリポジトリのクローンを作成し

git
、次のように入力します。

git clone git@github.com:CeresDB/ceresdb.git
cd ceresdb

Dockerでceresdbを実行します

が開発環境にインストールされていることを確認して

docker
から、提供されているDockerfileを使用してイメージをビルドします。

docker build -t ceresdb .

ビルドされたDockerイメージを使用してceresdbコンテナーを起動します。

docker run -d -t --name ceresdb -p 5440:5440 -p 8831:8831 ceresdb

CeresDBをコンパイルして実行します

依存関係をインストールする

CeresDBをコンパイルするには、いくつかの関連する依存関係(

Rust
ツールチェーンを含む)をインストールする必要があります。

依存関係(Ubuntu20.04)

開発環境がUbuntu20.04であると仮定して、次のコマンドを実行して、必要な依存関係をインストールします。

apt install git curl gcc g++ libssl-dev pkg-config cmake

プロジェクトのコンパイルには、実際にはcmake、gcc、g ++などのいくつかの依存関係のバージョン要件があることに注意してください。開発環境が古いLinuxディストリビューションの場合は、より高いバージョンのこれらの依存関係を手動でインストールする必要があります。

さび

Rust
rustupでインストールできます。rustupをインストールした後、CeresDBプロジェクトに入ると、指定された
Rust
バージョンがrust-toolchainファイルに従って自動的にダウンロードされます。

実行後、ツールチェーンを使用するには環境変数を追加する必要があります

Rust
。基本的に、次のコマンドを
~/.bashrc
またはに入力するだけ
~/.bash_profile
です。

source $HOME/.cargo/env

コンパイルして実行

次のコマンドでCeresDBをコンパイルします。

cargo build --release

次に、コードベースで提供されているデフォルトの構成ファイルを使用してCeresDBを実行できます。

./target/ceresdb-server --config ./docs/example.toml

データの書き込みと読み取り

CeresDBは、カスタム拡張SQLプロトコルをサポートしています。現在、httpサービスを介してSQLステートメントを使用してテーブルを作成し、データを読み取り/書き込みできます。

テーブルを作成する

curl --location --request POST 'http://127.0.0.1:5440/sql' \
--header 'Content-Type: application/json' \
--data-raw '{
    "query": "CREATE TABLE `demo` (`name` string TAG, `value` double NOT NULL, `t` timestamp NOT NULL, TIMESTAMP KEY(t)) ENGINE=Analytic with (enable_ttl='\''false'\'');"
}'

データを書き込む

curl --location --request POST 'http://127.0.0.1:5440/sql' \
--header 'Content-Type: application/json' \
--data-raw '{
    "query": "INSERT INTO demo(t, name, value) VALUES(1651737067000, '\''ceresdb'\'', 100)"
}'

データの読み取り

curl --location --request POST 'http://127.0.0.1:5440/sql' \
--header 'Content-Type: application/json' \
--data-raw '{
    "query": "select * from demo"
}'

作成テーブルを表示

curl --location --request POST 'http://127.0.0.1:5440/sql' \
--header 'Content-Type: application/json' \
--data-raw '{
    "query": "show create table demo"
}'

ドロップテーブル

curl --location --request POST 'http://127.0.0.1:5440/sql' \
--header 'Content-Type: application/json' \
--data-raw '{
    "query": "DROP TABLE demo;"
}'

貢献

どんな貢献でも大歓迎です!

寄稿ガイドを読んで、最初の寄稿をしてください!

アーキテクチャと技術文書

私たちの技術文書(まだ執筆と研磨中)は、ドキュメントでceresdbの重要な部分を説明しています。

了承

CeresDBの一部の設計はinfluxdb_ioxを参照、一部の特定のモジュール実装は、InfluxDB、TiKV、およびその他の参照された優れたオープンソースプロジェクトのおかげで、tikvおよびその他の優れたオープンソースプロジェクトを参照します。

ライセンス

CeresDBはApacheLicense2.0の下にあります

コミュニティ

  • コミュニティ資料を確認してください。
  • DingTalkのユーザーグループに参加します:44602802
  • メールでお問い合わせください:ceresdb@service.alipay.com