Mga sistema sa analytics sa server

Kini ang ikaduhang bahin sa serye sa mga artikulo bahin sa analytical system (link sa part 1).

Mga sistema sa analytics sa server

Karon wala nay pagduhaduha nga ang maampingong pagproseso sa datos ug paghubad sa mga resulta makatabang sa halos bisan unsang matang sa negosyo. Niining bahina, ang mga sistema sa analitikal nagkadaghan nga puno sa mga parameter, ug ang gidaghanon sa mga nag-trigger ug mga panghitabo sa gumagamit sa mga aplikasyon nagkadako.
Tungod niini, ang mga kompanya naghatag sa ilang mga analista ug labi pa nga hilaw nga kasayuran aron analisahon ug mahimong maayong mga desisyon. Ang kahinungdanon sa usa ka sistema sa pag-analisa alang sa usa ka kompanya kinahanglan dili ipakaubos, ug ang sistema mismo kinahanglan kasaligan ug lig-on.

Mga analista sa kliyente

Ang analytics sa kostumer usa ka serbisyo nga gikonektar sa usa ka kompanya sa website o aplikasyon niini pinaagi sa opisyal nga SDK, gihiusa sa kaugalingon nga codebase ug gipili ang mga hinungdan sa panghitabo. Adunay usa ka dayag nga kapakyasan niini nga pamaagi: ang tanan nga mga datos nga nakolekta mahimong dili maproseso sa eksakto nga gusto nimo tungod sa mga limitasyon sa bisan unsang serbisyo nga imong gipili. Pananglitan, sa usa ka sistema dili sayon ​​ang pagpadagan sa mga buluhaton sa MapReduce, sa lain dili nimo mapadagan ang imong modelo. Ang laing disbentaha mao ang regular (impressive) bill alang sa mga serbisyo.
Adunay daghang mga solusyon sa pag-analisa sa kustomer sa merkado, apan sa madugay o sa madali ang mga analista nag-atubang sa kamatuoran nga wala’y usa ka unibersal nga serbisyo nga angay alang sa matag buluhaton (samtang ang mga presyo alang sa tanan nga kini nga mga serbisyo nagtaas sa tanan nga oras). Sa ingon nga kahimtang, ang mga kompanya kanunay nga nagdesisyon sa paghimo sa ilang kaugalingon nga sistema sa pag-analisar nga adunay tanan nga kinahanglan nga mga setting ug kapabilidad sa kostumbre.

Mga analista sa server

Ang server-side analytics usa ka serbisyo nga mahimong i-deploy sa sulod sa usa ka kompanya sa kaugalingon nga mga server ug (kasagaran) sa kaugalingon nga mga paningkamot. Sa kini nga modelo, ang tanan nga mga panghitabo sa tiggamit gitipigan sa mga internal nga server, nga gitugotan ang mga developer nga sulayan ang lainlaing mga database sa pagtipig ug pagpili sa labing kombenyente nga arkitektura. Ug bisan kung gusto nimo nga mogamit mga third-party client analytics alang sa pipila ka mga buluhaton, mahimo gihapon kini.
Ang server-side analytics mahimong ma-deploy sa duha ka paagi. Una: pagpili og pipila ka open source utilities, i-deploy kini sa imong mga makina ug pagpalambo og business logic.

ΠŸΠ»ΡŽΡΡ‹
ΠœΠΈΠ½ΡƒΡΡ‹

Mahimo nimong ipasibo ang bisan unsang gusto nimo
Kini sa kasagaran lisud kaayo ug nagkinahanglan og bulag nga mga developer

Ikaduha: kuhaa ang mga serbisyo sa SaaS (Amazon, Google, Azure) imbes nga i-deploy kini sa imong kaugalingon. Maghisgot kami bahin sa SaaS sa mas detalyado sa ikatulo nga bahin.

ΠŸΠ»ΡŽΡΡ‹
ΠœΠΈΠ½ΡƒΡΡ‹

Mahimong mas barato kini sa medium nga gidaghanon, apan sa dako nga pagtubo kini mahimong mahal kaayo
Dili mahimo nga makontrol ang tanan nga mga parameter

Ang administrasyon hingpit nga gibalhin sa mga abaga sa service provider
Dili kanunay mahibal-an kung unsa ang naa sa sulod sa serbisyo (tingali dili kinahanglan)

Giunsa pagkolekta ang analytics sa server

Kung gusto namon nga magpalayo sa paggamit sa analytics sa kliyente ug magtukod sa among kaugalingon, una sa tanan kinahanglan namon nga hunahunaon ang arkitektura sa bag-ong sistema. Sa ubos isulti ko kanimo ang lakang sa lakang kung unsa ang kinahanglan nimo nga tagdon, ngano nga gikinahanglan ang matag lakang ug kung unsang mga himan ang imong magamit.

1. Pagdawat sa datos

Sama sa kaso sa customer analytics, una sa tanan, gipili sa mga analista sa kompanya ang mga tipo sa mga panghitabo nga gusto nilang tun-an sa umaabot ug kolektahon kini sa usa ka lista. Kasagaran, kini nga mga panghitabo mahitabo sa usa ka piho nga han-ay, nga gitawag nga "sumbanan sa panghitabo."
Sunod, hunahunaa nga ang usa ka mobile application (website) adunay mga regular nga tiggamit (mga aparato) ug daghang mga server. Aron luwas nga mabalhin ang mga panghitabo gikan sa mga aparato ngadto sa mga server, gikinahanglan ang usa ka intermediate layer. Depende sa arkitektura, mahimo nga adunay daghang lainlaing mga pila sa panghitabo.
Apache Kafka Mao ba pub/sub nga pila, nga gigamit isip usa ka pila alang sa pagkolekta sa mga panghitabo.

Sumala sa post sa Quora sa 2014, ang tiglalang sa Apache Kafka nakahukom sa paghingalan sa software sunod sa Franz Kafka tungod kay "kini mao ang usa ka sistema optimized alang sa pagsulat" ug tungod kay siya nahigugma sa Kafka's mga buhat. β€” Wikipedia

Sa among pananglitan, adunay daghang mga prodyuser sa datos ug mga konsumedor sa datos (mga aparato ug mga server), ug ang Kafka nagtabang sa pagkonektar kanila sa usag usa. Ang mga konsumedor ihulagway sa dugang nga detalye sa mga musunod nga mga lakang, diin sila ang mahimong panguna nga mga hilisgutan. Karon atong tagdon lamang ang mga prodyuser sa datos (mga panghitabo).
Ang Kafka naglangkob sa mga konsepto sa pila ug partisyon; mas maayo nga basahon ang labi ka espesipiko bahin niini sa ubang lugar (pananglitan, sa dokumentasyon). Kung dili moadto sa mga detalye, hunahunaon naton nga ang usa ka mobile application gilusad alang sa duha nga lainlaing mga OS. Unya ang matag bersyon nagmugna sa kaugalingon nga lahi nga stream sa panghitabo. Ang mga prodyuser nagpadala sa mga panghitabo sa Kafka, kini girekord sa usa ka angay nga pila.
Mga sistema sa analytics sa server
(larawan gikan dinhi)

Sa parehas nga oras, gitugotan ka sa Kafka nga magbasa sa mga tipik ug magproseso sa usa ka sapa sa mga panghitabo sa mga mini-batch. Ang Kafka usa ka kombenyente nga himan nga maayo ang timbangan sa nagkadako nga mga panginahanglan (pananglitan, pinaagi sa geolocation sa mga panghitabo).
Kasagaran ang usa ka shard igo na, apan ang mga butang mahimong labi ka komplikado kung mag-scale (sama sa kanunay nilang gibuhat). Tingali walay usa nga gusto nga mogamit lamang sa usa ka pisikal nga shard sa produksiyon, tungod kay ang arkitektura kinahanglan nga adunay pagtugot sa sayup. Gawas pa sa Kafka, adunay lain nga nailhan nga solusyon - RabbitMQ. Wala namo kini gigamit sa produksyon isip usa ka pila alang sa analytics sa panghitabo (kung aduna kay kasinatian, isulti kanamo ang mahitungod niini sa mga komentaryo!). Bisan pa, gigamit namon ang AWS Kinesis.

Sa dili pa mopadayon sa sunod nga lakang, kinahanglan natong hisgutan ang usa pa ka dugang nga layer sa sistema - hilaw nga pagtipig sa log. Dili kini usa ka gikinahanglan nga layer, apan kini mapuslanon kung adunay mahitabo nga sayup ug ang mga pila sa panghitabo sa Kafka ma-reset. Ang pagtipig sa hilaw nga mga troso wala magkinahanglan usa ka komplikado ug mahal nga solusyon; mahimo nimong isulat kini sa usa ka lugar sa husto nga pagkasunud (bisan sa usa ka hard drive).
Mga sistema sa analytics sa server

2. Pagproseso sa mga sapa sa panghitabo

Human namo maandam ang tanan nga mga panghitabo ug ibutang kini sa tukma nga mga pila, nagpadayon kami sa lakang sa pagproseso. Dinhi isulti ko kanimo ang bahin sa duha nga labing kasagaran nga mga kapilian sa pagproseso.
Ang una nga kapilian mao ang pagpagana sa Spark Streaming sa sistema sa Apache. Ang tanan nga mga produkto sa Apache nagpuyo sa HDFS, usa ka luwas nga sistema sa file nga adunay mga replika sa file. Ang Spark Streaming usa ka dali gamiton nga himan nga maayo ang pagdumala sa streaming data ug mga timbangan. Bisan pa, mahimong lisud ang pagmentinar.
Ang laing kapilian mao ang paghimo sa imong kaugalingon nga tigdumala sa panghitabo. Aron mahimo kini, kinahanglan nimo, pananglitan, pagsulat usa ka aplikasyon sa Python, tukuron kini sa Docker ug mag-subscribe sa pila sa Kafka. Kung moabut ang mga trigger sa mga tigdumala sa docker, magsugod ang pagproseso. Uban niini nga pamaagi, kinahanglan nimo nga ipadayon ang pagdagan sa mga aplikasyon sa tanan nga oras.
Ibutang nato nga gipili nato ang usa sa mga opsyon nga gihulagway sa ibabaw ug magpadayon sa pagproseso mismo. Kinahanglang magsugod ang mga processor pinaagi sa pagsusi sa kabalido sa datos, pagsala sa mga basura ug "nabuak" nga mga panghitabo. Para sa validation kasagaran namong gamiton Cerberus. Pagkahuman niini, mahimo nimong buhaton ang data mapping: ang datos gikan sa lainlaing mga gigikanan gi-normalize ug gi-standardize aron madugang sa usa ka sagad nga lamesa.
Mga sistema sa analytics sa server

3. Database

Ang ikatulo nga lakang mao ang pagpadayon sa normal nga mga panghitabo. Kung nagtrabaho uban ang usa ka andam nga gihimo nga sistema sa analitikal, kinahanglan namon nga ma-access kini kanunay, busa hinungdanon nga magpili usa ka dali nga database.
Kung ang datos mohaum pag-ayo sa usa ka fixed scheme, makapili ka clickhouse o uban pang columnar database. Niining paagiha ang mga aggregations molihok dayon. Ang downside mao nga ang laraw estrikto nga giayo ug busa dili posible nga idugang ang arbitraryong mga butang nga wala’y pagbag-o (pananglitan, kung mahitabo ang usa ka dili standard nga panghitabo). Pero dali ra kaayo ka makaihap.
Alang sa wala'y istruktura nga datos, mahimo nimong kuhaon ang NoSQL, pananglitan, Apache Cassandra. Nagdagan kini sa HDFS, maayo nga nag-replicate, mahimo nimong ipataas ang daghang mga higayon, ug dili matugotan sa sayup.
Mahimo usab nimo ipataas ang usa ka butang nga mas simple, pananglitan, MongoDB. Kini hinay ug alang sa gagmay nga mga volume. Apan ang dugang mao nga kini yano kaayo ug busa angay alang sa pagsugod.
Mga sistema sa analytics sa server

4. Mga aggregasyon

Sa maampingong pag-save sa tanan nga mga panghitabo, gusto namon nga kolektahon ang tanan nga hinungdanon nga kasayuran gikan sa batch nga miabot ug i-update ang database. Sa tibuuk kalibutan, gusto namon nga makakuha mga may kalabotan nga dashboard ug sukatan. Pananglitan, pagkolekta usa ka profile sa gumagamit gikan sa mga panghitabo ug sa usa ka paagi sukda ang pamatasan. Ang mga panghitabo giipon, gikolekta, ug gitipigan pag-usab (sa mga lamesa sa tiggamit). Sa samang higayon, makahimo ka og sistema aron makonektar usab nimo ang usa ka filter ngadto sa aggregator-coordinator: pagkolekta sa mga tiggamit lamang gikan sa usa ka matang sa panghitabo.
Human niana, kung ang usa ka tawo sa team nagkinahanglan lamang og taas nga lebel nga analytics, ang mga external analytics nga sistema mahimong konektado. Mahimo nimong kuhaon ang Mixpanel pag-usab. apan tungod kay kini medyo mahal, dili tanan nga mga panghitabo sa tiggamit gipadala didto, apan kung unsa ang kinahanglan. Aron mahimo kini, kinahanglan namon nga maghimo usa ka koordinetor nga magbalhin sa pipila ka mga hilaw nga panghitabo o usa ka butang nga kami mismo ang naipon sa sayo pa sa mga eksternal nga sistema, API o mga platform sa advertising.
Mga sistema sa analytics sa server

5. Frontend

Kinahanglan nimo nga ikonektar ang frontend sa gibuhat nga sistema. Ang maayong ehemplo mao ang pagserbisyo mapula-pula, usa ka database GUI nga makatabang sa paghimo og mga dashboard. Giunsa ang interaksyon molihok:

  1. Ang user naghimo ug SQL nga pangutana.
  2. Agig tubag nakadawat siya usa ka timaan.
  3. Naghimo kini usa ka 'bag-ong visualization' alang niini ug nakakuha usa ka matahum nga graph nga mahimo nimong matipig alang sa imong kaugalingon.

Ang mga visualization sa serbisyo mao ang awtomatikong pag-update, mahimo nimong ipasibo ug masubay ang imong pag-monitor. Libre ang Redash kung self-host, apan ingon nga SaaS mokantidad kini og $50 matag bulan.
Mga sistema sa analytics sa server

konklusyon

Human makompleto ang tanan nga mga lakang sa ibabaw, maghimo ka sa analytics sa imong server. Palihug timan-i nga kini dili kay yano sama sa pagkonektar sa customer analytics, tungod kay ang tanan kinahanglan nga ma-configure sa imong kaugalingon. Busa, sa wala pa maghimo sa imong kaugalingon nga sistema, angay nga itandi ang panginahanglan alang sa usa ka seryoso nga sistema sa pag-analisa sa mga kahinguhaan nga andam nimo nga igahin niini.
Kung nahuman na nimo ang matematika ug nahibal-an nga ang mga gasto labi ka taas, sa sunod nga bahin akong hisgutan kung giunsa paghimo ang usa ka labi ka barato nga bersyon sa analytics nga bahin sa server.

Salamat sa pagbasa! Malipay ako nga mangutana sa mga pangutana sa mga komento.

Source: www.habr.com

Idugang sa usa ka comment