Εφαρμογή χαμηλού κώδικα σε αναλυτικές πλατφόρμες

Αγαπητοί αναγνώστες, καλημέρα!

Το καθήκον της δημιουργίας πλατφορμών πληροφορικής για τη συλλογή και την ανάλυση δεδομένων αργά ή γρήγορα προκύπτει για κάθε εταιρεία της οποίας η δραστηριότητα βασίζεται σε ένα διανοητικά φορτωμένο μοντέλο παροχής υπηρεσιών ή στη δημιουργία τεχνικά πολύπλοκων προϊόντων. Η κατασκευή αναλυτικών πλατφορμών είναι μια πολύπλοκη και χρονοβόρα εργασία. Ωστόσο, κάθε εργασία μπορεί να απλοποιηθεί. Σε αυτό το άρθρο θέλω να μοιραστώ την εμπειρία μου στη χρήση εργαλείων χαμηλού κώδικα για τη δημιουργία αναλυτικών λύσεων. Αυτή η εμπειρία αποκτήθηκε κατά την υλοποίηση μιας σειράς έργων στην κατεύθυνση Big Data Solutions της εταιρείας Neoflex. Από το 2005, η διεύθυνση Big Data Solutions της Neoflex ασχολείται με θέματα κατασκευής αποθηκών δεδομένων και λιμνών, επίλυσης προβλημάτων βελτιστοποίησης της ταχύτητας επεξεργασίας πληροφοριών και επεξεργασίας μεθοδολογίας διαχείρισης ποιότητας δεδομένων.

Εφαρμογή χαμηλού κώδικα σε αναλυτικές πλατφόρμες

Κανείς δεν θα μπορέσει να αποφύγει τη συνειδητή συσσώρευση ασθενώς και/ή ισχυρά δομημένων δεδομένων. Ίσως ακόμα κι αν μιλάμε για μικρές επιχειρήσεις. Εξάλλου, κατά την κλιμάκωση μιας επιχείρησης, ένας πολλά υποσχόμενος επιχειρηματίας θα αντιμετωπίσει τα ζητήματα της ανάπτυξης ενός προγράμματος αφοσίωσης, θα θέλει να αναλύσει την αποτελεσματικότητα των σημείων πώλησης, θα σκεφτεί τη στοχευμένη διαφήμιση και θα προβληματιστεί από τη ζήτηση για συνοδευτικά προϊόντα . Σε μια πρώτη προσέγγιση, το πρόβλημα μπορεί να λυθεί «στο γόνατο». Αλλά καθώς η επιχείρηση αναπτύσσεται, η προσέλευση σε μια αναλυτική πλατφόρμα είναι ακόμα αναπόφευκτη.

Ωστόσο, σε ποια περίπτωση μπορούν οι εργασίες ανάλυσης δεδομένων να εξελιχθούν σε προβλήματα κλάσης «Rocket Science»; Ίσως τη στιγμή που μιλάμε για πραγματικά μεγάλα δεδομένα.
Για να κάνετε το Rocket Science πιο εύκολο, μπορείτε να φάτε τον ελέφαντα κομμάτι-κομμάτι.

Εφαρμογή χαμηλού κώδικα σε αναλυτικές πλατφόρμες

Όσο πιο διακριτικές και αυτόνομες είναι οι εφαρμογές/υπηρεσίες/μικροϋπηρεσίες σας, τόσο πιο εύκολο θα είναι για εσάς, τους συναδέλφους σας και ολόκληρη την επιχείρηση να αφομοιώσετε τον ελέφαντα.

Σχεδόν όλοι οι πελάτες μας κατέληξαν σε αυτό το αξίωμα, έχοντας ξαναχτίσει το τοπίο με βάση τις μηχανικές πρακτικές των ομάδων DevOps.

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

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

Ας καταλάβουμε γιατί.

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

  • Ταχύτητα αυτοματοποιημένης ανάλυσης.
  • Δυνατότητα διεξαγωγής πειραμάτων χωρίς να επηρεάζεται η κύρια ροή παραγωγής δεδομένων.
  • Αξιοπιστία των προετοιμασμένων δεδομένων.
  • Αλλαγή παρακολούθησης και έκδοσης εκδόσεων.
  • Προέλευση δεδομένων, Γενεαλογία δεδομένων, CDC;
  • Γρήγορη παράδοση νέων χαρακτηριστικών στο περιβάλλον παραγωγής.
  • Και το περιβόητο: το κόστος ανάπτυξης και υποστήριξης.

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

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

Ας κάνουμε μια αναλογία με γλώσσες προγραμματισμού χαμηλού και υψηλού επιπέδου. Η μετάβαση από γλώσσες χαμηλού επιπέδου σε γλώσσες υψηλού επιπέδου είναι μια μετάβαση από τη σύνταξη «άμεσες οδηγίες στη γλώσσα του υλικού» προς «οδηγίες στη γλώσσα των ανθρώπων». Δηλαδή, προσθέτοντας κάποιο στρώμα αφαίρεσης. Σε αυτήν την περίπτωση, η μετάβαση σε πλατφόρμες χαμηλού κώδικα από γλώσσες προγραμματισμού υψηλού επιπέδου είναι μια μετάβαση από "οδηγίες στη γλώσσα των ανθρώπων" σε "οδηγίες στη γλώσσα των επιχειρήσεων". Αν υπάρχουν προγραμματιστές που στεναχωριούνται από αυτό το γεγονός, τότε έχουν στεναχωρηθεί, ίσως, από τη στιγμή που γεννήθηκε το Java Script, το οποίο χρησιμοποιεί λειτουργίες ταξινόμησης πινάκων. Και αυτές οι λειτουργίες, φυσικά, έχουν εφαρμογή λογισμικού κάτω από την κουκούλα με άλλα μέσα του ίδιου προγραμματισμού υψηλού επιπέδου.

Επομένως, ο χαμηλός κώδικας είναι απλώς η εμφάνιση ενός άλλου επιπέδου αφαίρεσης.

Εφαρμοσμένη εμπειρία με χρήση χαμηλού κώδικα

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

Το τμήμα Big Data Solutions της Neoflex ειδικεύεται περισσότερο στον χρηματοοικονομικό τομέα των επιχειρήσεων, την κατασκευή αποθηκών δεδομένων και λιμνών και την αυτοματοποίηση διαφόρων αναφορών. Σε αυτή τη θέση, η χρήση χαμηλού κώδικα έχει γίνει εδώ και καιρό πρότυπο. Μεταξύ άλλων εργαλείων χαμηλού κώδικα, μπορούμε να αναφέρουμε εργαλεία οργάνωσης διαδικασιών ETL: Informatica Power Center, IBM Datastage, Pentaho Data Integration. Ή το Oracle Apex, το οποίο λειτουργεί ως περιβάλλον για την ταχεία ανάπτυξη διεπαφών για πρόσβαση και επεξεργασία δεδομένων. Ωστόσο, η χρήση εργαλείων ανάπτυξης χαμηλού κώδικα δεν συνεπάγεται πάντα τη δημιουργία πολύ στοχευμένων εφαρμογών σε μια εμπορική στοίβα τεχνολογίας με σαφή εξάρτηση από τον προμηθευτή.

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

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

Εφαρμογή χαμηλού κώδικα σε αναλυτικές πλατφόρμες

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

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

Το έργο που είχαμε μπροστά μας ήταν πραγματικά φιλόδοξο - η Neoflex και η Mediascope έπρεπε να δημιουργήσουν μια βιομηχανική λύση σε λιγότερο από ένα χρόνο, με την επιφύλαξη της κυκλοφορίας του MVP εντός του πρώτου τριμήνου της ημερομηνίας έναρξης.

Η στοίβα τεχνολογίας Hadoop επιλέχθηκε ως το θεμέλιο για την κατασκευή μιας νέας πλατφόρμας δεδομένων που βασίζεται σε υπολογιστές χαμηλού κώδικα. Το HDFS έχει γίνει το πρότυπο για την αποθήκευση δεδομένων χρησιμοποιώντας αρχεία παρκέ. Για την πρόσβαση στα δεδομένα που βρίσκονται στην πλατφόρμα χρησιμοποιήθηκε το Hive, στο οποίο όλες οι διαθέσιμες βιτρίνες παρουσιάζονται με τη μορφή εξωτερικών πινάκων. Η φόρτωση δεδομένων στο χώρο αποθήκευσης υλοποιήθηκε χρησιμοποιώντας Kafka και Apache NiFi.

Το εργαλείο Lowe-code σε αυτήν την ιδέα χρησιμοποιήθηκε για τη βελτιστοποίηση της πιο απαιτητικής εργασίας για τη δημιουργία μιας αναλυτικής πλατφόρμας - την εργασία του υπολογισμού δεδομένων.

Εφαρμογή χαμηλού κώδικα σε αναλυτικές πλατφόρμες

Το εργαλείο χαμηλού κώδικα Datagram επιλέχθηκε ως ο κύριος μηχανισμός για τη χαρτογράφηση δεδομένων. Neoflex Datagram είναι ένα εργαλείο για την ανάπτυξη μετασχηματισμών και ροών δεδομένων.
Χρησιμοποιώντας αυτό το εργαλείο, μπορείτε να κάνετε χωρίς να γράψετε τον κώδικα Scala με μη αυτόματο τρόπο. Ο κώδικας Scala δημιουργείται αυτόματα χρησιμοποιώντας την προσέγγιση Model Driven Architecture.

Ένα προφανές πλεονέκτημα αυτής της προσέγγισης είναι η επιτάχυνση της διαδικασίας ανάπτυξης. Ωστόσο, εκτός από την ταχύτητα, υπάρχουν και τα ακόλουθα πλεονεκτήματα:

  • Προβολή του περιεχομένου και της δομής των πηγών/δεκτών.
  • Ανίχνευση της προέλευσης των αντικειμένων ροής δεδομένων σε μεμονωμένα πεδία (lineage).
  • Μερική εκτέλεση μετασχηματισμών με προβολή ενδιάμεσων αποτελεσμάτων.
  • Αναθεώρηση του πηγαίου κώδικα και προσαρμογή του πριν από την εκτέλεση.
  • Αυτόματη επικύρωση μετασχηματισμών.
  • Αυτόματη λήψη δεδομένων 1 σε 1.

Το εμπόδιο για την είσοδο σε λύσεις χαμηλού κώδικα για τη δημιουργία μετασχηματισμών είναι αρκετά χαμηλό: ο προγραμματιστής πρέπει να γνωρίζει την SQL και να έχει εμπειρία στην εργασία με εργαλεία ETL. Αξίζει να αναφέρουμε ότι οι γεννήτριες μετασχηματισμού που βασίζονται στον κώδικα δεν είναι εργαλεία ETL με την ευρεία έννοια της λέξης. Τα εργαλεία χαμηλού κώδικα ενδέχεται να μην έχουν το δικό τους περιβάλλον εκτέλεσης κώδικα. Δηλαδή, ο παραγόμενος κώδικας θα εκτελεστεί στο περιβάλλον που υπήρχε στο σύμπλεγμα ακόμη και πριν από την εγκατάσταση της λύσης χαμηλού κώδικα. Και αυτό είναι ίσως ένα άλλο πλεονέκτημα για το κάρμα χαμηλού κώδικα. Εφόσον, παράλληλα με μια ομάδα χαμηλού κώδικα, μπορεί να λειτουργήσει μια «κλασική» ομάδα που υλοποιεί λειτουργικότητα, για παράδειγμα, σε καθαρό κώδικα Scala. Η εισαγωγή βελτιώσεων και από τις δύο ομάδες στην παραγωγή θα είναι απλή και απρόσκοπτη.

Αξίζει ίσως να σημειωθεί ότι εκτός από χαμηλού κώδικα, υπάρχουν και λύσεις χωρίς κώδικα. Και στον πυρήνα τους, αυτά είναι διαφορετικά πράγματα. Ο χαμηλός κώδικας επιτρέπει στον προγραμματιστή να παρεμβαίνει περισσότερο στον κώδικα που δημιουργείται. Στην περίπτωση του Datagram, είναι δυνατή η προβολή και η επεξεργασία του παραγόμενου κώδικα Scala· το no-code ενδέχεται να μην παρέχει τέτοια ευκαιρία. Αυτή η διαφορά είναι πολύ σημαντική όχι μόνο από την άποψη της ευελιξίας της λύσης, αλλά και από την άποψη της άνεσης και των κινήτρων στην εργασία των μηχανικών δεδομένων.

Αρχιτεκτονική λύσης

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

Εφαρμογή χαμηλού κώδικα σε αναλυτικές πλατφόρμες

Οι πηγές δεδομένων στην περίπτωσή μας είναι πολύ ετερογενείς και ποικίλες:

  • Οι μετρητές ατόμων (τηλεοπτικοί μετρητές) είναι συσκευές λογισμικού και υλικού που διαβάζουν τη συμπεριφορά των χρηστών από τους ερωτηθέντες του τηλεοπτικού πίνακα - ποιος, πότε και ποιο τηλεοπτικό κανάλι παρακολουθήθηκε στο νοικοκυριό που συμμετέχει στη μελέτη. Οι παρεχόμενες πληροφορίες είναι μια ροή διαστημάτων προβολής μετάδοσης που συνδέονται με το πακέτο πολυμέσων και το προϊόν πολυμέσων. Τα δεδομένα στο στάδιο της φόρτωσης στη Λίμνη Δεδομένων μπορούν να εμπλουτιστούν με δημογραφικά χαρακτηριστικά, γεωστρωμάτωση, ζώνη ώρας και άλλες πληροφορίες που είναι απαραίτητες για την ανάλυση της τηλεθέασης ενός συγκεκριμένου προϊόντος μέσων. Οι μετρήσεις που λαμβάνονται μπορούν να χρησιμοποιηθούν για την ανάλυση ή τον προγραμματισμό διαφημιστικών καμπανιών, την αξιολόγηση της δραστηριότητας και των προτιμήσεων του κοινού και τη σύνταξη του δικτύου εκπομπής.
  • Τα δεδομένα μπορούν να προέρχονται από συστήματα παρακολούθησης για ροή τηλεοπτικών εκπομπών και τη μέτρηση της προβολής περιεχομένου πόρων βίντεο στο Διαδίκτυο.
  • Εργαλεία μέτρησης στο περιβάλλον web, συμπεριλαμβανομένων μετρητών με επίκεντρο τοποθεσιών και χρήστη. Ο πάροχος δεδομένων για το Data Lake μπορεί να είναι ένα πρόσθετο προγράμματος περιήγησης γραμμής έρευνας και μια εφαρμογή για κινητά με ενσωματωμένο VPN.
  • Τα δεδομένα μπορούν επίσης να προέρχονται από ιστότοπους που ενοποιούν τα αποτελέσματα της συμπλήρωσης διαδικτυακών ερωτηματολογίων και τα αποτελέσματα των τηλεφωνικών συνεντεύξεων σε έρευνες εταιρειών.
  • Πρόσθετος εμπλουτισμός της λίμνης δεδομένων μπορεί να γίνει με τη λήψη πληροφοριών από αρχεία καταγραφής συνεργαζόμενων εταιρειών.

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

Ωστόσο, στο πλαίσιο αυτού του έργου, αποφασίσαμε να μην χρησιμοποιήσουμε αυτή τη δυνατότητα της πλατφόρμας χαμηλού κώδικα, λόγω του γεγονότος ότι η εταιρεία Mediascope έχει ήδη ξεκινήσει ανεξάρτητα τις εργασίες για την παραγωγή μιας παρόμοιας υπηρεσίας χρησιμοποιώντας το συνδυασμό Nifi + Kafka.

Αξίζει αμέσως να επισημάνουμε ότι αυτά τα εργαλεία δεν είναι εναλλάξιμα, αλλά μάλλον συμπληρωματικά. Το Nifi και ο Kafka μπορούν να λειτουργήσουν τόσο σε απευθείας σύνδεση (Nifi -> Kafka) όσο και σε αντίστροφη σύνδεση (Kafka -> Nifi). Για την πλατφόρμα έρευνας μέσων, χρησιμοποιήθηκε η πρώτη έκδοση του πακέτου.

Εφαρμογή χαμηλού κώδικα σε αναλυτικές πλατφόρμες

Στην περίπτωσή μας, το NayFi χρειαζόταν να επεξεργαστεί διάφορους τύπους δεδομένων από συστήματα πηγής και να τα στείλει στον μεσίτη Kafka. Σε αυτήν την περίπτωση, τα μηνύματα στάλθηκαν σε ένα συγκεκριμένο θέμα Kafka χρησιμοποιώντας επεξεργαστές PublishKafka Nifi. Η ενορχήστρωση και η συντήρηση αυτών των αγωγών πραγματοποιείται σε οπτική διεπαφή. Το εργαλείο Nifi και η χρήση του συνδυασμού Nifi + Kafka μπορούν επίσης να ονομαστούν προσέγγιση ανάπτυξης χαμηλού κώδικα, η οποία έχει χαμηλό εμπόδιο στην είσοδο σε τεχνολογίες Big Data και επιταχύνει τη διαδικασία ανάπτυξης εφαρμογών.

Το επόμενο στάδιο στην υλοποίηση του έργου ήταν η μεταφορά λεπτομερών δεδομένων σε μορφή ενιαίου σημασιολογικού επιπέδου. Εάν μια οντότητα έχει ιστορικά χαρακτηριστικά, ο υπολογισμός πραγματοποιείται στο πλαίσιο του εν λόγω διαμερίσματος. Εάν η οντότητα δεν είναι ιστορική, τότε είναι προαιρετικά δυνατός είτε ο επανυπολογισμός ολόκληρου του περιεχομένου του αντικειμένου είτε η πλήρης άρνηση του επανυπολογισμού αυτού του αντικειμένου (λόγω έλλειψης αλλαγών). Σε αυτό το στάδιο, δημιουργούνται κλειδιά για όλες τις οντότητες. Τα κλειδιά αποθηκεύονται στους καταλόγους Hbase που αντιστοιχούν στα κύρια αντικείμενα, τα οποία περιέχουν μια αντιστοιχία μεταξύ των κλειδιών στην αναλυτική πλατφόρμα και των κλειδιών από τα συστήματα προέλευσης. Η ενοποίηση των ατομικών οντοτήτων συνοδεύεται από εμπλουτισμό με τα αποτελέσματα του προκαταρκτικού υπολογισμού των αναλυτικών δεδομένων. Το πλαίσιο για τον υπολογισμό των δεδομένων ήταν το Spark. Η περιγραφόμενη λειτουργικότητα για τη μεταφορά δεδομένων σε μια ενιαία σημασιολογία υλοποιήθηκε επίσης με βάση αντιστοιχίσεις από το εργαλείο Datagram χαμηλού κώδικα.

Η αρχιτεκτονική στόχος απαιτούσε πρόσβαση SQL στα δεδομένα για τους επιχειρησιακούς χρήστες. Το Hive χρησιμοποιήθηκε για αυτήν την επιλογή. Τα αντικείμενα καταχωρούνται στο Hive αυτόματα όταν ενεργοποιήσετε την επιλογή "Registr Hive Table" στο εργαλείο χαμηλού κώδικα.

Εφαρμογή χαμηλού κώδικα σε αναλυτικές πλατφόρμες

Έλεγχος ροής υπολογισμού

Το Datagram έχει μια διεπαφή για τη δημιουργία σχεδίων ροής εργασίας. Οι αντιστοιχίσεις μπορούν να ξεκινήσουν χρησιμοποιώντας τον προγραμματιστή Oozie. Στη διεπαφή προγραμματιστή ροής, είναι δυνατή η δημιουργία σχημάτων για παράλληλους, διαδοχικούς ή εξαρτώμενους από την εκτέλεση μετασχηματισμούς δεδομένων. Υπάρχει υποστήριξη για σενάρια κελύφους και προγράμματα java. Είναι επίσης δυνατή η χρήση του διακομιστή Apache Livy. Το Apache Livy χρησιμοποιείται για την εκτέλεση εφαρμογών απευθείας από το περιβάλλον ανάπτυξης.

Εάν η εταιρεία έχει ήδη τον δικό της ενορχηστρωτή διεργασιών, είναι δυνατό να χρησιμοποιηθεί το REST API για την ενσωμάτωση αντιστοιχίσεων σε μια υπάρχουσα ροή. Για παράδειγμα, είχαμε αρκετά επιτυχημένη εμπειρία ενσωμάτωσης αντιστοιχίσεων στη Scala σε ενορχηστρωτές γραμμένους σε PLSQL και Kotlin. Το REST API ενός εργαλείου χαμηλού κώδικα περιλαμβάνει λειτουργίες όπως η δημιουργία ενός εκτελέσιμου έτους με βάση τη σχεδίαση αντιστοίχισης, η κλήση μιας αντιστοίχισης, η κλήση μιας ακολουθίας αντιστοιχίσεων και, φυσικά, η μεταφορά παραμέτρων στη διεύθυνση URL για την εκτέλεση αντιστοιχίσεων.

Μαζί με το Oozie, είναι δυνατό να οργανωθεί μια ροή υπολογισμού χρησιμοποιώντας τη ροή αέρα. Ίσως δεν θα σταθώ πολύ στη σύγκριση μεταξύ του Oozie και του Airflow, αλλά θα πω απλώς ότι στο πλαίσιο της εργασίας σε ένα ερευνητικό έργο μέσων ενημέρωσης, η επιλογή έπεσε υπέρ του Airflow. Τα κύρια επιχειρήματα αυτή τη φορά ήταν μια πιο ενεργή κοινότητα που αναπτύσσει το προϊόν και μια πιο ανεπτυγμένη διεπαφή + API.

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

Η μορφή αρχείου διαμόρφωσης για την εκκίνηση αντιστοιχίσεων λύσεων χαμηλού κώδικα έχει γίνει spark-submit. Αυτό συνέβη για δύο λόγους. Πρώτον, το spark-submit σάς επιτρέπει να εκτελέσετε απευθείας ένα αρχείο jar από την κονσόλα. Δεύτερον, μπορεί να περιέχει όλες τις απαραίτητες πληροφορίες για τη διαμόρφωση της ροής εργασίας (πράγμα που διευκολύνει τη σύνταξη σεναρίων που δημιουργούν Dag).
Το πιο κοινό στοιχείο της ροής εργασίας Airflow στην περίπτωσή μας ήταν ο SparkSubmitOperator.

Το SparkSubmitOperator σάς επιτρέπει να εκτελείτε jars - συσκευασμένες αντιστοιχίσεις Datagram με προ-δημιουργημένες παραμέτρους εισόδου για αυτά.

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

Συνολικά, η χρήση της λύσης χαμηλού κώδικα Datagram σε συνδυασμό με την καθολικότητα των αρχείων διαμόρφωσης (που σχηματίζουν το Dag) οδήγησε σε σημαντική επιτάχυνση και απλοποίηση της διαδικασίας ανάπτυξης ροών φόρτωσης δεδομένων.

Υπολογισμοί βιτρίνας

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

Εφαρμογή χαμηλού κώδικα σε αναλυτικές πλατφόρμες

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

Αποφασίστηκε να διαχωριστεί ο αλγόριθμος επικύρωσης στα ακόλουθα υποστάδια:

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

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

Τι άλλο μπορεί να κάνει ο χαμηλός κώδικας;

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

Η χρήση χαμηλού κώδικα στην ανάπτυξη του datalake έχει ήδη γίνει πρότυπο για εμάς. Μπορούμε πιθανώς να πούμε ότι οι λύσεις που βασίζονται στη στοίβα Hadoop ακολουθούν την πορεία ανάπτυξης των κλασικών DWH που βασίζονται σε RDBMS. Τα εργαλεία χαμηλού κώδικα στη στοίβα Hadoop μπορούν να επιλύσουν τόσο εργασίες επεξεργασίας δεδομένων όσο και την εργασία δημιουργίας τελικών διεπαφών BI. Επιπλέον, πρέπει να σημειωθεί ότι το BI μπορεί να σημαίνει όχι μόνο την αναπαράσταση δεδομένων, αλλά και την επεξεργασία τους από επαγγελματίες χρήστες. Συχνά χρησιμοποιούμε αυτή τη λειτουργία κατά τη δημιουργία αναλυτικών πλατφορμών για τον χρηματοπιστωτικό τομέα.

Εφαρμογή χαμηλού κώδικα σε αναλυτικές πλατφόρμες

Μεταξύ άλλων, με τη χρήση χαμηλού κώδικα και, ειδικότερα, του Datagram, είναι δυνατό να λυθεί το πρόβλημα της παρακολούθησης της προέλευσης αντικειμένων ροής δεδομένων με ατομικότητα μέχρι μεμονωμένα πεδία (lineage). Για να γίνει αυτό, το εργαλείο χαμηλού κώδικα υλοποιεί διασύνδεση με το Apache Atlas και το Cloudera Navigator. Ουσιαστικά, ο προγραμματιστής πρέπει να καταχωρήσει ένα σύνολο αντικειμένων στα λεξικά Atlas και να παραπέμψει στα καταχωρημένα αντικείμενα κατά τη δημιουργία αντιστοιχίσεων. Ο μηχανισμός παρακολούθησης της προέλευσης δεδομένων ή ανάλυσης εξαρτήσεων αντικειμένων εξοικονομεί πολύ χρόνο όταν είναι απαραίτητο να γίνουν βελτιώσεις στους αλγόριθμους υπολογισμού. Για παράδειγμα, κατά την προετοιμασία των οικονομικών καταστάσεων, αυτή η δυνατότητα σάς επιτρέπει να επιβιώσετε πιο άνετα την περίοδο των νομοθετικών αλλαγών. Άλλωστε, όσο καλύτερα κατανοούμε την εξάρτηση μεταξύ των μορφών στο πλαίσιο αντικειμένων ενός λεπτομερούς επιπέδου, τόσο λιγότερο θα συναντήσουμε «ξαφνικά» ελαττώματα και θα μειώσουμε τον αριθμό των επαναλήψεων.

Εφαρμογή χαμηλού κώδικα σε αναλυτικές πλατφόρμες

Ποιότητα δεδομένων & Χαμηλός κώδικας

Μια άλλη εργασία που υλοποιήθηκε από το εργαλείο χαμηλού κώδικα στο έργο Mediascope ήταν η εργασία κλάσης Data Quality. Ένα ιδιαίτερο χαρακτηριστικό της υλοποίησης του αγωγού επαλήθευσης δεδομένων για το έργο της ερευνητικής εταιρείας ήταν η έλλειψη επίδρασης στην απόδοση και την ταχύτητα της κύριας ροής υπολογισμού δεδομένων. Για να είναι δυνατή η ενορχήστρωση ανεξάρτητων ροών επαλήθευσης δεδομένων, χρησιμοποιήθηκε το ήδη γνωστό Apache Airflow. Καθώς κάθε βήμα παραγωγής δεδομένων ήταν έτοιμο, ένα ξεχωριστό τμήμα του αγωγού DQ ξεκίνησε παράλληλα.

Καλή πρακτική θεωρείται η παρακολούθηση της ποιότητας των δεδομένων από τη στιγμή της έναρξής τους στην αναλυτική πλατφόρμα. Έχοντας πληροφορίες σχετικά με τα μεταδεδομένα, μπορούμε να ελέγξουμε τη συμμόρφωση με βασικές προϋποθέσεις από τη στιγμή που οι πληροφορίες εισέρχονται στο κύριο επίπεδο - όχι null, περιορισμοί, ξένα κλειδιά. Αυτή η λειτουργία υλοποιείται με βάση τις αυτόματα δημιουργούμενες αντιστοιχίσεις της οικογένειας ποιότητας δεδομένων στο Datagram. Η δημιουργία κώδικα σε αυτήν την περίπτωση βασίζεται επίσης σε μεταδεδομένα μοντέλου. Στο έργο Mediascope, η διεπαφή πραγματοποιήθηκε με τα μεταδεδομένα του προϊόντος Enterprise Architect.

Με τη σύζευξη του εργαλείου χαμηλού κώδικα με το Enterprise Architect, δημιουργήθηκαν αυτόματα οι ακόλουθοι έλεγχοι:

  • Έλεγχος για την παρουσία τιμών "null" σε πεδία με τον τροποποιητή "not null".
  • Έλεγχος της παρουσίας διπλότυπων του πρωτεύοντος κλειδιού.
  • Έλεγχος του ξένου κλειδιού μιας οντότητας.
  • Έλεγχος της μοναδικότητας μιας συμβολοσειράς με βάση ένα σύνολο πεδίων.

Για πιο σύνθετους ελέγχους διαθεσιμότητας και αξιοπιστίας δεδομένων, δημιουργήθηκε μια αντιστοίχιση με το Scala Expression, το οποίο λαμβάνει ως είσοδο έναν εξωτερικό κώδικα ελέγχου Spark SQL που προετοιμάστηκε από αναλυτές της Zeppelin.

Εφαρμογή χαμηλού κώδικα σε αναλυτικές πλατφόρμες

Φυσικά, η αυτόματη δημιουργία ελέγχων πρέπει να επιτυγχάνεται σταδιακά. Στο πλαίσιο του περιγραφόμενου έργου, προηγήθηκαν τα ακόλουθα βήματα:

  • Το DQ υλοποιείται σε φορητούς υπολογιστές Zeppelin.
  • DQ ενσωματωμένο στη χαρτογράφηση.
  • DQ με τη μορφή χωριστών μαζικών αντιστοιχίσεων που περιέχουν ένα ολόκληρο σύνολο ελέγχων για μια ξεχωριστή οντότητα.
  • Καθολικές παραμετροποιημένες αντιστοιχίσεις DQ που δέχονται πληροφορίες σχετικά με μεταδεδομένα και επιχειρηματικούς ελέγχους ως είσοδο.

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

  • Όλοι οι έλεγχοι μεταδεδομένων δημιουργούνται αυτόματα όταν το μοντέλο τροποποιείται στο EA.
  • Οι έλεγχοι διαθεσιμότητας δεδομένων (που καθορίζουν την παρουσία οποιωνδήποτε δεδομένων σε μια χρονική στιγμή) μπορούν να δημιουργηθούν με βάση έναν κατάλογο που αποθηκεύει τον αναμενόμενο χρόνο εμφάνισης του επόμενου κομματιού δεδομένων στο πλαίσιο των αντικειμένων.
  • Οι έλεγχοι επικύρωσης επιχειρηματικών δεδομένων δημιουργούνται από αναλυτές σε σημειωματάρια Zeppelin. Από εκεί αποστέλλονται απευθείας στους πίνακες εγκατάστασης της μονάδας DQ στο περιβάλλον παραγωγής.

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

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

Αντί για ένα συμπέρασμα

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

Φυσικά, ο χαμηλός κώδικας δεν είναι πανάκεια και η μαγεία δεν θα συμβεί από μόνη της:

  • Ο κλάδος των χαμηλών κωδικών διέρχεται ένα στάδιο «δυναμώνει» και δεν υπάρχουν ακόμη ενιαία βιομηχανικά πρότυπα.
  • Πολλές λύσεις χαμηλού κώδικα δεν είναι δωρεάν και η αγορά τους θα πρέπει να είναι ένα συνειδητό βήμα, το οποίο θα πρέπει να γίνεται με πλήρη εμπιστοσύνη στα οικονομικά οφέλη από τη χρήση τους.
  • Πολλές λύσεις χαμηλού κώδικα δεν λειτουργούν πάντα καλά με το GIT/SVN. Ή δεν είναι βολικό να χρησιμοποιηθούν εάν ο κώδικας που δημιουργείται είναι κρυφός.
  • Κατά την επέκταση της αρχιτεκτονικής, μπορεί να είναι απαραίτητο να βελτιωθεί η λύση χαμηλού κώδικα - η οποία, με τη σειρά της, προκαλεί την επίδραση της «προσκόλλησης και εξάρτησης» στον προμηθευτή της λύσης χαμηλού κώδικα.
  • Ένα επαρκές επίπεδο ασφάλειας είναι δυνατό, αλλά είναι πολύ εντάσεως εργασίας και δύσκολο να εφαρμοστεί σε κινητήρες συστημάτων χαμηλού κώδικα. Οι πλατφόρμες χαμηλού κώδικα θα πρέπει να επιλέγονται όχι μόνο βάσει της αρχής της αναζήτησης οφελών από τη χρήση τους. Κατά την επιλογή, αξίζει να κάνετε ερωτήσεις σχετικά με τη διαθεσιμότητα λειτουργικότητας για έλεγχο πρόσβασης και ανάθεση/κλιμάκωση δεδομένων αναγνώρισης στο επίπεδο ολόκληρου του τοπίου πληροφορικής του οργανισμού.

Εφαρμογή χαμηλού κώδικα σε αναλυτικές πλατφόρμες

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

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

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

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο