All Projects → eventql → Eventql

eventql / Eventql

Licence: other
Distributed "massively parallel" SQL query engine

Programming Languages

cpp
1120 projects
cpp11
221 projects

Projects that are alternatives of or similar to Eventql

Crate
CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of data in real-time.
Stars: ✭ 3,254 (+190.28%)
Mutual labels:  sql, analytics, database, distributed-database, distributed
Trino
Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io)
Stars: ✭ 4,581 (+308.65%)
Mutual labels:  sql, analytics, database, distributed-database
Herddb
A JVM-embeddable Distributed Database
Stars: ✭ 192 (-82.87%)
Mutual labels:  sql, database, distributed-database, distributed
Clickhouse
ClickHouse® is a free analytics DBMS for big data
Stars: ✭ 21,089 (+1781.27%)
Mutual labels:  sql, analytics, distributed-database
Duckdb
DuckDB is an in-process SQL OLAP Database Management System
Stars: ✭ 4,014 (+258.07%)
Mutual labels:  sql, analytics, database
Lbadd
LBADD: An experimental, distributed SQL database
Stars: ✭ 362 (-67.71%)
Mutual labels:  sql, database, distributed
Awesome Distributed Systems
Awesome list of distributed systems resources
Stars: ✭ 512 (-54.33%)
Mutual labels:  distributed-database, distributed-storage, distributed
Data Science Best Resources
Carefully curated resource links for data science in one place
Stars: ✭ 1,104 (-1.52%)
Mutual labels:  sql, analytics, database
Web Database Analytics
Web scrapping and related analytics using Python tools
Stars: ✭ 175 (-84.39%)
Mutual labels:  sql, analytics, database
Rqlite
The lightweight, distributed relational database built on SQLite
Stars: ✭ 9,147 (+715.97%)
Mutual labels:  sql, database, distributed-database
Corfudb
A cluster consistency platform
Stars: ✭ 539 (-51.92%)
Mutual labels:  database, distributed-database, streaming
Interference
opensource distributed database with base JPA implementation and event processing support
Stars: ✭ 57 (-94.92%)
Mutual labels:  sql, database, distributed-database
Materialize
Materialize lets you ask questions of your live data, which it answers and then maintains for you as your data continue to change. The moment you need a refreshed answer, you can get it in milliseconds. Materialize is designed to help you interactively explore your streaming data, perform data warehousing analytics against live relational data, or just increase the freshness and reduce the load of your dashboard and monitoring tasks.
Stars: ✭ 3,341 (+198.04%)
Mutual labels:  sql, database, streaming
Shardingsphere
Build criterion and ecosystem above multi-model databases
Stars: ✭ 14,989 (+1237.11%)
Mutual labels:  sql, database, distributed-database
Tidb
TiDB is an open source distributed HTAP database compatible with the MySQL protocol
Stars: ✭ 29,871 (+2564.67%)
Mutual labels:  sql, database, distributed-database
Cockroach
CockroachDB - the open source, cloud-native distributed SQL database.
Stars: ✭ 22,700 (+1924.98%)
Mutual labels:  sql, database, distributed-database
Radon
RadonDB is an open source, cloud-native MySQL database for building global, scalable cloud services
Stars: ✭ 1,584 (+41.3%)
Mutual labels:  sql, database, distributed-database
Spark With Python
Fundamentals of Spark with Python (using PySpark), code examples
Stars: ✭ 150 (-86.62%)
Mutual labels:  sql, analytics, database
Citus
Distributed PostgreSQL as an extension
Stars: ✭ 5,580 (+397.77%)
Mutual labels:  sql, database, distributed-database
Yugabyte Db
The high-performance distributed SQL database for global, internet-scale apps.
Stars: ✭ 5,890 (+425.42%)
Mutual labels:  sql, database, distributed-database

EventQL

Build Status

EventQL is a distributed, columnar database built for large-scale data collection and analytics workloads. It can handle a large volume of streaming writes and runs super-fast SQL and MapReduce queries.

More information: Documentation, Download, Architecture, Getting Started

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.

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

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

  • Standard SQL support. (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.

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

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

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

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

  • Hardware efficient. 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.

  • 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

Non-goals

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.

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 make automake autoconf libtool zlib1g-dev

# OSX
$ brew install automake autoconf libtool

To build EventQL from a distribution tarball:

$ ./configure
$ make
$ sudo make install

To build EventQL from a git checkout:

$ git clone [email protected]:eventql/eventql.git
$ cd eventql
$ ./autogen.sh
$ ./configure
$ make V=1
$ src/evql -h

To run the full (world) test suite:

$ make test

To run the quick (smoke) test suite:

$ make smoketest
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].