EventQl是一個分佈式的柱狀數據庫,用於大規模數據收集和分析工作負載。它可以處理大量的流媒體寫入並運行超快速的SQL和MapReduce查詢。
更多信息:文檔,下載,體系結構,入門
這是EventQL的主要功能的快速運行,使您感到興奮。有關這些主題及其警告的更多詳細信息,您會向文檔提及。
自動分區。使用主鍵將表透明地分成分區,並在許多機器中分佈。您不必預先配置碎片的數量。只需插入您的數據,而EventQL可以處理其餘的。
願意寫作。支持基於初級鑰匙的插入,UPSERT和刪除操作。您可以使用UPSERT操作從流媒體來源輕鬆攝入。
緊湊,柱狀存儲。柱狀存儲引擎允許EventQl大幅度減少其I/O的足跡,並比面向行的系統更快地執行分析查詢訂單。
標準SQL支持。 (幾乎)完整的SQL 2009支持。 (它確實連接!)查詢也會自動並行並在許多機器上執行
鱗屑到之前。 EventQl在許多同樣特權的服務器之間分配所有表分區和查詢。如果有足夠的機器,則可以在單個表中存儲並查詢數千個數據。
流,低延遲操作。您無需將數據批量加載到EventQl中 - 它可以處理大量流媒體插入和更新操作。所有突變均立即可見,最小的SQL查詢潛伏期為〜0.1ms。
時間和關係數據。只要有一個好的主鍵,自動分區支持時間表以及關係和關鍵價值數據。存儲引擎還支持重複和記錄類型,因此可以將任意的JSON對象插入行中。
HTTP API。 HTTP API允許您在任何應用程序中使用查詢結果,並輕鬆從任何應用程序或設備發送數據。 EventQL還支持基於本機TCP的協議。
快速範圍掃描。 EventQl中的表分區被排序並具有定義的鍵鍵,因此您可以在鍵空間的一部分上執行有效的範圍掃描。
硬件有效。 EventQL在現代C ++中實現,並通過使用矢量化執行和SSE說明嘗試實現商品硬件的最大性能。
高度可用。 EventQl的共享架構具有很高的容錯。集群由許多同樣具有特權的節點組成,沒有單一的失敗點。
獨立的。您可以在幾分鐘內設置一個新集群。 EventQl Server作為單個二進製文件發票,除了Zookeeper或類似的協調服務外沒有外部依賴關係。
以下是一些特別適合EventQl的設計的示例場景:
請注意,EventQl圍繞特定的設計選擇構建,這使其非常適合實時數據分析處理(OLAP)任務,但也意味著它不適合大多數交易(OLTP)工作負載。
在開始之前,我們需要安裝一些構建依賴項。目前,您需要現代的C ++編譯器,Libz,Autotools和Python(用於SpidermonKey/Mozbuild)
# Ubuntu
$ apt-get install clang make automake autoconf libtool zlib1g-dev
# OSX
$ brew install automake autoconf libtool
從分銷tarball構建EventQl:
$ ./configure
$ make
$ sudo make install
從GIT結帳構建EventQl:
$ git clone [email protected]:eventql/eventql.git
$ cd eventql
$ ./autogen.sh
$ ./configure
$ make V=1
$ src/evql -h
運行完整的(世界)測試套件:
$ make test
運行快速(煙)測試套件:
$ make smoketest