/eventql

The EventQL Database

Primary LanguageC++OtherNOASSERTION

EventQL Build Status

EventQL is a distributed, column-oriented database built for large-scale event collection and analytics. It runs super-fast SQL and JavaScript queries.

Documentation: eventql.io

Build

Before we can start we need to install some build dependencies. Currently you need a modern c++ compiler, libz, autotools and python (for spidermonkey/mozbuild)

# Ubuntu
$ apt-get install clang++ cmake make automake autoconf zlib1g-dev

# OSX
$ brew install automake autoconf

To build EventQL from a distribution tarball:

$ ./configure
$ make
$ sudo make install

To build EventQL from a git checkout:

$ git clone git@github.com:eventql/eventql.git
$ cd eventql
$ ./autogen.sh
$ ./configure
$ make V=1
$ src/evql -h

To run the test suite:

$ make test

Features

  • Supports INSERT, UPDATE and DELETE operations
  • Supports flat and complex/nested tables (OBJECT/ARRAY column types). Table rows can be inserted and retrieved as JSON objects.
  • Rows are stored in a column oriented fashion. Queries only read required data for referenced columns.
  • (Almost) complete SQL 2009 support. (It does JOINs!)
  • Tables are transparently split into ordered partitions by primary key and distributed onto many machines
  • Queries are also automatically parallelized and executed on many machines in parallel
  • Scales to hundreds of terrabytes per table, thousands of tables per cluster
  • "Shared nothing" design. An EventQL cluster consists of many equally privileged servers
  • Fully transparent query caching when the same query is repeatedly executed on (partially) unchanged data
  • Written in modern C++11 with extensive documentation. Commercial support available