Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/uber/aresdb
A GPU-powered real-time analytics storage and query engine.
https://github.com/uber/aresdb
analytics cgo cuda data database golang gpu-programming query real-time storage
Last synced: about 20 hours ago
JSON representation
A GPU-powered real-time analytics storage and query engine.
- Host: GitHub
- URL: https://github.com/uber/aresdb
- Owner: uber
- License: apache-2.0
- Created: 2018-09-20T14:56:46.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-07-13T08:54:26.000Z (5 months ago)
- Last Synced: 2024-11-27T12:05:55.716Z (15 days ago)
- Topics: analytics, cgo, cuda, data, database, golang, gpu-programming, query, real-time, storage
- Language: Go
- Homepage: https://eng.uber.com/aresdb/
- Size: 12.4 MB
- Stars: 3,031
- Watchers: 99
- Forks: 233
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
- my-awesome - uber/aresdb - programming,query,real-time,storage pushed_at:2024-07 star:3.0k fork:0.2k A GPU-powered real-time analytics storage and query engine. (Go)
- awesome - aresdb - A GPU-powered real-time analytics storage and query engine. (Go)
- awesome-distributed-system-projects - AresDB - a GPU-powered real-time analytics storage and query engine
- awesome-repositories - uber/aresdb - A GPU-powered real-time analytics storage and query engine. (Go)
- go-awesome - AresDB - Uber's open-source GPU-driven storage and query engine for real-time analytics (Open source library / Database)
- awesome-list - aresdb - powered real-time analytics storage and query engine. | uber | 2776 | (Go)
README
[![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] [![license](https://img.shields.io/github/license/uber/aresdb.svg)](LICENSE) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fuber%2Faresdb.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fuber%2Faresdb?ref=badge_shield)
AresDB
==============
AresDB is a GPU-powered real-time analytics storage and query engine. It features low query latency, high data freshness and highly efficient in-memory and on disk storage management. Please see AresDB's features, architecture design described in the [Uber Engineering Blog](https://eng.uber.com/aresdb/).This repo contains the source code of AresDB and debug UI.
Legal Note
----------
AresDB requires the CUDA Toolkit. Please ensure you read, acknowledge, and accept the [CUDA End User License Agreement](https://docs.nvidia.com/cuda/eula/index.html).Getting started
---------------
To get AresDB:```
git clone --recursive https://github.com/uber/aresdb.git $GOPATH/src/github.com/uber/aresdb
```NVIDIA Driver and CUDA Setup
----------------------------
AresDB needs [NVIDIA driver](https://www.nvidia.com/Download/index.aspx) version >= 390.48 and [CUDA](https://developer.nvidia.com/cuda-91-download-archive) version 9.1.Environment Variables
---------------------
Run the following to make sure the following environment variables are correctly set:
```
export PATH=/path/to/cuda/bin:${PATH}
export LD_LIBRARY_PATH=/path/to/cuda/lib64:/path/to/aresdb/lib:${LD_LIBRARY_PATH}
export PKG_CONFIG_PATH=${LD_LIBRARY_PATH}/pkgconfig:${PKG_CONFIG_PATH}
```Language Requirements
---------------------
Building and running AresDB requires:
* [golang](https://golang.org/) 1.11+
* C++ compiler that support c++14
* [cmake](https://cmake.org/download/) 3.12+
* [nvcc](https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html) version 9.1Configure
---------
Run following commands to generate makefile:
```
cmake -DQUERY_MODE=DEVICE .
```Alternatively, if you want to run the query in CPU mode, run following commands:
```
cmake -DQUERY_MODE=HOST .
```Local Test
----------
AresDB is written in C++ (query engine) and Golang (mem store, disk store and other query components). Because of this, we break testing into two parts:
### Test Golang Code
#### Ginkgo
We use [Ginkgo](https://github.com/onsi/ginkgo) as the test framework for running the Golang unit test and coverage. Install Ginkgo first and run
```
make test-golang
```### Test C++ Code
#### google-test
We use [google-test](https://github.com/google/googletest) as the test framework to test C++ code. Install google-test and set the environment variable, GTEST_ROOT, to the installed location.After you have installed properly, run
```
make test-cuda
```Run AresDB Server
-----------------
The following command will start an AresDB server locally. You can start to query the server using a curl command or [swagger](https://github.com/uber/aresdb/wiki/Swagger) page.
```
make run_server
```Run AresDB Docker
-----------------
Please read the [Docker](docker/README.md) page.Documentation
--------------Interested in learning more about AresDB? Read the [blog post](https://eng.uber.com/aresdb/)
License
-------
Apache 2.0 License, please see [LICENSE](LICENSE) for details.[ci-img]: https://travis-ci.com/uber/aresdb.svg?branch=master
[ci]: https://travis-ci.com/uber/aresdb
[cov-img]: https://codecov.io/gh/uber/aresdb/branch/master/graph/badge.svg
[cov]: https://codecov.io/gh/uber/aresdb