Περατζάδα στο Azure Event Hub

24
Περατζάδα στο Event Hub Παναγιώτης Καναβός, dotNETZone moderator

Transcript of Περατζάδα στο Azure Event Hub

Περατζάδα στο Event Hub

Παναγιώτης Καναβός, dotNETZone moderator

Η περίπτωση 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

Event Hub

Partition

Partition

Partition

Partition

Events

Consumer Group

Consumer Group

Cold Storage

Event ProcessorEvent

ProcessorEvent ProcessorEvent

Processor

Χαρακτηριστικά• Πρωτόκολλα• AMQP• HTTP• MQTT• Custom Gateway

Stream Analytics • SQL-based stream data processing• Windowing functions• Low Latency• Πολλά output targets

Τι θα παίξουμε σήμερα?

PowerBI

Client Library

Event HubStream Analytics

Blob

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)

Sliding Window• Όλοι οι δυνατοί συνδυασμοί με επικάλυψη• SLIDINGWINDOW (timeunit ,windowsize )

Ζόρικα 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• Διαχειρισιμότητα

• Μεγάλη ομάδα, χρηματοδότηση, χρόνος