EventQLは、大規模なデータ収集および分析ワークロード用に構築された分散型柱データベースです。大量のストリーミングの書き込みを処理し、SQLとMapReduceクエリを実行します。
詳細:ドキュメント、ダウンロード、アーキテクチャ、開始
これは、EventQLの重要な機能を簡単に実行して、興奮します。これらのトピックとそれらの警告に関する詳細情報については、ドキュメントを親切に参照してください。
自動パーティション。テーブルは、プライマリキーを使用してパーティションに透過的に分割され、多くのマシンに分散されています。シェード数を事前に構成する必要はありません。データを挿入するだけで、EventQLは残りを処理します。
iDempotentは書いています。プライマリキーベースのインサート、UPSERTおよび削除操作をサポートします。 UpSert操作を使用して、ストリーミングソースから簡単に正確に摂取することができます。
コンパクト、カラムストレージ。 Columnar Storage Engineにより、EventQLはI/Oフットプリントを大幅に削減し、分析クエリをRow指向のシステムよりも数桁速く実行できます。
標準のSQLサポート。 (ほぼ)完全なSQL 2009サポート。 (結合します!)クエリは自動的に平行にされ、多くのマシンで並列に実行されます
ペタバイトのスケール。 EventQLは、すべてのテーブルパーティションとクエリを、多くの同等に特権的なサーバーに配布します。十分なマシンが与えられると、テラバイトのデータを単一のテーブルに保存および照会できます。
ストリーミング、低遅延操作。データをEventQLにバッチロードする必要はありません - 大量のストリーミングインサートと更新操作を処理できます。すべての変異はすぐに表示され、最小限のSQLクエリレイテンシは〜0.1msです。
タイムリーとリレーショナルデータ。自動パーティションは、適切な主キーがある限り、タイムリーとリレーショナルおよびキー値データをサポートします。ストレージエンジンは、繰り返しのタイプとレコードタイプもサポートするため、任意のJSONオブジェクトを行に挿入できます。
HTTP API。 HTTP APIを使用すると、任意のアプリケーションでクエリ結果を使用し、アプリケーションまたはデバイスからデータを簡単に送信できます。 EventQLは、ネイティブTCPベースのプロトコルもサポートしています。
高速レンジスキャン。 EventQLのテーブルパーティションが注文され、定義されたキーレンジがあるため、キースペースの一部で効率的な範囲スキャンを実行できます。
ハードウェア効率。 EventQLは最新のC ++で実装され、ベクトル化された実行とSSE命令を使用して、コモディティハードウェアの最大パフォーマンスを実現しようとします。
高度に利用可能。 EventQLの共有ノーミングアーキテクチャは、非常に障害の耐性です。クラスターは、多くの等しく特権的なノードで構成されており、単一の障害点はありません。
自己完結型。数分で新しいクラスターをセットアップできます。 EventQLサーバーは単一のバイナリとして出荷され、Zookeeperまたは同様の調整サービスを除いて外部依存関係はありません。
EventQLの設計に特に適したシナリオの例をいくつか紹介します。
EventQLは、リアルタイムデータ分析処理(OLAP)タスクに優れた特定の設計選択を中心に構築されていることに注意してください。
開始する前に、いくつかのビルド依存関係をインストールする必要があります。現在、最新のC ++コンパイラ、LIBZ、AutoTools、Python(Spidermonkey/Mozbuild用)が必要です
# Ubuntu
$ apt-get install clang make automake autoconf libtool zlib1g-dev
# OSX
$ brew install automake autoconf libtool
分布ターボールから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