EventQl-это распределенная столбчатая база данных, созданная для крупномасштабных рабочих нагрузок сбора данных и аналитики. Он может обрабатывать большой объем потоковой передачи и запускает супербычные запросы SQL и MapReduce.
Более подробная информация: документация, загрузка, архитектура, начало работы
Это быстрый проход ключевых функций EventQl, чтобы вы взволнованы. Для получения более подробной информации по этим темам и их предостережениям вы любезно относитесь к документации.
Автоматическое разделение. Таблицы прозрачно разделены на перегородки с использованием первичного ключа и распределяются между многими машинами. Вам не нужно настроить количество осколков заранее. Просто вставьте свои данные, а EventQl обрабатывает все остальное.
Idempotent пишет. Поддерживает операции на основе первичного ключа, UPSERT и DELETE. Вы можете использовать операцию Upsert для легкого проглатывания из-за точности потоковых источников.
Компактное, столбчатое хранилище. Столковый двигатель хранения позволяет eventQL радикально уменьшить свой ввод/вывод и выполнять аналитические запросы на величины быстрее, чем системы, ориентированные на строки.
Стандартная поддержка SQL. (Почти) Полная поддержка SQL 2009. (Это соединения!) Запросы также автоматически параллелизируются и выполняются на многих машинах параллельно
Весы до петабайтов. EventQL распространяет все разделы и запросы на таблицу среди ряда одинаково привилегированных серверов. Учитывая достаточное количество машин, вы можете хранить и запрашивать тысячи людей, если террациты данных в одной таблице.
Потоковые операции с низкой задержкой. Вам не нужно падать данные в EventQl - он может обрабатывать большие объемы потоковой вставки и обновления. Все мутации сразу видны, а минимальная задержка запроса SQL составляет ~ 0,1 мс.
Время и реляционные данные. Автоматическое разделение поддерживает временные интернеты, а также данные о реляционных и ключевых данных, если есть хороший первичный ключ. Двигатель хранения также поддерживает повторяющиеся и записные типы, поэтому произвольные объекты JSON могут быть вставлены в строки.
Http api. HTTP API позволяет использовать результаты запроса в любом приложении и легко отправлять данные из любого приложения или устройства. EventQl также поддерживает нативный протокол на основе TCP.
Быстрое сканирование диапазона. Таблицы в EventQl заказаны и имеют определенный Keyrange, поэтому вы можете выполнить эффективные сканирования диапазона на частях ключи.
Аппаратное эффективное . EventQL реализован в современном C ++ и пытается достичь максимальной производительности на товарном оборудовании с помощью векторизованного выполнения и инструкций SSE.
Высоко доступен . Архитектура eventQL общей ноты очень устойчива к ошибке. Кластер состоит из многих, одинаково привилегированных узлов и не имеет единой точки отказа.
Автономный. Вы можете настроить новый кластер за считанные минуты. Сервер EventQl поставляется в виде единого двоичного файла и не имеет внешних зависимостей, кроме 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
Чтобы построить EventQL из дистрибутивного тарбола:
$ ./configure
$ make
$ sudo make install
Чтобы построить EventQL с оформления GIT:
$ git clone [email protected]:eventql/eventql.git
$ cd eventql
$ ./autogen.sh
$ ./configure
$ make V=1
$ src/evql -h
Чтобы запустить полный (мировой) тестовый набор:
$ make test
Чтобы запустить быстрый (дымовой) тестовый набор:
$ make smoketest