aresdb

A GPU-powered real-time analytics storage and query engine.

Github星跟蹤圖

Build Status Coverage Status license FOSSA Status

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.

This repo contains the source code of AresDB and debug UI.

AresDB requires the CUDA Toolkit. Please ensure you read, acknowledge, and accept the CUDA End User License Agreement.

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 version >= 390.48 and CUDA 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 1.11+
  • C++ compiler that support c++14
  • cmake 3.12+
  • nvcc version 9.1

Configure

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 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 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 page.

make run_server

Run AresDB Docker

Please read the Docker page.

Documentation

Interested in learning more about AresDB? Read the blog post

License

Apache 2.0 License, please see LICENSE for details.

主要指標

概覽
名稱與所有者uber/aresdb
主編程語言Go
編程語言Shell (語言數: 11)
平台
許可證Apache License 2.0
所有者活动
創建於2018-09-20 14:56:46
推送於2024-07-13 08:54:26
最后一次提交2020-04-23 13:50:56
發布數2
最新版本名稱v0.0.2 (發布於 2019-10-10 14:42:15)
第一版名稱v0.0.1 (發布於 )
用户参与
星數3k
關注者數96
派生數234
提交數404
已啟用問題?
問題數53
打開的問題數22
拉請求數271
打開的拉請求數10
關閉的拉請求數45
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?