VT2020-QuestDB-Demo

Installation
Il n'y a pas d'installation préalable à faire, si ce n'est celle QuestDB disponible ici. Il est également nécessaire de disposer d'un navigateur web tel que Firefox.

Vous pouvez également tester QuestDB en vous rendant sur leur démo en ligne, disponible ici.

=Démonstration=

Pour rappel, pour lancer la base de données, placez vous dans le dossier bin/ et effectuez la commande ./questdb.sh start

Rendez vous maintenant dans votre navigateur favori et accédez à l'adresse http://localhost:9000. Vous devriez voir l'interface web de QuestDB.

Si vous souhaitez générez les mêmes données que moi
Si vous ne voulez pas exactement les mêmes données que moi, vous pouvez passer cette étape

Pour avoir le même rendu que pendant ma présentation, il vous faudra récupérer le programme par lequel j'ai généré mes données. Vous pouvez exécuter ce code python qui vous génère 10,000 entrées au format csv, en pensant a changer le chemin du PATH :

Importation
Retournez sur l'interface web

Sur la barre de gauche, rendez vous dans la page d'import. Choisissez le fichier où vous avez généré vos données au format csv et importez le.

Attention : le nom de votre fichier sera le nom de votre table. Pensez a choisir un nom simple.

Vous pouvez maintenant revenir dans la console, toujours avec la barre de gauche. Vous pouvez faire une requête pour voir si votre fichier a bien été importé simplement en tapant le nom de la table et en appuyant sur Run.

Si la table n'apparait pas, vous pouvez recharger les tables depuis le disque en appuyant sur le bouton Refresh.

Attention : Il existe un bug encore non résolu lors de l'importation de données en csv qui empêche l'ajout d'une contrainte. Nous allons donc devoir procéder en 2 étapes.

Une fois cette table crée, nous allons créer notre table finale avec une requête SQL. On part du principe que la table que vous avez importé s'appelle  : On se retrouve avec une table disposant d'un  et partitionné en jour. Vous pouvez supprimer la table dataTest avec : La table livre a été crée de la même manière en modifiant légèrement le programme python.

Générer des données dans la console
Vous pouvez à pressent créer une table directement depuis cette console grâce à cette requête :

Si vous n'avez pas suivi la première étape, vous pouvez recréer une table en changeant  par un autre nom.

Exécution
On part maintenant du principe que vous avez 2 tables avec des valeurs temporelles proches, soient grâce au fichier python, soit directement avec les requêtes SQL. Par la suite les tables utilisés seront  et. Si les votre ont des noms différents, remplacez les dans les requêtes.

Vous pouvez échantillonner les données de cette manière : Le résultat sera la moyenne des valeurs contenus dans la colonne euro par jour.

Vous pouvez tester les comparaisons simplifié de timestamp avec : ou bien simplement : avec l'amélioration de ANSI SQL.

Vous pouvez essayer d'insérer une donnée temporelle plus ancienne que la dernière valeur dans un  avec : QuestDB vous renvoie une erreur.

Vous pouvez joindre des tables avec des données temporelles non exactes :

Vous pouvez tenter de faire des requêtes lourdes sur la table readings qui a 10 millions de ligne, et remarquer que les temps d'éxécutions sont courts.