Μορφοποιητής Redshift
Μορφοποιήστε το Amazon Redshift SQL με τους κανόνες του Redshift για συμβολοσειρές με διαφυγές ανάστροφης καθέτου, αναγνωριστικά σε διπλά εισαγωγικά, πίνακες #temp, μετατροπές τύπου :: και σώματα συναρτήσεων $$. Τα QUALIFY και MINUS διατηρούνται ως ρήτρες, οι κλάδοι MERGE ξεκινούν σε νέες γραμμές και οι μεγάλες λίστες στηλών τοποθετούνται μία ανά γραμμή. Οι μη κλειστές συμβολοσειρές και παρενθέσεις αναφέρονται με γραμμή και στήλη, διευκολύνοντας τους αναλυτές και τους μηχανικούς δεδομένων να ελέγχουν κώδικα αποθήκης δεδομένων.
Συχνές ερωτήσεις
Ποια σύνταξη Redshift αναγνωρίζεται;
Αναγνωρίζονται συμβολοσειρές σε μονά εισαγωγικά με διαφυγές ανάστροφης καθέτου και διπλά εισαγωγικά, αναγνωριστικά σε διπλά εισαγωγικά, ονόματα πινάκων #temp και μετατροπές τύπου ::. Οι τελεστές κανονικών εκφράσεων ~ και ~* μαζί με τις αρνητικές μορφές τους, καθώς και τα σώματα συναρτήσεων $$ σε εισαγωγικά δολαρίου, διατηρούνται ακέραια.
Σε τι διαφέρει από τον μορφοποιητή PostgreSQL;
Το Redshift βασίστηκε στο PostgreSQL, αλλά διαφέρει: οι ανάστροφες κάθετοι διαφεύγουν χαρακτήρες στις συμβολοσειρές του, το # ξεκινά όνομα προσωρινού πίνακα αντί να είναι τελεστής και υποστηρίζει QUALIFY και MINUS. Αυτός ο μορφοποιητής ακολουθεί αυτούς τους κανόνες.
Τι γίνεται με τα σώματα UDF;
Τα σώματα συναρτήσεων Python ή SQL που ορίζονται από τον χρήστη και είναι γραμμένα ανάμεσα σε δείκτες $$ διατηρούνται ακριβώς όπως γράφτηκαν. Μορφοποιείται μόνο η εντολή γύρω τους.
Ποιες ρήτρες τοποθετούνται σε δική τους γραμμή;
Τα SELECT, FROM, WHERE, GROUP BY, HAVING, QUALIFY, ORDER BY, LIMIT και OFFSET ξεκινούν σε δικές τους γραμμές. Τα MINUS, UNION, INTERSECT και EXCEPT διαχωρίζουν τα ερωτήματα που συνδυάζουν.
Υποστηρίζει το MERGE;
Ναι. Οι κλάδοι WHEN MATCHED και WHEN NOT MATCHED ξεκινούν σε νέες γραμμές.
Διατηρούνται τα σχόλια;
Ναι. Τα σχόλια -- και /* */ παραμένουν στη θέση τους. Τα πολυγραμμικά σχόλια μπλοκ αποκτούν νέα εσοχή σύμφωνα με τη νέα διάταξη.
Αλλάζει την πεζοκεφαλαία γραφή των λέξεων-κλειδιών;
Όχι. Οι λέξεις-κλειδιά και τα ονόματα διατηρούν την πεζοκεφαλαιοποίηση που γράψατε. Αλλάζουν μόνο τα κενά και οι αλλαγές γραμμής.
Ποια σφάλματα εντοπίζονται;
Μη κλειστές συμβολοσειρές, αναγνωριστικά σε εισαγωγικά, σώματα $$ και σχόλια μπλοκ, καθώς και μη ισοζυγισμένες παρενθέσεις, όλα με γραμμή και στήλη. Το SQL δεν αποστέλλεται στο σύμπλεγμα σας.
Πόσο μεγάλο μπορεί να είναι το αρχείο εισόδου;
Έως 1 MB ανά αίτημα και 128 KB ανά εντολή. Τα μεγαλύτερα σενάρια ETL μορφοποιούνται μία εντολή κάθε φορά.
Μπορώ να επιλέξω την εσοχή και αποθηκεύεται το SQL μου;
Χρησιμοποιήστε 2 ή 4 κενά ή στηλοθέτες. Το SQL μορφοποιείται μόνο στη μνήμη και δεν αποθηκεύεται ποτέ.