All Projects → uber → Aresdb

uber / Aresdb

Licence: apache-2.0
A GPU-powered real-time analytics storage and query engine.

Programming Languages

go
31211 projects - #10 most used programming language
Cuda
1817 projects
C++
36643 projects - #6 most used programming language
javascript
184084 projects - #8 most used programming language
c
50402 projects - #5 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to Aresdb

Tensorbase
TensorBase BE is building a high performance, cloud neutral bigdata warehouse for SMEs fully in Rust.
Stars: ✭ 440 (-84.36%)
Mutual labels:  analytics, database, data
Tera
An Internet-Scale Database.
Stars: ✭ 1,846 (-34.4%)
Mutual labels:  database, data, storage
Arquero
Query processing and transformation of array-backed data tables.
Stars: ✭ 384 (-86.35%)
Mutual labels:  query, database, data
Metabase
The simplest, fastest way to get business intelligence and analytics to everyone in your company 😋
Stars: ✭ 26,803 (+852.49%)
Mutual labels:  analytics, database, data
Oblecto
Oblecto is a media server, which streams media you already own, and is designed to be at the heart of your entertainment experience. It runs on your home server to index and analyze your media such as Movies and TV Shows and presents them in an interface tailored for your media consupmtion needs.
Stars: ✭ 67 (-97.62%)
Mutual labels:  database, storage, real-time
React Native Firebase
🔥 A well-tested feature-rich modular Firebase implementation for React Native. Supports both iOS & Android platforms for all Firebase services.
Stars: ✭ 9,674 (+243.78%)
Mutual labels:  analytics, database, storage
Pumpkindb
Immutable Ordered Key-Value Database Engine
Stars: ✭ 1,219 (-56.68%)
Mutual labels:  query, database, storage
Reddit Detective
Play detective on Reddit: Discover political disinformation campaigns, secret influencers and more
Stars: ✭ 129 (-95.42%)
Mutual labels:  analytics, database, data
Sqldb Logger
A logger for Go SQL database driver without modify existing *sql.DB stdlib usage.
Stars: ✭ 160 (-94.31%)
Mutual labels:  query, database
Dop
JavaScript implementation for Distributed Object Protocol
Stars: ✭ 163 (-94.21%)
Mutual labels:  data, real-time
Query Exporter
Export Prometheus metrics from SQL queries
Stars: ✭ 166 (-94.1%)
Mutual labels:  query, database
Fake2db
Generate fake but valid data filled databases for test purposes using most popular patterns(AFAIK). Current support is sqlite, mysql, postgresql, mongodb, redis, couchdb.
Stars: ✭ 2,113 (-24.91%)
Mutual labels:  database, data
Spark With Python
Fundamentals of Spark with Python (using PySpark), code examples
Stars: ✭ 150 (-94.67%)
Mutual labels:  analytics, database
Stats
A well tested and comprehensive Golang statistics library package with no dependencies.
Stars: ✭ 2,196 (-21.96%)
Mutual labels:  analytics, data
App Dirs Rs
Put your Rust app's data in the right place on every platform
Stars: ✭ 147 (-94.78%)
Mutual labels:  data, storage
Web Database Analytics
Web scrapping and related analytics using Python tools
Stars: ✭ 175 (-93.78%)
Mutual labels:  analytics, database
Optical Flow Filter
A real time optical flow algorithm implemented on GPU
Stars: ✭ 146 (-94.81%)
Mutual labels:  real-time, cuda
Amplify Cli
The AWS Amplify CLI is a toolchain for simplifying serverless web and mobile development.
Stars: ✭ 2,399 (-14.75%)
Mutual labels:  analytics, storage
Duckdb
DuckDB is an in-process SQL OLAP Database Management System
Stars: ✭ 4,014 (+42.64%)
Mutual labels:  analytics, database
Omniscidb
OmniSciDB (formerly MapD Core)
Stars: ✭ 2,601 (-7.57%)
Mutual labels:  database, real-time

Build Status Coverage Status license FOSSA Status


AresDB Logo

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.

Legal Note

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].