Strömbehandling hanterar data kontinuerligt allt eftersom de anländer. Istället för att samla in data i batcher och bearbeta dem med jämna mellanrum analyserar strömprocessorer varje händelse allt eftersom den flödar genom systemet. En kreditkortstransaktion utvärderas för bedrägerier på millisekunder. En sensoravläsning utlöser en varning när den passerar ett tröskelvärde. En klickström uppdaterar en rekommendationsmodell i realtid. Bearbetningen sker i rörelse, inte i vila.
Arkitekturen skiljer sig från batch. Data anländer via meddelandeköer som Kafka eller Kinesis. Stream-processorer som Flink, Spark Streaming eller Kafka Streams konsumerar händelserna, tillämpar transformationer och genererar resultat. Systemet måste hantera sent ankommande händelser, data i fel ordning och exakt-engångs-semantik. Det är svåra problem. Sena händelser kräver vattenstämplar för att avgöra när ett tidsfönster är slut. Händelser i fel ordning kräver buffring och omordning. Exakt-engångs-bearbetning kräver samordning mellan källan, processorn och sinken. Att få dessa rätt är komplext. När de är fel är resultaten inkonsekventa eller duplicerade. Strömbearbetning är kraftfull för användningsfall som behöver omedelbar insikt. Det är överdrivet för nattliga rapporter. Valet mellan batch och ström beror på latenskravet. Om minuter eller timmar är acceptabla är batch enklare och billigare. Om sekunder spelar roll är ström det enda alternativet.
Egenskaper för strömbehandling
- Kontinuerlig — bearbetar händelser allt eftersom de anländer
- Låg latens — millisekunder till sekunder
- Tillståndskänslig — bibehåller tillstånd över händelser
- Komplex — hanterar sena och felaktiga data
- Skalbar — distribuerar över många noder
Strömbehandling är batchbehandling som är upp- och nervänd. Istället för att vänta på att data ska ackumuleras agerar den på varje händelse så fort den visas.
Comments
No comments yet. Be the first to share a thought.
Leave a comment