Περατζάδα στο Azure Event Hub
-
Upload
panagiotis-kanavos -
Category
Data & Analytics
-
view
78 -
download
2
Transcript of Περατζάδα στο Azure Event Hub
Η περίπτωση Netflix• The Netflix microservices
architecture is a metrics generator that occasionally streams movies• 750 Bn metrics/μέρα• 300 Bn app events/μέρα• Πως πάμε σήμερα παιδιά?
Πως το κάνουν?• Event ingestion με Kafka κ.α.• Επεξεργασία με RxJava• Ναι, τα Reactive Extensions είναι!
• Προώθηση σε επόμενα βήματα
The Old New Thing• Event Stream Processing/Complex Event Processing• Ερευνητικό πεδίο το 1990• The next big thing το 2005+• Apama 2005• Esper 2006• Event Processing Patterns, Gartner, 2009• SQL Server StreamInsight 2010
Unified Log Processing• Τι είναι
• Συλλογή των log όλων των συστημάτων σε ένα σημείο• Αποθήκευση σε «αρχική» μορφή• Επεξεργασία με Hadoop/Spark/ElasticSearch για εξαγωγή metrics, συμπερασμάτων• Εξαγωγή μετρήσεων σε Data Warehouse, παραγωγή reports κλπ
• Μικρή παρεκτροπή• Ευτυχώς είχαμε ESP
Τι άλλαξε ?• Αντί για περίπλοκα γεγονότα, πολλά γεγονότα• Αντί για BPM, IoT και Ops• Syslog από το RPi ή το ESP8266? • UDP message για κάθε καρέ του Continuum ?
Κι εμένα τι με νοιάζει?• Θέλω να τρέξω υπηρεσία IoT, όχι να κάνω διδακτορικό• Θέλω να ξέρω ότι οι καφετιέρες μου θα χαλάσουν πριν χαλάσουν!• Αστείο? Ford Sync κανείς?
• Θέλω να ξέρω τι γίνεται στο e-Shop μου, όχι να μασάω logs!• Έχεις δει πόσο πάει το Splunk?• Θέλω να ξέρω ότι κάποιοι πελάτες της B2B εφαρμογής μου έχουν
πρόβλημα ΠΡΙΝ ακυρώσουν το συμβόλαιο.• Με ταράξανε οι screen scrapers!
Event Hub
Event Hub
Partition
Partition
Partition
Partition
Events
Consumer Group
Consumer Group
Cold Storage
Event ProcessorEvent
ProcessorEvent ProcessorEvent
Processor
Stream Analytics • SQL-based stream data processing• Windowing functions• Low Latency• Πολλά output targets
Outputs• SQL Database• Blob storage• Table Storage• Service Bus Queue• Service Bus Topic• Document DB
• Data Lake• Power BI• Event Hub
Windows• Χρονική ομαδοποίηση event• Απαραίτητο για την • Επικάλυψη?• Tumbling• Hopping• Sliding• Παρκούρ ?
Tumbling Window• Καμία επικάλυψη• TUMBLINGWINDOW(timeunit ,windowsize,[offsetsize])• TUMBLINGWINDOW(minute ,5)
Hopping Window• Επικαλυπτόμενα• HOPPINGWINDOW(timeunit ,windowsize, hopsize,[offsetsize])• HOPPININGWINDOW(minute ,10,5)
Ζόρικα Queries – Fraud DetectionSELECT System.Timestamp as Time, CS1.CallingIMSI, CS1.CallingNum as CallingNum1, CS2.CallingNum as CallingNum2, CS1.SwitchNum as Switch1, CS2.SwitchNum as Switch2 FROM CallStream CS1 TIMESTAMP BY CallRecTime JOIN CallStream CS2 TIMESTAMP BY CallRecTime ON CS1.CallingIMSI = CS2.CallingIMSI AND DATEDIFF(ss, CS1, CS2) BETWEEN 1 AND 5 WHERE CS1.SwitchNum != CS2.SwitchNum
Ζόρικα Queries – Διάρκεια σφάλματος
SELECT LAG(time) OVER (LIMIT DURATION(hour, 24) WHEN weight < 20000 ) [StartFault], [time] [EndFault]FROM inputWHERE [weight] < 20000 AND LAG(weight) OVER (LIMIT DURATION(hour, 24)) > 20000
Σφάλμα στην πλάστιγγα βγάζει το βάρος των αυτοκινήτων > 20 τόνους.
Και η Amazon ?• Kinesis Firehose• Φόρτωμα Streaming Data
• Kinesis Streams• Custom Processing. Συνδιασμός
Event Processor και Stream Jobs (output)
• Kinesis Analytics• Θα είναι αντίστοιχο του Stream
Analytics
• Περισσότερο IaaS παρά PaaS
Κοινά Patterns• Think big, start small• Η αρχιτεκτονική θα πρέπει να καλύπτει μεγάλους όγκους αλλά• Ξεκινήστε με μικρά δείγματα• Ευκολότερο debugging όταν είναι λίγα τα events!
• Don’t interrupt the fast Path!• Μην μπλοκάρετε το fast path με επεξεργασίες, ETL. Αυτό γίνεται και μετά.• Data Lake!
• Βασιστείτε στο IoT Reference Architecture• Τα υποσυστήματα «κουμπώνουν» σε αυτή την αρχιτεκτονική
Azure IoT Reference Architecture
Solution PortalProvisioning API
Identity & Registry Stores
Stream Event Processor
Analytics/ Machine Learning
Data Visualization & Presentation
Device State Store
GatewayStorage
IP capable devices
Existing IoT devices
Low power devices
Presentation Device and Event ProcessingData Transport
Devices and Data Sources
Cloud Gate-way
AgentLibs
AgentLibs
Control System Worker Role
AgentLibs
Αγοράζω ή φτιάχνω ?
Αγοράζω• Δεν έχω Bn/μέρα• Τα αποτελέσματα πιο σημαντικά από το
κόστος• Τώρα ξεκινάω• Δεν έχω διδακτορικό στο CEP• Δεν θέλω να διαχειριστώ το infrastructure
Φτιάχνω• Έχω πολύ μεγάλους όγκους (Bn/day)• Ξέρω τι θέλω
• Είδη πληροφορίας, ερωτήσεις, ειδοποιήσεις
• Ξέρω τι κάνω• Έχω PhD• Διάβασα ένα white paper
• Καλή Γνώση των διαθέσιμων συστημάτων• Storm, Spark, Kafka, Docker, Mesos, Kubernetes• Διαχειρισιμότητα
• Μεγάλη ομάδα, χρηματοδότηση, χρόνος