Το Apache Pinot είναι μια κατανεμημένη αποθήκη δεδομένων OLAP σε πραγματικό χρόνο
Το Apache Pinot είναι μια κατανεμημένη λύση αποθήκευσης OLAP σε πραγματικό χρόνο, σχεδιασμένη να παρέχει επεκτάσιμη ανάλυση σε πραγματικό χρόνο με χαμηλή καθυστέρηση.
Μπορεί να απορροφήσει δεδομένα από πηγές δεδομένων μαζικής παραγωγής (όπως HDFS, S3, Azure Data Lake, Google Cloud Storage), καθώς και από πηγές ροής (όπως Kafka). Το Pinot έχει σχεδιαστεί για οριζόντια κλιμάκωση, επομένως μπορεί να κλιμακωθεί σε μεγαλύτερα σύνολα δεδομένων και υψηλότερους ρυθμούς ερωτημάτων, ανάλογα με τις ανάγκες.
Σχετικά με το Apache Pinot
Το έργο Pinot αναπτύχθηκε αρχικά από το LinkedIn και το 2015 μεταφέρθηκε στο Apache Foundation για περαιτέρω κοινή ανάπτυξη. Ο χώρος αποθήκευσης έχει σχεδιαστεί για να λειτουργεί σε ένα περιβάλλον όπου προστίθενται συνεχώς νέα δεδομένα και έχει σχεδιαστεί για να παρέχει ελάχιστη και προβλέψιμη καθυστέρηση, επιτρέποντας τη χρήση του για επεξεργασία ερωτημάτων σε πραγματικό χρόνο.
Όπως οι περισσότερες άλλες αποθήκες δεδομένων και λύσεις αποθήκευσης δεδομένων OLAP, το Pinot υποστηρίζει μια γλώσσα ερωτημάτων τύπου SQL που υποστηρίζει επιλογή, συνάθροιση, φιλτράρισμα, ομαδοποίηση, ταξινόμηση και άλλα ερωτήματα δεδομένων.
Το Apache Pinot παρέχει οριζόντια επεκτασιμότητα και ένα μέσο για την επίτευξη ανοχής σφαλμάτων και βιωσιμότητας έναντι αστοχιών λογισμικού και υλικού. Οι διαδικασίες αναπαραγωγής και δημιουργίας αντιγράφων ασφαλείας ενσωματώνονται απευθείας στον κύκλο επεξεργασίας δεδομένων για δεδομένα που προστίθενται στην αποθήκη δεδομένων. Αφενός, αυτή η προσέγγιση απλοποιεί σημαντικά την αρχιτεκτονική, αλλά αφετέρου, εισάγει μια καθυστέρηση μεταξύ της προσθήκης δεδομένων και της διαθεσιμότητάς τους για αναζήτηση.
Τα δεδομένα αποθηκεύονται σε πίνακες μέσα σε μια βάση δεδομένων με προσανατολισμό στηλών και υποστηρίζονται διάφορα σχήματα συμπίεσης και η δυνατότητα τοποθέτησης πολλαπλών τιμών σε ένα πεδίο. Η Pinot παρέχει ένα σύστημα ευρετηρίασης με δυνατότητα σύνδεσης που μπορεί να χρησιμοποιήσει διάφορες τεχνολογίες ευρετηρίασης (ταξινομημένο ευρετήριο, ευρετήριο bitmap, ανεστραμμένο ευρετήριο, ευρετήριο StarTree, φίλτρο Bloom, ευρετήριο εύρους, ευρετήριο αναζήτησης κειμένου (Lucence/FST), ευρετήριο JSON, γεωχωρικό ευρετήριο).
Από τα χαρακτηριστικά που ξεχωρίζουν από το Apache Pinot:
- Προσανατολισμός στηλών– Μια βάση δεδομένων προσανατολισμένη στη στήλη με διάφορα σχήματα συμπίεσης, όπως μήκος εκτέλεσης και σταθερό μήκος bit.
- Συνδεόμενη ευρετηρίαση: Τεχνολογίες ευρετηρίασης με δυνατότητα προσθήκης, Ταξινομημένο ευρετήριο, Ευρετήριο Bitmap, Αντεστραμμένο ευρετήριο.
- Βελτιστοποίηση ερωτήματος- Δυνατότητα βελτιστοποίησης του σχεδίου ερωτήματος/εκτέλεσης με βάση τα μεταδεδομένα ερωτήματος και τμήματος.
- Κατάποση ροών και παρτίδων: Σχεδόν σε πραγματικό χρόνο κατάποση ροών Hadoop και κατάποση παρτίδας.
- Ερώτημα: Μηχανή εκτέλεσης ερωτημάτων που βασίζεται σε SQL.
- Upsert κατά την κατάποση σε πραγματικό χρόνο: ενημερώνει τα δεδομένα σε κλίμακα με συνέπεια
- Πεδία πολλαπλών τιμών: υποστήριξη για πεδία πολλαπλών τιμών, επιτρέποντάς σας να υποβάλετε ερωτήματα σε πεδία ως τιμές διαχωρισμένες με κόμματα.
- Cloud native στο Kubernetes: Το διάγραμμα τιμόνι παρέχει μια οριζόντια κλιμακούμενη, ανεκτική σε σφάλματα συμπλέγματος ανάπτυξη που είναι εύκολο να διαχειριστεί με το Kubernetes.
Νέα έκδοση του Apache Pinot
Αξίζει να σημειωθεί ότι πρόσφατα κυκλοφόρησε η έκδοση 1.0 του Apache Pinot , η οποία ουσιαστικά συνόψισε πολλή δουλειά για τη σταθεροποίηση της βάσης κώδικα και τη λήψη υπόψη των επιθυμιών της κοινότητας (ελήφθησαν υπόψη περισσότερα από 300 σχόλια).
Επιπλέον, αξίζει να σημειωθεί ότι η νέα Μηχανή Ερωτημάτων Πολλαπλών Σταδίων (Multi-Stage Query Engine ) έχει αξιοποιήσει πλήρως τις δυνατότητές της , επιτρέποντας την υποστήριξη συγχωνεύσεων πινάκων (JOIN). Η μηχανή που χρησιμοποιήθηκε αρχικά είχε εξαιρετική απόδοση με απλές λειτουργίες φιλτραρίσματος και συνάθροισης, αλλά για να διασφαλιστούν προβλέψιμοι χρόνοι εκτέλεσης ερωτημάτων, δεν υποστήριζε λειτουργίες ένωσης πινάκων.
Η νέα μηχανή περιλαμβάνει ενδιάμεσα στάδια για την επεξεργασία σύνθετων ερωτημάτων και η σημασιολογία SQL της είναι κοντά στην ANSI SQL . Επιπλέον, η νέα έκδοση προσφέρει εγγενή υποστήριξη για την επεξεργασία δεδομένων JSON, παρέχει υποστήριξη για την τιμή "NULL", ενσωματώνεται με το Apache Spark 3.x και βελτιώνει την υλοποίηση πινάκων σε λειτουργία Upsert (προσθέτοντας συμπίεση τμημάτων και παρέχοντας υποστήριξη για λειτουργίες διαγραφής).
Τέλος, αν ενδιαφέρεστε να μάθετε περισσότερα , θα πρέπει να γνωρίζετε ότι ο κώδικας του έργου είναι γραμμένος σε Java και διανέμεται με την άδεια Apache. Μπορείτε να βρείτε λεπτομέρειες σχετικά με τη νέα έκδοση στον παρακάτω σύνδεσμο.