EventQL est une base de données en colonne distribuée conçue pour la collecte de données à grande échelle et les charges de travail d'analyse. Il peut gérer un grand volume d'écritures en streaming et exécute des requêtes SQL et MapReduce super-rapides.
Plus d'informations: documentation, téléchargement, architecture, démarrage
Il s'agit d'une course rapide des principales fonctionnalités d'EventQL pour vous exciter. Pour des informations plus détaillées sur ces sujets et leurs mises en garde, vous êtes aimablement référé à la documentation.
Partitionnement automatique. Les tableaux sont divisés de manière transparente en partitions en utilisant une clé primaire et distribuées entre de nombreuses machines. Vous n'avez pas à configurer le nombre d'éclats à l'avance. Insérez simplement vos données et EventQL gère le reste.
Écrit idempotent. Prend en charge les opérations d'insertion, de mise en usiser et de suppression basée sur la touche primaire. Vous pouvez utiliser l'opération Upsert pour une ingestion exactement exactement à partir de sources de streaming.
Stockage compact et colonne. Le moteur de stockage en colonnes permet à EventQL de réduire considérablement son empreinte d'E / S et d'exécuter des commandes de requêtes analytiques plus rapidement que les systèmes orientés vers les lignes.
Support SQL standard. (Presque) Support SQL 2009 complet. (Il se joint!) Les requêtes sont également automatiquement parallélisées et exécutées sur de nombreuses machines en parallèle
Échelles aux pétaoctets. EventQL distribue toutes les partitions et requêtes de la table parmi un certain nombre de serveurs tout aussi privilégiés. Compte tenu de suffisamment de machines, vous pouvez stocker et interroger des milliers si des terrabilits de données dans une seule table.
Streaming, opérations à faible latence. Vous n'avez pas à charger les données dans EventQL - il peut gérer de grands volumes d'opérations d'insert en streaming et de mise à jour. Toutes les mutations sont immédiatement visibles et la latence de requête SQL minimale est de ~ 0,1 ms.
Séquence de temps et données relationnelles. Le partitionnement automatique prend en charge les délais ainsi que les données de valeur relationnelle et de clé, tant qu'il y a une bonne clé primaire. Le moteur de stockage prend également en charge les types répétés et enregistrés afin que les objets JSON arbitraires puissent être insérés dans les lignes.
API HTTP. L'API HTTP vous permet d'utiliser les résultats de la requête dans n'importe quelle application et d'envoyer facilement des données à partir de toute application ou appareil. EventQL prend également en charge un protocole basé sur TCP natif.
Scans à portée rapide. Les partitions de table dans EventQL sont commandées et ont un dégustateur défini, vous pouvez donc effectuer des analyses de plage efficaces sur des parties de l'espace de Keys.
Matériel efficace . EventQL est implémenté en C ++ moderne et essaie d'atteindre des performances maximales sur le matériel de base en utilisant l'exécution vectorisée et les instructions SSE.
Très disponible . L'architecture partagée de EventQL est très tolérante aux défauts. Un cluster se compose de nombreux nœuds également privilégiés et n'a pas de point d'échec unique.
Autonome. Vous pouvez configurer un nouveau cluster en quelques minutes. Le serveur EventQL est expédié en tant que binaire unique et n'a pas de dépendances externes sauf Zookeeper ou un service de coordination similaire.
Voici quelques exemples de scénarios qui sont particulièrement bien adaptés à la conception d'EventQL:
Notez que EventQL est construit autour de choix de conception spécifiques qui en font un excellent ajustement pour les tâches de traitement d'analyse de données en temps réel (OLAP), mais signifient également qu'elle n'est pas bien adaptée à la plupart des charges de travail transactionnelles (OLTP).
Avant de pouvoir commencer, nous devons installer certaines dépendances de construction. Actuellement, vous avez besoin d'un compilateur C ++ moderne, Libz, Autotools et Python (pour Spidermonkey / Mozbuild)
# Ubuntu
$ apt-get install clang make automake autoconf libtool zlib1g-dev
# OSX
$ brew install automake autoconf libtool
Pour construire EventQL à partir d'un tarball de distribution:
$ ./configure
$ make
$ sudo make install
Pour construire EventQL à partir d'une caisse git:
$ git clone [email protected]:eventql/eventql.git
$ cd eventql
$ ./autogen.sh
$ ./configure
$ make V=1
$ src/evql -h
Pour exécuter la suite de tests complète (mondiale):
$ make test
Pour exécuter la suite de test rapide (fumée):
$ make smoketest