Πώς να εκτελέσετε κώδικα SAS σε Linux

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

Η σύντομη απάντηση

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

Φτιαγμένο για τον τρόπο που πραγματικά εκτελείται η δουλειά σε Linux

Καλέστε το από cron, από χρονοδιακόπτη systemd, από εργασία Airflow, από job του GitHub Actions ή μέσα από ένα container. Διαβάζει από το stdin και γράφει στο stdout και σε αρχείο καταγραφής, οπότε συνδυάζεται με τα εργαλεία που ήδη υπάρχουν στο μηχάνημα αντί να απαιτεί συνεδρία.

Τι εκτελείται σε Linux

Το Jenner είναι συμβατό με SAS: η γλώσσα στην οποία είναι ήδη γραμμένα τα προγράμματά σας, εκτελούμενη στον διακομιστή με τα ίδια ονόματα εντολών και επιλογών που χρησιμοποιείτε σήμερα.

Βήματα DATA, PROC SQL και μακροεντολές

Ο πυρήνας της γλώσσας εκτελείται όπως γράφτηκε — λογική βήματος DATA, πίνακες, μορφές και informats, ο μηχανισμός μακροεντολών και το PROC SQL. Κώδικας γραμμένος για τη σύνταξη του SAS 9.4 δεν χρειάζεται στάδιο μεταφοράς.

Διαδικασίες: 100

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

Τα αρχεία που βρίσκονται ήδη στον διακομιστή

Το Jenner διαβάζει και γράφει αρχεία SAS7BDAT και XPT απευθείας, μαζί με CSV και Parquet. Σύνολα δεδομένων σε προσαρτημένο τόμο ή σε αποθήκη αντικειμένων δεν χρειάζονται μετατροπή, και η έξοδος μπορεί να γραφτεί πίσω στη μορφή που περιμένει η επόμενη εργασία.

Το ίδιο πρόγραμμα που έγραψε ο αναλυτής

Ο ίδιος πηγαίος κώδικας τρέχει σε Linux, macOS και Windows. Ένα πρόγραμμα που αναπτύχθηκε στον φορητό κάποιου τρέχει εδώ αμετάβλητο ως προγραμματισμένη εργασία, κάτι που αφαιρεί την επανεγγραφή που συνήθως στέκεται ανάμεσα στην ανάλυση και την παραγωγή.

Αποτελέσματα που μπορείτε να τεκμηριώσετε

Το Jenner περνά και τα 58 σύνολα δεδομένων του benchmark NIST Statistical Reference Datasets, της καθιερωμένης ανεξάρτητης σουίτας ακρίβειας για στατιστικό λογισμικό. Η αναφορά διαδικασιών δημοσιεύεται πλήρης, ώστε ο ισχυρισμός ότι υποστηρίζεται μια συγκεκριμένη PROC να είναι ελέγξιμος πριν την βάλετε σε μια ροή.

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

Εγκαταστήστε το εκτελέσιμο του Jenner και τρέξτε το πάνω στο αρχείο. Είναι ανεξάρτητη υλοποίηση της γλώσσας SAS, οπότε εκτελεί προγράμματα .sas απευθείας σε Linux χωρίς να υπάρχει SAS και χωρίς άδεια SAS. Τίποτα δεν μετατρέπεται εκ των προτέρων.

Ναι. Το Linux είναι πλατφόρμα που υποστηρίζεται από το SAS 9.4, οπότε δεν πρόκειται για πρόβλημα πλατφόρμας όπως το Apple silicon. Το εμπόδιο είναι η άδεια, και σε διακομιστή συνήθως και ο διακομιστής αδειών: ένα μηχάνημα που δεν τον φτάνει δεν εκτελεί.

Ναι. Δεν υπάρχει γραφικό περιβάλλον ούτε κάτι που να θέλει οθόνη. Είναι ένα συνηθισμένο πρόγραμμα γραμμής εντολών, και αυτό ακριβώς το κάνει χρήσιμο σε μηχάνημα που προσεγγίζετε μόνο μέσω SSH.

Όχι. Το Jenner είναι υλοποίηση της γλώσσας SAS με μέθοδο clean room και δεν ενσωματώνει, δεν τυλίγει και δεν καλεί λογισμικό SAS. Δεν υπάρχει άδεια προς ανανέωση ούτε διακομιστής αδειών απέναντι στον οποίο θα μπορούσε να αποτύχει η εργασία στις δύο τα ξημερώματα.

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

Ναι, και είναι συχνός λόγος που καταλήγει κανείς εδώ. Επειδή είναι ένα εκτελέσιμο με ουσιαστικό κωδικό εξόδου, μια εργασία CI μπορεί να τρέξει ένα πρόγραμμα .sas ως βήμα build και να ρίξει τη ροή όταν το πρόγραμμα αποτύχει. Ο χρονοπρογραμματισμός από cron, από χρονοδιακόπτη systemd ή από Airflow λειτουργεί το ίδιο.

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

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

Και το Altair SLC εκτελεί προγράμματα σε γλώσσα SAS χωρίς άδεια SAS, συμπεριλαμβανομένου του Linux, και το κάνει πολύ περισσότερο καιρό από εμάς. Για ένα σύνολο διακομιστών όπου η οριακή περίπτωση κάποιου άλλου έχει ήδη εμφανιστεί και διορθωθεί, αυτή η εμπειρία αξίζει πραγματικά χρήματα. Συγκρίνετε και τα δύο. Η Siemens το πουλά πλέον ως Rapidminer SLC, οπότε αξίζει να ψάξετε και με τα δύο ονόματα.

Συχνά ναι, και σε διακομιστή είναι πιο δελεαστικό από αλλού επειδή τα γύρω εργαλεία είναι ήδη Python. Αν ο κώδικας SAS είναι λίγος, ή η ομάδα εγκαταλείπει έτσι κι αλλιώς το SAS, ξαναγράψτε τον. Το επιχείρημα να τον τρέχετε ως έχει είναι ισχυρότερο όταν υπάρχει πολύς, είναι επικυρωμένος, και η επανεγγραφή σημαίνει εκ νέου επικύρωση και όχι απλώς εκ νέου κωδικοποίηση.

Εκτελέστε τα προγράμματά σας SAS στους διακομιστές Linux σας

Ένα εκτελέσιμο, κανένας διακομιστής αδειών, και ένας κωδικός εξόδου που ο χρονοπρογραμματιστής σας μπορεί να εμπιστευτεί.

Ξεκινήστε δωρεάν δοκιμή