EventQL

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

  • INSERT & UPDATE high volumes of JSON or Protobuf events in real-time
  • Run SQL and JavaScript queries on billions of events
  • Tables and queries are transparently split into partitions and distributed over many servers.
  • Columnar storage engine with shredding and materialization support for nested records
  • Open-source C++11 codebase

Download EventQL 0.4.3 View on GitHub

SQL for large-scale Event Analytics

Did you ever whish you could insert a row into your SQL database for every page view? With EventQL, you can:

EventQL allows you to write and update high volumes of events into tables in real time and query them using standard SQL and JavaScript.

The columnar storage engine supports any schema - including arbitrary nesting within events - so you can store any JSON objects as rows. Internally, tables are split into partitions and distributed over many servers. Queries also run on many servers in parallel.

Given enough machines, or in an EventQL Cloud instance, you can query hundreds of terrabytes of event data at sub-second latency. This concept is sometimes referred to as "massively parallel database architecture".

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

  • Streaming web tracking & analytics
  • High volume event and sensor data logging
  • Serverless real-time dashboards

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.

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

Columnar Storage Engine

EventQL is a column-oriented database. This means that when executing a query, it doesn't have to read the full row from disk (like row-oriented databases) but only those columns which are actually required by the query.

This feature is fully transparent to the user: The only thing you will notice is dramatically increased IO performance and query execution speed.

Distributed SQL & JavaScript Query Scheduler

EventQL runs super-fast standard SQL queries and JavScript so you don't have to learn yet another query language but can use the powerful and battle tested tools that you already know. Queries are automatically parallelized and executed on many machines in parallel.

And yes, it does JOINs.

Nested Records

EventQL™ supports nested records through OBJECT and ARRAY data types. You can store complex JSON documents into rows and still keep a strict schema.

Nested records are stored in columnar format using the Dremel Record Shredding and Assembly algorithm.

ChartSQL NEW

ChartSQL allows you to write SQL queries that return charts instead of tables. Turning a query result into a chart is literally one line of code.

The charts are rendered as SVG vector graphics and can easily be embedded into any website and quickly customized with css in order to build beautiful real-time dashboards from your event data:

1
2
3
4
5
SELECT search_query, count(1) cnt
FROM ev.page_views
WHERE page_type = "search" and time > time_at("-30min")
GROUP BY search_query
ORDER BY cnt desc;

HTTP API

The HTTP API allows you to use query results in any application. Add data-driven features, optizimizations and visualizations to your product in minutes.

Real-time Inserts & Updates

You don't have to batch-load data into EventQL™. It can handle up to 100MB/s streaming inserts per table with ease. All updates are immediately visible.

High Availability

EventQL™ is highly fault tolerant by design. Every record is automatically replicated to a configurable number of machines and there is no single point of failure.

Open-source C++11 Code

Hate vendor lock-in? Us too! The EventQL™ codebase is well documented and available under the open-source AGPL v3 license.

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.

Read the Documentation

Commercial Support

DeepCortex GmbH is happy to offer unparalleled access to EventQL brain power by the employer of all core EventQL developers.

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

Managed Hosting

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 a sales engineer sales@eventql.io