https://github.com/GreptimeTeam/greptimedb
GreptimeDB是分布式云原生时序数据库,使用 Rust 构建 ,主要致力于解决金融、物/车联网等领域大规模时序数据处理分析问题(Hybrid Time-series & Analysis Processing, HTiAP),核心成员主要来自蚂蚁集团、阿里云和滴滴。2022 年 4 月完成了种子轮融资,11 月宣布开源后就登上了 GitHub Trending 榜首。
时间序列数据有大量写入,但几乎没有删除和更新,而且数据量巨大(感谢物联网、5G 的快速发展),更重要的是还要对于实时和历史数据的处理和分析:利用数据产生价值才是这个年代大家最关注的。这一点也体现在了在 GreptimeDB 的标语 "Invest in data, harvest over time" (投资于数据,随时间收获,好像有点三体的味道)。
好的名字是成功的一半:grep (global regular expression print) 是 Unix 家族里最常用的命令之一,用于搜索和匹配正则表达式所包含的文本文件。
---------------------------
An open-source, cloud-native, distributed time-series database with PromQL/SQL/Python supported.
The next-generation hybrid time-series/analytics processing database in the cloud
What is GreptimeDB
GreptimeDB is an open-source time-series database focusing on efficiency, scalability, and analytical capabilities. It's designed to work on infrastructure of the cloud era, and users benefit from its elasticity and commodity storage.
Our core developers have been building time-series data platforms for years. Based on their best-practices, GreptimeDB is born to give you:
- Optimized columnar layout for handling time-series data; compacted, compressed, and stored on various storage backends, particularly cloud object storage with 50x cost efficiency.
- Fully open-source distributed cluster architecture that harnesses the power of cloud-native elastic computing resources.
- Seamless scalability from a standalone binary at edge to a robust, highly available distributed cluster in cloud, with a transparent experience for both developers and administrators.
- Native SQL and PromQL for queries, and Python scripting to facilitate complex analytical tasks.
- Flexible indexing capabilities and distributed, parallel-processing query engine, tackling high cardinality issues down.
- Widely adopted database protocols and APIs, including MySQL, PostgreSQL, and Prometheus Remote Storage, etc.
Quick Start
GreptimePlay
Try out the features of GreptimeDB right from your browser.
Build
Build from Source
To compile GreptimeDB from source, you'll need:
- C/C++ Toolchain: provides basic tools for compiling and linking. This is
available as
build-essentialon ubuntu and similar name on other platforms. - Rust: the easiest way to install Rust is to use
rustup, which will check ourrust-toolchainfile and install correct Rust version for you. - Protobuf:
protocis required for compiling.protofiles.protobufis available from major package manager on macos and linux distributions. You can find an installation instructions here. Note thatprotocversion needs to be >= 3.15 because we have used theoptionalkeyword. You can check it withprotoc --version. - python3-dev or python3-devel(Optional feature, only needed if you want to run scripts
in CPython, and also need to enable
pyo3_backendfeature when compiling(bycargo run -F pyo3_backendor addpyo3_backendto src/script/Cargo.toml 'sfeatures.defaultlikedefault = ["python", "pyo3_backend])): this install a Python shared library required for running Python scripting engine(In CPython Mode). This is available aspython3-devon ubuntu, you can install it withsudo apt install python3-dev, orpython3-develon RPM based distributions (e.g. Fedora, Red Hat, SuSE). Mac'sPython3package should have this shared library by default. More detail for compiling with PyO3 can be found in PyO3's documentation.
Build with Docker
A docker image with necessary dependencies is provided:
docker build --network host -f docker/Dockerfile -t greptimedb .
Run
Start GreptimeDB from source code, in standalone mode:
cargo run -- standalone start
Or if you built from docker:
docker run -p 4002:4002 -v "$(pwd):/tmp/greptimedb" greptime/greptimedb standalone start
Please see the online document site for more installation options and operations info.
Get started
Read the complete getting started guide on our official document site.
To write and query data, GreptimeDB is compatible with multiple protocols and clients.
Resources
Installation
- Pre-built Binaries: For Linux and macOS, you can easily download pre-built binaries including official releases and nightly builds that are ready to use. In most cases, downloading the version without PyO3 is sufficient. However, if you plan to run scripts in CPython (and use Python packages like NumPy and Pandas), you will need to download the version with PyO3 and install a Python with the same version as the Python in the PyO3 version. We recommend using virtualenv for the installation process to manage multiple Python versions.
- Docker Images(recommended): pre-built
Docker images, this is the easiest way to try GreptimeDB. By default it runs CPython script with
pyo3_backendenabled. gtctl: the command-line tool for Kubernetes deployment
Documentation
- GreptimeDB User Guide
- GreptimeDB Developer Guide
- GreptimeDB internal code document
Dashboard
SDK
- GreptimeDB C++ Client
- GreptimeDB Erlang Client
- GreptimeDB Go Client
- GreptimeDB Java Client
- GreptimeDB Python Client (WIP)
- GreptimeDB Rust Client
- GreptimeDB JavaScript Client
Project Status
This project is in its early stage and under heavy development. We move fast and break things. Benchmark on development branch may not represent its potential performance. We release pre-built binaries constantly for functional evaluation. Do not use it in production at the moment.
For future plans, check out GreptimeDB roadmap.
Community
Our core team is thrilled to see you participate in any ways you like. When you are stuck, try to ask for help by filling an issue with a detailed description of what you were trying to do and what went wrong. If you have any questions or if you would like to get involved in our community, please check out:
- GreptimeDB Community on Slack
- GreptimeDB GitHub Discussions
- Greptime official Website
In addition, you may:
from https://github.com/GreptimeTeam/greptimedb
No comments:
Post a Comment