EventQL ist eine verteilte Spaltendatenbank für die Erfassung von Datenerfassung und Analyse-Workloads in großem Maßstab. Es kann ein großes Volumen von Streaming-Schreibvorgängen verarbeiten und läuft superschnelle SQL- und MapReduce-Abfragen.
Weitere Informationen: Dokumentation, Download, Architektur, Erste Schritte
Dies ist eine schnelle Durchführung der wichtigsten Funktionen von EventQL, um Sie zu begeistern. Ausführlichere Informationen zu diesen Themen und ihrer Einschränkungen werden freundlicherweise auf die Dokumentation verwiesen.
Automatische Partitionierung. Tabellen werden transparent unter Verwendung eines Primärschlüssels in Partitionen aufgeteilt und zwischen vielen Maschinen verteilt. Sie müssen die Anzahl der Scherben im Voraus nicht konfigurieren. Fügen Sie einfach Ihre Daten ein und EventQL verarbeitet den Rest.
Idempotent schreibt. Unterstützt primäre Taste-Basis-, Stör- und Löschen von Vorgängen. Sie können den Upsert-Vorgang verwenden, um eine einfache Einnahme aus Streaming-Quellen zu erhalten.
Kompakt, Säulenspeicher. Mit der Columnar Storage Engine können EventQL seine E/A-Fußabdruck drastisch reduzieren und analytische Abfragen ordnungsgemäß schneller als zeilenorientierte Systeme ausführen.
Standard -SQL -Unterstützung. (Fast) Vollständige Unterstützung von SQL 2009. (Es schließt sich an!) Abfragen werden auch automatisch parallelisiert und auf vielen Maschinen parallel ausgeführt
Skalen zu Petabyte. EventQL verteilt alle Tabellenpartitionen und Abfragen zwischen einer Reihe gleichermaßen privilegierter Server. Bei genügend Maschinen können Sie Tausende speichern und abfragen, wenn Terrabyte von Daten in einer einzigen Tabelle.
Streaming, niedrige Latenzvorgänge. Sie müssen keine Daten in EventQL laden. Sie können große Mengen von Streaming -Insert- und Aktualisierungsvorgängen verarbeiten. Alle Mutationen sind sofort sichtbar und die minimale SQL -Abfragelatenz beträgt ~ 0,1 ms.
Timeseries und relationale Daten. Die automatische Partitionierung unterstützt Timeries sowie relationale und wichtige Wertdaten, solange es einen guten Primärschlüssel gibt. Die Speicher -Engine unterstützt auch wiederholte und zeichnete Typen, sodass beliebige JSON -Objekte in Reihen eingefügt werden können.
HTTP -API. Mit der HTTP -API können Sie Abfrageergebnisse in jeder Anwendung verwenden und Daten einfach von jeder Anwendung oder einem Gerät senden. EventQL unterstützt auch ein natives TCP-basierter Protokoll.
Schnelle Reichweite Scans. Tabellenpartitionen in EventQL werden bestellt und verfügen über einen definierten Keyrange, sodass Sie effiziente Reichweite auf Teilen des Schlüsselspace durchführen können.
Hardware effizient . EventQL wird in modernen C ++ implementiert und versucht, mithilfe der vektorisierten Ausführung und SSE -Anweisungen eine maximale Leistung der Warenhardware zu erzielen.
Sehr verfügbar . Die gemeinsame Architektur von EventQL ist sehr fehlertolerant. Ein Cluster besteht aus vielen, gleichermaßen privilegierten Knoten und hat keinen einzigen Fehler.
In sich geschlossen. Sie können in Minuten einen neuen Cluster einrichten. Der EventQL -Server wird als einzelne Binärdatum versendet und hat keine externen Abhängigkeiten außer Zookeeper oder einem ähnlichen Koordinationsdienst.
Hier sind einige Beispielszenarien, die besonders gut für das Design von EventQL geeignet sind:
Beachten Sie, dass EventQL in spezifischen Designoptionen aufgebaut ist, die es zu einer hervorragenden Anpassung für die Echtzeit-Datenanalyse-Aufgaben (OLAP) machen, bedeuten jedoch auch, dass es für die meisten Transaktions-Workloads (OLTP) nicht gut geeignet ist.
Bevor wir beginnen können, müssen wir einige Build -Abhängigkeiten installieren. Derzeit benötigen Sie einen modernen C ++ - Compiler, Libz, Autotools und Python (für Spidermonkey/Mozbuild)
# Ubuntu
$ apt-get install clang make automake autoconf libtool zlib1g-dev
# OSX
$ brew install automake autoconf libtool
Erstellen von EventQL aus einem Vertriebstarball:
$ ./configure
$ make
$ sudo make install
So erstellen Sie EventQL aus einer Git -Kasse:
$ git clone [email protected]:eventql/eventql.git
$ cd eventql
$ ./autogen.sh
$ ./configure
$ make V=1
$ src/evql -h
Um die vollständige (Welt-) Testsuite zu führen:
$ make test
Um die schnelle (Rauch-) Testsuite zu führen:
$ make smoketest