Strømbehandling håndterer data kontinuerlig etter hvert som de ankommer. I stedet for å samle inn data i grupper og behandle dem med intervaller, analyserer strømprosessorer hver hendelse etter hvert som den flyter gjennom systemet. En kredittkorttransaksjon evalueres for svindel i løpet av millisekunder. En sensoravlesning utløser et varsel når den krysser en terskel. En klikkstrøm oppdaterer en anbefalingsmodell i sanntid. Behandlingen skjer i bevegelse, ikke i ro.
Arkitekturen er forskjellig fra batch. Data ankommer gjennom meldingskøer som Kafka eller Kinesis. Strømmeprosessorer som Flink, Spark Streaming eller Kafka Streams forbruker hendelsene, bruker transformasjoner og sender ut resultater. Systemet må håndtere sent ankomne hendelser, data i feil rekkefølge og nøyaktig én gang-semantikk. Dette er vanskelige problemer. Sene hendelser krever vannmerker for å avgjøre når et tidsvindu er fullført. Hendelser i feil rekkefølge krever bufring og omorganisering. Nøyaktig én gang-prosessering krever koordinering mellom kilden, prosessoren og sinken. Å få disse riktig er komplekst. Når de er feil, er resultatene inkonsistente eller dupliserte. Strømmeprosessering er kraftig for brukstilfeller som trenger umiddelbar innsikt. Det er overkill for nattlige rapporter. Valget mellom batch og strøm avhenger av latenskravet. Hvis minutter eller timer er akseptable, er batch enklere og billigere. Hvis sekunder betyr noe, er strøm det eneste alternativet.
Strømbehandlingsegenskaper
- Kontinuerlig – behandler hendelser etter hvert som de ankommer
- Lav latens – millisekunder til sekunder
- Stateful – opprettholder tilstand på tvers av hendelser
- Kompleks – håndterer forsinkede og feilaktige data
- Skalerbar – fordeler seg over mange noder
Strømmebehandling er batchbehandling snudd på vrangen. I stedet for å vente på at data skal samle seg, reagerer den på hver hendelse slik den dukker opp.
Comments
No comments yet. Be the first to share a thought.
Leave a comment