Πώς λειτουργεί το Apache Nifi - σερφάρετε στη ροή δεδομένων σας, μην πνιγείτε σε αυτό

Εισαγωγή

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

Καλά νέα, δεν χρειάζεται να δημιουργήσετε τη λύση ροής δεδομένων από το μηδέν - το Apache NiFi πήρε την πλάτη σας!

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

Τι θα καλύψω σε αυτό το άρθρο:

  • Τι είναι το Apache NiFi, σε ποια κατάσταση πρέπει να το χρησιμοποιήσετε και ποιες είναι οι βασικές έννοιες που πρέπει να κατανοήσετε στο NiFi.

Τι δεν θα καλύψω:

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

Για τη δική σας ευκολία, εδώ είναι ο πίνακας περιεχομένου, μη διστάσετε να μεταβείτε κατευθείαν εκεί που σας οδηγεί η περιέργειά σας. Εάν είστε πρώτος χρονοδιακόπτης NiFi, συνιστάται να διαβάσετε αυτό το άρθρο με την υποδεικνυόμενη σειρά.

Πίνακας Περιεχομένων

  • I - Τι είναι το Apache NiFi;

    - Ορισμός NiFi

    - Γιατί να χρησιμοποιήσετε το NiFi;

  • II - Apache Nifi κάτω από το μικροσκόπιο

    - FlowFile

    - Επεξεργαστής

    - Ομάδα διεργασιών

    - Σύνδεση

    - Ελεγκτής ροής

  • Συμπέρασμα και έκκληση για δράση

Τι είναι το Apache NiFi;

Στον ιστότοπο του έργου Apache Nifi, μπορείτε να βρείτε τον ακόλουθο ορισμό:

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

Ας αναλύσουμε τις λέξεις-κλειδιά εκεί.

Ορισμός του NiFi

Επεξεργασία και διανομή δεδομένων

Αυτή είναι η ουσία του Νίφι. Μετακινεί δεδομένα γύρω από συστήματα και σας δίνει εργαλεία για την επεξεργασία αυτών των δεδομένων.

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

Εύχρηστος

Επεξεργαστές - τα κουτιά - που συνδέονται με βύσματα - τα βέλη δημιουργούν μια ροή . Το N iFi προσφέρει μια εμπειρία προγραμματισμού βάσει ροής.

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

Εξετάστε τον παρακάτω αγωγό:

Για να μεταφράσετε τη ροή δεδομένων παραπάνω στο NiFi, μεταβείτε στη γραφική διεπαφή χρήστη NiFi, σύρετε και αποθέστε τρία στοιχεία στον καμβά και

Αυτό είναι. Χρειάζονται δύο λεπτά για την κατασκευή.

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

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

Ισχυρός

Το NiFi παρέχει πολλούς επεξεργαστέςέξω από το κουτί (293 στο Nifi 1.9.2). Είσαι στους ώμους ενός γίγαντα. Αυτοί οι τυπικοί επεξεργαστές χειρίζονται τη συντριπτική πλειονότητα των περιπτώσεων χρήσης που ενδέχεται να αντιμετωπίσετε.

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

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

Αξιόπιστος

Η θεωρία που υποστηρίζει το NiFi δεν είναι νέα. έχει σταθερές θεωρητικές άγκυρες. Είναι παρόμοιο με μοντέλα όπως το SEDA.

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

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

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

Η λύση γραμμής δεδομένων που προτείνει η Apache Nifi αποδεικνύεται ότι είναι ένα εξαιρετικό εργαλείο για τον έλεγχο ενός αγωγού δεδομένων. Τα χαρακτηριστικά της γενεαλογίας δεδομένων είναι απαραίτητα για την ενίσχυση της εμπιστοσύνης σε μεγάλα δεδομένα και συστήματα AI σε ένα πλαίσιο όπου υπερεθνικοί φορείς όπως η Ευρωπαϊκή Ένωση προτείνουν κατευθυντήριες γραμμές για την υποστήριξη της ακριβούς επεξεργασίας δεδομένων.

Γιατί να χρησιμοποιήσετε το Nifi;

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

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

  • Όγκος - Σε ποια κλίμακα λειτουργεί; Με σειρά μεγέθους, είστε πιο κοντά σε μερικά GigaBytes ή εκατοντάδες PetaBytes;
  • Ποικιλία - Πόσες πηγές δεδομένων έχετε; Είναι δομημένα τα δεδομένα σας; Εάν ναι, το σχήμα διαφέρει συχνά;
  • Ταχύτητα - Ποια είναι η συχνότητα των συμβάντων που επεξεργάζεστε; Είναι πληρωμές με πιστωτικές κάρτες; Είναι μια καθημερινή αναφορά απόδοσης που αποστέλλεται από μια συσκευή IoT;
  • Βεβαιότητα - Μπορείτε να εμπιστευτείτε τα δεδομένα; Εναλλακτικά, πρέπει να εφαρμόσετε πολλαπλές εργασίες καθαρισμού πριν το χειριστείτε;

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

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

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

Μια αυξανόμενη λίστα εφαρμογών για λύσεις δρομολόγησης δεδομένων

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

  • Οι μικροϋπηρεσίες είναι μοντέρνες. Σε αυτές τις χαλαρά συνδεδεμένες υπηρεσίες, τα δεδομένα είναι η σύμβαση μεταξύ των υπηρεσιών. Το Nifi είναι ένας ισχυρός τρόπος δρομολόγησης δεδομένων μεταξύ αυτών των υπηρεσιών.
  • το διαδίκτυο των πραγμάτωνφέρνει ένα πλήθος δεδομένων στο σύννεφο. Η απορρόφηση και η επικύρωση δεδομένων από την άκρη στο σύννεφο δημιουργεί πολλές νέες προκλήσεις που μπορεί να αντιμετωπίσει αποτελεσματικά η NiFi (κυρίως μέσω MiniFi, έργου NiFi για συσκευές αιχμής)
  • Νέες οδηγίες και κανονισμοί έχουν τεθεί σε εφαρμογή για την αναπροσαρμογή της οικονομίας Big Data. Σε αυτό το πλαίσιο αυξανόμενης παρακολούθησης, είναι ζωτικής σημασίας για τις επιχειρήσεις να έχουν μια σαφή επισκόπηση του αγωγού δεδομένων τους. Η γενεαλογία δεδομένων NiFi, για παράδειγμα, μπορεί να είναι χρήσιμη σε μια πορεία προς τη συμμόρφωση προς τους κανονισμούς.

Γέφυρα του χάσματος μεταξύ μεγάλων εμπειρογνωμόνων δεδομένων και των άλλων

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

  • Ένας αναλυτής ζητά πληροφορίες για το γιατί αυτά τα δεδομένα φτάνουν εδώ με αυτόν τον τρόπο; Καθίστε μαζί και περπατήστε στη ροή. Σε πέντε λεπτά δίνετε σε κάποιον μια ισχυρή κατανόηση του σωλήνα Extract Transform and Load -ETL .
  • Θέλετε σχόλια από τους συναδέλφους σας για μια νέα ροή χειρισμού σφαλμάτων που δημιουργήσατε; Το NiFi το καθιστά σχεδιαστική απόφαση να εξετάσει τις διαδρομές σφαλμάτων ως πιθανό έγκυρο αποτέλεσμα. Αναμένετε ότι η κριτική ροής θα είναι μικρότερη από μια παραδοσιακή κριτική κώδικα.

Πρέπει να το χρησιμοποιήσετε; Ναι όχι ίσως?

Το NiFi χαρακτηρίζεται ως εύκολο στη χρήση. Ωστόσο, είναι μια πλατφόρμα επιχειρηματικής ροής δεδομένων. Προσφέρει ένα πλήρες σύνολο δυνατοτήτων από τις οποίες μπορεί να χρειαστείτε μόνο μειωμένο υποσύνολο. Η προσθήκη ενός νέου εργαλείου στη στοίβα δεν είναι καλοήθης.

Εάν ξεκινάτε από το μηδέν και διαχειρίζεστε μερικά δεδομένα από αξιόπιστες πηγές δεδομένων, ίσως είναι καλύτερα να ρυθμίσετε τον αγωγό Extract Transform and Load - ETL . Ίσως το μόνο που χρειάζεστε είναι η λήψη δεδομένων αλλαγής από μια βάση δεδομένων και ορισμένα σενάρια προετοιμασίας δεδομένων.

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

Είναι εύκολο να δεχτείτε νέες λύσεις Καταγράψτε τις απαιτήσεις σας και επιλέξτε τη λύση που ανταποκρίνεται στις ανάγκες σας όσο πιο απλά γίνεται .

Τώρα που έχουμε δει την πολύ υψηλή εικόνα του Apache NiFi, ρίχνουμε μια ματιά στις βασικές έννοιες του και τεμαχίζουμε τα εσωτερικά του.

Apache Nifi κάτω από το μικροσκόπιο

"Το NiFi είναι κουτιά και προγραμματισμός βέλους" μπορεί να είναι εντάξει για να επικοινωνήσει τη μεγάλη εικόνα. Ωστόσο, εάν πρέπει να λειτουργήσετε με το NiFi, ίσως θελήσετε να καταλάβετε λίγο περισσότερα για το πώς λειτουργεί.

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

Αποσύνδεση Apache NiFi

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

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

Η διεπαφή χρήστη καμβά NiFi είναι το πλαίσιο στο οποίο εξελίσσεται το εργαλείο δημιουργίας αγωγών.

Έννοια της ορολογίας Νίφι

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

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

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

Αρχείο ροής

Στο NiFi, το FlowFileείναι το πακέτο πληροφοριών που κινείται μέσω των επεξεργαστών του αγωγού.

Το FlowFile διατίθεται σε δύο μέρη:

  • Χαρακτηριστικά , τα οποία είναι ζεύγη κλειδιών / τιμών. Για παράδειγμα, το όνομα αρχείου, η διαδρομή αρχείου και ένα μοναδικό αναγνωριστικό είναι τυπικά χαρακτηριστικά.
  • Περιεχόμενο , μια αναφορά στη ροή των byte συνθέτουν το περιεχόμενο FlowFile.

Το FlowFile δεν περιέχει τα ίδια τα δεδομένα. Αυτό θα περιόριζε σοβαρά την απόδοση του αγωγού.

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

Για πρόσβαση στο περιεχόμενο, το FlowFile αξιώνει τον πόρο από το Content Repository. Οι τελευταίοι διατηρούν ίχνη της ακριβούς μετατόπισης του δίσκου από το σημείο όπου βρίσκεται το περιεχόμενο και επιστρέφουν στο FlowFile.

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

Όταν ένας επεξεργαστής τροποποιεί το περιεχόμενο ενός FlowFile, διατηρούνται τα προηγούμενα δεδομένα. Το NiFi αντιγράφει-σε-εγγραφή, τροποποιεί το περιεχόμενο ενώ το αντιγράφει σε μια νέα τοποθεσία. Οι αρχικές πληροφορίες παραμένουν ανέπαφες στο αποθετήριο περιεχομένου.

Παράδειγμα

Εξετάστε έναν επεξεργαστή που συμπιέζει το περιεχόμενο ενός FlowFile. Το αρχικό περιεχόμενο παραμένει στο αποθετήριο περιεχομένου και δημιουργείται μια νέα καταχώριση για το συμπιεσμένο περιεχόμενο.

Το Content Repository επιστρέφει τελικά την αναφορά στο συμπιεσμένο περιεχόμενο. Το FlowFile ενημερώνεται για να δείχνει στα συμπιεσμένα δεδομένα.

Το παρακάτω σχέδιο συνοψίζει το παράδειγμα με έναν επεξεργαστή που συμπιέζει το περιεχόμενο των FlowFiles.

Αξιοπιστία

Το NiFi ισχυρίζεται ότι είναι αξιόπιστο, πώς είναι στην πράξη;Τα χαρακτηριστικά όλων των FlowFiles που χρησιμοποιούνται αυτήν τη στιγμή, καθώς και η αναφορά στο περιεχόμενό τους, αποθηκεύονται στο FlowFile Repository.

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

Για κάθε FlowFile που υπάρχει επί του παρόντος στο σύστημα, το αποθετήριο FlowFile αποθηκεύει:

  • Τα χαρακτηριστικά FlowFile
  • Ένας δείκτης για το περιεχόμενο του FlowFile που βρίσκεται στο αποθετήριο FlowFile
  • Η κατάσταση του FlowFile. Για παράδειγμα: σε ποια ουρά ανήκει το Flowfile αυτήν τη στιγμή.

Το αποθετήριο FlowFile μας δίνει την πιο πρόσφατη κατάσταση της ροής. έτσι είναι ένα ισχυρό εργαλείο για να ανακάμψετε από μια διακοπή.

Το NiFi παρέχει ένα άλλο εργαλείο για την παρακολούθηση του πλήρους ιστορικού όλων των FlowFiles στη ροή: το αποθετήριο Provenance.

Αποθεματικό Provenance

Κάθε φορά που τροποποιείται ένα FlowFile, το NiFi λαμβάνει ένα στιγμιότυπο του FlowFile και το περιβάλλον του σε αυτό το σημείο. Το όνομα για αυτό το στιγμιότυπο στο NiFi είναι ένα Provenance Event . Το αποθετήριο Provenance καταγράφει τα γεγονότα Provenance.

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

Εκτός από την προσφορά της πλήρους γενεαλογίας των δεδομένων, το Provenance Repository προσφέρει επίσης την αναπαραγωγή των δεδομένων από οποιαδήποτε στιγμή.

Περιμένετε, ποια είναι η διαφορά μεταξύ του αποθετηρίου FlowFile και του αποθετηρίου Provenance;

Η ιδέα πίσω από το FlowFile Repository και το Provenance Repository είναι αρκετά παρόμοια, αλλά δεν αντιμετωπίζουν το ίδιο ζήτημα.

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

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

Επεξεργαστής FlowFile

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

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

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

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

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

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

Απολέπιση

Για κάθε επεξεργαστή, μπορείτε να καθορίσετε τον αριθμό των ταυτόχρονων εργασιών που θέλετε να εκτελέσετε ταυτόχρονα. Έτσι, ο ελεγκτής ροής εκχωρεί περισσότερους πόρους σε αυτόν τον επεξεργαστή, αυξάνοντας την απόδοση του. Οι επεξεργαστές μοιράζονται θέματα. Εάν ένας επεξεργαστής ζητά περισσότερα νήματα, οι άλλοι επεξεργαστές έχουν λιγότερα νήματα διαθέσιμα για εκτέλεση. Λεπτομέρειες σχετικά με τον τρόπο με τον οποίο ο ελεγκτής ροής κατανέμει τα νήματα είναι διαθέσιμες εδώ.

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

Ομάδα διεργασιών

Αυτό είναι απλό τώρα που έχουμε δει τι είναι οι επεξεργαστές.

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

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

Συνδέσεις

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

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

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

Στο NiFi μπορείτε να ορίσετε όρια στον αριθμό των FlowFiles και στο μέγεθος του συνολικού περιεχομένου τους που περνά από τις συνδέσεις.

Τι συμβαίνει όταν στέλνετε περισσότερα δεδομένα από όσα μπορεί να χειριστεί η σύνδεση;

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

Ας υποθέσουμε ότι έχετε όριο 10.000 FlowFiles μεταξύ δύο επεξεργαστών. Σε κάποιο σημείο, η σύνδεση έχει 7.000 στοιχεία σε αυτό. Είναι εντάξει, δεδομένου ότι το όριο είναι 10 000. Το P1 μπορεί ακόμα να στείλει δεδομένα μέσω της σύνδεσης στο P2 .

Τώρα ας πούμε ότι ο επεξεργαστής στέλνει 4.000 νέα FlowFiles στη σύνδεση.

7 0000 + 4 000 = 11 000 → Πηγαίνουμε πάνω από το όριο σύνδεσης των 10.000 FlowFiles.

Τα όρια είναι μαλακά όρια, που σημαίνει ότι μπορούν να ξεπεραστούν. Ωστόσο, από τη στιγμή που θα είναι, ο προηγούμενος επεξεργαστής, το P1 δεν θα προγραμματιστεί έως ότου ο σύνδεσμος επιστρέψει κάτω από την τιμή κατωφλίου - 10 000 FlowFiles.

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

Θέλετε να ρυθμίσετε τα όρια σύνδεσης που είναι κατάλληλα για τον όγκο και την ταχύτητα των δεδομένων που πρέπει να χειριστείτε. Λάβετε υπόψη το Four Vs .

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

Για ένα άλλο παράδειγμα σχετικά με την πίεση, αυτό το νήμα αλληλογραφίας μπορεί να βοηθήσει

Προτεραιότητα των αρχείων ροής

Οι σύνδεσμοι στο NiFi είναι εξαιρετικά διαμορφώσιμοι. Μπορείτε να επιλέξετε τον τρόπο με τον οποίο δίνετε προτεραιότητα στα FlowFiles στην ουρά για να αποφασίσετε ποιο θα επεξεργαστεί στη συνέχεια.

Μεταξύ των διαθέσιμων δυνατοτήτων, υπάρχει, για παράδειγμα, η παραγγελία First In First Out - FIFO. Ωστόσο, μπορείτε ακόμη και να χρησιμοποιήσετε ένα χαρακτηριστικό της επιλογής σας από το FlowFile για να δώσετε προτεραιότητα στα εισερχόμενα πακέτα.

Ελεγκτής ροής

Το Flow Controller είναι η κόλλα που συνδυάζει τα πάντα. Διαθέτει και διαχειρίζεται θέματα για επεξεργαστές. Είναι αυτό που εκτελεί τη ροή δεδομένων.

Επίσης, ο ελεγκτής ροής καθιστά δυνατή την προσθήκη υπηρεσιών ελεγκτή.

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

Για παράδειγμα, μπορείτε να χρησιμοποιήσετε μια υπηρεσία παροχής διαπιστευτηρίων AWS για να επιτρέψετε στις υπηρεσίες σας να αλληλεπιδρούν με κάδους S3 χωρίς να χρειάζεται να ανησυχείτε για τα διαπιστευτήρια σε επίπεδο επεξεργαστή.

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

Μπορείτε να δείτε αυτό το άρθρο για περισσότερο περιεχόμενο στις υπηρεσίες ελεγκτή.

Συμπέρασμα και έκκληση για δράση

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

Εάν διαβάζετε αυτό, συγχαρητήρια! Τώρα γνωρίζετε περισσότερα για το NiFi από το 99,99% του παγκόσμιου πληθυσμού.

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

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

Πόροι;

Η μεγαλύτερη εικόνα

Επειδή ο σχεδιασμός του αγωγού δεδομένων σε ένα σύνθετο οικοσύστημα απαιτεί επάρκεια σε πολλούς τομείς, προτείνω ανεπιφύλακτα το βιβλίο Σχεδίαση εντάσεων δεδομένωναπό τον Martin Kleppmann. Καλύπτει τα βασικά.

  • Ένα cheat sheet με όλες τις αναφορές που αναφέρονται στο βιβλίο του Martin είναι διαθέσιμο στο ρεκόρ του Github.

Αυτό το cheat sheet είναι ένα εξαιρετικό μέρος για να ξεκινήσετε αν γνωρίζετε ήδη τι είδους θέμα θέλετε να μελετήσετε σε βάθος και θέλετε να βρείτε ποιοτικά υλικά.

Εναλλακτικές λύσεις για το Apache Nifi

Υπάρχουν και άλλες λύσεις ροής δεδομένων.

Ανοιχτή πηγή:

  • Το Streamsets είναι παρόμοιο με το NiFi. μια καλή σύγκριση είναι διαθέσιμη σε αυτό το ιστολόγιο

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

  • Azure Data Factory, μια λύση της Microsoft
  • Η IBM διαθέτει το InfoSphere DataStage
  • Η Amazon προτείνει ένα εργαλείο που ονομάζεται Data Pipeline
  • Η Google προσφέρει τη ροή δεδομένων της
  • Το Alibaba cloud εισάγει μια υπηρεσία DataWorks με παρόμοιες δυνατότητες

Πόροι που σχετίζονται με το NiFi

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

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

    - Αυτό μοιράζεται τις βέλτιστες πρακτικές διαστάσεων κατά την ανάπτυξη ενός συμπλέγματος NiFi.

  • Το blog NiFi αποπνέει πολλές πληροφορίες σχετικά με τους τρόπους χρήσης του NiFi καθώς και συμβουλές για το πώς να κατασκευάσετε αγωγούς.
  • Εξηγήθηκε το μοτίβο ελέγχου αξίωσης
  • Η θεωρία πίσω από το Apache Nifi δεν είναι νέα, η Seda που αναφέρεται στο Nifi Doc είναι εξαιρετικά σχετική

    - Ματ Ουαλίας. Μπέρκλεϊ. SEDA: Αρχιτεκτονική για καλές συνθήκες, επεκτάσιμες υπηρεσίες Διαδικτύου [online]. Ανακτήθηκε: 21 Απριλίου 2019, από //www.mdw.la/papers/seda-sosp01.pdf