Getting started

EventQL runs on OSX and Linux. You can download the binaries or build the code from scratch. Please refer to the documentation for further instructions.

$ ./evqld --listen 0.0.0.0:9175 --datadir /srv/evql --standalone

While EventQL is a distributed database first and foremost it also implements a standalone mode so you can quickly get it running on your development machine.

Features

This is a quick run-through of EventQL's key features to get you excited. For more detailed information on these topics and their caveats you are kindly referred to the documentation.

Automatic partitioning. Tables are transparently split into partitions using a primary key and distributed among many machines. You don't have to configure the number of shards upfront. Just insert your data and EventQL handles the rest.

Tables are transparently split into partitions using a primary key and distributed among many machines. You don't have to configure the number of shards upfront. Just insert your data and EventQL handles the rest. Idempotent writes. Supports primary-key based INSERT, UPSERT and DELETE operations. You can use the UPSERT operation for easy exactly-once ingestion from streaming sources.

Supports primary-key based INSERT, UPSERT and DELETE operations. You can use the UPSERT operation for easy exactly-once ingestion from streaming sources. Compact, columnar storage. The columnar storage engine allows EventQL to drastically reduce its I/O footprint and execute analytical queries orders of magnitude faster than row-oriented systems.

The columnar storage engine allows EventQL to drastically reduce its I/O footprint and execute analytical queries orders of magnitude faster than row-oriented systems. Standard SQL support. (Almost) complete SQL 2009 support. (It does JOINs!) Queries are also automatically parallelized and executed on many machines in parallel

(Almost) complete SQL 2009 support. (It does JOINs!) Queries are also automatically parallelized and executed on many machines in parallel Scales to petabytes. EventQL distributes all table partitions and queries among a number of equally privileged servers. Given enough machines you can store and query thousands if terrabytes of data in a single table.

EventQL distributes all table partitions and queries among a number of equally privileged servers. Given enough machines you can store and query thousands if terrabytes of data in a single table. Streaming, low-latency operations. You don't have to batch-load data into EventQL - it can handle large volumes of streaming insert and update operations. All mutations are immediately visible and minimal SQL query latency is ~0.1ms.

You don't have to batch-load data into EventQL - it can handle large volumes of streaming insert and update operations. All mutations are immediately visible and minimal SQL query latency is ~0.1ms. Timeseries and relational data. The automatic partitioning supports timeseries as well as relational and key value data, as long as there is a good primary key. The storage engine also supports REPEATED and RECORD types so arbitrary JSON objects can be inserted into rows.

The automatic partitioning supports timeseries as well as relational and key value data, as long as there is a good primary key. The storage engine also supports REPEATED and RECORD types so arbitrary JSON objects can be inserted into rows. HTTP API. The HTTP API allows you to use query results in any application and easily send data from any application or device. EventQL also supports a native TCP-based protocol.

The HTTP API allows you to use query results in any application and easily send data from any application or device. EventQL also supports a native TCP-based protocol. Fast range scans. Table partitions in EventQL are ordered and have a defined keyrange, so you can perform efficient range scans on parts of the keyspace.

Table partitions in EventQL are ordered and have a defined keyrange, so you can perform efficient range scans on parts of the keyspace. Hardware efficient. EventQL is implemented in modern C++ and tries to achieve maximal performance on commodity hardware by using vectorized execution and SSE instructions.

EventQL is implemented in modern C++ and tries to achieve maximal performance on commodity hardware by using vectorized execution and SSE instructions. Highly Available. The shared-nothing architecture of EventQL is highly fault tolerant. A cluster consists of many, equally privileged nodes and has no single point of failure.

The shared-nothing architecture of EventQL is highly fault tolerant. A cluster consists of many, equally privileged nodes and has no single point of failure. Self-contained. You can set up a new cluster in minutes. The EventQL server ships as a single binary and has no external dependencies except Zookeeper or a similar coordination service.

Use Cases

Here are a few example scenarios that are particularly well suited to EventQL's design:

Storage and analysis of streaming event, timeseries or relational data

High volume event and sensor data logging

Joining and correlating of timeseries data with relational tables

Note that EventQL is built around specific design choices that make it an excellent fit for real-time data analytics processing (OLAP) tasks, but also mean it's not well suited for most transactional (OLTP) workloads.

Commercial Support

Hate vendor lock-in? Us too! The EventQL™ codebase is well documented and available under the open-source AGPL v3 license. Still, DeepCortex GmbH is happy to offer unparalleled access to EventQL brain power by the employer of all core EventQL developers.

EventQL Cloud is a fully managed and hosted version of EventQL. Let us worry about where and how your data infrastructure runs and focus on getting results. Currently in private beta.

Have a question? Talk to us about setup, integrations, feature requests and 24/7 on-call support for on-premise deployments. sales@eventql.io