Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Προτείνω να εξοικειωθείτε με τη μεταγραφή της αναφοράς του 2017 του Igor Strykhar "ClickHouse - Visual Fast and Visual Data Analysis in Tabix".

Διασύνδεση Ιστού για το ClickHouse στο έργο Tabix.
Βασικά χαρακτηριστικά:

  • Λειτουργεί με το ClickHouse απευθείας από το πρόγραμμα περιήγησης, χωρίς την ανάγκη εγκατάστασης πρόσθετου λογισμικού.
  • Επεξεργαστής ερωτημάτων με επισήμανση σύνταξης.
  • Ολοκλήρωση εντολών.
  • Εργαλεία για γραφική ανάλυση της εκτέλεσης ερωτήματος.
  • Χρωματικοί συνδυασμοί για να διαλέξετε.
    Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar


Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Είμαι ο τεχνικός διευθυντής του media2. Είμαστε ένας συσσωρευτής ειδήσεων ανταλλαγής ειδήσεων. Αποθηκεύουμε πολλά δεδομένα που λαμβάνουμε από τους συνεργάτες μας και τα καταχωρούμε στο ClickHouse - περίπου 30 αιτήματα ανά δευτερόλεπτο.

Αυτά είναι δεδομένα όπως:

  • Κλικ ειδήσεων.
  • Εμφάνιση ειδήσεων στο aggregator.
  • Εμφάνιση banner στο δίκτυό μας.
  • Και καταχωρούμε συμβάντα από τον δικό μας μετρητή, ο οποίος είναι παρόμοιος με το Yandex.Metrics. Αυτό είναι το δικό μας microanalytics.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Είχαμε μια πολύ ταραχώδη ζωή πριν το ClickHouse. Υποφέραμε πολύ, προσπαθώντας να αποθηκεύσουμε κάπου αυτά τα δεδομένα και με κάποιο τρόπο να τα αναλύσουμε.

Η ζωή πριν από το ClickHouse - infiniDB

Το πρώτο πράγμα που είχαμε ήταν το infiniDB. Έζησε μαζί μας για 4 χρόνια. Το λανσάραμε με δυσκολία.

  • Δεν υποστηρίζει ομαδοποίηση ή διαμοιρασμό. Δεν ξεκίνησε τέτοια έξυπνα πράγματα από προεπιλογή.
  • Αντιμετωπίζει πρόβλημα με τη φόρτωση δεδομένων. Μόνο ένα συγκεκριμένο βοηθητικό πρόγραμμα κονσόλας που μπορούσε να φορτώσει μόνο αρχεία CSV και ήταν κατά κάποιο τρόπο πολύ ακατανόητο.
  • Η βάση δεδομένων είναι μονού νήματος. Θα μπορούσατε είτε να γράψετε είτε να διαβάσετε. Αλλά επέτρεψε την επεξεργασία μεγάλου όγκου δεδομένων.
  • Και είχε επίσης ένα ενδιαφέρον δεκανίκι. Κάθε βράδυ ήταν απαραίτητη η επανεκκίνηση του διακομιστή, διαφορετικά δεν θα λειτουργούσε.

Συνεργάστηκε μαζί μας μέχρι το τέλος του 2016, όταν μεταβήκαμε εντελώς στο ClickHouse.

Η ζωή πριν το ClickHouse - Κασσάνδρα

Δεδομένου ότι το infiniDB ήταν single-threaded, αποφασίσαμε ότι χρειαζόμασταν κάποιο είδος βάσης δεδομένων πολλαπλών νημάτων στην οποία θα μπορούσαμε να γράψουμε πολλά νήματα ταυτόχρονα.

Δοκιμάσαμε πολλά ενδιαφέροντα πράγματα. Μετά αποφασίσαμε να δοκιμάσουμε την Κασσάνδρα. Όλα ήταν υπέροχα με την Κασσάνδρα. 10 αιτήματα ανά δευτερόλεπτο ανά στοίχημα. 000 αιτήματα κάπου για διάβασμα.

Είχε όμως και τα δικά της ενδιαφέροντα. Μια φορά το μήνα ή κάθε δύο μήνες, είχε μια βάση δεδομένων εκτός συγχρονισμού. Και έπρεπε να ξυπνήσω και να τρέξω να φτιάξω την Κασσάνδρα. Επανεκκινήσαμε τους διακομιστές έναν προς έναν. Και όλα έγιναν ομαλά και όμορφα.

Η ζωή πριν από το ClickHouse – Druid

Τότε συνειδητοποιήσαμε ότι πρέπει να γράψουμε ακόμα περισσότερα δεδομένα. Το 2016 αρχίσαμε να βλέπουμε το Druid.

Το Druid είναι μια ανοιχτή βάση γραμμένη σε Java. Πολύ συγκεκριμένο. Και ταίριαζε στη ροή κλικ όταν χρειάζεται να αποθηκεύσουμε κάποιο είδος ροής γεγονότων και στη συνέχεια να τα συγκεντρώσουμε ή να κάνουμε αναλυτικές αναφορές.

Ο Druid είχε την έκδοση 0.9.X.

Η ίδια η βάση δεδομένων είναι πολύ δύσκολο να αναπτυχθεί. Αυτή είναι η πολυπλοκότητα της υποδομής. Για να το αναπτύξετε, ήταν απαραίτητο να βάλετε πολύ σίδερο. Και κάθε σίδερο ήταν υπεύθυνο για τον ξεχωριστό του ρόλο.

Για να φορτωθούν δεδομένα σε αυτό, ήταν απαραίτητο να εφαρμοστεί κάποιο είδος σαμανισμού. Υπάρχει ένα έργο OpenSource - Tranquility, το οποίο έχασε δεδομένα από εμάς στη ροή. Όταν φορτώσαμε δεδομένα σε αυτό, τα έχασε.

Αλλά κάπως αρχίσαμε να το εφαρμόζουμε. Εμείς, όπως οι σκαντζόχοιροι που έκαναν ένεση στον εαυτό τους, αλλά συνέχισαν να τρώνε τον κάκτο, αρχίσαμε να τον εισάγουμε. Μας πήρε περίπου ένα μήνα για να προετοιμάσουμε ολόκληρη την υποδομή για αυτό. Δηλαδή, παραγγελίες διακομιστών, ρύθμιση ρόλων και πλήρης αυτοματοποίηση της ανάπτυξης. Δηλαδή, σε περίπτωση πτώσης συμπλέγματος, έτσι ώστε το δεύτερο σύμπλεγμα να αναπτυχθεί αυτόματα.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Τότε όμως έγινε ένα θαύμα. Ήμουν σε διακοπές και οι συνάδελφοί μου μου έστειλαν έναν σύνδεσμο για habr, που λέει ότι η Yandex αποφάσισε να ανοίξει το ClickHouse. Λέω ας προσπαθήσουμε.

Και κυριολεκτικά σε 2 ημέρες αναπτύξαμε ένα σύμπλεγμα δοκιμών ClickHouse. Αρχίσαμε να φορτώνουμε δεδομένα σε αυτό. Σε σύγκριση με το infiniDB, αυτό είναι στοιχειώδες, σε σύγκριση με το Druid, αυτό είναι στοιχειώδες. Σε σύγκριση με την Κασσάνδρα είναι και στοιχειώδες. Γιατί αν φορτώσετε δεδομένα από php στην Cassandra, τότε αυτό δεν είναι στοιχειώδες.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Τι πήραμε; Απόδοση σε ταχύτητα. Απόδοση στην αποθήκευση δεδομένων. Δηλαδή, χρησιμοποιείται πολύ λιγότερος χώρος στο δίσκο. Το ClickHouse είναι γρήγορο, είναι πολύ γρήγορο σε σύγκριση με άλλα προϊόντα.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Κατά τη στιγμή της κυκλοφορίας, όταν η Yandex δημοσίευσε το ClickHouse στο OpenSource, υπήρχε μόνο ένας πελάτης κονσόλας. Εμείς στην εταιρεία μας SMI2 αποφασίσαμε να προσπαθήσουμε να φτιάξουμε έναν εγγενή πελάτη για το web, ώστε να μπορείτε να ανοίξετε μια σελίδα από ένα πρόγραμμα περιήγησης, να γράψετε ένα αίτημα και να πάρετε το αποτέλεσμα, επειδή αρχίσαμε να γράφουμε πολλά αιτήματα. Είναι δύσκολο να γράψεις στην κονσόλα. Και φτιάξαμε την πρώτη μας εκδοχή.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Και κάπου πιο κοντά στον χειμώνα του περασμένου έτους, άρχισαν να εμφανίζονται εργαλεία τρίτων για εργασία με το ClickHouse. Πρόκειται για εργαλεία όπως:

Θα εξετάσω μερικά από αυτά τα εργαλεία, δηλαδή αυτά με τα οποία έχω δουλέψει.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Καλό εργαλείο, αλλά για Druid. Όταν παρουσιάστηκε το Druid, ένιωσα το SuperSet. μου άρεσε. Για έναν Δρυίδη, λειτουργεί πολύ γρήγορα.

Δεν είναι κατάλληλο για το ClickHouse. Δηλαδή, ταιριάζει, ξεκινά, αλλά είναι έτοιμο να επεξεργαστεί μόνο στοιχειώδη ερωτήματα όπως: SELECT event, GROUP BY event. Δεν υποστηρίζει την πιο περίπλοκη σύνταξη ClickHouse.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Το επόμενο εργαλείο είναι το Apache Zeppelin. Αυτό είναι ένα καλό και ενδιαφέρον πράγμα. Εργα. Υποστηρίζει σημειωματάρια, πίνακες εργαλείων, υποστηρίζει μεταβλητές. Γνωρίζω ότι κάποιος από την κοινότητα του ClickHouse το χρησιμοποιεί.

Αλλά δεν υπάρχει υποστήριξη για τη σύνταξη του ClickHouse, δηλαδή, θα πρέπει να γράψετε ερωτήματα είτε στην κονσόλα είτε κάπου αλλού. Στη συνέχεια, ελέγξτε ότι όλα λειτουργούν. Είναι απλά άβολο. Αλλά έχει καλή υποστήριξη για ταμπλό.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Το επόμενο εργαλείο είναι το Redash.IO. Το Redash φιλοξενείται στο διαδίκτυο. Δηλαδή, σε αντίθεση με τα προηγούμενα εργαλεία, δεν χρειάζεται να εγκατασταθεί. Και αυτός είναι ένας τέτοιος πίνακας εργαλείων με τη δυνατότητα ενοποίησης δεδομένων από διαφορετικές Πηγές Δεδομένων. Δηλαδή, μπορείτε να ανεβάσετε από το ClickHouse, από MySQL, από PostgreSQL και από άλλες βάσεις δεδομένων.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Μόλις πριν από ένα μήνα (τον Μάρτιο του 2017) εμφανίστηκε υποστήριξη στα Γραφάνα. Όταν δημιουργείτε αναφορές στο Grafana, για παράδειγμα, σύμφωνα με την κατάσταση του υλικού σας ή σύμφωνα με ορισμένες μετρήσεις, τώρα μπορείτε να δημιουργήσετε το ίδιο γράφημα ή κάποιο είδος πίνακα από δεδομένα από το ClickHouse απευθείας. Είναι πολύ βολικό, και το χρησιμοποιούμε στο σπίτι. Αυτό σας επιτρέπει να βρείτε ανωμαλίες. Δηλαδή, εάν συμβεί κάτι και κάποιο υλικό πέσει ή καταπονηθεί, τότε μπορείτε να δείτε τον λόγο εάν αυτά τα δεδομένα έχουν καταφέρει να μπουν στο ClickHouse.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Ήταν πολύ άβολο για μένα να γράφω σε αυτά τα εργαλεία ή στην κονσόλα. Και αποφάσισα να ολοκληρώσω την πρώτη μας διεπαφή. Και κατασκόπισα μια ιδέα από τα EventSQL, SeperSet, Zeppelin.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Τι ηθελες? Ήθελα να αποκτήσω γραφικά, ένα βελτιωμένο πρόγραμμα επεξεργασίας, να εφαρμόσω υποστήριξη για λεξικά υποδείξεων. Επειδή το ClickHouse έχει μια εξαιρετική δυνατότητα - είναι τα λεξικά. Αλλά είναι δύσκολο να δουλέψεις με λεξικά, γιατί πρέπει να θυμάσαι τη μορφή των αποθηκευμένων τιμών, δηλαδή είναι αριθμός ή συμβολοσειρά κ.λπ. Και επειδή χρησιμοποιούμε συχνά λεξικά στις διάφορες παραλλαγές τους, ήταν αρκετά δύσκολο να γράψουμε ερωτήματα.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Έχουν περάσει 3 μήνες από την κυκλοφορία της πρώτης μας έκδοσης. Έκανα περίπου 330 δεσμεύσεις σε ένα κλειστό υποκατάστημα και πήρα το Tabix.

Σε αντίθεση με την προηγούμενη έκδοση, που ονομαζόταν ClickHouse-Frontend, αποφάσισα να τη μετονομάσω σε ένα απλό όνομα. Και αποδείχθηκε Tabix.

Τι έχει εμφανιστεί;

Σχεδιάζει γραφικά. Υποστηρίζει σύνταξη ClickHouse SQL. Μιλάει για λειτουργίες και ξέρει πώς να κάνει πολλά ενδιαφέροντα πράγματα.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Έτσι φαίνεται η γενική διάταξη του Tabix. Αριστερά είναι ένα δέντρο. Στο κέντρο βρίσκεται ο επεξεργαστής ερωτημάτων. Και παρακάτω είναι το αποτέλεσμα αυτής της ερώτησης.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Στη συνέχεια, θα δείξω πώς λειτουργεί το πρόγραμμα επεξεργασίας ερωτημάτων.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Εδώ, η αυτόματη συμπλήρωση λειτουργούσε αυτόματα στον πίνακα και ζητά, αντίστοιχα, αυτόματη συμπλήρωση ανά πεδία. Και υποδείξεις χαρακτηριστικών. Εάν πατήσετε ctrl enter, το αίτημα θα εκτελεστεί ή θα αποτύχει με ένα σφάλμα. Το απλούστερο αίτημα αποστέλλεται στο Tabix και προκύπτει το αποτέλεσμα, δηλαδή μπορείτε να εργαστείτε γρήγορα με το ClickHouse.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Τα λεξικά, όπως είπα, είναι ένα πολύ ενδιαφέρον πράγμα με το οποίο δουλεύουμε πολύ. Και που επέτρεψε να γίνουν πολλά πράγματα. Ας υποθέσουμε ότι αποθηκεύουμε όλες τις πόλεις σε λεξικά. Αποθηκεύουμε το αναγνωριστικό της πόλης και το όνομα της πόλης, το γεωγραφικό πλάτος και το γεωγραφικό της μήκος. Και στη βάση δεδομένων αποθηκεύουμε μόνο το αναγνωριστικό της πόλης. Αντίστοιχα, συμπιέζουμε τα δεδομένα πολύ έντονα.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Αυτό φαίνεται να είναι ένα απλό πράγμα, αλλά στο ClickHouse βοηθάει με έναν πολύ ενδιαφέροντα τρόπο. Λόγω του γεγονότος ότι το ClickHouse υποστηρίζει μόνο ένθετες συνδέσεις, το ερώτημα μεγαλώνει και είναι αρκετά ευρύ. Και όταν ανοίγει η παρένθεση και πηγαίνει κάποια μεγάλη έκφραση, τότε ένα τόσο απλό πράγμα όπως η αναδίπλωση ερωτήματος διευκολύνει την εργασία με το ίδιο το ερώτημα. Γιατί όταν ένα αίτημα έχει πλάτος 200-300 γραμμές και είναι πολύ τεράστιο, γλιτώνει πολύ διπλώνοντας το αίτημα και μετά βρίσκοντας κάποιο μέρος ή με κάποιο τρόπο τοπικά το.

Δέντρο αντικειμένων, πολλαπλές ερωτήσεις και καρτέλες (Βίντεο 13:46 https://youtu.be/w1-XsL3nbRg?t=826)

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Στη συνέχεια θα σας δείξω για το δέντρο, καρτέλες. Στα αριστερά είναι ένα δέντρο, στην κορυφή μπορείτε να δημιουργήσετε πολλές καρτέλες. Οι καρτέλες είναι σαν χώρος εργασίας. Μπορείτε να δημιουργήσετε πολλές καρτέλες και να ονομάσετε την καθεμία διαφορετικά. Είναι σαν ένα μίνι σύστημα για τη δημιουργία μιας αναφοράς.

Οι καρτέλες αποθηκεύονται αυτόματα. Εάν κάνετε επανεκκίνηση του προγράμματος περιήγησής σας ή κλείσετε ή ανοίξετε το Tabix, όλα θα αποθηκευτούν.

Το πλήκτρο πρόσβασης είναι βολικό (Βίντεο 14:39 https://youtu.be/w1-XsL3nbRg?t=879)

Υπάρχουν πλήκτρα πρόσβασης και υπάρχουν πολλά από αυτά. Έχω συμπεριλάβει μερικά από αυτά εδώ ως παράδειγμα. Αυτός είναι ένας διακόπτης καρτελών, η εκτέλεση ενός αιτήματος ή η εκτέλεση πολλαπλών αιτημάτων.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Θα σας δείξω πώς να δουλέψετε με το αποτέλεσμα. Στέλνουμε αίτημα. Εδώ σχεδιάζω αμαρτία, cos και tg. Μπορείτε να επισημάνετε το αποτέλεσμα, δηλαδή να σχεδιάσετε έναν τυπικό χάρτη για μια στήλη. Μπορείτε να επισημάνετε θετικές ή αρνητικές τιμές. Ή απλώς χρωματίστε κάποιο συγκεκριμένο στοιχείο του πίνακα. Αυτό είναι βολικό όταν το τραπέζι είναι τεράστιο και πρέπει να βρείτε κάποιο είδος ανωμαλίας με τα μάτια σας. Όταν έψαχνα για ανωμαλίες, τόνιζα κάποιες γραμμές, κάποια στοιχεία με πράσινο ή κόκκινο.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Υπάρχουν πολλά ενδιαφέροντα πράγματα εκεί. Για παράδειγμα, πώς να αντιγράψετε στο Redmine Markdown. Αν χρειαστεί να αντιγράψετε το αποτέλεσμα κάπου, είναι πολύ βολικό. Μπορείτε απλώς να επιλέξετε μια περιοχή, να πείτε "Αντιγραφή στο Redmine" και θα αντιγραφεί στο Redmine Markdown ή θα δημιουργήσει ένα ερώτημα Where.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Ακολουθεί η βελτιστοποίηση ερωτημάτων. Κάποτε ξέχασα να προσδιορίσω το πεδίο "ημερομηνία". Και το αίτημά μου στο ClickHouse επεξεργάστηκε όχι πολύ, πολύ γρήγορα, αλλά γρήγορα, δηλαδή λιγότερο από ένα δευτερόλεπτο. Όταν είδα πόσες γραμμές πέρασε, τρόμαξα. Δεν γράφουμε τόσες πολλές σειρές σε αυτόν τον πίνακα σε μια μέρα. Άρχισα να αναλύω το αίτημα και είδα ότι έχασα ένα ραντεβού σε ένα μέρος. Δηλαδή, ξέχασα να αναφέρω ότι δεν χρειάζομαι δεδομένα για ολόκληρο τον πίνακα, αλλά για μια συγκεκριμένη περίοδο.

Το Tabix έχει μια καρτέλα "Στατιστικά", η οποία αποθηκεύει ολόκληρο το ιστορικό των απεσταλμένων αιτημάτων, δηλαδή εκεί μπορείτε να δείτε πόσες σειρές διαβάστηκαν από αυτό το αίτημα και πόσος χρόνος χρειάστηκε για να εκτελεστεί. Αυτό επιτρέπει τη βελτιστοποίηση.

Μπορείτε να δημιουργήσετε έναν συγκεντρωτικό πίνακα πάνω από το αποτέλεσμα του ερωτήματος. Στείλατε ένα αίτημα στο ClickHouse και λάβατε ορισμένα δεδομένα. Και στη συνέχεια αυτά τα δεδομένα μπορούν να τραβηχτούν με το ποντίκι και να δημιουργήσουν κάποιο είδος πίνακα περιστροφής.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Το επόμενο ενδιαφέρον πράγμα είναι η γραφική παράσταση. Ας υποθέσουμε ότι έχουμε το εξής αίτημα: για το sin, cos από 0 έως 299. Και για να το σχεδιάσετε, πρέπει να επιλέξετε την καρτέλα «Σχέδιο» και θα λάβετε ένα γράφημα με το sin και το cos σας.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Μπορείτε να το χωρίσετε σε διαφορετικούς άξονες, δηλαδή να σχεδιάσετε δύο γραφήματα ταυτόχρονα δίπλα-δίπλα. Γράψτε μια εντολή και τη δεύτερη εντολή.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Μπορείτε να σχεδιάσετε ιστογράμματα.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Μπορείτε να το αναλύσετε σε μια μήτρα γραφημάτων.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Μπορείτε να δημιουργήσετε έναν χάρτη θερμότητας.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Μπορείτε να φτιάξετε ένα θερμικό ημερολόγιο. Παρεμπιπτόντως, ένα πολύ βολικό πράγμα όταν πρέπει να αναλύσετε ανωμαλίες για ένα χρόνο, δηλαδή να βρείτε είτε εκρήξεις είτε πτώσεις. Αυτή η οπτικοποίηση δεδομένων με βοήθησε σε αυτό.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Το επόμενο είναι το Treemap.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Το Sankeys είναι ένα ενδιαφέρον γράφημα. Είναι είτε Streamgrahps είτε River. Αλλά εγώ το ονομάζω Ποτάμι. Σας επιτρέπει επίσης να αναζητήσετε τυχόν ανωμαλίες. Είναι πολύ άνετο. Συνιστώ να το χρησιμοποιήσετε για αναζήτηση.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Το επόμενο ενδιαφέρον είναι η απόδοση του δυναμικού χάρτη. Εάν έχετε αποθηκευμένο γεωγραφικό πλάτος, γεωγραφικό μήκος στη βάση δεδομένων σας και, για παράδειγμα, έχει αποθηκευτεί ένα ραντεβού, εάν έχετε, για παράδειγμα, φορτηγά ή αεροπλάνα, τότε μπορείτε να σχεδιάσετε διαδρομές προορισμού. Επίσης εκεί μπορείτε να ρυθμίσετε την ταχύτητα, το μέγεθος αυτών των αντικειμένων στα οποία φτάνουν.

Αλλά το πρόβλημα με αυτόν τον χάρτη είναι ότι σχεδιάζει μόνο έναν χάρτη του κόσμου, δεν υπάρχει καμία λεπτομέρεια.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Αργότερα πρόσθεσα έναν χάρτη Google. Εάν αποθηκεύετε γεωγραφικό πλάτος, γεωγραφικό μήκος, τότε μπορείτε να σχεδιάσετε το αποτέλεσμα σε έναν χάρτη Google, αλλά χωρίς υποστήριξη αεροπλάνου.

Συζητήσαμε τις κύριες λειτουργίες της εργασίας με το αποτέλεσμα, με ένα ερώτημα στο Tabix.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Το επόμενο είναι η ανάλυση του διακομιστή ClickHouse. Υπάρχει μια ξεχωριστή καρτέλα "Μετρήσεις" όπου μπορείτε να δείτε το μέγεθος των αποθηκευμένων δεδομένων για κάθε στήλη. Το στιγμιότυπο οθόνης δείχνει ότι αυτό το πεδίο "παραπομπής" καταλαμβάνει κάτι της τάξης των 730 Gb. Εάν αρνηθούμε αυτό το πεδίο, τότε θα αποθηκεύσουμε τρία θραύσματα 700 GB, δηλαδή περίπου 2 TB, τα οποία δεν χρειαζόμαστε.

Έχουμε επίσης ένα πεδίο "request_id" που αποθηκεύουμε σε μια συμβολοσειρά. Αλλά αν αρχίσουμε να το αποθηκεύουμε σε αριθμητική μορφή, τότε αυτό το πεδίο θα συμπιεστεί κολοσσιαία.

Εμφανίζει επίσης τη διαμόρφωση του διακομιστή και τη λίστα των κόμβων στο σύμπλεγμα σας.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Η επόμενη καρτέλα είναι μετρήσεις. Μπαίνουν σε πραγματικό χρόνο από το ClickHouse και απλά σας επιτρέπουν να αναλύσετε την κατάσταση του διακομιστή και να κατανοήσετε τι συμβαίνει σε αυτόν. Αυτό δεν αντικαθιστά το πλήρες Grafana. Αυτό είναι απαραίτητο για γρήγορη ανάλυση.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Η επόμενη καρτέλα είναι διεργασίες. Από αυτά μπορείτε να καταλάβετε τι συμβαίνει στον διακομιστή. Καταλάβετε τι συμβαίνει εκεί. Είχα ένα ερώτημα που χρειαζόταν 200 GB για να το διαβάσω κάθε φορά. Το είδα χάρη σε αυτή τη διεπαφή. Το έπιασε και το διόρθωσε. Και αποδείχθηκε περίπου 30 GB, δηλαδή απόδοση κατά καιρούς.

Το ClickHouse είναι μια οπτικά γρήγορη και οπτική ανάλυση δεδομένων στο Tabix. Igor Stryhar

Ευχαριστώ! Και είναι στο OpenSource

Τελείωσα. Και παρεμπιπτόντως, είναι στο OpenSource, είναι δωρεάν και δεν χρειάζεται καν να το κατεβάσετε. Ανοίξτε σε ένα πρόγραμμα περιήγησης και όλα θα λειτουργήσουν.

ερωτήσεις

Ιγκόρ, τι ακολουθεί; Πού θα αναπτύξετε αυτό το εργαλείο;

Το Dashboarding θα εμφανιστεί στη συνέχεια, δηλαδή, ίσως θα εμφανιστεί ο πίνακας ελέγχου. Ενοποίηση με άλλες βάσεις δεδομένων. Αυτό το έχω κάνει, αλλά δεν το έχω δημοσιεύσει ακόμα στο OpenSource. Είναι η MySQL και πιθανώς η PostgreSQL. Δηλαδή, θα είναι δυνατή η αποστολή αιτημάτων από το Tabix όχι μόνο στο ClickHouse, αλλά και σε άλλα εργαλεία.

Είναι σαφές ότι έχει γίνει τεράστιος όγκος δουλειάς. Αποδείχθηκε μια αρκετά ολοκληρωμένη ιδέα. Στο πρόγραμμα περιήγησης, έγινε, προφανώς, για να αποκλείσει τα δεκανίκια σε οποιουσδήποτε άξονες και να πετάξει γρήγορα το σύνολο. Άκουσα ότι είσαι php δουλειά, οπότε ο ευκολότερος τρόπος είναι να ρίξετε το πρόγραμμα περιήγησης και θα λειτουργήσει παντού. Δεν υπάρχουν ερωτήσεις για αυτό. Η ερώτηση είναι. Πράγματι, πολλά έχουν γίνει εκεί. Πόσοι άνθρωποι δούλεψαν σε αυτό; Και πόσο καιρό πήρε όλο αυτό; Επειδή τα εργαλεία για τον εαυτό τους συνήθως δεν έχουν τόσο μεγάλη λειτουργικότητα.

Ένα άτομο από την ομάδα μας εργάστηκε από το καλοκαίρι μέχρι το φθινόπωρο. Αυτή ήταν η πρώτη έκδοση. Μετά έκανα 330 commit μόνος μου. Αυτό που βλέπετε εγώ και ο συνάδελφός μου το κάναμε κατά το ήμισυ. Για 3 μήνες από την πρώτη κιόλας έκδοση μέχρι την τελευταία, το έκανα μόνος ως επί το πλείστον. Αλλά δεν ξέρω πολύ καλά Javascript. Αυτό ήταν το μόνο και, ελπίζω, το τελευταίο μου έργο Javascript στο οποίο δούλεψα. Το κατάλαβα, κοίταξα - ω, φρίκη. Αλλά ήθελα πολύ να τελειώσω το προϊόν και αυτό έγινε.

Ευχαριστώ πολύ για την αναφορά! Αυτό είναι ένα εξαιρετικό εργαλείο. ΜΕ Ζώσα σκηνική εικών σε συγκριση?

Ευχαριστώ. Γι' αυτό το ονόμασε το Tabix, γιατί τα πρώτα γράμματα είναι ίδια.

Επειδή ανταγωνίζεστε;

Θα γίνουν πολλές επενδύσεις, θα ανταγωνιστούμε.

Πώς να προσφέρετε να πουλήσετε σε εσωτερικούς αναλυτές τι θα αντικαταστήσει πλήρως αυτό το εργαλείο *Ζώσα σκηνική εικών*? Ποια θα είναι τα επιχειρήματα;

Λειτουργεί εγγενώς με το ClickHouse. Δοκίμασα το Tableau, αλλά δεν μπορείς να γράψεις υποστήριξη για λεξικά και παρόμοια εκεί. Ξέρω πώς δουλεύουν οι άνθρωποι με το Tabix. Γράφουν ένα αίτημα, ανεβάζουν σε CSV και ανεβάζουν στο BI. Και ήδη κάτι κάνουν. Αλλά δεν μπορώ να φανταστώ πώς το κάνουν, γιατί είναι ένα γραφικό εργαλείο. Μπορεί να ανεβάσει 5 γραμμές, 000 γραμμές το πολύ, αλλά όχι περισσότερες, διαφορετικά το πρόγραμμα περιήγησης δεν θα επιβιώσει.

Δηλαδή, υπάρχουν κάποιοι σοβαροί περιορισμοί στην ποσότητα των δεδομένων, σωστά;

Ναί. Δεν μπορώ να φανταστώ ότι θέλετε να ανεβάσετε 10 σειρές στον πίνακά σας στην οθόνη του προγράμματος περιήγησης. Για τι?

Προορίζεται να είναι μια διεπαφή για γρήγορη προβολή των δεδομένων; Στριφογυρίστε λίγο, στρίψτε;

Ναι, δείτε γρήγορα πώς λειτουργεί και απλώς δημιουργήστε ένα συνοπτικό γράφημα. Και μετά δώσε κάπου. Έχουμε το δικό μας σύστημα αναφοράς, από όπου λαμβάνω αυτό το αίτημα. Σχεδιάζω στο Tabix και το στέλνω στο ρεπορτάζ μας.

Και μια άλλη ερώτηση. Ανάλυση κοόρτης;

Εάν υπάρχουν αιτήματα, θα προσθέσουμε.

Όταν ξεκινήσατε να χρησιμοποιείτε για πρώτη φορά ClickHouse, πόσος χρόνος χρειάστηκε για να εφαρμοστεί Κάντε κλικ στο σπίτι και φέρνοντας σε χώρες παραγωγής;

Όπως είπα, υλοποιήσαμε ένα δοκιμαστικό σύμπλεγμα σε πολύ σύντομο χρονικό διάστημα. Το ξετυλίξαμε σε δύο μέρες. Και το δοκιμάσαμε για μερικές ακόμη εβδομάδες. Και φτάσαμε στην παραγωγή σε 3 μήνες, αλλά είχαμε το δικό μας ETL, δηλαδή ένα εργαλείο καταγραφής δεδομένων. Και μας έγραψε σε ό,τι είναι δυνατό. Μπορεί να γράφει σε MongoDB, Cassandra, MySQL. Ήταν εύκολο να του διδάξω πώς να γράφει στο ClickHouse. Είχαμε έτοιμη υποδομή για γρήγορη υλοποίηση. Για 3 μήνες αρχίσαμε να πετάμε το πρώτο εξάρτημα. Για 6 μήνες, όλα τα άλλα τα εγκαταλείψαμε εντελώς. Μας απομένει ένα ClickHouse.

Igor, ευχαριστώ πολύ για την αναφορά. Μου άρεσε πολύ η λειτουργικότητα της κατασκευής μονοπατιών σε χάρτες. Σκοπεύετε να ενσωματωθείτε με το Yandex.Maps και, ειδικότερα, με το προσαρμοσμένο Yandex.Maps;

Προσπάθησα να ενσωματώσω αντί του χάρτη Google, αλλά δεν βρήκα σκοτεινό θέμα στο Yandex.Maps. Άφησα ένα κομμάτι. Θα κάνω πίσω για να προσθέσω.

Διαφάνεια - Χάρτης Google. Εδώ υπάρχει μια εντολή "DRAW_GMAPS", η οποία σχεδιάζει έναν χάρτη. Υπάρχει μια εντολή "DRAW_YMAPS", δηλαδή μπορεί να σχεδιάσει ένα Yandex.Map. Αλλά στην πραγματικότητα, κάτω από αυτήν την εντολή βρίσκεται το Javascript, δηλαδή τα δεδομένα που λαμβάνετε από το ClickHouse μπορούν να μεταφερθούν στο Javascript, το οποίο γράφετε εδώ. Και έχετε μια περιοχή εξόδου όπου πρέπει να σχεδιαστεί. Μπορείτε να σχεδιάσετε οποιοδήποτε γράφημα, δηλαδή οποιοδήποτε γράφημα, χάρτη, μπορείτε να σχεδιάσετε το δικό σας στοιχείο. Πριν από αυτό, είχα μια άλλη βιβλιοθήκη για να σχεδιάζω τα ίδια τα γραφήματα.

Δηλαδή, υπάρχει κάποιο εργαλείο για την προσαρμογή της λειτουργικότητας της οθόνης;

Οποιος. Μπορείτε να πάρετε και να ξαναχρωματίσετε αυτά τα σημεία, κάνοντας τα όχι κόκκινα, αλλά μπλε, πράσινα.

Ευχαριστώ για την αναφορά! Είχατε μια διαφάνεια που εμφανίζει εναλλακτικά εργαλεία ερωτημάτων Κάντε κλικ στο σπίτι για την κατασκευή ταμπλό, αναλυτικές αναφορές. Το καταλαβαίνω τη στιγμή που ξεκίνησες να δουλεύεις με ClickHouse, δεν γράφτηκαν προσαρμογείς για αυτά τα εργαλεία. Και αναρωτιέμαι γιατί αποφάσισες να φτιάξεις το δικό σου εργαλείο, αντί να γράψεις έναν προσαρμογέα για κάποιο έτοιμο εργαλείο; Νομίζω ότι η προσαρμογή του δοκιμαστικού επεξεργαστή είναι γρήγορη. Γιατί επιλέξατε να κάνετε τόση δουλειά;

Υπάρχει μια ενδιαφέρουσα στιγμή - το γεγονός είναι ότι είμαι τεχνικός διευθυντής και όχι επιστήμονας δεδομένων. Μέχρι να ξεκινήσουμε την εφαρμογή του Druid, είχα περίπου το 50% των εργασιών στον οδικό χάρτη - ας το υπολογίσουμε, ή ας το υπολογίσουμε ή ας το αναλύσουμε. Και αποδείχθηκε ότι εφαρμόσαμε το ClickHouse. Και άρχισε να χτίζει γρήγορα τα πάντα, να μετράει, γρήγορα έκλεισε τον οδικό του χάρτη. Και μέχρι εκείνη τη στιγμή συνειδητοποίησα ότι μου έλειπε η γνώση της Επιστήμης των Δεδομένων, της οπτικοποίησης δεδομένων. Το Tabix είναι ένα είδος εργασίας μου για την οπτικοποίηση δεδομένων εκμάθησης. Κοίταζα πώς να συμπληρώσω το Zeppelin. Έχω μια μικρή αντιπάθεια για τον προγραμματισμό του. Κοίταξα πώς να προσθέσω το Redash, αλλά ένας κανονικός επεξεργαστής ήταν αρκετός για μένα. Και το SuperSet είναι επίσης γραμμένο σε μια γλώσσα που δεν μου αρέσει πολύ. Και έτσι αποφάσισα να κάνω ποδήλατο, και αυτό έγινε.

Igor, δέχεσαι αιτήματα έλξης;

Ναι.

Ευχαριστώ πολύ για την αναφορά! Και δύο ερωτήσεις. Πρώτον, δεν κολακεύεις πολύ javascript. Γράψατε σε καθαρή Javascript ή είναι κάποιου είδους πλαίσιο;*

Καλύτερα σε γυμνό Javascript.

Τι πλαίσιο λοιπόν;

Γωνιώδης.

Είναι σαφές. Και η δεύτερη ερώτηση. Εχεις σκεφτεί R и *Λαμπερός**?*

Θεωρούνται. Έπαιξε.

Θα μπορούσατε επίσης να γράψετε απλώς έναν προσαρμογέα.

Αυτός είναι. Φαίνεται ότι η κοινότητα τα κατάφερε, αλλά, όπως απάντησα στην προηγούμενη ερώτηση, ήθελα να το νιώσω κι εγώ.

* Όχι, για την οπτικοποίηση, υπάρχει.

Λέτε ότι υπάρχει κάτι τέτοιο και θα σας βγάλει ένα γράφημα. Άνοιξα ένα βιβλίο οπτικοποίησης δεδομένων. Και σκέφτηκα: «Ας προσπαθήσουμε να οπτικοποιήσουμε αυτά τα δεδομένα. Θα το γράψω μόνος μου για να μπορέσει να ξαναφτιάξει τα δεδομένα». Και άρχισα να κατανοώ καλύτερα την τεχνολογία της τροφοδοσίας δεδομένων. Και αν έπαιρνα ένα έτοιμο εξάρτημα, προσωπικά θα είχα μάθει πώς να το χρησιμοποιώ χειρότερα, δηλαδή οπτικοποίηση. Αλλά έτσι - ναι, μου άρεσε το R, αλλά δεν έχω διαβάσει ακόμα το βιβλίο "R for Dummies".

Σας ευχαριστούμε!

Απλή ερώτηση. Υπάρχουν τρόποι να ξεφορτώσετε γρήγορα ένα πιάτο, ένα γράφημα;

Μπορεί να μεταφορτωθεί σε CSV, σε Excel.

Όχι δεδομένα, αλλά έτοιμος πίνακας, έτοιμο γράφημα; Για παράδειγμα, για να δείξει στις αρχές.

Υπάρχει ένα κουμπί "Μεταφόρτωση" και υπάρχει ένα κουμπί "Μεταφόρτωση γραφήματος σε png, σε jpg".

Σας ευχαριστούμε!

Οδηγίες εγκατάστασης PS Mini tabix

  • Λήψη τελευταία έκδοση
  • Αποσυσκευάστε, αντιγράψτε τον κατάλογο build στο nginx root_path
  • Ρυθμίστε το nginx

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο