Sistèm analiz sèvè

Sa a se dezyèm pati yon seri atik sou sistèm analyse (lyen pou pati 1).

Sistèm analiz sèvè

Jodi a pa gen okenn dout ke tretman done ak anpil atansyon ak entèpretasyon rezilta yo ka ede prèske nenpòt kalite biznis. Nan sans sa a, sistèm analyse yo ap vin de pli zan pli chaje ak paramèt, ak kantite deklannche ak evènman itilizatè nan aplikasyon an ap grandi.
Poutèt sa, konpayi yo ap bay analis yo plis ak plis enfòmasyon anvan tout koreksyon analize ak vire nan bon desizyon. Enpòtans ki genyen nan yon sistèm analytics pou yon konpayi pa ta dwe souzèstime, ak sistèm nan tèt li dwe serye ak ki estab.

Analis kliyan yo

Kliyan analytics se yon sèvis ke yon konpayi konekte sou sit entènèt li oswa aplikasyon atravè SDK ofisyèl la, entegre nan pwòp kod li yo epi chwazi deklanche evènman yo. Gen yon dezavantaj evidan nan apwòch sa a: tout done yo kolekte pa ka trete egzakteman jan ou ta renmen akòz limit yo nan nenpòt sèvis ou chwazi. Pou egzanp, sou yon sistèm li pa pral fasil pou kouri travay MapReduce, sou yon lòt ou pa pral kapab kouri modèl ou a. Yon lòt dezavantaj yo pral bòdwo regilye (enpresyonan) pou sèvis yo.
Gen anpil solisyon analiz kliyan sou mache a, men pi bonè oswa pita analis yo ap fè fas ak lefèt ke pa gen yon sèl sèvis inivèsèl apwopriye pou chak travay (pandan ke pri yo pou tout sèvis sa yo ap monte tout tan tout tan an). Nan yon sitiyasyon konsa, konpayi yo souvan deside kreye pwòp sistèm analytics ak tout paramèt koutim ki nesesè yo ak kapasite yo.

Analis sèvè

Analitik bò sèvè se yon sèvis ki ka deplwaye nan yon konpayi sou pwòp sèvè li yo ak (anjeneral) ak pwòp efò li yo. Nan modèl sa a, tout evènman itilizatè yo estoke sou sèvè entèn yo, sa ki pèmèt devlopè yo eseye diferan baz done depo epi chwazi achitekti ki pi pratik. E menm si ou toujou vle sèvi ak analiz kliyan twazyèm pati pou kèk travay, li ap toujou posib.
Analis bò sèvè yo ka deplwaye nan de fason. Premyèman: chwazi kèk sèvis piblik sous louvri, deplwaye yo sou machin ou yo epi devlope lojik biznis.

Pou
Kont

Ou ka Customize nenpòt bagay ou vle
Sa a se souvan trè difisil epi li mande devlopè separe

Dezyèmman: pran sèvis SaaS (Amazon, Google, Azure) olye pou yo deplwaye li tèt ou. Nou pral pale sou SaaS an plis detay nan twazyèm pati a.

Pou
Kont

Li ka pi bon mache nan volim mwayen, men ak gwo kwasans li ap toujou vin twò chè
Li pa pral posib kontwole tout paramèt

Administrasyon an antye transfere nan zepòl yo nan founisè sèvis la
Li pa toujou konnen sa ki andedan sèvis la (li ka pa nesesè)

Ki jan yo kolekte analiz sèvè

Si nou vle pou avanse pou pi lwen itilize analytics kliyan yo ak bati pwòp pa nou, anvan tout bagay nou bezwen panse nan achitekti nan nouvo sistèm nan. Anba a mwen pral di w etap pa etap sa ou bezwen konsidere, poukisa chak etap nesesè ak ki zouti ou ka itilize.

1. Resevwa done

Menm jan ak analytics kliyan an, anvan tout bagay, analis konpayi yo chwazi ki kalite evènman ke yo vle etidye nan lavni an epi kolekte yo nan yon lis. Tipikman, evènman sa yo rive nan yon lòd espesifik, yo rele yon "modèl evènman."
Apre sa, imajine ke yon aplikasyon mobil (sit entènèt) gen itilizatè regilye (aparèy) ak anpil sèvè. Pou transfere evènman an sekirite soti nan aparèy nan sèvè, yo bezwen yon kouch entèmedyè. Tou depan de achitekti a, ka gen plizyè ke moun kap kriye evènman diferan.
Apache Kafka - Eske pub/sub keu, ki itilize kòm yon keu pou kolekte evènman yo.

Dapre poste sou Quora an 2014, kreyatè Apache Kafka te deside bay non lojisyèl an apre Franz Kafka paske "li se yon sistèm optimize pou ekri" ak paske li te renmen travay Kafka a. — Wikipedya

Nan egzanp nou an, gen anpil pwodiktè done ak konsomatè done (aparèy ak sèvè), epi Kafka ede konekte yo youn ak lòt. Konsomatè yo pral dekri an plis detay nan etap sa yo, kote yo pral sijè prensipal yo. Koulye a, nou pral konsidere sèlman pwodiktè done (evènman).
Kafka encapsule konsèp yo nan keu ak patisyon; li pi byen li plis espesyalman sou sa a yon lòt kote (pa egzanp, nan dokiman). San yo pa antre nan detay, an n imajine ke yon aplikasyon mobil yo te lanse pou de OS diferan. Lè sa a, chak vèsyon kreye pwòp evènman separe. Pwodiktè voye evènman nan Kafka, yo anrejistre nan yon keu apwopriye.
Sistèm analiz sèvè
(foto kon sa)

An menm tan an, Kafka pèmèt ou li an ti moso epi trete yon kouran evènman nan mini-lo. Kafka se yon zouti trè pratik ki balanse byen ak bezwen k ap grandi (pa egzanp, pa jeolokalizasyon nan evènman).
Anjeneral yon sèl ti moso se ase, men bagay yo vin pi konplike lè dekale (jan yo toujou fè). Pwobableman pèsonn p'ap vle sèvi ak yon sèl ti moso fizik nan pwodiksyon, paske achitekti a dwe toleran fay. Anplis de sa nan Kafka, gen yon lòt solisyon byen li te ye - RabbitMQ. Nou pa t sèvi ak li nan pwodiksyon kòm yon keu pou analiz evènman (si ou gen eksperyans sa a, di nou sou li nan kòmantè yo!). Sepandan, nou te itilize AWS Kinesis.

Anvan w ale nan pwochen etap la, nou bezwen mansyone yon lòt kouch adisyonèl nan sistèm nan - anvan tout koreksyon depo boutèy demi lit. Sa a se pa yon kouch obligatwa, men li pral itil si yon bagay ale mal epi ke moun kap kriye evènman yo nan Kafka yo reset. Estoke mòso bwa anvan tout koreksyon pa mande pou yon solisyon konplèks ak chè; ou ka senpleman ekri yo yon kote nan lòd ki kòrèk la (menm sou yon kondwi difisil).
Sistèm analiz sèvè

2. Traitement flux evènman yo

Apre nou fin prepare tout evènman yo epi mete yo nan ke moun kap kriye ki apwopriye yo, nou ale nan etap pwosesis la. Isit la mwen pral di w sou de opsyon ki pi komen pwosesis yo.
Premye opsyon a se pèmèt Spark Streaming nan sistèm Apache la. Tout pwodwi Apache ap viv sou HDFS, yon sistèm fichye an sekirite ak kopi dosye. Spark Streaming se yon zouti fasil-a-itilize ki okipe done difizyon ak balans byen. Sepandan, li ka difisil pou kenbe.
Yon lòt opsyon se konstwi pwòp evènman ou. Pou fè sa, ou bezwen, pou egzanp, ekri yon aplikasyon Python, bati li nan Docker ak abònman nan keu Kafka. Lè deklannche rive nan moun k ap okipe docker yo, pwosesis la ap kòmanse. Avèk metòd sa a, ou bezwen kenbe aplikasyon yo kouri tout tan.
Ann sipoze ke nou te chwazi youn nan opsyon ki dekri pi wo a epi ale nan pwosesis la tèt li. Pwosesisè yo ta dwe kòmanse tcheke validite done yo, filtre fatra ak evènman "kase". Pou validation nou konn itilize Cerberus. Apre sa, ou ka fè kat done: done ki soti nan diferan sous nòmalize ak estandadize yo nan lòd yo dwe ajoute nan yon tablo komen.
Sistèm analiz sèvè

3. Baz done

Twazyèm etap la se kenbe evènman nòmalize. Lè w ap travay ak yon sistèm analyse ki pare, nou pral gen aksè a yo souvan, kidonk li enpòtan pou chwazi yon baz done pratik.
Si done yo byen adapte nan yon konplo fiks, ou ka chwazi Clickhouse oswa kèk lòt baz done kolòn. Konsa agrégations yo ap travay trè vit. Inconvénient la se ke konplo a fiks fiks ak Se poutèt sa li pa pral posib yo ajoute objè abitrè san modifikasyon (pa egzanp, lè yon evènman ki pa estanda rive). Men, ou ka konte vrèman trè vit.
Pou done ki pa estriktire, ou ka pran NoSQL, pou egzanp, Apache cassandra. Li kouri sou HDFS, replike byen, ou ka ogmante anpil ka, epi li toleran fay.
Ou kapab tou ogmante yon bagay ki pi senp, pou egzanp, MongoDB. Li se byen dousman ak pou ti volim. Men, plis la se ke li trè senp ak Se poutèt sa apwopriye pou kòmanse.
Sistèm analiz sèvè

4. Agrégations

Èske w gen ak anpil atansyon sove tout evènman yo, nou vle kolekte tout enfòmasyon ki enpòtan nan pakèt la ki te rive ak mete ajou baz done a. Globalman, nou vle jwenn tablodbò ak mezi ki enpòtan. Pou egzanp, kolekte yon pwofil itilizatè nan evènman yo ak yon jan kanmenm mezire konpòtman. Evènman yo rasanble, kolekte, epi sove ankò (nan tab itilizatè yo). An menm tan an, ou ka bati yon sistèm pou ou ka konekte tou yon filtè nan agrégateur-kowòdonatè a: kolekte itilizatè sèlman nan yon sèten kalite evènman.
Apre sa, si yon moun nan ekip la sèlman bezwen analiz wo nivo, sistèm analiz ekstèn yo ka konekte. Ou ka pran Mixpanel ankò. men depi li se byen chè, se pa tout evènman itilizatè yo voye la, men se sèlman sa ki nesesè. Pou fè sa, nou bezwen kreye yon koòdonatè ki pral transfere kèk evènman anvan tout koreksyon oswa yon bagay ke nou menm nou rasanble pi bonè nan sistèm ekstèn, API oswa platfòm piblisite.
Sistèm analiz sèvè

5. Frontend

Ou bezwen konekte frontend a ak sistèm kreye a. Yon bon egzanp se sèvis redach, se yon entèfas baz done ki ede konstwi tablodbò yo. Ki jan entèraksyon an ap travay:

  1. Itilizatè a fè yon rechèch SQL.
  2. An repons li resevwa yon siy.
  3. Li kreye yon 'nouvo vizyalizasyon' pou li epi li jwenn yon bèl graf ke ou ka sove pou tèt ou.

Vizyalizasyon nan sèvis la se oto-mizajou, ou ka Customize epi swiv siveyans ou. Redash se gratis si oto-akomode, men kòm SaaS li pral koute $ 50 pa mwa.
Sistèm analiz sèvè

Konklizyon

Apre w fin ranpli tout etap ki anwo yo, ou pral kreye analytics sèvè ou a. Tanpri sonje ke sa a se pa senp tankou jis konekte analytics kliyan, paske tout bagay bezwen yo dwe configuré tèt ou. Se poutèt sa, anvan ou kreye pwòp sistèm ou a, li vo konpare bezwen an pou yon sistèm analytics grav ak resous yo ke ou vle asiyen nan li.
Si ou te fè matematik la epi ou jwenn ke depans yo twò wo, nan pwochen pati a mwen pral pale sou ki jan yo fè yon vèsyon pi bon mache nan analytics bò sèvè.

Mèsi pou lekti! Mwen pral kontan poze kesyon nan kòmantè yo.

Sous: www.habr.com

Add nouvo kòmantè