Βίντεο: Παράθυρο στο σύμπαν - Οι εξερευνητές 2025
Η έννοια του παράθυρου, που εισήχθη στο πρότυπο SQL: 2003, επιτρέπει στον προγραμματιστή SQL να δημιουργήσει ένα πλαίσιο από τα δεδομένα με τα οποία μπορούν να λειτουργούν aggregate και άλλες λειτουργίες παραθύρων. Η εφαρμογή HiveQL υποστηρίζει τώρα το παράθυρο ανά πρότυπο SQL. Παραδείγματα είναι αρκετά χρήσιμα όταν εξηγούμε τις λειτουργίες παραθύρου και συναθροίσεων.
Οι καθυστερήσεις αναχώρησης έρχονται με την περιοχή όταν η πτήση είναι ο επιλεγμένος τρόπος ταξιδιού. Δεν αποτελεί λοιπόν έκπληξη το γεγονός ότι τα δεδομένα πτήσης που συντάχθηκαν από την RITA περιλαμβάνουν αυτές τις πληροφορίες. & ldquo; Ποια ακριβώς είναι η μέση καθυστέρηση πτήσης ανά ημέρα & rdquo;; Το ερώτημα στην παρακάτω λίστα παράγει τη μέση καθυστέρηση αναχώρησης ανά ημέρα το 2008.
(A) κυψέλη (flightdata)> CREATE VIEW avgdepdelay AS> ΕΠΙΛΟΓΗ DayOfWeek, AVG (DepDelay) FROM FlightInfo2008 GROUP BY DayOfWeek; OK Χρόνος που ελήφθη: 0. 121 δευτερόλεπτα (B) κυψέλη (flightdata)> SELECT * FROM avgdepdelay; … OK 1 10. 269990244459473 2 8. 97689712068735 3 8. 289761053658728 4 9. 772897177836702 5 12. 158036387869656 6 8. 645680904903614 7 11. 568973392595312 Ώρα που ελήφθη: 18. 6 δευτερόλεπτα, Λήψη: 7 σειρά (α)
TGIF, ή & ldquo; Ευτυχώς ο Θεός είναι Παρασκευή, & rdquo; δεν ισχύει για όλους. Δεν πρέπει να προκαλεί έκπληξη το γεγονός ότι η Παρασκευή - Ημέρα 5 κάτω από τα αποτελέσματα του Βήματος (Β) - είχε τον μεγαλύτερο αριθμό καθυστερήσεων.
Τέλος πάντων, σχετικά με το ερώτημα στο Βήμα (A): Η γλώσσα προσδιορισμού δεδομένων (DDL) της Hive περιλαμβάνει επίσης τη δήλωση CREATE VIEW, η οποία μπορεί να είναι πολύ χρήσιμη. Στην ομάδα, οι προβολές επιτρέπουν την αποθήκευση ενός ερωτήματος, αλλά τα δεδομένα δεν αποθηκεύονται όπως με τη δήλωση Δημιουργία πίνακα ως επιλογή (CTAS).
Όταν μια αναφορά αναφέρεται σε HiveQL, η Hive εκτελεί το ερώτημα και στη συνέχεια χρησιμοποιεί τα αποτελέσματα, τα οποία θα μπορούσαν να είναι μέρος ενός μεγαλύτερου ερωτήματος. Αυτό μπορεί να είναι πολύ χρήσιμο για την απλοποίηση σύνθετων ερωτημάτων και τη διάρθρωσή τους σε λογικά συστατικά. Επιπλέον, σημειώστε τη ρήτρα GROUP BY, η οποία συγκεντρώνει όλες τις ημέρες την εβδομάδα και επιτρέπει στη λειτουργία aggregate του AVG να παρέχει μια ενοποιημένη απάντηση ανά ημέρα.
Αυτές οι πληροφορίες είναι χρήσιμες, φυσικά, αλλά τι γίνεται αν θέλετε να δείτε μερικούς ατομικούς αριθμούς ανά ημέρα; Συμπυκνώστε τα δεδομένα με το GROUP BY και έχετε την απάντηση που ψάχνετε, αν και έχετε χάσει και πληροφορίες. Η επίλυση αυτού του προβλήματος της απώλειας πληροφοριών είναι όπου το παράθυρο γίνεται πολύ βολικό.
Ακολουθεί μια άλλη ερώτηση σχετικά με τα δεδομένα πτήσης RITA 2008 που μπορεί να απαντήσει η ομάδα Apache: & ldquo; Ποια είναι η πρώτη πτήση μεταξύ του αεροδρομίου X και του Y & rdquo;; Ας υποθέσουμε ότι εκτός από αυτές τις πληροφορίες, θέλετε να μάθετε για τις επόμενες πτήσεις, μόνο σε περίπτωση που δεν είστε & # x2019? Πρωινός τύπος.& rdquo; Λοιπόν, αυτή είναι μια δουλειά για παράθυρο στο HiveQL! Η παρακάτω λίστα σάς παρέχει ένα ερώτημα που απαντά σε αυτές τις ερωτήσεις.
(A) κυψέλη (flightdata)> SELECT f08. Μήνας, f08. DayOfMonth, cr. περιγραφή, f08. Προέλευση, f08. Dest, f08. FlightNum, f08. DepTime, MIN (f08. DepTime) ΠΕΡΙΟΡΙΣΜΟΣ (ΔΙΑΜΟΡΦΩΣΗ ΑΠΟ f08. ΗΜΕΡΟΜΗΝΙΑ ORDER BY f08. DepTime) FROM flightinfo2008 f08 JOIN Φορείς cr ON f08. UniqueCarrier = cr. κωδικός WHERE f08. Προέλευση = 'JFK' ΚΑΙ f08. Dest = 'ORD' ΚΑΙ f08. Μήνας = 1 ΚΑΙ f08. DepTime! = 0; … OK 1 1 JetBlue Airways JFK ORD 903 641 641 1 1 American Airlines Inc. JFK ORD 1323 833 641 1 1 JetBlue Airways JFK ORD 907 929 641 1 1 Comair Α.Ε. JFK ORD 5083 945 641 1 1 Comair Inc. JFK ORD 5634 1215 641 1 1 JetBlue Airways JFK ORD 915 1352 641 1 1 American Airlines Inc. JFK ORD 1323 833 641 1 1 JetBlue Airways JFK ORD 907 929 641 1 1 Comair Α.Ε. JFK ORD 5083 945 641 1 1 Comair Inc. JFK ORD 5634 1215 641 1 1 JetBlue Airways JFK ORD 915 1352 641 1 1 American Airlines Inc. JFK ORD 1815 1610 641 1 1 JetBlue Airways JFK ORD 917 1735 641 1 1 Comair Α.Ε. JFK ORD 5469 1749 641 1 1 Comair Α.Ε. JFK ORD 5492 2000 641 1 1 JetBlue Airways JFK ORD 919 2102 641 1 31 JetBlue Airways JFK ORD 919 48 48 1 31 JetBlue Airways JFK ORD 903 635 48 1 31 Comet Inc. JFK ORD 5447 650 48 1 31 American Airlines Inc. JFK ORD 1323 840 48 1 31 JetBlue Στις Βαθμίδες (A), η ρήτρα GROUP BY αντικαταστάθηκε με τη ρήτρα OVER όπου καθορίζετε το PARTITION ή παράθυρο πάνω από το οποίο θέλετε να λειτουργήσει η συνάρτηση MIN aggregate. Περιλαμβάνεται επίσης η ρήτρα ORDER BY, ώστε να μπορείτε να δείτε τις επόμενες πτήσεις μετά την πρώτη.
Αυτή η δυνατότητα από μόνο του κάνει την προβολή ενός ισχυρού χαρακτηριστικού, και υπάρχουν περισσότερα. Μαζί με την παράθυρο στην έκδοση Hive 0. 11, η κοινότητα έδωσε κάποιες λειτουργίες ανάλυσης που μπορείτε να χρησιμοποιήσετε σε συνδυασμό με το παράθυρο. Επίσης, είναι διαθέσιμες αυτές οι λειτουργίες: RANK, ROW_NUMBER, DENSE_RANK, CUME_DIST, PERCENT_RANK και NTILE.