ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Je vous invite à découvrir la transcription du rapport de 2017 d'Igor Strychar « ClickHouse – analyse des données visuellement rapide et intuitive dans Tabix ».

Interface web pour ClickHouse dans le projet Tabix.
Fonctionnalités principales :

  • Fonctionne avec ClickHouse directement depuis le navigateur, sans besoin d'installer de logiciel supplémentaire ;
  • Éditeur de requêtes avec surlignage de syntaxe ;
  • Complétion automatique des commandes ;
  • Outils d'analyse graphique de l'exécution des requêtes ;
  • Schémas de couleurs au choix.
    ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr


Lire la vidéo

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Je suis directeur technique chez СМИ2. Nous sommes un agrégateur d'échanges de nouvelles. Nous stockons de nombreuses données que nous recevons de nos partenaires et les enregistrons dans ClickHouse – environ 30 000 requêtes par seconde.

Il s'agit de données telles que :

  • Clics sur les nouvelles.
  • Affichages de nouvelles dans l'agrégateur.
  • Affichages de bannières dans notre réseau.
  • Et nous enregistrons des événements à partir de notre propre compteur, similaire à Yandex.Metrica. C'est notre propre micro-analyse.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Nous avons eu une vie très mouvementée avant ClickHouse. Nous avons beaucoup souffert en essayant de stocker ces données quelque part et de les analyser.

La vie avant ClickHouse – infiniDB

La première chose que nous avons eu, c'est infiniDB. Elle a duré 4 ans chez nous. Nous l’avons lancée avec difficulté.

  • Elle ne prend pas en charge la mise en cluster ou le sharding. Aucune de ces fonctionnalités intelligentes n’est intégrée par défaut.
  • Elle a des difficultés avec le chargement des données. Seulement un utilitaire console spécifique, qui ne pouvait charger que des fichiers CSV et d'une manière très obscure.
  • La base de données est mono-thread. On pouvait soit écrire, soit lire. Mais elle permettait de traiter un grand volume de données.
  • Et elle avait aussi un bricolage intéressant. Chaque nuit, il fallait redémarrer le serveur, sinon il ne fonctionnait pas.

Elle a fonctionné jusqu'à la fin de 2016, lorsque nous sommes complètement passés à ClickHouse.

La vie avant ClickHouse – Cassandra

Puisque infiniDB était mono-thread, nous avons décidé qu'il nous fallait une base de données multi-thread, où nous pourrions écrire beaucoup de flux en même temps.

Nous avons essayé beaucoup de choses intéressantes. Ensuite, nous avons décidé d'essayer Cassandra. Avec Cassandra, tout fonctionnait parfaitement. 10 000 requêtes par seconde en écriture. Environ 2 000 requêtes en lecture.

Mais elle avait aussi ses propres particularités. Une fois par mois ou tous les deux mois, il y avait une désynchronisation de la base de données. Et il fallait se réveiller et courir réparer Cassandra. Nous redémarrions les serveurs un par un. Et tout devenait fluide et joli.

La vie avant ClickHouse – Druid

Ensuite, nous avons compris que nous devions écrire encore plus de données. En 2016, nous avons commencé à nous intéresser à Druid.

Druid est une base de données open-source, écrite en Java. Très spécifique. Et elle convenait au clickstream, lorsque nous avions besoin de stocker un flux d'événements et ensuite de produire des agrégations ou des rapports analytiques.

Druid avait la version 0.9.X.

La base de données elle-même se déploie très difficilement. C'est une complexité d'infrastructure. Pour la déployer, il fallait installer beaucoup de matériel. Et chaque équipement avait son propre rôle.

Pour charger des données, il fallait appliquer une sorte de sorcellerie. Il existe un projet OpenSource – Tranquility, qui perdait nos données dans le flux. Quand nous y chargions des données, il les perdait.

Mais d'une certaine manière, nous avons commencé à l'implémenter. Nous, comme des hérissons qui se piquent, mais continuent de manger des cactus, avons commencé à l'implémenter. Il nous a fallu environ un mois pour préparer toute l'infrastructure pour cela. C'est-à-dire commander des serveurs, configurer les rôles, réaliser une automatisation complète du déploiement. C'est-à-dire, en cas de chute du cluster, un deuxième cluster se déploierait automatiquement.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Mais là, un miracle s'est produit. J'étais en vacances, et mes collègues m'ont envoyé un lien sur habr, où il est indiqué que Yandex a décidé d'ouvrir ClickHouse. J'ai dit, pourquoi ne pas essayer.

Et en l'espace de 2 jours, nous avons déployé un cluster de test ClickHouse. Nous avons commencé à y charger des données. Par rapport à infiniDB – c'était élémentaire, par rapport à Druid – c'était élémentaire. Par rapport à Cassandra aussi, c'est élémentaire. Parce que si l'on charge des données dans Cassandra à partir de php, ce n'est pas élémentaire.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Qu'avons-nous obtenu ? Une performance en vitesse. Une performance en stockage des données. C'est-à-dire qu'il utilise beaucoup moins d'espace disque. ClickHouse est rapide, il est très rapide comparé à d'autres produits.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Au moment de son lancement, lorsque Yandex a publié ClickHouse en OpenSource, il n'y avait qu'un client console. Nous, dans notre entreprise СМИ2, avons décidé d'essayer de créer un client natif web, afin de pouvoir ouvrir une page dans le navigateur, écrire une requête et obtenir un résultat, car nous avons commencé à écrire de nombreuses requêtes. Écrire dans la console est difficile. Et nous avons fait notre première version.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Et vers l'hiver de l'année dernière, des outils tiers ont commencé à apparaître pour travailler avec ClickHouse. Ce sont des outils comme :

Je vais examiner certains de ces outils, c'est-à-dire ceux avec lesquels j'ai travaillé.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

C'est un bon outil, mais pour Druid. Lorsque j'ai intégré Druid, j'ai testé SuperSet. Je l'ai beaucoup apprécié. Pour Druid, il fonctionne très rapidement.

Il n'est pas adapté pour ClickHouse. C'est-à-dire qu'il fonctionne, il se lance, mais il ne peut traiter que des requêtes élémentaires comme : SELECT event, GROUP BY event. Il ne prend pas en charge une syntaxe ClickHouse plus complexe.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Le prochain outil est Apache Zeppelin. C'est une chose bonne et intéressante. Ça fonctionne. Il prend en charge les notebooks, les dashboards, et les variables. Je sais que quelqu'un de la communauté ClickHouse l'utilise.

Mais il n'y a pas de support pour la syntaxe ClickHouse, c'est-à-dire qu'il faudra écrire les requêtes soit dans la console, soit ailleurs. Ensuite, il faut vérifier que tout cela fonctionne. C'est tout simplement peu pratique. Mais il a un bon support pour le dashboarding.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Le prochain outil est Redash.IO. Redash est hébergé sur internet. C'est-à-dire qu'à la différence des outils précédents, il n'a pas besoin d'être installé. C'est donc un dashboarding permettant la consolidation des données provenant de différentes sources de données. Vous pouvez extraire des données de ClickHouse, MySQL, PostgreSQL et d'autres bases de données.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Il y a à peine un mois (en mars 2017), le support a été ajouté dans Grafana. Lorsque vous construisez des rapports dans Grafana, par exemple sur l'état de votre matériel ou sur certaines métriques, vous pouvez maintenant créer un graphique ou un tableau similaire à partir des données de ClickHouse directement. C'est très pratique, et nous l'utilisons chez nous. Cela permet de détecter des anomalies. C'est-à-dire que si quelque chose se passe et qu'un matériel tombe en panne ou rencontre des problèmes, vous pouvez voir la raison si ces données ont réussi à atteindre ClickHouse.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Il m'était très inconfortable d'écrire dans ces outils ou dans la console. J'ai donc décidé de peaufiner notre première interface. J'ai emprunté l'idée à EventSQL, SeperSet, Zeppelin.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Que voulais-je ? Je voulais obtenir des graphiques, un éditeur amélioré, mettre en œuvre le support des dictionnaires de suggestions. Parce que ClickHouse a une excellente fonction - ce sont les dictionnaires. Mais il est difficile de travailler avec les dictionnaires, car il faut se souvenir du format des valeurs stockées, c'est-à-dire s'il s'agit d'un nombre ou d'une chaîne, etc. Et comme nous utilisons souvent des dictionnaires dans leurs différentes variations, il était donc assez difficile d'écrire des requêtes.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Trois mois se sont écoulés depuis la sortie de notre première version. J'ai réalisé environ 330 commits dans cette branche fermée et cela a donné naissance à Tabix.

Contrairement à la version précédente, qui s'appelait ClickHouse-Frontend, j'ai décidé de le renommer en un nom plus simple. Et cela a donné Tabix.

Qu'est-ce qui est nouveau ?

Il dessine des graphiques. Il prend en charge la syntaxe SQL de ClickHouse. Il fournit des suggestions sur les fonctions et bien d'autres fonctionnalités intéressantes.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Voici à quoi ressemble le schéma général de Tabix. À gauche, vous avez l'arbre. Au centre – l'éditeur de requêtes. Et en bas – le résultat de cette requête.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Je vais maintenant vous montrer comment fonctionne l'éditeur de requêtes.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Ici, l'autocomplétion a fonctionné automatiquement sur la table et donne des suggestions d'autocomplétion pour les champs. Et des suggestions pour les fonctions. Si vous appuyez sur Ctrl + Entrée, la requête sera exécutée ou échouera avec une erreur. La requête la plus simple est envoyée à Tabix et le résultat est obtenu, c'est-à-dire que vous pouvez travailler rapidement avec ClickHouse.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Les dictionnaires, comme je l'ai déjà dit, sont une chose très intéressante avec laquelle nous travaillons beaucoup. Et cela a permis de réaliser de nombreuses choses. Par exemple, dans les dictionnaires, nous stockons toutes les villes. Nous stockons l'identifiant de la ville et le nom de la ville, sa latitude et sa longitude. Et dans la base, nous ne stockons que l'identifiant de la ville. Cela nous permet de compresser considérablement les données.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Cela peut sembler simple, mais dans ClickHouse, cela aide de manière très intéressante. Étant donné que ClickHouse ne prend en charge que les jointures imbriquées, la requête s'étend vers le bas et latéralement de manière assez significative. Et quand une parenthèse s'ouvre et qu'une expression longue suit, une chose aussi simple que le repliement de la requête rend la gestion de la requête plus facile. Parce que lorsque la requête compte 200 à 300 lignes et qu'elle est très large, le repliement de la requête est très utile pour trouver un endroit ou pour la localiser.

L'arbre des objets, les requêtes multiples et les onglets (Vidéo 13:46) https://youtu.be/w1-XsL3nbRg?t=826)

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Je vais maintenant vous parler de l'arbre et des onglets. À gauche se trouve l'arbre, en haut, vous pouvez créer plusieurs onglets. Les onglets fonctionnent comme un espace de travail. Vous pouvez créer plusieurs onglets et les nommer chacun à votre manière. C'est comme un mini-système pour la création de rapports.

Les onglets sont automatiquement enregistrés. Si vous rechargez le navigateur, fermez ou ouvrez Tabix, tout sera conservé.

Raccourci clavier – pratique (Vidéo 14:39) https://youtu.be/w1-XsL3nbRg?t=879)

Il existe des raccourcis clavier et il y en a pas mal. J'en ai extrait quelques-uns ici à titre d'exemple. Ce sont le changement d'onglet, exécuter une requête ou exécuter plusieurs requêtes.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Je vais montrer comment travailler avec le résultat. Nous envoyons une requête. Ici, je dessine sin, cos et tg. Il est possible de mettre en évidence le résultat, c'est-à-dire de dessiner une carte typique sur la colonne. On peut mettre en évidence des valeurs positives ou négatives. Ou simplement colorier un élément spécifique d'un tableau. C'est pratique quand le tableau est énorme et que l'on doit chercher une anomalie à l'œil. Lorsque je cherchais des anomalies, je mettais certaines lignes ou éléments en vert ou en rouge.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Il y a beaucoup de choses intéressantes. Par exemple, comment copier en Markdown dans Redmine. Si vous devez copier le résultat quelque part, c'est très pratique. Vous pouvez simplement sélectionner une zone, dire « Copier dans Redmine » et cela copiera en Markdown dans Redmine ou créera une requête Where.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Ensuite, il y a l'optimisation des requêtes. Une fois, j'ai oublié d'indiquer le champ « date ». Et ma requête dans ClickHouse a été traitée pas très, très rapidement, mais rapidement, c'est-à-dire en moins d'une seconde. Quand j'ai vu combien de lignes elle parcourait, j'ai eu peur. Nous n'écrivons pas autant de lignes dans ce tableau en une journée. J'ai commencé à analyser la requête et j'ai réalisé que j'avais omis la date à un endroit. C'est-à-dire que j'avais oublié d'indiquer que j'avais besoin des données non pas pour tout le tableau, mais pour une période spécifique.

Dans Tabix, il y a un onglet « Stats » où toute l'historique des requêtes envoyées est stocké, c'est-à-dire que vous pouvez voir combien de lignes ont été lues par cette requête et combien de temps elle a pris. Cela permet d'optimiser.

On peut construire un tableau récapitulatif à partir du résultat de la requête. Vous envoyez une requête à ClickHouse, obtenez certaines données. Et ensuite, vous pouvez manipuler ces données avec la souris et construire un tableau récapitulatif.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Une autre chose intéressante est la construction de graphiques. Supposons que nous ayons cette requête : sur sin, cos de 0 à 299. Et pour le dessiner, vous devez choisir l'onglet « Dessiner » et vous obtiendrez un graphique avec vos sin et cos.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

On peut le diviser en différents axes, c'est-à-dire qu'on peut dessiner deux graphiques côte à côte. Écrire une commande et une deuxième commande.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

On peut dessiner des histogrammes.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

On peut le diviser en une matrice de graphiques.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

On peut construire une carte de chaleur.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

On peut construire un calendrier thermique. C'est d'ailleurs très pratique lorsqu'il faut analyser des anomalies sur une année, c'est-à-dire trouver soit des pics, soit des baisses. Cette visualisation des données m'a beaucoup aidé.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Suivant – c'est le Treemap.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Sankeys – un graphique intéressant. C'est soit un Streamgraph, soit un River. Mais je l'appelle River. Il permet également de rechercher certaines anomalies. Il est très pratique. Je recommande de l'utiliser pour la recherche.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

La prochaine chose intéressante est la représentation d'une carte dynamique. Si vous avez dans votre base de données la latitude, la longitude et, par exemple, une destination, que ce soit pour le transport routier ou des avions, vous pouvez dessiner les parcours vers cette destination. Vous pouvez également y définir la vitesse, la taille de ces objets, vers lesquels ils arrivent.

Le problème avec cette carte est qu'elle ne représente que la carte du monde, sans détails.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Par la suite, j'ai ajouté Google Map. Si vous stockez la latitude et la longitude, vous pouvez représenter le résultat sur Google Map, mais sans le support des petits avions.

Nous avons discuté des principales fonctionnalités de travail avec le résultat, avec une requête dans Tabix.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Le suivant est l'analyse de votre serveur ClickHouse. Il y a un onglet séparé « Métriques » où vous pouvez voir la taille des données stockées par colonne. Sur la capture d'écran, on voit que ce champ « referrer » occupe environ 730 Go. Si nous nous débarrassons de ce champ, nous économiserons trois shards de 700 Go chacun, c'est-à-dire environ 2 To, qui ne nous sont pas nécessaires.

Nous avons aussi le champ « request_id » que nous stockons sous forme de chaîne. Mais si nous commençons à le stocker en tant que nombre, cela va réduire considérablement la taille de ce champ.

Ici, la configuration du serveur et la liste des nœuds de votre cluster sont également affichées.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

L'onglet suivant est celui des métriques. Elles sont récupérées en temps réel à partir de ClickHouse et permettent simplement d'analyser l'état du serveur et de comprendre ce qui se passe avec lui. Ce n'est pas un remplacement complet de Grafana. C'est utile pour une analyse rapide.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

L'onglet suivant est celui des processus. Grâce à cela, on peut comprendre ce qui se passe sur le serveur. Savoir ce qui se déroule. J'avais une requête qui consommait 200 Go en lecture à chaque fois. Je l'ai vue grâce à cette interface. Je l'ai attrapée et corrigée. Et ça a donné environ 30 Go, c'est-à-dire des performances multipliées.

ClickHouse – analyse visuellement rapide et intuitive des données dans Tabix. Igor Strykhаr

Merci ! Et c'est en OpenSource.

J'ai terminé. Et, au fait, c'est en OpenSource, c'est gratuit et même pas besoin de le télécharger. Ouvrez-le dans un navigateur et tout fonctionnera.

Questions

Igor, quelle est la suite ? Comment comptes-tu développer cet outil ?

Ensuite, un tableau de bord apparaîtra, c'est-à-dire qu'il pourrait y avoir un tableau de bord. L'intégration avec d'autres bases de données. Je l'ai fait, mais je ne l'ai pas encore publié en OpenSource. C'est MySQL et, peut-être, PostgreSQL. C'est-à-dire qu'il sera possible d'envoyer des requêtes depuis Tabix non seulement vers ClickHouse, mais aussi vers d'autres outils.

Il est évident qu'un énorme travail a été accompli. L'idée est assez complète. Cela a été fait dans le navigateur, apparemment pour exclure les solutions de contournement sur diverses plateformes et rapidement mettre en place le tout. J'ai entendu dire que vous êtes php en train de travailler, donc le plus simple est de mettre en place dans le navigateur et cela fonctionnera partout. Concernant cela, il n'y a pas de questions. La question est la suivante. Beaucoup de choses ont été réalisées là-bas. Combien de personnes ont travaillé là-dessus ? Et combien de temps cela a-t-il pris ? Parce que les outils personnalisés n'ont généralement pas une aussi grande fonctionnalité.

De l'été à l'automne, une personne de notre équipe a travaillé dessus. C'était la première version. Ensuite, j'ai fait 330 commits tout seul. Ce que vous voyez, nous l'avons fait à deux collègues. En 3 mois, de la première version à la dernière, j'ai fait la plupart du travail moi-même. Mais je connais très mal Javascript. C'était mon unique et, j'espère, dernier projet sur Javascript, avec lequel j'ai travaillé. Je l'ai reçu, j'ai regardé – oh là là. Mais j'avais vraiment envie de finaliser le produit et voilà ce que j'ai obtenu.

Merci beaucoup pour la présentation ! C'est un excellent outil. Avez-vous comparé avec Tableau ? Merci. C'est pourquoi j'ai appelé Tabix, parce que les premières lettres correspondent.

Parce que vous êtes en concurrence ?

Il y aura beaucoup d'investissements, nous allons rivaliser.

Comment allez-vous proposer de vendre aux analystes internes que cet outil remplacera entièrement

*Tableau* ? Il fonctionne nativement avec ClickHouse. J'ai essayé Tableau, mais il n'est pas possible d'écrire du support pour des dictionnaires et ainsi de suite.? Какие будут аргументы?

Je sais comment les gens travaillent avec Tabix. Ils écrivent une requête, exportent en CSV et chargent dans le BI. Et là, ils font quelque chose. Mais j'imagine difficilement comment ils font ça, parce que c'est un outil graphique. Il peut exporter 5 000 lignes, au maximum 6 000 lignes, mais pas plus, sinon le navigateur ne tiendra pas. C'est-à-dire qu'il y a des limitations sérieuses sur le volume de données, n'est-ce pas ?

Oui. Je ne peux pas imaginer que vous désiriez exporter 10 000 lignes à afficher à l'écran de votre navigateur. Pourquoi ?

On suppose que c'est une interface pour une visualisation rapide des données ? La faire tourner un peu, la manipuler ?

Est-ce que cela signifie que c'est une interface pour un aperçu rapide des données ? Pouvez-vous la faire tourner un peu, la manipuler ?

Oui, c'est rapide de voir comment cela fonctionne et simplement de créer un graphique résumé. Ensuite, il faut l'envoyer quelque part. Nous avons notre propre système de reporting, d'où je prends juste cette requête. Je la dessine dans Tabix et l'envoie à notre reporting.

Et une autre question. Analyse de cohorte ?

S'il y a des souhaits, nous ajouterons.

Quand nous avons commencé à l'utiliser ClickHouse, combien de temps a pris l'implémentation ClickHouse et sa mise en état de production ?

Comme je l'ai dit, nous avons déployé un cluster de test dans des délais très serrés. Nous l'avons mis en place en deux jours. Et nous l'avons testé pendant quelques semaines. Nous sommes parvenus à la production en environ 3 mois. Mais nous avions notre propre ETL, c'est-à-dire un outil pour l'écriture de données. Et il a pu écrire où cela était possible. Il sait écrire dans MongoDB, Cassandra, MySQL. Il a été facile de l'apprendre à écrire dans ClickHouse. Nous avions une infrastructure prête pour un déploiement rapide. En 3 mois, nous avons commencé à éliminer le premier composant. En 6 mois, nous avons complètement abandonné tout le reste. Il ne nous restait que ClickHouse.

Igor, merci beaucoup pour la présentation. J'ai beaucoup aimé la fonctionnalité de construction de chemins sur les cartes. Une intégration avec Yandex.Maps est-elle prévue, en particulier avec les cartes personnalisées de Yandex ?

J'ai essayé de m'intégrer au lieu de Google Map, mais je n'ai pas trouvé de thème sombre sur Yandex.Maps. J'ai oublié de mentionner une partie. Je vais revenir en arrière pour ajouter.

Diapositive – Google map. Il y a une commande « DRAW_GMAPS » qui dessine la carte. Il y a une commande « DRAW_YMAPS », c'est-à-dire qu'elle peut dessiner une carte Yandex. En fait, cette commande utilise Javascript, c'est-à-dire que les données que vous obtenez de ClickHouse peuvent être transmises à Javascript, que vous écrivez ici. Et vous avez en sortie une zone où elle doit être dessinée. Vous pouvez dessiner n'importe quel graphique, c'est-à-dire n'importe quel graphique, carte, ou même votre propre composant. Avant cela, j'avais une autre bibliothèque pour le dessin des graphiques.

C'est-à-dire qu'il existe un outil pour personnaliser la fonctionnalité d'affichage ?

Tout à fait. Vous pouvez prendre et changer la couleur de ces points, les rendant non rouges, mais bleus ou verts.

Merci pour la présentation ! Vous aviez une diapositive où étaient présentés des outils alternatifs pour les requêtes ClickHouse pour la création de tableaux de bord, rapports analytiques. J'ai compris que, au moment où vous avez commencé à travailler avec ClickHouse, aucun adaptateur n'a été écrit pour ces outils. Je me demande pourquoi vous avez décidé de créer votre propre outil au lieu d'écrire un adaptateur pour un outil existant ? Je pense que peaufiner un éditeur de test est rapide. Pourquoi avez-vous choisi de faire autant de travail ?

Il y a un point intéressant – je suis directeur technique, pas data scientist. Au moment où nous avons commencé à intégrer Druid, j'avais environ 50 % de tâches dans ma feuille de route – disons, calculons ceci ou analysons cela. Et il s'est avéré que nous avons intégré ClickHouse. J'ai commencé à tout construire rapidement, à calculer, et j'ai rapidement terminé ma feuille de route. À ce moment-là, j'ai réalisé que je manquais de connaissances en Data Science et en visualisation de données. Tabix est un peu ma façon d'apprendre à visualiser les données. J'ai regardé comment améliorer Zeppelin. J'ai une légère aversion pour sa programmation. J'ai exploré Redash, mais il me manquait un bon éditeur. Et SuperSet est également écrit dans un langage que j'aime peu. C'est pourquoi j'ai décidé de pédaler et voilà le résultat.

Igor, acceptez-vous le Pull request ?

Oui.

Merci beaucoup pour la présentation ! Et deux questions. La première – vous n'avez pas un avis très flatteur sur Javascript. Vous avez écrit en Javascript pur ou c'était un framework ?*

Mieux en Javascript pur.

Alors, quel framework ?

Angular.

Je comprends. Et la deuxième question. Avez-vous envisagé R et *Shiny**?*

Oui, j'ai exploré. J'y ai joué.

On aurait pu aussi simplement écrire un adaptateur.

Il existe. Il semble que la communauté l'ait fait, mais comme je l'ai répondu à la question précédente, j'avais envie de toucher moi-même.

*Non, concernant la visualisation, il y en a.

Vous dites qu'il existe un outil qui peut vous dessiner un graphique. J'ai ouvert un livre sur la visualisation de données. Et j'ai pensé : « Essayons de visualiser ces données. J'écrirai moi-même pour qu'il crée les données ». Et j'ai commencé à mieux comprendre la technologie de présentation des données. Si j'avais pris un composant existant, je n'aurais pas appris à l'utiliser aussi bien, c'est-à-dire précisément en visualisation. Mais oui, R m'a plu, bien que je n'aie pas encore lu le livre « R pour les nuls ».

Merci!

Une question simple. Y a-t-il des options pour rapidement exporter un tableau, un graphique ?

On peut exporter en CSV, en Excel.

Pas les données, mais un tableau prêt à l'emploi, un graphique prêt à l'emploi ? Par exemple, pour le montrer à la direction.

Il y a un bouton « Exporter » et un bouton « Exporter le graphique au format png, jpg ».

Merci!

P.S. Courte instruction pour installer tabix

  • Télécharger dernière version
  • Décompresser, copier le répertoire build dans le chemin racine nginx
  • Configurer nginx

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster