Ημερομηνία τελευταίας ανανέωσης:
Γιατί να επιλέξετε καθόλου
Κάθε σύστημα δεδομένων ισοσκελίζει την καθυστέρηση, το κόστος, την πολυπλοκότητα υποστήριξης και την αξιοπιστία.
Παρτίδα - περιοδικά «κομμάτια» δεδομένων με υψηλό εύρος ζώνης και χαμηλό κόστος ανά εγγραφή.
Ροή - συνεχής επεξεργασία γεγονότων με ελάχιστη καθυστέρηση και κατάσταση σε τομείς μνήμης/τοπικούς τομείς.
Εν συντομία σχετικά με τα μοντέλα
Παρτίδα
Πηγή: αρχεία/πίνακες/στιγμιότυπα.
Ενεργοποίηση: πρόγραμμα (ώρα/ημέρα) ή κατάσταση (νέο αρχείο parquet).
Πλεονεκτήματα: Απλότητα, προσδιορισμός, πλήρες πλαίσιο δεδομένων, φθηνοί μεγάλοι επανυπολογισμοί.
Αδύναμη: χωρίς «online», υψηλή καθυστέρηση, «παράθυρα» χωρίς σήματα σε πραγματικό χρόνο.
Ροή
Πηγή: μεσίτες (Kafka/NATS/Pulsar), CDC, ουρές αναμονής
Ενεργοποίηση: γεγονός.
Ισχυρή: χαμηλή καθυστέρηση, αντιδραστικότητα, φυσική ολοκλήρωση με το προϊόν.
Αδύνατη: χρονική πολυπλοκότητα (γεγονός έναντι επεξεργασίας), τάξη/αντίγραφα, κατάσταση, λειτουργία.
Διάλυμα: πίνακας επιλογής
Κανόνας 80/20: εάν η SLA επιτρέπει καθυστερήσεις λεπτού/ώρας και δεν υπάρχουν χαρακτηριστικά αντίδρασης - πάρτε παρτίδα. Εάν η αντίδραση είναι κρίσιμη «εδώ και τώρα» ή χρειάζεστε ζωντανές επιδείξεις - ροή (συχνά + επιπλέον παρτίδα νύχτας για συμφιλίωση).
Τυπικά σενάρια
Παρτίδα - όταν είναι καλύτερο:- Ημερήσια αναφορά, τιμολόγηση σε περιόδους, εκπαίδευση ML, μεγάλες ενώσεις, αφαίρεση «με ολόκληρο το σύνολο».
- Μοντέλο μενταγιόν (χάλκινο/αργυρό/χρυσό) με βαθιές επικυρώσεις.
- Μαζικά backtests και επανασυναρμολόγηση παραθύρων καταστημάτων.
- Καταπολέμηση της απάτης/παρακολούθηση, προειδοποιήσεις SRE, ισορροπία/αποστολές σε πραγματικό χρόνο, «τώρα» συστάσεις.
- Ενοποίηση γεγονότων (EDC), Ενημέρωση Υλικών Προβολών (CQRS).
- Microservices: ειδοποιήσεις, webhooks, αντιδράσεις σε επιχειρηματικά γεγονότα.
- Η ροή παράγει λειτουργικές οθόνες και σήματα. η νυχτερινή παρτίδα κάνει τη συμφιλίωση, το θησαυροφυλάκιο και φθηνές ιστορικές αφηγήσεις.
Αρχιτεκτονική
Lambda (Ρεύμα + παρτίδα)
Ροή για αύξηση και επιγραμμική· Παρτίδα για πληρότητα και διορθώσεις.
Υπέρ: Ευελιξία και ΑΥΕ. Κατά: διπλή λογική, επικάλυψη κώδικα.
Kappa (все - Stream + Replay)
Ένα ενιαίο ημερολόγιο ως πηγή αλήθειας. επανυπολογισμοί παρτίδων = επανάληψη.
Pros: μία βάση κωδικών, μία σημασιολογία. Μειονεκτήματα: δυσκολότερη λειτουργία, απαιτήσεις αποθήκευσης καταγραφής.
Υβριδικό-Πραγματικό
Ροή «λειτουργικού συστήματος» + περιοδικές εργασίες κατά παρτίδες για βαριές ενώσεις/ML/διορθώσεις.
Στην πράξη, είναι η πιο κοινή επιλογή.
Χρόνος, σειρά, παράθυρα (για Stream)
Βασιστείτε στο χρόνο εκδήλωσης, όχι στο χρόνο επεξεργασίας.
Διαχείριση υδατογραφήματος και 'επιτρεπόμενη _ καθυστέρηση', υποστήριξη αναδρομικών/αναβαθμίσεων για μεταγενέστερα γεγονότα.
Κατάτμηση ανά μονάδα κλειδιά, σχεδιασμός «καυτών κλειδιών».
Αξιοπιστία και σημασιολογία των αποτελεσμάτων
Παρτίδα
Συναλλαγές βάσεων δεδομένων ή ατομική αντικατάσταση παρτίδων/πινάκων.
Idempotency - μέσω deterministic computing και rewrite/insert-rewrite.
Ροή
Τουλάχιστον μία φορά + idempotent νεροχύτες (upsert/συγχώνευση, εκδόσεις των συγκεντρωτικών μεγεθών).
Συναλλαγή «θέση ανάγνωσης-διαγραφής» για το EOS ανά αποτέλεσμα.
Πίνακες αφαίρεσης από 'event _ id '/' operation _ id'.
Θησαυροφυλάκια και μορφότυποι
Παρτίδα
Λίμνη δεδομένων (Parquet/Delta/Iceberg), OLAP (ClickHouse/BigQuery), αποθήκευση αντικειμένων.
Πίνακες ACID για ατομική αντικατάσταση, ταξίδι στο χρόνο.
Ροή
Αρχεία/θέματα σε μεσίτες, κρατικά καταστήματα (RocksDB/ενσωματωμένα), KV/Redis, OLTP για προβολές.
Μητρώο Schema (Avro/JSON/Proto), τρόποι συμβατότητας.
Κόστος και SLO
Παρτίδα: πληρώνετε σε παρτίδες - είναι κερδοφόρα με μεγάλους όγκους, αλλά η καθυστέρηση ≥ το πρόγραμμα.
Ροή: σταθεροί πόροι χρόνου λειτουργίας, κόστος αιχμής σε υψηλή QPS· αλλά SLA σε δευτερόλεπτα.
Καταμέτρηση p95/p99 καθυστέρηση, καθυστέρηση διέλευσης, κόστος σε cu/event και υποστήριξη TCO.
Δοκιμές
Κοινά: χρυσά σύνολα, ιδιόκτητες αναλλοίωτες, παραγωγή βρώμικων εισροών.
Παρτίδα: προσδιορισμός, idempotent επανεκκίνηση, πριν/μετά τη σύγκριση των θησαυροφυλακίων.
Ροή: εκτός τάξης/αντίγραφα, έγχυση βλάβης μεταξύ επίδρασης και σύνδεσης όφσετ, δοκιμές επανάληψης.
Παρατηρησιμότητα
Παρτίδα: διάρκεια εργασίας, μερίδιο αποτυχιών/υποχωρήσεων, φρεσκάδα παραθύρων καταστημάτων, κόστος σάρωσης.
Ροή: υστέρηση χρόνου/μηνύματος, υδατογράφημα, καθυστερημένη ταχύτητα, συχνότητα μεγέθους κατάστασης/σημείου ελέγχου, ρυθμός DLQ.
Παντού: 'trace _ id', 'event _ id', εκδόσεις συστημάτων/αγωγών.
Ασφάλεια και δεδομένα
PII/PCI - ελαχιστοποίηση, κρυπτογράφηση κατά την ανάπαυση/κατά την πτήση, σήμανση πεδίων σε κυκλώματα ('x-pii').
Για το Stream - προστασία των σημείων ελέγχου/κράτους, ACL για θέματα.
GDPR/δικαίωμα να λησμονηθεί: σε Stream - crypto διαγραφή/επεξεργασία σε προβολές; σε παρτίδες - επανυπολογισμός παρτίδων.
Στρατηγικές μετάβασης
Batch → Stream: ξεκινήστε εκδίδοντας εκδηλώσεις (Outbox/CDC), ανεβάστε μια μικρή βιτρίνα σε πραγματικό χρόνο χωρίς να αγγίξετε το υπάρχον θησαυροφυλάκιο.
Ροή → Παρτίδα - Προσθήκη ημερήσιων θησαυροφυλακίων για αναφορά/αντιπαραβολή και μείωση φορτίου σε καταβόθρες ροής.
Αντι-μοτίβα
«Όλα στο Stream» για χάρη της μόδας: ακριβά και δύσκολα χωρίς πραγματική ανάγκη.
«Μια γιγαντιαία νυχτερινή παρτίδα» με απαιτήσεις <5 λεπτά.
Χρήση χρόνου επεξεργασίας για τις επιχειρηματικές μετρήσεις.
Ακατέργαστα CDC ως δημόσια γεγονότα: σφιχτή συνδεσιμότητα, πόνος στην εξέλιξη.
Καμία ιδιαιτερότητα στους νεροχύτες → διπλές επιδράσεις στην επανεκκίνηση.
Κατάλογος επιλογών
- Φρεσκάδα SLO: Πόσα δευτερόλεπτα/λεπτά/ώρες είναι αποδεκτά
- Σταθερότητα εισόδου: Υπάρχουν εκτός παραγγελιών/αντίγραφα
- Χρειάζομαι διαδικτυακές αντιδράσεις/καταστήματα
- Κόστος: χρόνος λειτουργίας 24/7 έναντι «προγραμματισμένο παράθυρο».
- Η μέθοδος διόρθωσης είναι η ανάκληση/ανατροπή ή ο επανυπολογισμός της νύχτας.
- Ομαδική και επιχειρησιακή ωριμότητα (παρατηρησιμότητα, εφημερία).
- Απαιτήσεις για «ακριβώς ένα αποτέλεσμα».
- Πολιτικές/κρατήσεις PII/δικαίωμα να λησμονούνται.
Πρότυπα αναφοράς
Λειτουργική έκθεση (υβριδική):- Ροή: EDC → προβολές (KV/Redis, OLTP) για UI, idempotent upsert.
- Παρτίδα: νυχτερινό θησαυροφυλάκιο σε OLAP, συμφιλίωση, χαρακτηριστικά ML.
- Ροή: παράθυρα συνεδρίας, κανόνες CEP, καταχωρίσεις <1-5 s.
- Παρτίδα: μοντέλα επανεκπαίδευσης, επικύρωση εκτός σύνδεσης.
- Ροή: ενεργοποιήσεις, τμήματα σε πραγματικό χρόνο.
- Παρτίδα: βαθμολόγηση, μοντέλα LTV, αναφορές.
ΣΥΧΝΈΣ ΕΡΩΤΉΣΕΙΣ
Είναι δυνατόν να έχουμε «σχεδόν σε πραγματικό χρόνο» στην παρτίδα
Ναι: μικροδίκτυα/τρυπήματα ενεργοποίησης (κάθε 1-5 λεπτά) - ένας συμβιβασμός, αλλά χωρίς την πολυπλοκότητα των παραθύρων/καθυστερημένων γεγονότων.
Χρειάζεται παντού η προσέγγιση Lambda
Όχι, δεν είναι. Αν το νήμα κλείσει όλες τις εργασίες και ξέρετε πώς να ξαναπαίξετε - το Kappa είναι πιο εύκολο να μακρύνει. Διαφορετικά - ένα υβρίδιο.
Πώς να μετρήσετε το κόστος
Άθροισμα υπολογισμού + αποθήκευσης + ops. Για το Stream, προσθέστε την τιμή «24/7» και τις νύχτες έκτακτης ανάγκης. για την παρτίδα - η τιμή των «ληξιπρόθεσμων» δεδομένων.
Αποτέλεσμα
Επιλέξτε παρτίδα όταν είναι σημαντικά τα θησαυροφυλάκια χαμηλού κόστους, απλότητας και περιόδου. Ροή - όταν η αντιδραστικότητα και η φρεσκάδα είναι κρίσιμες. Στην πράξη, το υβρίδιο κερδίζει: η ροή - για επιγραμμικά και σήματα, η παρτίδα - για πληρότητα και φθηνούς ιστορικούς επανυπολογισμούς. Το βασικό είναι να ορίσουμε το SLO, να εξασφαλίσουμε την ευελιξία/παρατηρησιμότητα και να σχεδιάσουμε εκ των προτέρων τη διαδρομή διόρθωσης.