EventQL adalah basis data kolom terdistribusi yang dibangun untuk pengumpulan data skala besar dan beban kerja analitik. Ini dapat menangani sejumlah besar streaming menulis dan menjalankan kueri SQL dan MapReduce super cepat.
Informasi lebih lanjut: dokumentasi, unduh, arsitektur, memulai
Ini adalah run-through cepat dari fitur-fitur utama EventQL untuk membuat Anda bersemangat. Untuk informasi lebih rinci tentang topik -topik ini dan peringatannya, Anda dengan baik dirujuk ke dokumentasi.
Partisi otomatis. Tabel secara transparan dibagi menjadi partisi menggunakan kunci utama dan didistribusikan di antara banyak mesin. Anda tidak perlu mengkonfigurasi jumlah pecahan di muka. Cukup masukkan data Anda dan EventQL menangani sisanya.
Idempotent menulis. Mendukung operasi insert berbasis kunci primer, upsert dan hapus. Anda dapat menggunakan operasi UpSert untuk konsumsi yang mudah dari sumber streaming.
Penyimpanan kolom kompak. Mesin penyimpanan kolom memungkinkan EventQL untuk secara drastis mengurangi jejak I/O dan menjalankan urutan kueri analitik dengan magnitudo lebih cepat dari sistem berorientasi baris.
Dukungan SQL standar. (Hampir) Lengkapi dukungan SQL 2009. (Ia bergabung!) Kueri juga secara otomatis diparalelkan dan dieksekusi pada banyak mesin secara paralel
Timbangan ke Petabytes. EventQL mendistribusikan semua partisi tabel dan pertanyaan di antara sejumlah server yang sama -sama istimewa. Diberikan cukup mesin Anda dapat menyimpan dan menanyakan ribuan jika terrabyte data dalam satu tabel.
Streaming, operasi latensi rendah. Anda tidak harus memuat data batch ke EventQL - dapat menangani volume besar insert dan memperbarui operasi. Semua mutasi segera terlihat dan latensi kueri SQL minimal adalah ~ 0,1ms.
Timeseries dan data relasional. Partisi otomatis mendukung timeseries serta data nilai relasional dan kunci, selama ada kunci utama yang baik. Mesin penyimpanan juga mendukung jenis yang diulang dan catatan sehingga objek JSON yang sewenang -wenang dapat dimasukkan ke dalam baris.
HTTP API. HTTP API memungkinkan Anda menggunakan hasil kueri dalam aplikasi apa pun dan dengan mudah mengirim data dari aplikasi atau perangkat apa pun. EventQL juga mendukung protokol berbasis TCP asli.
Pemindaian rentang cepat. Partisi tabel di EventQL dipesan dan memiliki keyrange yang ditentukan, sehingga Anda dapat melakukan pemindaian jangkauan yang efisien pada bagian -bagian ruang kunci.
Perangkat keras efisien . EventQL diimplementasikan dalam C ++ modern dan mencoba untuk mencapai kinerja maksimal pada perangkat keras komoditas dengan menggunakan eksekusi dan instruksi SSE yang divektor.
Sangat tersedia . Arsitektur EventQL yang tidak sama sekali tidak toleran terhadap kesalahan. Sebuah cluster terdiri dari banyak node yang sama -sama istimewa dan tidak memiliki satu titik kegagalan tunggal.
Mandiri. Anda dapat mengatur cluster baru dalam hitungan menit. EventQL Server dikirim sebagai biner tunggal dan tidak memiliki dependensi eksternal kecuali Zookeeper atau layanan koordinasi yang serupa.
Berikut adalah beberapa contoh skenario yang sangat cocok untuk desain EventQL:
Perhatikan bahwa EventQL dibangun di sekitar pilihan desain spesifik yang menjadikannya sangat cocok untuk tugas pemrosesan analisis data real-time (OLAP), tetapi juga berarti itu tidak cocok untuk sebagian besar beban kerja transaksional (OLTP).
Sebelum kita bisa mulai, kita perlu menginstal beberapa dependensi build. Saat ini Anda memerlukan kompiler C ++ modern, Libz, Autotools dan Python (untuk Spidermonkey/Mozbuild)
# Ubuntu
$ apt-get install clang make automake autoconf libtool zlib1g-dev
# OSX
$ brew install automake autoconf libtool
Untuk membangun EventQL dari distribusi tarball:
$ ./configure
$ make
$ sudo make install
Untuk membangun EventQL dari checkout git:
$ git clone [email protected]:eventql/eventql.git
$ cd eventql
$ ./autogen.sh
$ ./configure
$ make V=1
$ src/evql -h
Untuk menjalankan suite tes lengkap (dunia):
$ make test
Untuk menjalankan suite uji cepat (asap):
$ make smoketest