Da­ten­ana­ly­sen in Re­al­time

Da­ten in Echt­zeit zu nut­zen und zu ana­ly­sie­ren wird für Un­ter­neh­men im­mer wich­ti­ger. Doch wel­che Da­ta-Stream-Pro­ces­sing-Lö­sung eig­net sich für wel­chen Zweck? Wir ha­ben vier Apa­che-Lö­sun­gen un­ter die Lu­pe ge­nom­men.

Computerwoche - - Inhalt - Von Ste­phan Ewen, CTO und Mit­grün­der der Ber­li­ner da­ta Ar­tis­ans (ba)

Wel­cher Da­ta-Stream-Pro­ces­sing-An­satz eig­net sich für Echt­zeit­ana­ly­sen? Wir ha­ben vier Apa­cheLö­sun­gen un­ter die Lu­pe ge­nom­men.

Un­mit­tel­bar auf Er­eig­nis­se und neue Da­ten re­agie­ren zu kön­nen ist ei­ne Do­mä­ne von Da­ta Strea­m­ing, Stream Pro­ces­sing und Echt­zeit-Da­ten­ana­ly­sen. Ob­wohl aus Da­ten ge­won­ne­ne Er­kennt­nis­se ge­ne­rell nütz­lich sind, nimmt der Wert ei­ni­ger die­ser In­sights mit der Zeit rasch ab. Da­her ge­winnt Re­al­time-Da­ta-Strea­m­ing zu­neh­mend an Be­deu­tung. Grund­sätz­lich gilt: Da­ten­strö­me in Echt­zeit zu ver­ar­bei­ten be­deu­tet, gro­ße Men­gen von Er­eig­nis­sen – al­so Da­ten in Be­we­gung – ef­fi­zi­ent zu ana­ly­sie­ren und da­mit in­ner­halb von Mil­li­se­kun­den wert­vol­le Ein­bli­cke für das ei­ge­ne Ge­schäft zu ge­win­nen. In der klas­si­schen Da­ten­ver­ar­bei­tung setz­te man meist auf ei­ne Batch-ori­en­tier­te Da­ten­in­fra­struk­tur, um Da­ten zu ver­ar­bei­ten und Ana­ly­se­er­geb­nis­se zu lie­fern. Da­von lei­ten sich die Be­grif­fe Batcho­der Sta­pel­ver­ar­bei­tung ab. Letz­te­re er­for­dert ver­schie­de­ne Pro­gram­me zur Ana­ly­se der Ein­gangs- und Aus­gangs­da­ten. Die Da­ten wer­den da­bei zu­nächst ge­spei­chert und zu ei­nem spä­te­ren Zeit­punkt ver­ar­bei­tet.

Batch-Ver­ar­bei­tung dau­ert oft zu lan­ge

Da­für reicht heu­te oft die Zeit nicht mehr. Un­ter­neh­men brau­chen Echt­zeit­re­ak­ti­on und -ana­ly­se. Da­für ist Stream-Ver­ar­bei­tung – oder Da­ten­strom­ver­ar­bei­tung – un­er­läss­lich ge­wor­den. Die­se Tech­no­lo­gie ver­ar­bei­tet kon­ti­nu­ier­lich Da­ten in Be­we­gung und gibt Er­geb­nis­se na­he­zu in Echt­zeit aus. Die Stream-Ver­ar­bei­tung spei­chert Strea­m­in­gDa­ten feh­ler­to­le­rant, ist ska­lier­bar für gro­ße Rech­ner-Pools und zeich­net sich durch ho­he Zu­ver­läs­sig­keit aus. So­mit las­sen sich lau­fend Er­eig­nis­se (et­wa Fi­nanz­trans­ak­tio­nen, Nut­zer­ver­hal­ten auf Web­sites, Da­ten von IoT-Sen­so­ren) mit sehr ge­rin­ger Ver­zö­ge­rung zu­ver­läs­sig und un­mit­tel­bar ver­ar­bei­ten. Heu­te pro­fi­tie­ren mo­der­ne Un­ter­neh­men ent­schei­dend da­von, wenn sie in Echt­zeit auf Er­eig­nis­se re­agie­ren kön­nen – al­so be­reits wäh­rend sie statt­fin­den. Klas­si­sche Da­ten­ban­ken ba­sie­ren da­ge­gen auf dem An­satz, dass Un­ter­neh­men durch Ge­schäfts­ana­ly­sen (Bu­si­ness In­tel­li­gence) ge­spei­cher­ter Da­ten Ein­bli­cke ge­win­nen und erst dann Maß­nah­men er­grei­fen. Die Stream-Ver­ar­bei­tung un­ter­schei­det sich so­mit grund­le­gend von den bis­her ver­wen­de­ten Ana­ly­se­an­sät­zen, da sie Da­ten di­rekt zum Zeit­punkt der Ge­ne­rie­rung ver­ar­bei­tet.

Open-Sour­ce-Tech­ni­ken für Stream Pro­ces­sing

Vier Open-Sour­ce-ba­sier­te Tech­no­lo­gi­en do­mi­nie­ren der­zeit das Stream-Pro­ces­sin­gSeg­ment: Apa­che Spark, Apa­che Storm, Apa­che Flink und Kaf­ka Streams, ei­ne Un­ter­kom­po­nen­te von Apa­che Kaf­ka.

Apa­che Spark ist ei­ne Open-Sour­ce-En­gi­ne, die spe­zi­ell für die Ver­ar­bei­tung gro­ßer Da­ten­men­gen und Ana­ly­sen so­wie ei­ne be­schleu­nig­te Ana­ly­se auf Ha­doop ent­wi­ckelt wur­de. Spark bie­tet die Mög­lich­keit, auf Da­ten aus ei­ner Viel­zahl von Qu­el­len zu­zu­grei­fen, ne­ben dem Ha­doop Dis­tri­bu­ted Fi­le Sys­tem (HDFS) sind das auch OpenSt­ack Swift, Ama­zon S3 und Cas­san­dra. Spark ist als ein Batch-Pro­zes­sor kon­zi­piert, der die Stream-Ver­ar­bei­tung durch Auf­tei­lung des Streams in klei­ne Mi­kro-Bat­ches be­werk­stel­ligt.

Apa­che Storm ist ein Frame­work für ver­teil­te Stream-Pro­ces­sing-Be­rech­nung, wel­ches – eben­so wie Spark – als Pro­jekt der Apa­che Soft­ware Foun­da­ti­on vor­an­ge­trie­ben und wei­ter­ent­wi­ckelt wird. Storm war ei­nes der ers­ten Open-Sour­ce-Sys­te­me für kon­ti­nu­ier­li­che Da­ten­strom-Ver­ar­bei­tung und ar­bei­tet un­ter Ver­wen­dung vor­han­de­ner War­te­schlan­gen- und Da­ten­bank­tech­no­lo­gi­en, um kom­ple­xe Da­ten­strö­me zu ver­ar­bei­ten. Zu den wich­tigs­ten An­wen­dungs­fäl­len zäh­len Echt­zeit­ana­ly­tik, ma­schi­nel­les Ler­nen und Con­ti­nuous Com­pu­ting.

Apa­che Flink dient als Frame­work und ver­teil­te Ver­ar­bei­tungs­ma­schi­ne für zu­stands­be­haf­te­te Be­rech­nun­gen über un­be­grenz­te und be­grenz­te Da­ten­strö­me. Flink wur­de ent­wi­ckelt, um in al­len gän­gi­gen Clus­ter-Um­ge­bun­gen zu lau­fen, Be­rech­nun­gen mit In-Me­mo­ryGe­schwin­dig­keit und in je­der Grö­ßen­ord­nung zu be­trei­ben. In den letz­ten Jah­ren hat sich Apa­che Flink als ei­ne der wett­be­werbs­fä­higs­ten Stream-Pro­ces­sing-En­gi­nes im OpenSour­ce-Um­feld eta­bliert.

Kaf­ka Streams ist ei­ne Cli­ent-Bi­b­lio­thek für die Er­stel­lung von An­wen­dun­gen und Mi­kro­ser­vices, bei der die Ein- und Aus­gangs­da­ten in Kaf­ka-Clus­tern ge­spei­chert wer­den. Es kom­bi­niert die Ein­fach­heit des Schrei­bens und Be­reit­stel­lens von Stan­dard-Ja­va- und Sca­la-An­wen­dun­gen auf Cli­ent-Sei­te mit den Vor­tei­len der Ser­ver-sei­ti­gen Clus­ter-Tech­no­lo­gie von Kaf­ka. Die schlan­ke Kaf­ka-Streams-Bi­b­lio­thek un­ter­stützt die Nach­rich­ten­ver­ar­bei­tung in Mi­cro­ser­vices und die Echt­zeit-Er­eig­nis­ver­ar­bei­tung.

Vier Tools im Ver­gleich

Apa­che Flink ver­zeich­net un­ter den vier gän­gi­gen Stream-Pro­ces­sing-Tech­no­lo­gi­en der­zeit die höchs­te Re­so­nanz. Das Stream-Pro­ces­sin­gWerk­zeug mach­te zu­letzt von sich re­den, da es als Ba­sis da­zu dient, die zu­stands­ori­en­tier­te Stream-Ver­ar­bei­tung und de­ren Er­wei­te­rung mit schnel­len, se­ria­li­sier­ba­ren ACID-Trans­ak­tio­nen (Ato­mi­ci­ty, Con­sis­ten­cy, Iso­la­ti­on, Dura­bi­li­ty) di­rekt auf Strea­m­ing-Da­ten zu un­ter­stüt­zen. Flink ist Stream-na­ti­ve und ro­bust, was den Zu­griff auf Kon­struk­te be­züg­lich Zu­stand und Zeit er­mög­licht, feh­ler­to­le­rant und per­for­mant. Auf je­de der an­de­ren hier ge­nann­ten Tech­no­lo­gi­en tref­fen ei­ni­ge die­ser At­tri­bu­te zu, aber Flink lie­fert das kom­plet­te Pa­ket.

Apa­che Spark er­scheint auf den ers­ten Blick oder auch in der Proof-of-Con­cept-Pha­se für die meis­ten Stream-Pro­ces­sing-Zwe­cke als aus­rei­chend. Es er­for­dert aber in der Pra­xis oft ei­ne auf­wen­di­ge Ab­stim­mung von Wor­kload-, Clus­ter- und Spark-spe­zi­fi­schen Kon­fi­gu­ra­tio­nen wie Mi­cro-Batch-In­ter­vall und Mi­croBatch-Grö­ße. Wäh­rend bei Spark ei­ne schnel­le Batch-Ver­ar­bei­tung im Fo­kus stand, ist Flink von Grund auf für die Ver­ar­bei­tung von kon­ti­nu­ier­li­chen Da­ten­strö­men, al­so Stream Pro­ces­sing, kon­zi­piert. Apa­che Storm un­ter­schei­det zwi­schen Storm Co­re und Storm Tri­dent. Wäh­rend Storm Tri­dent eher mi­kro­ba­siert ist, agiert Storm Co­re eher er­eig­nis­na­tiv wie Apa­che Flink. Flink ist aber im Kern er­eig­nis­ge­steu­ert und un­ter­schei­det nicht zwi­schen Strea­m­ing und Batch. Im Durch­satz ist Flink zu­dem deut­lich per­for­man­ter als Storm.

Kaf­ka Streams wie­der­um wur­de ent­wi­ckelt, um Da­ten­strö­me aus Kaf­ka zu le­sen, zu ver­ar­bei­ten und wie­der in Kaf­ka zu schrei­ben. Kaf­ka Streams wur­de als Bi­b­lio­thek ent­wi­ckelt, was im En­d­er­geb­nis nicht so leis­tungs­fä­hig, ro­bust und per­for­mant ist wie bei Apa­che Flink.

Fa­zit

Apa­che Flink setzt sich im Da­ta-Stream­Um­feld zu­neh­mend durch und weist die am schnells­ten wach­sen­de Ak­zep­tanz­ra­te un­ter den An­wen­dern auf. Gro­ße Tech­no­lo­gie­un­ter­neh­men, die auf­grund ih­res Ge­schäfts­mo­dells in Echt­zeit ar­bei­ten müs­sen wie Ali­ba­ba, Uber und Net­flix, set­zen be­reits auf Apa­che Flink. An­de­re Un­ter­neh­men ver­wen­den Apa­che Flink, um ge­schäfts­kri­ti­sche An­wen­dun­gen wie Echt­zeit­ana­ly­sen, ma­schi­nel­les Ler­nen, Such- und In­halts-Ran­king und Echt­zeit-Be­trugs­er­ken­nung zu be­trei­ben. Zu den wei­te­ren An­wen­dungs­fäl­len, spe­zi­ell für den Fi­nanz­dienst­leis­tungs­sek­tor, zäh­len Stamm­da­tenMa­nage­ment, Ka­pi­tal­ri­si­ko-Management so­wie Echt­zei­t­emp­feh­lun­gen im E-Com­mer­ce.

Newspapers in German

Newspapers from Germany

© PressReader. All rights reserved.