Mifumo ya uchanganuzi wa seva

Hii ni sehemu ya pili ya mfululizo wa makala kuhusu mifumo ya uchambuzi (kiungo kwa sehemu ya 1).

Mifumo ya uchanganuzi wa seva

Leo hakuna shaka tena kwamba usindikaji makini wa data na tafsiri ya matokeo inaweza kusaidia karibu aina yoyote ya biashara. Katika suala hili, mifumo ya uchambuzi inazidi kubeba na vigezo, na idadi ya vichochezi na matukio ya mtumiaji katika programu inakua.
Kwa sababu hii, makampuni yanawapa wachambuzi wao zaidi na zaidi habari mbichi ili kuchambua na kugeuka kuwa maamuzi sahihi. Umuhimu wa mfumo wa uchanganuzi kwa kampuni haupaswi kupuuzwa, na mfumo wenyewe lazima uwe wa kuaminika na thabiti.

Wachambuzi wa wateja

Uchanganuzi wa wateja ni huduma ambayo kampuni huunganisha kwenye tovuti au programu yake kupitia SDK rasmi, hujumuisha katika msingi wake wa kanuni na kuchagua vichochezi vya matukio. Kuna upande wa dhahiri wa mbinu hii: data yote iliyokusanywa inaweza isichakatwa vile vile ungependa kutokana na vikwazo vya huduma yoyote unayochagua. Kwa mfano, kwenye mfumo mmoja haitakuwa rahisi kuendesha kazi za MapReduce, kwa mwingine hutaweza kuendesha modeli yako. Hasara nyingine itakuwa muswada wa kawaida (wa kuvutia) wa huduma.
Kuna suluhisho nyingi za uchambuzi wa wateja kwenye soko, lakini wachambuzi wa mapema au baadaye wanakabiliwa na ukweli kwamba hakuna huduma moja ya ulimwengu inayofaa kwa kila kazi (wakati bei za huduma hizi zote zinaongezeka kila wakati). Katika hali hiyo, makampuni mara nyingi huamua kuunda mfumo wao wa uchambuzi na mipangilio yote muhimu ya desturi na uwezo.

Wachambuzi wa seva

Uchanganuzi wa upande wa seva ni huduma inayoweza kutumwa ndani ya kampuni kwenye seva zake na (kawaida) kwa juhudi zake yenyewe. Katika mfano huu, matukio yote ya mtumiaji yanahifadhiwa kwenye seva za ndani, kuruhusu watengenezaji kujaribu hifadhidata tofauti na kuchagua usanifu rahisi zaidi. Na hata kama bado ungependa kutumia uchanganuzi wa wateja wengine kwa baadhi ya kazi, bado itawezekana.
Uchanganuzi wa upande wa seva unaweza kutumwa kwa njia mbili. Kwanza: chagua huduma za chanzo huria, zipeleke kwenye mashine zako na utengeneze mantiki ya biashara.

Faida
Africa

Unaweza kubinafsisha chochote unachotaka
Hii mara nyingi ni ngumu sana na inahitaji watengenezaji tofauti

Pili: chukua huduma za SaaS (Amazon, Google, Azure) badala ya kupeleka mwenyewe. Tutazungumza juu ya SaaS kwa undani zaidi katika sehemu ya tatu.

Faida
Africa

Inaweza kuwa nafuu kwa viwango vya kati, lakini kwa ukuaji mkubwa bado itakuwa ghali sana
Haitawezekana kudhibiti vigezo vyote

Utawala huhamishiwa kabisa kwenye mabega ya mtoa huduma
Haijulikani kila wakati ni nini ndani ya huduma (inaweza isihitajike)

Jinsi ya kukusanya uchanganuzi wa seva

Ikiwa tunataka kuacha kutumia uchanganuzi wa mteja na kuunda yetu, kwanza kabisa tunahitaji kufikiria kupitia usanifu wa mfumo mpya. Hapa chini nitakuambia hatua kwa hatua unachohitaji kuzingatia, kwa nini kila hatua inahitajika na ni zana gani unaweza kutumia.

1. Kupokea data

Kama ilivyo kwa uchanganuzi wa wateja, kwanza kabisa, wachambuzi wa kampuni huchagua aina za hafla ambazo wanataka kusoma katika siku zijazo na kuzikusanya kwenye orodha. Kwa kawaida, matukio haya hutokea kwa utaratibu maalum, unaoitwa "mchoro wa tukio."
Ifuatayo, fikiria kuwa programu ya rununu (tovuti) ina watumiaji wa kawaida (vifaa) na seva nyingi. Ili kuhamisha matukio kwa usalama kutoka kwa vifaa hadi kwa seva, safu ya kati inahitajika. Kulingana na usanifu, kunaweza kuwa na foleni tofauti za matukio.
Apache Kafka - Je, baa/foleni ndogo, ambayo hutumika kama foleni ya kukusanya matukio.

Kulingana na chapisho kwenye Quora mnamo 2014, muundaji wa Apache Kafka aliamua kuiita programu hiyo baada ya Franz Kafka kwa sababu "ni mfumo ulioboreshwa kwa uandishi" na kwa sababu alipenda kazi za Kafka. - Wikipedia

Katika mfano wetu, kuna wazalishaji wengi wa data na watumiaji wa data (vifaa na seva), na Kafka husaidia kuwaunganisha kwa kila mmoja. Wateja wataelezwa kwa undani zaidi katika hatua zifuatazo, ambapo watakuwa masomo kuu. Sasa tutazingatia wazalishaji wa data pekee (matukio).
Kafka inajumuisha dhana za foleni na kizigeu; ni bora kusoma haswa zaidi juu ya hii mahali pengine (kwa mfano, katika nyaraka) Bila kuingia katika maelezo, hebu fikiria kwamba programu ya simu imezinduliwa kwa OS mbili tofauti. Kisha kila toleo huunda mkondo wake tofauti wa tukio. Watayarishaji hutuma matukio kwa Kafka, yanarekodiwa kwenye foleni inayofaa.
Mifumo ya uchanganuzi wa seva
(picha hivyo)

Wakati huo huo, Kafka hukuruhusu kusoma kwa vipande na kuchakata mkondo wa matukio katika vikundi vidogo. Kafka ni chombo kinachofaa sana ambacho kinalingana na mahitaji ya kukua (kwa mfano, kwa geolocation ya matukio).
Kawaida shard moja inatosha, lakini mambo huwa magumu zaidi wakati wa kuongeza (kama wanavyofanya kila wakati). Pengine hakuna mtu atakayetaka kutumia shard moja tu ya kimwili katika uzalishaji, kwani usanifu lazima uwe na uvumilivu wa makosa. Mbali na Kafka, kuna suluhisho lingine linalojulikana - RabbitMQ. Hatukuitumia katika uzalishaji kama foleni ya uchanganuzi wa matukio (ikiwa una uzoefu kama huo, tuambie kuuhusu kwenye maoni!). Walakini, tulitumia AWS Kinesis.

Kabla ya kuendelea na hatua inayofuata, tunahitaji kutaja safu moja zaidi ya mfumo - hifadhi ya logi ghafi. Hii sio safu inayohitajika, lakini itakuwa muhimu ikiwa kitu kitaenda vibaya na foleni za hafla huko Kafka zimewekwa upya. Kuhifadhi kumbukumbu mbichi hauitaji suluhisho ngumu na ya gharama kubwa, unaweza kuziandika mahali fulani kwa mpangilio sahihi (hata kwenye gari ngumu).
Mifumo ya uchanganuzi wa seva

2. Inachakata mitiririko ya matukio

Baada ya kuandaa matukio yote na kuwaweka kwenye foleni zinazofaa, tunaendelea kwenye hatua ya usindikaji. Hapa nitakuambia juu ya chaguzi mbili za kawaida za usindikaji.
Chaguo la kwanza ni kuwezesha Utiririshaji wa Spark katika mfumo wa Apache. Bidhaa zote za Apache zinaishi kwenye HDFS, mfumo salama wa faili na nakala za faili. Utiririshaji wa Spark ni zana rahisi kutumia ambayo hushughulikia data na mizani ya utiririshaji vizuri. Hata hivyo, inaweza kuwa vigumu kudumisha.
Chaguo jingine ni kuunda kidhibiti chako cha hafla. Ili kufanya hivyo, unahitaji, kwa mfano, kuandika programu ya Python, kuijenga kwenye Docker na kujiandikisha kwenye foleni ya Kafka. Vichochezi vinapofika kwenye vidhibiti vya kizimbani, usindikaji utaanza. Kwa njia hii, unahitaji kuweka programu zinazoendesha kila wakati.
Hebu tufikiri kwamba tumechagua moja ya chaguo zilizoelezwa hapo juu na kuendelea na usindikaji yenyewe. Wasindikaji wanapaswa kuanza kwa kuangalia uhalali wa data, kuchuja takataka na matukio "yaliyovunjika". Kwa uthibitisho sisi kawaida kutumia Cerberus. Baada ya hayo, unaweza kufanya ramani ya data: data kutoka kwa vyanzo tofauti husawazishwa na kusanifishwa ili kuongezwa kwenye jedwali la kawaida.
Mifumo ya uchanganuzi wa seva

3. Hifadhidata

Hatua ya tatu ni kudumisha matukio ya kawaida. Wakati wa kufanya kazi na mfumo wa uchambuzi uliofanywa tayari, tutalazimika kuwafikia mara nyingi, kwa hiyo ni muhimu kuchagua database rahisi.
Ikiwa data inafaa vizuri katika mpango uliowekwa, unaweza kuchagua clickhouse au hifadhidata nyingine ya safu. Kwa njia hii mikusanyiko itafanya kazi haraka sana. Kikwazo ni kwamba mpango huo umewekwa kwa ukali na kwa hiyo haitawezekana kuongeza vitu vya kiholela bila marekebisho (kwa mfano, wakati tukio lisilo la kawaida linatokea). Lakini unaweza kuhesabu haraka sana.
Kwa data isiyo na muundo, unaweza kuchukua NoSQL, kwa mfano, Apache Cassandra. Inatumika kwenye HDFS, inaiga vizuri, unaweza kuongeza matukio mengi, na inastahimili makosa.
Unaweza pia kuongeza kitu rahisi, kwa mfano, MongoDB. Ni polepole sana na kwa viwango vidogo. Lakini pamoja ni kwamba ni rahisi sana na kwa hiyo inafaa kwa kuanzia.
Mifumo ya uchanganuzi wa seva

4. Majumuisho

Baada ya kuhifadhi kwa uangalifu matukio yote, tunataka kukusanya taarifa zote muhimu kutoka kwa kundi lililofika na kusasisha hifadhidata. Ulimwenguni, tunataka kupata dashibodi na vipimo vinavyofaa. Kwa mfano, kukusanya wasifu wa mtumiaji kutoka kwa matukio na kwa namna fulani kupima tabia. Matukio yanajumlishwa, kukusanywa na kuhifadhiwa tena (katika majedwali ya watumiaji). Wakati huo huo, unaweza kuunda mfumo ili uweze kuunganisha kichujio kwa mratibu wa mkusanyiko: kukusanya watumiaji tu kutoka kwa aina fulani ya tukio.
Baada ya hapo, ikiwa mtu kwenye timu anahitaji tu uchanganuzi wa hali ya juu, mifumo ya uchanganuzi wa nje inaweza kuunganishwa. Unaweza kuchukua Mixpanel tena. lakini kwa kuwa ni ghali kabisa, sio matukio yote ya mtumiaji yanatumwa huko, lakini tu kile kinachohitajika. Ili kufanya hivyo, tunahitaji kuunda mratibu ambaye atahamisha baadhi ya matukio ghafi au kitu ambacho sisi wenyewe tulijumlisha mapema hadi mifumo ya nje, API au majukwaa ya utangazaji.
Mifumo ya uchanganuzi wa seva

5. Mbele

Unahitaji kuunganisha sehemu ya mbele kwenye mfumo ulioundwa. Mfano mzuri ni huduma redash, ni GUI ya hifadhidata ambayo husaidia kujenga dashibodi. Jinsi mwingiliano unavyofanya kazi:

  1. Mtumiaji hufanya swali la SQL.
  2. Kwa kujibu anapokea ishara.
  3. Huiundia β€˜taswira mpya’ na hupata grafu nzuri ambayo unaweza kujihifadhia.

Mwonekano katika huduma unasasishwa kiotomatiki, unaweza kubinafsisha na kufuatilia ufuatiliaji wako. Redash ni bure ikiwa inajipangisha mwenyewe, lakini kama SaaS itagharimu $50 kwa mwezi.
Mifumo ya uchanganuzi wa seva

Hitimisho

Baada ya kukamilisha hatua zote hapo juu, utaunda uchanganuzi wa seva yako. Tafadhali kumbuka kuwa hii si rahisi kama kuunganisha tu uchanganuzi wa wateja, kwa sababu kila kitu kinahitaji kusanidiwa wewe mwenyewe. Kwa hivyo, kabla ya kuunda mfumo wako mwenyewe, inafaa kulinganisha hitaji la mfumo mzito wa uchanganuzi na rasilimali ambazo uko tayari kuigawa.
Ikiwa umefanya hesabu na kugundua kuwa gharama ni kubwa sana, katika sehemu inayofuata nitazungumza juu ya jinsi ya kutengeneza toleo la bei nafuu la uchanganuzi wa upande wa seva.

Asante kwa kusoma! Nitafurahi kuuliza maswali katika maoni.

Chanzo: mapenzi.com

Kuongeza maoni