Server Analyse Systemer

Dëst ass den zweeten Deel vun enger Serie vun Artikelen iwwer analytesch Systemer (Link zum Deel 1).

Server Analyse Systemer

Haut ass et keen Zweiwel datt virsiichteg Datenveraarbechtung an Interpretatioun vun de Resultater bal all Typ vu Geschäfter hëllefe kann. An dëser Hisiicht ginn analytesch Systemer ëmmer méi mat Parameteren gelueden, an d'Zuel vun Ausléiser a Benotzerevenementer an Uwendungen wiisst.
Dofir ginn d'Firmen hiren Analysten ëmmer méi rau Informatioun fir ze analyséieren an zu gesonden Entscheedungen ëmzewandelen. D'Wichtegkeet vun engem Analysesystem fir eng Firma däerf net ënnerschat ginn, an de System selwer muss zouverlässeg a stabil sinn.

Client Analysten

Clientsanalyse ass e Service deen eng Firma mat senger Websäit oder Applikatioun duerch den offiziellen SDK verbënnt, an seng eege Codebase integréiert an Event Trigger auswielt. Et gëtt en offensichtlechen Nodeel vun dëser Approche: all déi gesammelt Donnéeën kënnen net genee veraarbecht ginn wéi Dir wëllt, wéinst de Beschränkungen vun engem Service deen Dir gewielt hutt. Zum Beispill, op engem System wäert et net einfach sinn MapReduce Aufgaben ze lafen, op engem aneren kënnt Dir Äre Modell net lafen. En aneren Nodeel wäert déi regulär (impressionante) Rechnung fir Servicer sinn.
Et gi vill Clientanalyseléisungen um Maart, awer fréier oder spéider sinn Analysten mat der Tatsaach konfrontéiert datt et keen Universelle Service fir all Aufgab gëeegent ass (während d'Präisser fir all dës Servicer ëmmer méi héich sinn). An esou enger Situatioun entscheeden d'Firmen dacks hiren eegene Analysesystem mat all déi néideg personaliséiert Astellungen a Fäegkeeten ze kreéieren.

Server Analysten

Server-Säit Analyse ass e Service deen an enger Firma op sengen eegene Serveren an (normalerweis) mat hiren eegenen Efforte kann ofgesat ginn. An dësem Modell ginn all Benotzerevenementer op internen Server gespäichert, wat d'Entwéckler erlaabt verschidde Späicherdatenbanken ze probéieren an déi bequemste Architektur ze wielen. An och wann Dir nach Drëtt Partei Client Analyse fir e puer Aufgaben benotze wëllt, wäert et nach ëmmer méiglech sinn.
Server-Säit Analyse kann op zwou Weeër ofgebaut ginn. Als éischt: wielt e puer Open Source Utilities, deploy se op Äre Maschinnen an entwéckelt Geschäftslogik.

Plus
Минусы

Dir kënnt alles personaliséieren wat Dir wëllt
Dëst ass dacks ganz schwéier a verlaangt separat Entwéckler

Zweetens: huelt SaaS Servicer (Amazon, Google, Azure) anstatt et selwer z'installéieren. Mir schwätze méi iwwer SaaS am drëtten Deel.

Plus
Минусы

Et ka bei mëttlere Volumen méi bëlleg sinn, awer mat groussem Wuesstum gëtt et nach ëmmer ze deier
Et wäert net méiglech sinn all Parameteren ze kontrolléieren

D'Verwaltung ass ganz op d'Schëllere vum Déngschtleeschter transferéiert
Et ass net ëmmer bekannt wat am Service ass (et ass vläicht net néideg)

Wéi een Serveranalyse sammelt

Wa mir wëllen ewech vun der Clientanalyse benotzen an eis eege bauen, musse mir als éischt d'Architektur vum neie System nodenken. Drënner wäert ech Iech Schrëtt fir Schrëtt soen wat Dir braucht ze berücksichtegen, firwat all Schrëtt gebraucht gëtt a wéi eng Tools Dir benotze kënnt.

1. Erhalen Donnéeën

Just wéi am Fall vun der Clientanalytik, fir d'éischt wielen Firmenanalyten d'Zorte vun Eventer aus, déi se an der Zukunft studéiere wëllen a sammelen se an eng Lëscht. Typesch geschéien dës Evenementer an enger spezifescher Uerdnung, e "Evenementmuster" genannt.
Stellt Iech vir datt eng mobil Applikatioun (Websäit) regelméisseg Benotzer (Geräter) a vill Server huet. Fir sécher Eventer vun Apparater op Serveren ze transferéieren, ass eng Zwëschenschicht néideg. Ofhängeg vun der Architektur kënnen et e puer verschidden Eventschlaangen sinn.
Apache Kafka Ass Pub / Ënner Schlaang, déi als Schlaang benotzt gëtt fir Eventer ze sammelen.

Nëmmen Post op Quora am 2014 huet de Schëpfer vun Apache Kafka decidéiert d'Software nom Franz Kafka ze nennen well "et ass e System optimiséiert fir ze schreiwen" a well hien dem Kafka seng Wierker gär huet. - Wikipedia

An eisem Beispill ginn et vill Dateproduzenten an Dateverbraucher (Geräter a Server), a Kafka hëlleft se mateneen ze verbannen. D'Konsumenten ginn an de folgende Schrëtt méi detailléiert beschriwwe ginn, wou se d'Haaptthemen sinn. Elo wäerte mir nëmmen Daten Produzenten (Evenementer) betruecht.
Kafka encapsuléiert d'Konzepter vu Schlaang a Partition; et ass besser méi spezifesch iwwer dëst soss anzwuesch ze liesen (zum Beispill, an Dokumentatioun). Ouni an Detailer ze goen, loosst eis virstellen datt eng mobil Applikatioun fir zwee verschidden OSen gestart gëtt. Dann erstellt all Versioun säin eegene separaten Eventstroum. D'Produzente schécken d'Evenementer op Kafka, si ginn an enger passender Schlaang opgeholl.
Server Analyse Systemer
(Bild vun hei)

Zur selwechter Zäit erlaabt Kafka Iech a Stécker ze liesen an e Stream vun Eventer a Mini-Batches ze veraarbechten. Kafka ass e ganz praktescht Tool dat gutt mat wuessende Bedierfnesser skaléiert (zum Beispill duerch Geolocatioun vun Eventer).
Normalerweis ass ee Schnëtt genuch, awer d'Saache ginn méi komplizéiert beim Skaléieren (wéi se ëmmer maachen). Wahrscheinlech wëll keen nëmmen ee physikalesche Schnëtt an der Produktioun benotzen, well d'Architektur muss Feelertolerant sinn. Zousätzlech zu Kafka gëtt et eng aner bekannte Léisung - RabbitMQ. Mir hunn et net an der Produktioun als Schlaang fir Eventanalyse benotzt (wann Dir esou Erfahrung hutt, sot eis doriwwer an de Kommentaren!). Wéi och ëmmer, mir hunn AWS Kinesis benotzt.

Ier mer op de nächste Schrëtt weidergoen, musse mir nach eng zousätzlech Schicht vum System ernimmen - raw Log Storage. Dëst ass keng erfuerderlech Schicht, awer et wäert nëtzlech sinn wann eppes falsch geet an d'Evenementschlaangen am Kafka zréckgesat ginn. Matière Logbicher späicheren erfuerdert keng komplex an deier Léisung; Dir kënnt se einfach iergendwou an der richteger Uerdnung schreiwen (och op enger Festplack).
Server Analyse Systemer

2. Veraarbechtung Event Baachen

Nodeems mir all d'Evenementer virbereet hunn an se an déi entspriechend Schlaangen gesat hunn, fuere mir op d'Veraarbechtungsschrëtt. Hei wäert ech Iech iwwer déi zwee allgemeng Veraarbechtungsoptiounen erzielen.
Déi éischt Optioun ass Spark Streaming am Apache System z'aktivéieren. All Apache Produkter liewen op HDFS, e séchere Dateiesystem mat Dateierepliken. Spark Streaming ass en einfach ze benotzen Tool dat Streaming Daten handhabt a gutt skaléiert. Wéi och ëmmer, et kann schwéier sinn ze erhalen.
Eng aner Optioun ass Ären eegene Event Handler ze bauen. Fir dëst ze maachen, musst Dir zum Beispill eng Python-Applikatioun schreiwen, se an Docker bauen an Iech op d'Kafka-Schlaang abonnéieren. Wann Ausléiser bei den Docker Handler ukommen, fänkt d'Veraarbechtung un. Mat dëser Method musst Dir Applikatiounen zu all Moment lafen.
Loosst eis unhuelen datt mir eng vun den uewe beschriwwenen Optiounen gewielt hunn a weidergoen op d'Veraarbechtung selwer. Prozessoren sollen ufänken mat der Validitéit vun den Donnéeën ze kontrolléieren, Dreck ze filteren an "gebrach" Eventer. Fir Validatioun benotze mir normalerweis Kerberos. Duerno kënnt Dir Datemapping maachen: Daten aus verschiddene Quelle ginn normaliséiert a standardiséiert fir an eng gemeinsam Tabell bäigefüügt ze ginn.
Server Analyse Systemer

3. Datebank

Den drëtte Schrëtt ass fir normaliséiert Eventer z'erhalen. Wann Dir mat engem fäerdege analytesche System schafft, musse mir dacks Zougang zu hinnen hunn, also ass et wichteg eng praktesch Datebank ze wielen.
Wann d'Daten gutt an e fixe Schema passen, kënnt Dir wielen Klickhaus oder eng aner kolonner Datebank. Op dës Manéier funktionnéieren d'Aggregatioune ganz séier. De Nodeel ass datt de Schema steif fixéiert ass an dofir ass et net méiglech arbiträr Objeten ouni Ännerung ze addéieren (zum Beispill wann en net-Standard Event geschitt). Awer Dir kënnt wierklech ganz séier zielen.
Fir onstrukturéiert Donnéeën, kënnt Dir NoSQL huelen, zum Beispill, Apache cassandra. Et leeft op HDFS, replizéiert gutt, Dir kënnt vill Instanzen erhéijen an ass Feelertolerant.
Dir kënnt och eppes méi einfach erhéijen, z.B. MongoDB. Et ass relativ lues a fir kleng Bänn. Awer de Plus ass datt et ganz einfach ass an dofir gëeegent fir unzefänken.
Server Analyse Systemer

4. Aggregatiounen

Nodeems mir all d'Evenementer virsiichteg gespäichert hunn, wëlle mir all wichteg Informatioun aus der Batch sammelen déi ukomm ass an d'Datebank aktualiséieren. Globale wëlle mir relevant Dashboards a Metriken kréien. Zum Beispill, sammelen e Benotzer Profil vun Evenementer an iergendwéi Mooss Verhalen. Eventer ginn aggregéiert, gesammelt an erëm gespäichert (an de Benotzertabellen). Zur selwechter Zäit kënnt Dir e System bauen, fir datt Dir och e Filter un den Aggregator-Koordinator verbënnt: Sammelt d'Benotzer nëmmen aus enger bestëmmter Zort Event.
Duerno, wann een am Team nëmmen héich-Niveau Analyse brauch, kënnen extern Analysesystemer verbonne sinn. Dir kënnt Mixpanel erëm huelen. mee well et zimmlech deier ass, ginn net all Benotzerevenementer dohinner geschéckt, awer nëmmen dat wat gebraucht gëtt. Fir dëst ze maachen, musse mir e Koordinator erstellen, deen e puer rau Eventer oder eppes, wat mir selwer aggregéiert hunn, op extern Systemer, APIen oder Werbeplattformen iwwerdroen.
Server Analyse Systemer

5. Frontend

Dir musst de Frontend mam erstallte System verbannen. E gutt Beispill ass Service redesch, ass eng Datebank GUI déi hëlleft Dashboards ze bauen. Wéi funktionéiert d'Interaktioun:

  1. De Benotzer mécht eng SQL Ufro.
  2. Als Äntwert kritt hien en Zeechen.
  3. Et kreéiert eng 'nei Visualiséierung' dofir a kritt eng schéin Grafik déi Dir fir Iech selwer spuere kënnt.

Visualiséierungen am Service sinn automatesch aktualiséiert, Dir kënnt Är Iwwerwaachung personaliséieren an verfollegen. Redash ass gratis wann se selwer gehost gëtt, awer als SaaS wäert et $ 50 pro Mount kaschten.
Server Analyse Systemer

Konklusioun

Nodeems Dir all d'Schrëtt hei uewen ofgeschloss hutt, erstellt Dir Är Serveranalyse. Notéiert w.e.g. datt dëst net sou einfach ass wéi just d'Clientanalytik ze verbannen, well alles muss selwer konfiguréiert ginn. Dofir, ier Dir Ären eegene System erstellt, ass et derwäert de Besoin fir e seriöse Analysesystem mat de Ressourcen ze vergläichen, déi Dir gewëllt sidd derzou ze verdeelen.
Wann Dir d'Mathematik gemaach hutt a fonnt hutt datt d'Käschten ze héich sinn, am nächsten Deel schwätze ech iwwer wéi eng méi bëlleg Versioun vu Server-Säit Analyse gemaach gëtt.

Merci fir d'Liesen! Ech wäert frou Froen an de Kommentaren ze stellen.

Source: will.com

Setzt e Commentaire