Τι είναι η γλώσσα ερωτημάτων Hive; HiveQL Operaκορμοί

⚡ Έξυπνη Σύνοψη

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

  • 🧮 Πέντε οικογένειες χειριστών: Οι σχεσιακοί, αριθμητικοί, λογικοί, σύνθετου τύπου και κατασκευαστικοί τελεστές καλύπτουν κάθε έκφραση που χρειάζεται ένα ερώτημα HiveQL.
  • 🔍 Η σύγκριση λαμβάνει οποιαδήποτε πρωτόγονη συνάρτηση: Οι σχεσιακοί τελεστές δέχονται όλους τους πρωτόγονους τύπους, ενώ οι LIKE, RLIKE και REGEXP λειτουργούν μόνο σε συμβολοσειρές.
  • Η αριθμητική περιλαμβάνει εργασία bitwise: Πέρα από τις τέσσερις βασικές λειτουργίες, το HiveQL εκθέτει τις μεθόδους AND, OR, XOR και NOT σε τύπους αριθμών, modulo και bitwise.
  • 🧩 Τα ένθετα δεδομένα έχουν τη δική τους σύνταξη: Το A[n] φτάνει σε ένα στοιχείο πίνακα και το M[key] φτάνει σε μια τιμή map, και τα δύο μπορούν να χρησιμοποιηθούν οπουδήποτε επιτρέπεται μια έκφραση.
  • Οι κατασκευαστές δημιουργούν σύνθετες τιμές: Οι array(), map(), struct(), named_struct() και create_union() συναρμολογούν σύνθετες στήλες μέσα σε ένα ερώτημα.
  • 📚 Οι συναρτήσεις επεκτείνουν τους τελεστές: Οι μαθηματικές συναρτήσεις, οι συναρτήσεις συμβολοσειρών, ημερομηνιών, υπό όρους, συλλογής και συγκεντρωτικών συναρτήσεων χειρίζονται εργασία που δεν καλύπτει τελεστές.

Τι είναι οι τελεστές Hive Query Language (HiveQL)

Τι είναι η Hive Query Language (HiveQL);

Hive Query Language (HiveQL) είναι μια γλώσσα ερωτημάτων σε Κυψέλη Apache για την επεξεργασία και ανάλυση δομημένων δεδομένων. Διαχωρίζει τους χρήστες από την πολυπλοκότητα του προγραμματισμού MapReduce. Επαναχρησιμοποιεί κοινές έννοιες από σχεσιακές βάσεις δεδομένων, όπως πίνακες, γραμμές, στήλες και σχήματα, για να διευκολύνει τη μάθηση. Το Hive παρέχει ένα CLI για τη σύνταξη ερωτημάτων Hive χρησιμοποιώντας τη γλώσσα ερωτημάτων Hive (HiveQL).

Οι περισσότερες αλληλεπιδράσεις τείνουν να πραγματοποιούνται μέσω μιας διεπαφής γραμμής εντολών (CLI). Γενικά, η σύνταξη HiveQL είναι παρόμοια με την SQL σύνταξη με την οποία είναι εξοικειωμένοι οι περισσότεροι αναλυτές δεδομένων. Οι τέσσερις μορφές αρχείων που αναφέρονται στην αρχική τεκμηρίωση του Hive είναι TEXTFILE, SEQUENCEFILE, ORC και RCFILE (Record Columnar File). Οι τρέχουσες εκδόσεις διαβάζουν και γράφουν επίσης τα Parquet και Avro, και το ORC είναι η μορφή που υποθέτει η πλειονότητα των οδηγιών συντονισμού.

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

Ενσωματωμένο HiveQL Operaκορμοί

Το Hive παρέχει ενσωματωμένους τελεστές για τις λειτουργίες δεδομένων που εκτελούνται σε σχέση με τους πίνακες που διατηρούνται στην αποθήκη Hive.

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

Παρακάτω παρατίθενται οι κύριοι τύποι ενσωματωμένων τελεστών στο HiveQL:

  • Σχεσιακοί τελεστές
  • Αριθμητικοί τελεστές
  • λογικούς τελεστές
  • Operaπαράγοντες σε σύνθετους τύπους
  • Κατασκευαστές σύνθετων τύπων

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

Σχετικός Operators στο HiveQL

Χρησιμοποιούμε σχεσιακούς τελεστές για συγκρίσεις σχέσεων μεταξύ δύο τελεστέων.

  • Operaόροι όπως ίσο, όχι ίσο, μικρότερο από και μεγαλύτερο από.
  • Οι τύποι τελεστών είναι όλοι πρωτόγονοι τύποι σε αυτούς τους τελεστές και οι τελεστές αντιστοίχισης προτύπων δέχονται μόνο συμβολοσειρές.

Κάθε σχεσιακός τελεστής επιστρέφει μια τιμή BOOLEAN, γι' αυτό και αυτοί οι τελεστές είναι η βάση για την οποία κατασκευάζονται μια ρήτρα WHERE, μια συνθήκη JOIN και ένας κλάδος CASE WHEN. Ο παρακάτω πίνακας παρέχει λεπτομέρειες σχετικά με τους σχεσιακούς τελεστές και τη χρήση τους στο HiveQL:

Built-in OperaTor Περιγραφή Operand
Χ = Υ TRUE αν η έκφραση X είναι ισοδύναμη με την έκφραση Y. Διαφορετικά FALSE. Παίρνει όλους τους πρωτόγονους τύπους
Χ != Υ TRUE αν η έκφραση X δεν είναι ισοδύναμη με την έκφραση Y. Διαφορετικά FALSE. Παίρνει όλους τους πρωτόγονους τύπους
Χ < Υ TRUE αν η έκφραση X είναι μικρότερη από την έκφραση Y. Διαφορετικά FALSE. Παίρνει όλους τους πρωτόγονους τύπους
X <= Υ TRUE αν η έκφραση X είναι μικρότερη ή ίση με την έκφραση Y. Διαφορετικά FALSE. Παίρνει όλους τους πρωτόγονους τύπους
Χ > Υ TRUE αν η έκφραση X είναι μεγαλύτερη από την έκφραση Y. Διαφορετικά FALSE. Παίρνει όλους τους πρωτόγονους τύπους
Χ >= Υ TRUE αν η έκφραση X είναι μεγαλύτερη ή ίση με την έκφραση Y. Διαφορετικά FALSE. Παίρνει όλους τους πρωτόγονους τύπους
Το X ΕΙΝΑΙ ΜΗΧΑΝΟ TRUE αν η έκφραση X αξιολογηθεί ως NULL, διαφορετικά FALSE. Παίρνει όλους τους τύπους
Το X ΔΕΝ ΕΙΝΑΙ ΜΗΧΑΝΟ FALSE αν η έκφραση X αξιολογηθεί ως NULL, διαφορετικά TRUE. Παίρνει όλους τους τύπους
X LIKE Y TRUE αν το μοτίβο συμβολοσειράς X ταιριάζει με το Y, διαφορετικά FALSE. Παίρνει μόνο χορδές
X RLIKE Υ NULL εάν το X ή το Y είναι NULL, TRUE εάν οποιαδήποτε υποσυμβολοσειρά του X ταιριάζει με το Java κανονική έκφραση Υ, διαφορετικά FALSE. Παίρνει μόνο χορδές
X REGEXP Y Το ίδιο με το RLIKE. Παίρνει μόνο χορδές

Σημειώστε ότι μια σύγκριση με το NULL δεν επιστρέφει ποτέ την τιμή TRUE ή FALSE. Αυτός είναι ο λόγος για τον οποίο ο πίνακας παραθέτει τους τελεστές IS NULL και IS NOT NULL ως ξεχωριστούς τελεστές αντί να αναμένει ότι το X = NULL θα λειτουργήσει.

Αριθμητική HiveQL Operaκορμοί

Χρησιμοποιούμε αριθμητικούς τελεστές για την εκτέλεση αριθμητικών πράξεων σε τελεστέους.

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

Δείγμα παραδείγματος:

Το 2 + 3 δίνει το αποτέλεσμα 5.

Σε αυτό το παράδειγμα, το '+' είναι ο τελεστής, τα 2 και 3 είναι οι τελεστέοι και η τιμή που επιστρέφεται είναι 5.

Ο παρακάτω πίνακας παρέχει λεπτομέρειες σχετικά με τους αριθμητικούς τελεστές στη γλώσσα ερωτημάτων Hive:

Built-in OperaTor Περιγραφή Operand
Χ + Υ Θα επιστρέψει την έξοδο της προσθήκης των τιμών X και Y. Παίρνει όλους τους τύπους αριθμών
Χ – Υ Θα επιστρέψει την έξοδο του subtracαπόκλιση του Y από την τιμή X. Παίρνει όλους τους τύπους αριθμών
Χ * Υ Θα επιστρέψει την έξοδο πολλαπλασιασμού των τιμών X και Y. Παίρνει όλους τους τύπους αριθμών
Χ/Υ Θα επιστρέψει την έξοδο της διαίρεσης του Y από το X. Παίρνει όλους τους τύπους αριθμών
X % Υ Θα επιστρέψει το υπόλοιπο που προκύπτει από τη διαίρεση του X με το Y. Παίρνει όλους τους τύπους αριθμών
Χ & Υ Θα επιστρέψει την έξοδο των bitwise AND των X και Y. Παίρνει όλους τους τύπους αριθμών
Χ | Υ Θα επιστρέψει την έξοδο του bitwise OR των X και Y. Παίρνει όλους τους τύπους αριθμών
Χ ^ Υ Θα επιστρέψει την έξοδο του XOR των X και Y. Παίρνει όλους τους τύπους αριθμών
~X Θα επιστρέψει την έξοδο του bitwise ΟΧΙ του X. Παίρνει όλους τους τύπους αριθμών

Οι τελευταίες τέσσερις γραμμές είναι αριθμητικές κατά bit και όχι συνηθισμένες: λειτουργούν με βάση τη δυαδική αναπαράσταση ακέραιων τελεστέων, επομένως τα &, | και ^ δεν είναι τα ίδια με τα λογικά AND, OR και NOT που καλύπτονται στην επόμενη ενότητα.

HiveQL Λογική Operaκορμοί

Χρησιμοποιούμε λογικούς τελεστές για την εκτέλεση λογικών πράξεων σε τελεστέους.

  • Λογικές πράξεις όπως AND, OR και NOT μεταξύ τελεστέων χρησιμοποιούν αυτούς τους τελεστές.
  • Οι τύποι τελεστέων είναι όλοι τύπου BOOLEAN σε αυτούς τους τελεστές.

Ο παρακάτω πίνακας παρέχει λεπτομέρειες σχετικά με τους λογικούς τελεστές στο HiveQL:

Operaκορμοί Περιγραφή OperaNDS
Χ ΚΑΙ Υ ΣΩΣΤΟ αν και το Χ και το Υ είναι ΣΩΣΤΟ, διαφορετικά ΛΑΘΟΣ. Μόνο τύποι Boolean
X && Υ Το ίδιο όπως τα X ΚΑΙ Y, αλλά εδώ χρησιμοποιούμε το σύμβολο &&. Μόνο τύποι Boolean
Χ Ή Υ ΣΩΣΤΟ εάν είτε το Χ είτε το Υ είτε και τα δύο είναι ΑΛΛΗ, διαφορετικά FALSE. Μόνο τύποι Boolean
Χ || Υ Το ίδιο όπως το X Ή το Y, αλλά εδώ χρησιμοποιούμε το σύμβολο ||. Μόνο τύποι Boolean
ΟΧΙ Χ ΣΩΣΤΟ αν το X είναι FALSE, διαφορετικά FALSE. Μόνο τύποι Boolean
!X Το ίδιο με το NOT X, αλλά εδώ χρησιμοποιούμε το σύμβολο !. Μόνο τύποι Boolean

Επειδή οι σχεσιακοί τελεστές επιστρέφουν τιμές BOOLEAN, οι λογικοί τελεστές είναι αυτοί που τις συνδυάζουν: ένα κατηγόρημα όπως μισθός > 50000 ΚΑΙ τμήμα = 'Πωλήσεις' συνδέει τη μία οικογένεια με την άλλη.

Operaσε σύνθετους τύπους

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

Operaκορμοί OperaNDS Περιγραφή
Ενα] Το A είναι ένας πίνακας και το n είναι ένας ακέραιος τύπος Θα επιστρέψει το n-οστό στοιχείο στον πίνακα A. Το πρώτο στοιχείο έχει δείκτη 0.
M[κλειδί] Το Μ είναι ένας Χάρτης και το κλειδί έχει τύπο Κ Θα επιστρέψει την τιμή που ανήκει στο κλειδί στον χάρτη.

Και οι δύο μορφές είναι συνηθισμένες εκφράσεις, επομένως μπορούν να εμφανιστούν σε μια λίστα SELECT, σε έναν όρο WHERE ή σε μια GROUP BY, και ένα πεδίο struct προσεγγίζεται με συμβολισμό τελείας όπως S.field αντί για αγκύλη.

Κατασκευαστές σύνθετου τύπου

Όταν οι παραπάνω τελεστές διαβάζουν μια υπάρχουσα σύνθετη στήλη, οι κατασκευαστές δημιουργούν μια. Ο παρακάτω πίνακας παρέχει λεπτομέρειες σχετικά με τους κατασκευαστές σύνθετων τύπων, οι οποίοι δημιουργούν στιγμιότυπα των σύνθετων τύπων δεδομένων — Array, Map και Struct — στο Hive.

Σε αυτήν την ενότητα, θα δούμε τις λειτουργίες που εκτελούνται σε κατασκευαστές σύνθετων τύπων.

Operaκορμοί OperaNDS Περιγραφή
παράταξη (val1, val2,…) Θα δημιουργήσει έναν πίνακα με τα δεδομένα στοιχεία όπως αναφέρθηκε, όπως val1, val2.
δημιουργία_ένωσης (ετικέτα, val1, val2,…) Θα δημιουργήσει έναν τύπο ένωσης με την τιμή που αναφέρεται από την παράμετρο ετικέτας.
χάρτη (κλειδί1, τιμή1, κλειδί2, τιμή 2,…) Θα δημιουργήσει έναν χάρτη με τα δεδομένα ζεύγη κλειδιού/τιμής που αναφέρονται στους τελεστές.
ονομασμένη_δομή (όνομα1, val1, όνομα2, val2,…) Θα δημιουργήσει μια δομή με τα δεδομένα ονόματα πεδίων και τιμές που αναφέρονται στους τελεστές.
δομ (val1, val2, val3,…) Δημιουργεί μια δομή με τις δεδομένες τιμές πεδίου. Τα ονόματα των πεδίων δομής θα είναι στήλη1, στήλη2 και ούτω καθεξής.

Οι κατασκευαστές χρησιμοποιούνται συχνότερα σε μια συνάρτηση INSERT που συμπληρώνει μια σύνθετη στήλη ή σε μια συνάρτηση SELECT που συσκευάζει πολλές βαθμωτές στήλες σε μία δομή πριν γράψει το αποτέλεσμα σε έναν άλλο πίνακα.

Ενσωματωμένες λειτουργίες HiveQL

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

Οικογένεια συναρτήσεων Τυπικά μέλη Σε τι χρησιμοποιείται
Μαθηματικός στρογγυλό(), δάπεδο(), οροφή(), abs(), pow(), sqrt(), rand() Στρογγυλοποιήσεις, δυνάμεις και άλλοι αριθμητικοί υπολογισμοί σε μία τιμή στήλης.
Σπάγγος concat(), substr(), upper(), lower(), trim(), length(), regexp_replace() Καθαρισμός, κλάδεμα και ανανέωση του κουρέματοςping κείμενο πριν συγκριθεί ή ομαδοποιηθεί.
Ημερομηνία τρέχουσα_ημερομηνία, έτος(), μήνας(), datediff(), προσθήκη_ημερομηνίας(), unix_timestamp() Extracπροσδιορισμός τμημάτων ημερομηνίας και μέτρηση διαστημάτων μεταξύ δύο ημερομηνιών.
Υποθετικός αν(), ΠΕΡΙΠΤΩΣΗ ΟΤΑΝ, συγχώνευση(), nvl(), isnull() Επιλογή τιμής σε επίπεδο γραμμής και αντικατάσταση NULL με εφεδρική τιμή.
Συλλογή μέγεθος(), κλειδιά_μαπ(), τιμές_μαπ(), περιέχει_πίνακες(), ταξινόμηση_πίνακα() Επιθεώρηση των στηλών πίνακα, χάρτη και δομής στις οποίες έχουν πρόσβαση οι τελεστές σύνθετου τύπου.
Τύπος μετατροπής cast(), δυαδικό() Επιβολή εισαγωγής μιας στήλης στον τύπο που αναμένει ένας τελεστής.
Αδρανή (UDAF) count(), sum(), avg(), min(), max(), collect_set() Σύμπτυξη πολλών γραμμών σε μία τιμή, συνήθως παράλληλα με την GROUP BY.

Η λίστα συναρτήσεων εξαρτάται από την έκδοση του Hive, επομένως αξίζει να την διαβάσετε από την ίδια την συνεδρία και όχι από μια στατική σελίδα. Δύο εντολές το κάνουν αυτό:

SHOW FUNCTIONS;

DESCRIBE FUNCTION round;

DESCRIBE FUNCTION EXTENDED round;

Η SHOW FUNCTIONS παραθέτει κάθε καταχωρημένο όνομα, η DESCRIBE FUNCTION εκτυπώνει την υπογραφή μίας γραμμής και η φόρμα EXTENDED προσθέτει παραδείγματα χρήσης όπου τα παρέχει η κλάση υλοποίησης. Όταν δεν ταιριάζει καμία ενσωματωμένη συνάρτηση, το Hive δέχεται ένα συνάρτηση που ορίζεται από τον χρήστη Γραμμένο σε Java.

HiveQL vs SQL: Βασικές διαφορές

Το HiveQL δανείζεται σκόπιμα τη σύνταξη SQL και οι παραπάνω πίνακες τελεστών θα φαίνονται οικείοι σε όποιον έχει γράψει SQL. Το μοντέλο εκτέλεσης παρακάτω δεν είναι το ίδιο και οι διαφορές εμφανίζονται μόλις ένα ερώτημα ξεπεράσει ένα απλό SELECT.

συμπεριφορά HiveQL Παραδοσιακή SQL (RDBMS)
Χειρισμός σχήματος Σχήμα κατά την ανάγνωση — το σχήμα εφαρμόζεται όταν υποβάλλεται ερώτημα στο αρχείο Σχήμα κατά την εγγραφή — το σχήμα επιβάλλεται όταν εισάγεται η γραμμή
ΕΝΗΜΕΡΩΣΗ και ΔΙΑΓΡΑΦΗ σε επίπεδο γραμμής Υποστηρίζεται μόνο σε πίνακες ACID. Οι διαχειριζόμενοι πίνακες είναι ACID από προεπιλογή από το Hive 3.0. Υποστηρίζεται σε κάθε πίνακα από προεπιλογή
Δείκτες Η υποστήριξη ευρετηρίου αφαιρέθηκε στο Hive 3.0 (HIVE-18448). Τα ευρετήρια σε επίπεδο αρχείου ORC ή Parquet και οι υλοποιημένες προβολές την αντικαθιστούν. Το B-tree και άλλα δευτερεύοντα ευρετήρια αποτελούν βασικό χαρακτηριστικό
Εκτέλεση και καθυστέρηση Μεταγλωττίζει σε μαζικές εργασίες σε Tez, MapReduce ή Spark, επομένως ακόμη και τα μικρά ερωτήματα συνεπάγονται κόστος έναρξης εργασίας Διαδραστική εκτέλεση, συνήθως σε χιλιοστά του δευτερολέπτου
Στόχος σχεδιασμού Απόδοση σε πολύ μεγάλα αρχεία σε HDFS ή σε χώρο αποθήκευσης αντικειμένων Χαμηλή καθυστέρηση ανάγνωσης και εγγραφής σε έναν μόνο διακομιστή ή σύμπλεγμα

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

Συχνές Ερωτήσεις

Οι λέξεις-κλειδιά, οι λέξεις-κλειδιά τελεστών όπως AND ή LIKE και τα ονόματα συναρτήσεων επιλύονται χωρίς διάκριση πεζών-κεφαλαίων, επομένως οι συναρτήσεις SELECT και select συμπεριφέρονται με τον ίδιο τρόπο. Τα δεδομένα συμβολοσειράς δεν το κάνουν: η σύγκριση των συναρτήσεων 'Sales' με 'sales' επιστρέφει FALSE εκτός εάν εφαρμοστεί πρώτα η συνάρτηση upper() ή lower().

Η συνάρτηση X / Y επιστρέφει πάντα DOUBLE, ακόμα και όταν και οι δύο τελεστέοι είναι ακέραιοι, επομένως η συνάρτηση 7 / 2 δίνει 3.5 αντί για 3. Χρησιμοποιήστε τη λέξη-κλειδί DIV για την ακέραια διαίρεση και τον τελεστή % για το υπόλοιπο.

Οι αριθμητικοί και οι συγκριτικοί τελεστές διαδίδουν την τιμή NULL: οποιαδήποτε έκφραση που περιλαμβάνει NULL αξιολογείται ως NULL, όχι ως FALSE. Δοκιμάστε με IS NULL ή IS NOT NULL και αντικαταστήστε μια εφεδρική τιμή με coalesce() ή nvl() πριν η τιμή φτάσει σε έναν τελεστή.

Το LIKE χρησιμοποιεί μπαλαντέρ SQL, όπου το % αντιστοιχεί σε οποιαδήποτε σειρά χαρακτήρων και το _ αντιστοιχεί σε έναν. Το RLIKE αντιστοιχεί σε έναν Java κανονική έκφραση έναντι οποιασδήποτε υποσυμβολοσειράς της τιμής. Το REGEXP είναι συνώνυμο του RLIKE και συμπεριφέρεται πανομοιότυπα.

Οι αριθμητικοί τελεστές συνδέονται πρώτα, μετά οι τελεστές σύγκρισης, έπειτα το NOT, έπειτα το AND και έπειτα το OR. Επειδή η σειρά είναι εύκολο να διαβαστεί λανθασμένα σε μεγάλα κατηγορήματα, συνιστώνται παρενθέσεις κάθε φορά που εμφανίζονται τα AND και OR στην ίδια πρόταση.

Ναι. Οι σχεσιακοί και λογικοί τελεστές σχηματίζουν συνθήκες σύνδεσης, οι αριθμητικοί τελεστές μπορούν να παράγουν ομάδες.ping κλειδιά και η πρόσβαση σύνθετου τύπου όπως το M[κλειδί] είναι έγκυρη όπου επιτρέπεται μια έκφραση, συμπεριλαμβανομένων των λιστών SELECT, των ρητρών WHERE και της ORDER BY.

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

Χειρίζεται καλά τα κοινά κατηγήματα και προτείνει μοτίβα coalesce() ή CASE WHEN από ένα σύντομο σχόλιο. Επίσης, αναμειγνύει σύνταξη από άλλες μηχανές, επομένως επαληθεύστε τους τελεστές bitwise, την πρόσβαση σύνθετου τύπου και οποιοδήποτε όνομα συνάρτησης με DESCRIBE FUNCTION πριν εκτελέσετε το ερώτημα.

Συνοψίστε αυτήν την ανάρτηση με: