BigQuery

Τι είναι το BigQuery;

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

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

Πώς λειτουργεί η αρχιτεκτονική του BigQuery;

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

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

Ποια είναι η διαφορά μεταξύ μιας παραδοσιακής σχεσιακής βάσης δεδομένων και του BigQuery;

Οι παραδοσιακές σχεσιακές βάσεις δεδομένων είναι βελτιστοποιημένες για επιγραμμική επεξεργασία συναλλαγών. Αυτά τα συστήματα έχουν σχεδιαστεί για να χειρίζονται υψηλούς όγκους σύντομων και γρήγορων λειτουργικών συναλλαγών ανάγνωσης και εγγραφής, όπως η καταγραφή παραγγελιών πελατών ή η ενημέρωση προφίλ χρηστών. Αντίθετα, το BigQuery είναι ένα σύστημα επιγραμμικής αναλυτικής επεξεργασίας (OLAP). Είναι βελτιστοποιημένο για την ανάλυση τεράστιων ιστορικών συνόλων δεδομένων μέσω πολύπλοκων αθροίσεων και λειτουργιών σάρωσης δεδομένων. Ενώ οι παραδοσιακές σχεσιακές βάσεις δεδομένων απαιτούν ρητή ευρετηρίαση και δέσμευση υλικού για τη διατήρηση της απόδοσης καθώς αυξάνονται τα δεδομένα, το BigQuery βασίζεται σε αυτοματοποιημένο διαμερισμό, ομαδοποίηση δεδομένων και μαζική παράλληλη επεξεργασία για να διατηρεί γρήγορες ταχύτητες εκτέλεσης ερωτημάτων χωρίς να απαιτείται χειροκίνητη δημιουργία ευρετηρίων ή ρύθμιση της βάσης δεδομένων.

Ποιες είναι οι θεωρητικές έννοιες πίσω από την κατανεμημένη εκτέλεση queries του BigQuery;

Το BigQuery λειτουργεί με βάση τις θεωρητικές αρχές του κατανεμημένου υπολογισμού, των παράλληλων δέντρων εκτέλεσης και της στηλοειδούς συμπίεσης δεδομένων. Όταν υποβάλλεται ένα πολύπλοκο αναλυτικό query, η μηχανή εκτέλεσης μεταφράζει την εντολή SQL σε ένα δέντρο εκτέλεσης πολλών σταδίων. Η επεξεργασία δεδομένων χωρίζεται σε διακριτά στάδια:

  1. Aνάγνωση των δεδομένων από τη στηλοειδή αποθήκευση
  2. Eφαρμογή κριτηρίων φιλτραρίσματος
  3. Άθροιση ενδιάμεσων αποτελεσμάτων
  4. Ανακατανομή των δεδομένων μεταξύ των υπολογιστικών κόμβων.

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