Programu za kujumlisha data kama vile olap cube. Utangulizi wa OLAP na hifadhidata za multidimensional. Kuunda Michemraba ya Data inayojiendesha

OLAP si bidhaa tofauti ya programu, si lugha ya programu, au hata teknolojia mahususi. Ikiwa tutajaribu kufunika OLAP katika maonyesho yake yote, basi ni seti ya dhana, kanuni na mahitaji ambayo yanasisitiza bidhaa za programu ambazo hufanya iwe rahisi kwa wachambuzi kufikia data. Hebu tujue Kwa nini wachambuzi wanahitaji kitu maalum kuwezesha upatikanaji wa data.

Ukweli ni kwamba wachambuzi ni watumiaji maalum wa habari za ushirika. Kazi ya mchambuzi ni kutafuta ruwaza katika kiasi kikubwa cha data. Kwa hivyo, mchambuzi hatazingatia ukweli tofauti kwamba siku ya Alhamisi kundi la nne la wino mweusi liliuzwa kwa Chernov mwenzake - anahitaji habari. kuhusu mamia na maelfu matukio yanayofanana. Ukweli mmoja katika hifadhidata unaweza kuwa wa kupendeza, kwa mfano, kwa mhasibu au mkuu wa idara ya mauzo, ambaye anawajibika kwa shughuli hiyo. Kwa mchambuzi, rekodi moja haitoshi - yeye, kwa mfano, anaweza kuhitaji shughuli zote za tawi au ofisi ya mwakilishi kwa mwezi au mwaka. Wakati huo huo, mchambuzi hutupa maelezo yasiyo ya lazima kama vile TIN ya mnunuzi, anwani yake halisi na nambari ya simu, faharasa ya mkataba na kadhalika. Wakati huo huo, data ambayo mchambuzi anahitaji kwa kazi yake lazima iwe na maadili ya nambari - hii ni kwa sababu ya kiini cha shughuli yake.

Kwa hivyo, mchambuzi anahitaji data nyingi, data hii ni ya kuchagua na pia ya asili ya " kuweka sifa - nambari". Mwisho unamaanisha kuwa mchambuzi hufanya kazi na majedwali ya aina zifuatazo:

Hapa " Nchi", "Bidhaa", "Mwaka"ni sifa au vipimo, A" Kiasi cha mauzo"- kwa hivyo thamani ya nambari au kipimo. Kazi ya mchambuzi, tunarudia, ni kutambua uhusiano wenye nguvu kati ya sifa na vigezo vya nambari. Kuangalia meza, utaona kwamba inaweza kubadilishwa kwa urahisi katika vipimo vitatu: tutaweka nchi kwenye moja ya shoka, bidhaa kwa upande mwingine, na miaka kwa tatu. Na maadili katika safu hii ya pande tatu itakuwa kiasi cha mauzo kinacholingana.

Uwakilishi wa tatu-dimensional wa meza. Sehemu ya kijivu inaonyesha kuwa hakuna data ya Argentina mnamo 1988

Ni safu hii ya pande tatu ambayo inaitwa mchemraba kwa maneno ya OLAP. Kwa kweli, kutoka kwa mtazamo wa hisabati kali, safu hiyo haitakuwa mchemraba kila wakati: mchemraba halisi lazima uwe na idadi sawa ya vipengele katika vipimo vyote, lakini cubes za OLAP hazina upungufu huo. Hata hivyo, licha ya maelezo haya, neno "OLAP cubes", kutokana na ufupi wake na mfano, limekubaliwa kwa ujumla. Mchemraba wa OLAP sio lazima uwe wa pande tatu. Inaweza kuwa mbili- na multidimensional, kulingana na tatizo kutatuliwa. Wachambuzi waliobobea hasa wanaweza kuhitaji takriban vipimo 20 - na bidhaa muhimu za OLAP zimeundwa kwa kiasi hiki haswa. Programu rahisi za kompyuta za mezani zinaauni takriban vipimo 6.

Vipimo Cube za OLAP zinajumuisha kinachojulikana alama au wanachama. Kwa mfano, mwelekeo wa Nchi unajumuisha lebo za Argentina, Brazili, Venezuela, na kadhalika.

Sio vitu vyote vya mchemraba lazima vijazwe: ikiwa hakuna habari juu ya mauzo ya bidhaa za mpira nchini Ajentina mnamo 1988, thamani katika seli inayolingana haitatambuliwa. Pia sio lazima hata kidogo kwamba programu ya OLAP lazima ihifadhi data katika muundo wa multidimensional - jambo kuu ni kwamba data hii inaonekana kama hii kwa mtumiaji. Kwa njia, ni njia maalum za uhifadhi wa kompakt wa data ya multidimensional ambayo "utupu" (vitu visivyojazwa) kwenye cubes haziongoi kumbukumbu iliyopotea.

Hata hivyo, mchemraba yenyewe haifai kwa uchambuzi. Ikiwa bado inawezekana kufikiria vya kutosha au kuonyesha mchemraba wa tatu-dimensional, basi kwa mchemraba wa sita au kumi na tisa-dimensional hali ni mbaya zaidi. Ndiyo maana kabla ya matumizi za kawaida hutolewa kutoka kwa mchemraba wa multidimensional meza mbili-dimensional. Operesheni hii inaitwa "kukata" mchemraba. Neno hili, tena, ni la kitamathali. Mchambuzi, kama ilivyo, huchukua na "kukata" vipimo vya mchemraba kulingana na alama za riba kwake. Kwa njia hii, mchambuzi hupokea kipande cha mbili-dimensional ya mchemraba na hufanya kazi nayo. Vivyo hivyo, wakata miti huhesabu pete za kila mwaka kwenye mti uliokatwa.

Ipasavyo, kama sheria, ni vipimo viwili tu vinabaki "bila kukatwa" - kulingana na idadi ya vipimo kwenye jedwali. Inatokea kwamba mwelekeo tu unabaki "bila kukatwa" - ikiwa mchemraba una aina kadhaa za maadili ya nambari, zinaweza kupangwa pamoja na moja ya vipimo vya jedwali.

Ukiangalia kwa karibu zaidi jedwali tuliloonyesha kwanza, utagundua kuwa data iliyomo sio ya msingi, lakini imepatikana kama matokeo. majumuisho juu ya vipengele vidogo. Kwa mfano, mwaka umegawanywa katika robo, robo kwa miezi, miezi kwa wiki, wiki kwa siku. Nchi inaundwa na mikoa, na mikoa inaundwa na maeneo ya watu. Hatimaye, katika miji yenyewe, wilaya na maduka maalum ya rejareja yanaweza kutambuliwa. Bidhaa zinaweza kuunganishwa katika vikundi vya bidhaa na kadhalika. Kwa maneno ya OLAP, vyama hivyo vya ngazi mbalimbali vinaitwa kimantiki madaraja. Zana za OLAP hufanya iwezekane kuhamia ngazi ya daraja inayotakikana wakati wowote. Kwa kuongezea, kama sheria, aina kadhaa za safu zinaungwa mkono kwa vitu sawa: kwa mfano, siku-wiki-mwezi au siku-muongo-robo. Data ya chanzo inachukuliwa kutoka viwango vya chini vya madaraja na kisha kufupishwa ili kupata maadili katika viwango vya juu. Ili kuharakisha mchakato wa mpito, maadili yaliyofupishwa ya viwango tofauti huhifadhiwa kwenye mchemraba. Kwa hivyo, kile kinachoonekana kama mchemraba mmoja kutoka kwa upande wa mtumiaji, kwa kusema, kinajumuisha cubes nyingi zaidi za zamani.

Mfano wa uongozi

Hii ni moja ya mambo muhimu ambayo yalisababisha kuibuka kwa OLAP - tija na ufanisi. Hebu tufikirie nini kinatokea wakati mchambuzi anahitaji kupata taarifa, lakini hakuna zana za OLAP katika biashara. Mchanganuzi kwa kujitegemea (jambo ambalo haliwezekani) au kwa usaidizi wa mpangaji programu hufanya swali linalofaa la SQL na hupokea data ya riba katika mfumo wa ripoti au kuisafirisha kwa lahajedwali. Katika kesi hii, shida nyingi huibuka. Kwanza, mchambuzi analazimika kufanya kitu kingine isipokuwa kazi yake (programu ya SQL) au kungojea waandaaji wa programu kummalizia kazi hiyo - yote haya yana athari mbaya kwa tija ya kazi, kuongezeka kwa dhoruba, mshtuko wa moyo na viwango vya kiharusi, na kadhalika. . Pili, ripoti moja au meza, kama sheria, haiokoi makubwa ya mawazo na baba wa uchambuzi wa Kirusi - na utaratibu wote utalazimika kurudiwa tena na tena. Tatu, kama tumegundua, wachambuzi hawaulizi juu ya vitapeli - wanahitaji kila kitu mara moja. Hii inamaanisha (ingawa teknolojia inaendelea kwa kasi na mipaka) kwamba seva ya DBMS ya uhusiano inayofikiwa na mchambuzi inaweza kufikiria kwa kina na kwa muda mrefu, kuzuia shughuli zingine.

Wazo la OLAP lilionekana kwa usahihi kutatua shida kama hizo. cubes OLAP kimsingi ni ripoti za meta. Kwa kukata ripoti za meta (cubes, ambayo ni) kulingana na vipimo, mchambuzi hupokea ripoti za "kawaida" za pande mbili ambazo zinamvutia (hizi sio ripoti kwa maana ya kawaida ya neno - tunazungumza juu ya muundo wa data na kazi sawa). Faida za cubes ni dhahiri - data inahitaji kuombwa kutoka kwa DBMS ya uhusiano mara moja tu - wakati wa kujenga mchemraba. Kwa kuwa wachambuzi, kama sheria, hawafanyi kazi na habari ambayo inaongezewa na kubadilishwa kwa kuruka, mchemraba unaozalishwa unafaa kwa muda mrefu sana. Shukrani kwa hili, sio tu usumbufu katika uendeshaji wa seva ya DBMS huondolewa (hakuna maswali na maelfu na mamilioni ya mistari ya majibu), lakini kasi ya upatikanaji wa data kwa mchambuzi mwenyewe pia huongezeka kwa kasi. Kwa kuongezea, kama ilivyoonyeshwa tayari, utendaji pia unaboreshwa kwa kuhesabu subsums ya viwango na maadili mengine yaliyojumuishwa wakati mchemraba unajengwa. Hiyo ni, ikiwa awali data yetu ilikuwa na taarifa kuhusu mapato ya kila siku ya bidhaa maalum katika duka moja, basi wakati wa kuunda mchemraba, maombi ya OLAP huhesabu jumla ya viwango tofauti vya viwango (wiki na miezi, miji na nchi).

Bila shaka, unapaswa kulipa ili kuongeza tija kwa njia hii. Wakati mwingine inasemekana kuwa muundo wa data "hulipuka" - mchemraba wa OLAP unaweza kuchukua makumi au hata mamia ya nafasi zaidi ya data asili.

Jibu maswali:

    Nini kilitokea mchemraba OLAP?

    Nini kilitokea vitambulisho kipimo maalum? Toa mifano.

    Je, wanaweza vipimo katika mchemraba wa OLAP, huwa na thamani zisizo za nambari.

Ufafanuzi: Mhadhara huu unashughulikia misingi ya kubuni viunzi vya data kwa maghala ya data ya OLAP. Mfano unaonyesha njia ya kuunda mchemraba wa data kwa kutumia zana ya CASE.

Kusudi la hotuba

Baada ya kusoma nyenzo katika hotuba hii, utajua:

  • mchemraba wa data ni nini Hifadhi ya data ya OLAP ;
  • jinsi ya kuunda mchemraba wa data OLAP ghala za data ;
  • ni kipimo gani cha mchemraba wa data;
  • jinsi ukweli unahusiana na mchemraba wa data;
  • ni sifa gani za mwelekeo;
  • uongozi ni nini;
  • metric ya mchemraba wa data ni nini;

na kujifunza:

  • kujenga chati za multidimensional ;
  • kubuni rahisi chati za multidimensional.

Utangulizi

Teknolojia ya OLAP sio moja programu, Hapana lugha ya programu. Ikiwa tutajaribu kufunika OLAP katika maonyesho yake yote, basi ni seti ya dhana, kanuni na mahitaji ambayo yanasisitiza bidhaa za programu ambazo hufanya iwe rahisi kwa wachambuzi kufikia data.

Wachambuzi ndio watumiaji wakuu wa habari za ushirika. Kazi ya mchambuzi ni kutafuta ruwaza katika kiasi kikubwa cha data. Kwa hiyo, mchambuzi hatazingatia ukweli wa mtu binafsi kwamba siku fulani kundi la kalamu za mpira ziliuzwa kwa mnunuzi Ivanov - anahitaji habari kuhusu mamia na maelfu ya matukio sawa. Ukweli mmoja katika ghala la data inaweza kuwa ya riba, kwa mfano, kwa mhasibu au mkuu wa idara ya mauzo, ambaye uwezo wake ni msaada wa mkataba fulani. Kwa mchambuzi, rekodi moja haitoshi - yeye, kwa mfano, anaweza kuhitaji habari kuhusu mikataba yote ya hatua ya kuuza kwa mwezi, robo au mwaka. Mchambuzi anaweza asipendezwe na TIN ya mnunuzi au nambari yake ya simu - anafanya kazi na data maalum ya nambari, ambayo ndio kiini cha shughuli yake ya kitaalam.

Uwekaji kati na muundo unaofaa sio yote ambayo mchambuzi anahitaji. Anahitaji chombo cha kutazama na kuibua habari. Ripoti za jadi, hata zile zilizojengwa kwa msingi wa ghala moja la data, hazina, hata hivyo, kubadilika fulani. Haziwezi "kupindishwa," "kupanuliwa," au "kukunja" ili kupata mwonekano unaotaka wa data. "Vipande" zaidi na "sehemu" za data ambazo mchambuzi anaweza kuchunguza, mawazo zaidi anayo, ambayo, kwa upande wake, yanahitaji "vipande" zaidi na zaidi kwa uthibitishaji. OLAP hutumika kama zana kama hiyo ya uchanganuzi wa data na mchambuzi.

Ingawa OLAP si sifa ya lazima ya ghala la data, inazidi kutumiwa kuchanganua maelezo yaliyokusanywa katika ghala hili la data.

Data ya uendeshaji inakusanywa kutoka vyanzo mbalimbali, kusafishwa, kuunganishwa na kuhifadhiwa katika ghala la data. Zaidi ya hayo, tayari zinapatikana kwa uchambuzi kwa kutumia zana mbalimbali za kuripoti. Kisha data (yote au sehemu) inatayarishwa kwa uchanganuzi wa OLAP. Wanaweza kupakiwa kwenye hifadhidata maalum ya OLAP au kuachwa katika hifadhidata ya uhusiano. Kipengele muhimu zaidi cha kutumia OLAP ni metadata, i.e. habari kuhusu muundo, uwekaji na mabadiliko ya data. Shukrani kwao, mwingiliano mzuri wa vipengele mbalimbali vya uhifadhi huhakikishwa.

Hivyo, OLAP inaweza kufafanuliwa kama seti ya zana za uchanganuzi wa data wa pande nyingi zilizokusanywa katika ghala la data.. Kinadharia, zana za OLAP zinaweza kutumika moja kwa moja kwenye data ya uendeshaji au nakala zao halisi. Hata hivyo, kuna hatari ya kuwasilisha data kwa uchambuzi ambayo haifai kwa uchambuzi huu.

OLAP kwenye mteja na seva

OLAP inategemea uchanganuzi wa data wa pande nyingi. Inaweza kuzalishwa kwa kutumia zana mbalimbali, ambazo zinaweza kugawanywa katika mteja na seva zana OLAP.

Zana za mteja wa OLAP ni programu zinazokokotoa data iliyojumlishwa (jumla, wastani, thamani ya juu zaidi au ya chini zaidi) na kuzionyesha, huku data ya jumla yenyewe ikiwa katika akiba ndani ya nafasi ya anwani ya zana kama hiyo ya OLAP.

Ikiwa data chanzo iko kwenye DBMS ya eneo-kazi, ukokotoaji wa data ya jumla hufanywa na zana ya OLAP yenyewe. Ikiwa chanzo cha data ya awali ni DBMS ya seva, zana nyingi za mteja za OLAP hutuma hoja za SQL zilizo na opereta GROUP BY kwa seva, na matokeo yake hupokea data ya jumla iliyokokotwa kwenye seva.

Kama sheria, utendakazi wa OLAP hutekelezwa katika zana za usindikaji wa takwimu (za bidhaa za darasa hili, bidhaa kutoka kwa Stat Soft na SPSS hutumiwa sana kwenye soko la Urusi) na katika baadhi ya lahajedwali. Hasa, Microsoft Excel 2000 ina zana nzuri za uchanganuzi wa pande nyingi. Kwa kutumia bidhaa hii, unaweza kuunda na kuhifadhi kama faili mchemraba mdogo wa karibu wa OLAP wa pande nyingi na kuonyesha sehemu zake za pande mbili au tatu.

Nyingi zana za maendeleo vyenye maktaba ya madarasa au vijenzi vinavyokuruhusu kuunda programu zinazotekeleza utendakazi rahisi wa OLAP (kama vile, kwa mfano, vipengele vya Decision Cube katika Borland Delphi na Borland C++ Builder). Aidha, makampuni mengi hutoa vidhibiti ActiveX na maktaba zingine zinazotekeleza utendakazi sawa.

Kumbuka kuwa zana za mteja za OLAP hutumiwa, kama sheria, na idadi ndogo ya vipimo (kawaida sio zaidi ya sita hupendekezwa) na aina ndogo ya maadili ya vigezo hivi - baada ya yote, data ya jumla inayotokana lazima ilingane na nafasi ya anwani ya zana kama hiyo, na idadi yao inakua kwa kasi kadri nambari inavyoongezeka vipimo Kwa hivyo, hata zana za OLAP za mteja wa zamani, kama sheria, huruhusu hesabu ya awali ya kiasi cha RAM inayohitajika kuunda mchemraba wa multidimensional ndani yake.

Zana nyingi (lakini sio zote) za mteja wa OLAP hukuruhusu kuhifadhi yaliyomo kwenye kashe na data ya jumla kama faili, ambayo, kwa upande wake, hukuruhusu kuzuia kuzihesabu tena. Kumbuka kuwa fursa hii mara nyingi hutumiwa kutenganisha data iliyojumlishwa kwa madhumuni ya kuihamisha kwa mashirika mengine au kuchapishwa. Mfano wa kawaida wa data kama hiyo ya jumla inayoweza kutengwa ni takwimu za magonjwa katika mikoa tofauti na katika vikundi tofauti vya umri, ambazo ni habari wazi zilizochapishwa na wizara za afya za nchi mbalimbali na Shirika la Afya Duniani. Wakati huo huo, data ya awali yenyewe, ambayo inawakilisha habari kuhusu kesi maalum za magonjwa, ni data ya siri kutoka kwa taasisi za matibabu na hakuna kesi inapaswa kuanguka mikononi mwa makampuni ya bima, kiasi kidogo kuwa hadharani.

Wazo la kuhifadhi kache ya data ya jumla katika faili iliendelezwa zaidi katika zana za seva za OLAP, ambapo kuhifadhi na kubadilisha data ya jumla, pamoja na kuhifadhi uhifadhi ulio nao, hufanywa na programu tofauti au mchakato unaoitwa. Seva ya OLAP. Programu za mteja zinaweza kuomba hifadhi kama hiyo ya pande nyingi na kupokea data fulani kwa kujibu. Baadhi ya programu za mteja zinaweza pia kuunda maduka kama hayo au kusasisha kulingana na data ya chanzo iliyobadilishwa.

Faida za kutumia zana za seva za OLAP ikilinganishwa na zana za mteja za OLAP ni sawa na faida za kutumia DBMS za seva ikilinganishwa na zile za mezani: katika kesi ya kutumia zana za seva, hesabu na uhifadhi wa data ya jumla hufanyika kwenye seva, na programu ya mteja. inapokea tu matokeo ya maswali dhidi yao, ambayo inaruhusu kwa ujumla, kupunguza trafiki ya mtandao, muda wa kuongoza maombi na mahitaji ya rasilimali zinazotumiwa na maombi ya mteja. Kumbuka kuwa zana za uchanganuzi wa data na usindikaji wa biashara, kama sheria, zinatokana na zana za seva za OLAP, kwa mfano, Oracle Express Server, Microsoft SQL Server 2000 Analysis Services, Hyperion Essbase, bidhaa kutoka kwa Crystal Decisions, Business Objects, Cognos, SAS. Taasisi. Kwa kuwa watengenezaji wote wanaoongoza wa seva za DBMS huzalisha (au wana leseni kutoka kwa kampuni zingine) zana moja au nyingine ya seva ya OLAP, chaguo ni pana kabisa, na karibu kila kesi unaweza kununua seva ya OLAP kutoka kwa mtengenezaji sawa na seva ya hifadhidata yenyewe. .

Kumbuka kuwa zana nyingi za mteja za OLAP (haswa, Microsoft Excel 2003, Seagate Analysis, n.k.) hukuruhusu kufikia hifadhi za seva za OLAP, zikifanya kazi katika kesi hii kama programu za mteja zinazotekeleza hoja kama hizo. Kwa kuongeza, kuna bidhaa nyingi ambazo ni maombi ya mteja kwa zana za OLAP kutoka kwa wazalishaji mbalimbali.

Vipengele vya kiufundi vya uhifadhi wa data wa multidimensional

Ghala za data za pande nyingi zina data ya jumla ya viwango tofauti vya maelezo, kwa mfano, kiasi cha mauzo kwa siku, mwezi, mwaka, kulingana na aina ya bidhaa, nk. Madhumuni ya kuhifadhi data ya jumla ni kupunguza muda wa kuongoza maombi, kwa kuwa katika hali nyingi, kwa uchambuzi na utabiri, sio maelezo ya kina, lakini data ya muhtasari ambayo ni ya riba. Kwa hiyo, wakati wa kuunda database ya multidimensional, baadhi ya data ya jumla daima huhesabiwa na kuhifadhiwa.

Kumbuka kwamba kuhifadhi data yote ya jumla sio haki kila wakati. Ukweli ni kwamba wakati vipimo vipya vinaongezwa, kiasi cha data kinachounda mchemraba kinakua kwa kasi (wakati mwingine huzungumzia "ukuaji wa kulipuka" wa kiasi cha data). Kwa usahihi, kiwango cha ukuaji katika kiasi cha data ya jumla inategemea idadi ya vipimo vya mchemraba na wanachama wa vipimo katika ngazi mbalimbali za viwango vya vipimo hivi. Ili kutatua tatizo la "ukuaji wa kulipuka", mipango mbalimbali hutumiwa, ambayo inafanya uwezekano wa kufikia kasi inayokubalika ya utekelezaji wa swala wakati wa kuhesabu si data zote zinazowezekana za jumla.

Data mbichi na ya jumla inaweza kuhifadhiwa katika miundo ya uhusiano au ya pande nyingi. Kwa hiyo, njia tatu za kuhifadhi data zinatumika sasa.

  • MOLAP(Multidimensional OLAP) - data ya chanzo na jumla huhifadhiwa katika hifadhidata ya pande nyingi. Kuhifadhi data katika miundo ya multidimensional inakuwezesha kudhibiti data kama safu ya multidimensional, kwa sababu ambayo kasi ya kuhesabu maadili ya jumla ni sawa kwa vipimo vyovyote. Hata hivyo, katika kesi hii, hifadhidata ya multidimensional haina maana, kwa kuwa data ya multidimensional ina data ya awali ya uhusiano.
  • ROLAP(OLAP ya Uhusiano) - data asili inasalia katika hifadhidata ile ile ya uhusiano ambapo ilipatikana hapo awali. Data ya jumla huwekwa kwenye jedwali la huduma iliyoundwa mahususi kwa ajili ya kuihifadhi kwenye hifadhidata sawa.
  • SHINDA(Mseto OLAP) - data asili inasalia katika hifadhidata ile ile ya uhusiano ambapo ilipatikana hapo awali, na data ya jumla huhifadhiwa katika hifadhidata ya pande nyingi.

Baadhi ya zana za OLAP zinaauni kuhifadhi data katika miundo ya uhusiano pekee, nyingine katika miundo ya pande nyingi pekee. Hata hivyo, zana nyingi za kisasa za seva za OLAP zinaunga mkono mbinu zote tatu za kuhifadhi data. Chaguo la njia ya kuhifadhi inategemea kiasi na muundo wa data ya chanzo, mahitaji ya kasi ya utekelezaji wa hoja na mzunguko wa kusasisha cubes za OLAP.

Kumbuka pia kuwa idadi kubwa ya zana za kisasa za OLAP hazihifadhi thamani "tupu" (mfano wa thamani "tupu" itakuwa kukosekana kwa mauzo ya bidhaa ya msimu nje ya msimu).

Dhana za Msingi za OLAP

Mtihani wa FAMSI

Teknolojia ya uchanganuzi changamano wa data ya pande nyingi inaitwa OLAP (Uchakataji wa Uchanganuzi wa Mtandao). OLAP ni sehemu muhimu ya shirika la ghala la data. Wazo la OLAP lilielezewa mnamo 1993 na Edgar Codd, mtafiti maarufu wa hifadhidata na mwandishi wa modeli ya data ya uhusiano. Mnamo 1995, kulingana na mahitaji yaliyowekwa na Codd, kinachojulikana Mtihani wa FASMI(Uchambuzi wa Haraka wa Taarifa za Multidimensional Zilizoshirikiwa) - uchanganuzi wa haraka wa maelezo ya pande nyingi yaliyoshirikiwa, ikijumuisha mahitaji yafuatayo ya maombi ya uchanganuzi wa pande nyingi:

  • Haraka(Haraka) - kumpa mtumiaji matokeo ya uchambuzi kwa wakati unaokubalika (kawaida si zaidi ya 5 s), hata kwa gharama ya uchambuzi mdogo wa kina;
  • Uchambuzi(Uchambuzi) - uwezo wa kufanya uchambuzi wowote wa kimantiki na wa takwimu maalum kwa programu fulani na kuihifadhi katika fomu inayopatikana kwa mtumiaji wa mwisho;
  • Imeshirikiwa(Imeshirikiwa) - ufikiaji wa watumiaji wengi kwa data na usaidizi wa njia zinazofaa za kufunga na njia za ufikiaji zilizoidhinishwa;
  • Multidimensional(Multidimensional) - uwakilishi wa dhana nyingi za data, ikiwa ni pamoja na usaidizi kamili wa safu na viwango vingi (hii ni mahitaji muhimu ya OLAP);
  • Habari(Habari) - maombi lazima iweze kupata taarifa yoyote muhimu, bila kujali kiasi chake na eneo la kuhifadhi.

Ikumbukwe kwamba utendakazi wa OLAP unaweza kutekelezwa kwa njia mbalimbali, kutoka kwa zana rahisi zaidi za uchambuzi wa data katika maombi ya ofisi hadi mifumo ya uchambuzi iliyosambazwa kulingana na bidhaa za seva.

Uwakilishi wa multidimensional wa habari

cubes

OLAP hutoa njia rahisi, za haraka za kufikia, kutazama, na kuchanganua maelezo ya biashara. Mtumiaji hupokea asili, angavu mfano wa data, kuzipanga kwa namna ya cubes za multidimensional (Cubes). Axes ya mfumo wa kuratibu wa multidimensional ni sifa kuu za mchakato wa biashara uliochambuliwa. Kwa mfano, kwa mauzo inaweza kuwa bidhaa, kanda, aina ya mnunuzi. Muda hutumika kama moja ya vipimo. Katika makutano ya axes kipimo (Vipimo) kuna data kwamba quantitatively tabia mchakato - hatua (Hatua). Hii inaweza kuwa kiasi cha mauzo katika vipande au kwa masharti ya fedha, salio la hisa, gharama, n.k. Mtumiaji anayechanganua maelezo anaweza "kukata" mchemraba katika mwelekeo tofauti, kupata muhtasari (kwa mfano, kwa mwaka) au, kinyume chake, maelezo ya kina ( kwa wiki. ) habari na kutekeleza udanganyifu mwingine unaokuja akilini mwake wakati wa mchakato wa uchambuzi.

Kama hatua katika mchemraba wa pande tatu inavyoonyeshwa kwenye Mtini. 26.1, kiasi cha mauzo kinatumika, na wakati, bidhaa na duka hutumiwa kama vipimo. Vipimo vinawasilishwa katika viwango maalum vya kuweka vikundi: bidhaa zimewekwa kulingana na kategoria, duka kulingana na nchi, na data ya muda wa ununuzi kwa mwezi. Baadaye kidogo tutaangalia viwango vya kambi ( uongozi) kwa undani zaidi.


Mchele. 26.1.

"Kukata" mchemraba

Hata mchemraba wa pande tatu ni ngumu kuonyesha kwenye skrini ya kompyuta ili maadili ya hatua za kupendeza zionekane. Tunaweza kusema nini kuhusu cubes na vipimo zaidi ya tatu? Ili kuibua data iliyohifadhiwa katika mchemraba, kama sheria, mitazamo inayojulikana ya pande mbili, i.e., maoni ya jedwali yenye safu tata ya safu na vichwa vya safu hutumiwa.

Uwakilishi wa pande mbili za mchemraba unaweza kupatikana kwa "kukata" kwa njia ya kuvuka kwa shoka moja au zaidi (vipimo): tunarekebisha maadili ya vipimo vyote isipokuwa mbili, na tunapata meza ya kawaida ya pande mbili. Mhimili mlalo wa jedwali (vichwa vya safu wima) huwakilisha kipimo kimoja, mhimili wima (vichwa vya safu mlalo) huwakilisha mwingine, na seli za jedwali zinawakilisha maadili ya vipimo. Katika kesi hii, seti ya hatua kwa kweli inazingatiwa kama moja ya vipimo: tunachagua kipimo kimoja cha kuonyesha (kisha tunaweza kuweka vipimo viwili kwenye safu na vichwa vya safu), au kuonyesha hatua kadhaa (na kisha moja ya safu. shoka za meza zitachukuliwa na majina ya hatua, na nyingine kwa maadili ya mwelekeo pekee "usiokatwa").

(ngazi). Kwa mfano, lebo zilizowasilishwa hazihimiliwi na zana zote za OLAP. Kwa mfano, Huduma za Uchambuzi za Microsoft 2000 zinaauni aina zote mbili za uongozi, lakini Huduma za Microsoft OLAP 7.0 zinaauni zilizosawazishwa pekee. Idadi ya viwango vya daraja, idadi ya juu zaidi inayoruhusiwa ya wanachama wa ngazi moja, na idadi ya juu iwezekanavyo ya vipimo vyenyewe vinaweza kuwa tofauti katika zana tofauti za OLAP.

Usanifu wa programu za OLAP

Kila kitu kilichosemwa hapo juu kuhusu OLAP kimsingi kinahusiana na uwasilishaji wa data wa pande nyingi. Jinsi data inavyohifadhiwa, kwa ufupi, haihusu mtumiaji wa mwisho au wasanidi wa zana ambayo mteja hutumia.

Multidimensionality katika programu za OLAP inaweza kugawanywa katika viwango vitatu.

  • Uwakilishi wa data wa pande nyingi - zana za mtumiaji wa mwisho ambazo hutoa taswira ya pande nyingi na upotoshaji wa data; Safu ya uwakilishi wa pande nyingi huchota kutoka kwa muundo halisi wa data na huchukulia data kama ya pande nyingi.
  • Uchakataji wa pande nyingi ni njia (lugha) ya kuunda maswali ya pande nyingi (lugha ya kimahusiano ya SQL haifai hapa) na kichakataji ambacho kinaweza kuchakata na kutekeleza hoja kama hiyo.
  • Uhifadhi wa multidimensional ni njia ya kupanga data kimwili ambayo inahakikisha utekelezaji bora wa maswali ya multidimensional.

Viwango viwili vya kwanza ni vya lazima katika zana zote za OLAP. Ngazi ya tatu, ingawa imeenea, sio lazima, kwa kuwa data ya uwakilishi wa multidimensional inaweza kutolewa kutoka kwa miundo ya kawaida ya uhusiano; Kichakataji cha hoja za pande nyingi katika kesi hii hutafsiri maswali ya pande nyingi katika hoja za SQL ambazo hutekelezwa na DBMS ya uhusiano.

Bidhaa mahususi za OLAP, kama sheria, ni aidha zana ya uwasilishaji wa data ya pande nyingi (mteja wa OLAP - kwa mfano, Jedwali la Pivot katika Excel 2000 kutoka kwa Microsoft au ProClarity kutoka Knosys) au seva ya multidimensional DBMS (seva ya OLAP - kwa mfano, Seva ya Oracle Express au Huduma za Microsoft OLAP).

Safu ya uchakataji yenye pande nyingi kwa kawaida hujengwa ndani ya mteja wa OLAP na/au seva ya OLAP, lakini inaweza kutengwa katika hali yake safi, kama vile kipengele cha Huduma ya Jedwali cha Pivot cha Microsoft.

Nimekuwa mkazi wa Habr kwa muda mrefu, lakini sijawahi kusoma nakala juu ya mada ya cubes za multidimensional, OLAP na MDX, ingawa mada hiyo inavutia sana na inazidi kuwa muhimu kila siku.
Sio siri kwamba wakati huo mfupi wa wakati wa maendeleo ya hifadhidata, uhasibu wa elektroniki na mifumo ya mtandaoni, data nyingi yenyewe imekusanya. Sasa, uchambuzi kamili wa kumbukumbu, na labda jaribio la kutabiri hali za mifano sawa katika siku zijazo, pia ni ya kupendeza.
Kwa upande mwingine, makampuni makubwa, hata kwa kipindi cha miaka kadhaa, miezi au hata wiki, yanaweza kukusanya kiasi kikubwa cha data kwamba hata uchambuzi wao wa msingi unahitaji mbinu za ajabu na mahitaji magumu ya vifaa. Hizi zinaweza kuwa mifumo ya usindikaji wa miamala ya benki, mawakala wa hisa, waendeshaji simu, nk.
Nadhani kila mtu anafahamu vyema mbinu 2 tofauti za muundo wa hifadhidata: OLTP na OLAP. Njia ya kwanza (Uchakataji wa Miamala ya Mtandaoni - usindikaji wa wakati halisi) imeundwa kwa ajili ya ukusanyaji wa data kwa ufanisi katika muda halisi, wakati ya pili (Uchanganuzi wa Mtandaoni - usindikaji wa uchambuzi wa wakati halisi) inalenga hasa sampuli na usindikaji wa data kwa ufanisi zaidi. njia.

Wacha tuangalie uwezo mkuu wa cubes za kisasa za OLAP na ni shida gani wanasuluhisha (Huduma za Uchambuzi 2005/2008 zinachukuliwa kama msingi):

  • ufikiaji wa haraka wa data
  • utangulizi
  • uongozi
  • kufanya kazi kwa wakati
  • lugha ya ufikiaji wa data nyingi
  • KPI (Viashiria Muhimu vya Utendaji)
  • uchimbaji wa tarehe
  • caching ya ngazi nyingi
  • usaidizi wa lugha nyingi
Kwa hiyo, hebu tuangalie uwezo wa cubes OLAP kwa undani zaidi.

Zaidi kidogo juu ya uwezekano

Ufikiaji wa haraka wa data
Kwa kweli, ufikiaji wa haraka wa data, bila kujali saizi ya safu, ndio msingi wa mifumo ya OLAP. Kwa kuwa hili ndilo lengo kuu, ghala la data kawaida hujengwa kwa kanuni tofauti na zile za hifadhidata za uhusiano.
Hapa, muda wa kuleta data rahisi hupimwa kwa sehemu za sekunde, na hoja inayozidi sekunde chache huenda ikahitaji uboreshaji.

Kutanguliza
Kando na kurejesha data iliyopo kwa haraka, pia hutoa uwezo wa kujumlisha thamani "zinazo uwezekano mkubwa wa kutumika". Kwa mfano, ikiwa tuna rekodi za kila siku za mauzo ya bidhaa fulani, mfumo Labda Tunaweza pia kujumlisha kiasi cha mauzo ya kila mwezi na robo mwaka, kumaanisha kwamba tukiomba data kila mwezi au robo mwaka, mfumo utatupatia matokeo papo hapo. Kwa nini ujumlisho wa awali haufanyiki kila wakati? Kwa sababu mchanganyiko wa kinadharia wa bidhaa/wakati/nk. kunaweza kuwa na idadi kubwa, ambayo inamaanisha unahitaji kuwa na sheria wazi ambazo kusanyiko litajengwa na ambalo sio. Kwa ujumla, mada ya kuzingatia sheria hizi na muundo halisi wa mikusanyiko ni pana sana na inastahili nakala tofauti yenyewe.

Daraja
Ni kawaida kwamba wakati wa kuchambua data na kuunda ripoti za mwisho, kuna haja ya kuzingatia ukweli kwamba miezi inajumuisha siku, na wao wenyewe huunda robo, na miji imejumuishwa katika maeneo, ambayo kwa upande wake ni sehemu ya mikoa au nchi. . Habari njema ni kwamba cubes za OLAP mwanzoni hutazama data kulingana na viwango na uhusiano na vigezo vingine vya huluki sawa, kwa hivyo kujenga na kutumia safu katika cubes ni rahisi sana.

Kufanya kazi na wakati
Kwa kuwa uchanganuzi wa data hufanyika hasa katika maeneo ya saa, muda hupewa umuhimu maalum katika mifumo ya OLAP, ambayo ina maana kwamba kwa kubainisha kwa urahisi mfumo ambapo tuna muda hapa, katika siku zijazo unaweza kutumia kwa urahisi vipengele kama vile Mwaka Hadi Sasa, Mwezi Hadi Sasa. ( kipindi cha kuanzia mwanzo wa mwaka/mwezi hadi tarehe ya sasa), Kipindi Sambamba (siku moja au mwezi huo huo, lakini mwaka jana), nk.

Lugha ya Ufikiaji Data ya Multidimensional
MDX(Maelezo ya Multidimensional) - lugha ya kuuliza kwa ufikiaji rahisi na mzuri wa miundo ya data ya pande nyingi. Na hiyo inasema yote - kutakuwa na mifano michache hapa chini.

Viashiria Muhimu vya Utendaji (KPI)
Viashiria Muhimu vya Utendaji ni mfumo wa upimaji wa kifedha na usio wa kifedha ambao husaidia shirika kuamua kufikiwa kwa malengo ya kimkakati. Viashiria muhimu vya utendaji vinaweza kufafanuliwa kwa urahisi kabisa katika mifumo ya OLAP na kutumika katika ripoti.

Tarehe ya uchimbaji madini
Uchimbaji Data(Uchimbaji wa Data) - kimsingi, kutambua mifumo iliyofichwa au uhusiano kati ya vigeuzo katika seti kubwa za data.
Neno la Kiingereza "Data Mining" halina tafsiri isiyoeleweka kwa Kirusi (uchimbaji data, uchimbaji wa data, uchimbaji wa habari, uchimbaji wa data/habari) kwa hivyo mara nyingi hutumiwa katika asili. Tafsiri isiyo ya moja kwa moja yenye mafanikio zaidi ni neno “data mining” (DMA). Walakini, hii ni mada tofauti, sio chini ya kuvutia ya kuzingatia.

Uhifadhi wa viwango vingi
Kwa kweli, ili kuhakikisha kasi ya juu zaidi ya ufikiaji wa data, pamoja na miundo ya data ya hila na ujumuishaji wa awali, mifumo ya OLAP inasaidia uhifadhi wa viwango vingi. Mbali na kuakibisha maswali rahisi, sehemu za data zilizosomwa kutoka dukani, thamani zilizojumlishwa, na thamani zilizokokotwa pia zimehifadhiwa. Kwa hivyo, unapofanya kazi kwa muda mrefu na mchemraba wa OLAP, ndivyo inavyoanza kufanya kazi haraka. Pia kuna dhana ya "kuongeza joto kwenye akiba" - operesheni inayotayarisha mfumo wa OLAP wa kufanya kazi na ripoti mahususi, hoja, au zote kwa pamoja.

Usaidizi wa lugha nyingi
Ndio ndio ndio. Kwa uchache, Huduma za Uchambuzi 2005/2008 (ingawa Toleo la Biashara) kwa asili zinakubali matumizi ya lugha nyingi. Inatosha kutoa tafsiri ya vigezo vya mfuatano wa data yako, na mteja aliyebainisha lugha yake atapokea data iliyojanibishwa.

Cube za multidimensional

Kwa hivyo ni nini hasa hizi cubes za multidimensional?
Hebu tufikirie nafasi ya pande-3 ambayo shoka zake ni Muda, Bidhaa na Wateja.
Hatua katika nafasi hiyo itaonyesha ukweli kwamba mmoja wa wanunuzi alinunua bidhaa maalum katika mwezi fulani.

Kwa kweli, ndege (au seti ya pointi zote hizo) itakuwa mchemraba, na, ipasavyo, Muda, Bidhaa na Wateja watakuwa vipimo vyake.
Ni ngumu zaidi kufikiria (na kuchora) mchemraba wa nne-dimensional au zaidi, lakini kiini haibadilika, na muhimu zaidi, kwa mifumo ya OLAP haijalishi hata katika vipimo ngapi utafanya kazi (ndani ya busara). mipaka, bila shaka).

Kidogo cha MDX

Kwa hivyo, uzuri wa MDX ni nini? Uwezekano mkubwa zaidi, ni kwamba tunahitaji kuelezea sio jinsi tunataka kuchagua data, lakini Nini hasa tunataka.
Kwa mfano,
CHAGUA
( . ) KWENYE safu wima,
( ., . ) KWENYE SAFU
KUTOKA
WAPI (.,.)

Maana yake nataka idadi ya iPhones zinazouzwa mwezi Juni na Julai nchini Msumbiji.
Wakati huo huo ninaelezea ambayo hii ndio data ninayotaka na Vipi Ninataka kuwaona kwenye ripoti.
Mrembo, sivyo?

Hapa kuna ngumu zaidi:

PAMOJA NA MWANACHAMA WastaniTumia AS
. / .
CHAGUA
(WastaniTumia) KWENYE safu wima,
( .., .. ) KWENYE SAFU
KUTOKA
WAPI (.)

* Msimbo huu wa chanzo uliangaziwa kwa Kiangazia Chanzo cha Msimbo.

Kwa kweli, kwanza tunaamua formula ya kuhesabu "ukubwa wa wastani wa ununuzi" na jaribu kulinganisha ni nani (jinsia gani) anatumia pesa zaidi katika ziara moja kwenye duka la Apple.

Lugha yenyewe inavutia sana kusoma na kutumia, na labda inastahili mjadala mwingi.

Hitimisho

Kwa kweli, nakala hii inashughulikia dhana ndogo sana hata za kimsingi; ningeiita "kivutio" - fursa ya kuvutia jamii ya Habra katika mada hii na kuikuza zaidi. Kuhusu maendeleo, kuna shamba kubwa ambalo halijapandwa hapa, na nitafurahi kujibu maswali yako yote.

P.S. Hili ni chapisho langu la kwanza kuhusu OLAP na chapisho la kwanza kuhusu Habre - nitashukuru sana kwa maoni yenye kujenga.
Sasisha: Niliihamisha hadi SQL, nitaihamisha hadi OLAP punde tu watakaponiruhusu kuunda blogu mpya.

Lebo: Ongeza vitambulisho

Katika jedwali la egemeo la kawaida, data chanzo huhifadhiwa kwenye diski kuu ya eneo lako. Kwa njia hii, unaweza kudhibiti na kupanga upya kila wakati, hata bila ufikiaji wa mtandao. Lakini hii haitumiki kwa majedwali egemeo ya OLAP. Katika majedwali egemeo ya OLAP, akiba haihifadhiwi kamwe kwenye diski kuu ya ndani. Kwa hivyo, mara tu baada ya kutenganisha kutoka kwa mtandao wa ndani, jedwali lako la egemeo halitafanya kazi tena. Hutaweza kuhamisha sehemu moja ndani yake.

Ikiwa bado unahitaji kuchanganua data ya OLAP baada ya kwenda nje ya mtandao, tengeneza mchemraba wa data wa nje ya mtandao. Mchemraba wa data wa nje ya mtandao ni faili tofauti ambayo ni akiba ya jedwali egemeo na huhifadhi data ya OLAP ambayo hutazamwa baada ya kukatwa kwenye mtandao wa ndani. Data ya OLAP iliyonakiliwa kwenye jedwali la egemeo inaweza kuchapishwa; hii inaelezwa kwa kina kwenye tovuti http://everest.ua.

Ili kuunda mchemraba wa data unaojitegemea, kwanza unda jedwali la egemeo la OLAP. Weka kishale ndani ya jedwali la egemeo na ubofye kitufe cha Zana za OLAP kwenye kichupo cha muktadha cha Zana, ambacho ni sehemu ya kikundi cha kichupo cha PivotTable Tools. Chagua amri ya OLAP ya Nje ya Mtandao (Mchoro 9.8).

Kisanduku cha mazungumzo cha Mipangilio ya Mchemraba wa Data ya OLAP ya Nje ya Mtandao inaonekana kwenye skrini. Bofya kwenye kitufe cha Unda Faili ya Data ya Nje ya Mtandao. Umezindua Mchawi wa Faili ya Unda Data Cube. Bonyeza kifungo Ifuatayo ili kuendelea na utaratibu.

Kwanza unahitaji kutaja vipimo na viwango ambavyo vitajumuishwa kwenye mchemraba wa data. Katika sanduku la mazungumzo, lazima uchague data ambayo italetwa kutoka kwa hifadhidata ya OLAP. Wazo ni kutaja vipimo tu ambavyo vitahitajika baada ya kompyuta kukatwa kutoka kwa mtandao wa ndani. Vipimo zaidi unavyobainisha, ndivyo mchemraba wa data unaojiendesha utakuwa mkubwa.

Bofya kitufe Inayofuata ili kuhamia kisanduku kidadisi kifuatacho cha mchawi. Hii inakupa uwezo wa kubainisha wanachama au vipengele vya data ambavyo havitajumuishwa kwenye mchemraba. Hasa, hutahitaji kipimo cha Kiasi Kinachoongezwa cha Mauzo ya Mtandaoni, kwa hivyo kisanduku chake cha kuteua kitafutwa kwenye orodha. Sanduku la tiki lililofutwa linaonyesha kuwa kipengee kilichoainishwa hakitaingizwa na kuchukua nafasi isiyo ya lazima kwenye diski kuu ya eneo lako.

Katika hatua ya mwisho, taja eneo na jina la mchemraba wa data. Kwa upande wetu, faili ya mchemraba itaitwa MyOfflineCube.cub na itakuwa iko kwenye folda ya Kazi.

Faili za mchemraba wa data zina kiendelezi .mtoto

Baada ya muda fulani, Excel itahifadhi mchemraba wa data nje ya mtandao kwenye folda maalum. Ili kuipima, bofya mara mbili kwenye faili, ambayo itazalisha kiotomatiki kitabu cha kazi cha Excel ambacho kina jedwali la egemeo linalohusishwa na mchemraba wa data uliochaguliwa. Baada ya kuunda, unaweza kusambaza mchemraba wa data wa nje ya mtandao kwa watumiaji wote wanaovutiwa ambao wanafanya kazi katika hali ya LAN ya nje ya mtandao.

Baada ya kuunganishwa kwenye mtandao wako wa karibu, unaweza kufungua faili ya mchemraba wa data ya nje ya mtandao na kuisasisha na jedwali la data husika. Kanuni kuu inasema kwamba mchemraba wa data ya nje ya mtandao hutumiwa tu kufanya kazi wakati mtandao wa ndani umekatika, lakini inahitajika kusasishwa baada ya uunganisho kurejeshwa. Kujaribu kusasisha mchemraba wa data wa nje ya mtandao baada ya kukatika kwa muunganisho kutasababisha kutofaulu.

Mifumo ya habari ya biashara kubwa, kama sheria, ina programu iliyoundwa kwa uchambuzi mgumu wa data, mienendo yao, mwelekeo, nk. Ipasavyo, usimamizi wa juu unakuwa watumiaji wakuu wa matokeo ya uchambuzi. Uchambuzi kama huo hatimaye unakusudiwa kusaidia kufanya maamuzi. Na ili kufanya uamuzi wowote wa usimamizi, ni muhimu kuwa na taarifa muhimu, kwa kawaida kiasi. Ili kufanya hivyo, ni muhimu kukusanya data hii kutoka kwa mifumo yote ya habari ya biashara, kuleta kwa muundo wa kawaida na kisha tu kuchambua. Kwa kusudi hili, Hifadhi za Data zinaundwa.

Ghala la data ni nini?

Kawaida - mahali ambapo habari zote za thamani ya uchambuzi hukusanywa. Mahitaji ya maduka hayo yanahusiana na ufafanuzi wa classic wa OLAP na itaelezwa hapa chini.

Wakati mwingine Ghala ina lengo lingine - ujumuishaji wa data zote za biashara, kudumisha uadilifu na umuhimu wa habari ndani ya mifumo yote ya habari. Hiyo. hazina hukusanya si tu uchambuzi, lakini karibu taarifa zote, na inaweza kutoa katika mfumo wa saraka nyuma kwa mifumo mingine.

Ghala la kawaida la data kwa kawaida ni tofauti na hifadhidata ya kawaida ya uhusiano. Kwanza, hifadhidata za kawaida zimeundwa ili kuwasaidia watumiaji kufanya kazi ya kila siku, huku maghala ya data yameundwa kwa ajili ya kufanya maamuzi. Kwa mfano, uuzaji wa bidhaa na utoaji wa ankara unafanywa kwa kutumia database iliyoundwa kwa ajili ya usindikaji wa shughuli, na uchambuzi wa mienendo ya mauzo kwa miaka kadhaa, ambayo inaruhusu kupanga kazi na wauzaji, hufanyika kwa kutumia ghala la data.

Pili, ingawa hifadhidata za kitamaduni zinaweza kubadilika kila wakati watumiaji wanapofanya kazi, ghala la data ni thabiti: data iliyo ndani yake kawaida husasishwa kulingana na ratiba (kwa mfano, kila wiki, kila siku, au kila saa, kulingana na mahitaji). Kwa kweli, mchakato wa uboreshaji ni kuongeza data mpya kwa muda bila kubadilisha maelezo ya awali tayari kwenye duka.

Na tatu, hifadhidata za kawaida mara nyingi ndio chanzo cha data inayoishia kwenye ghala. Kwa kuongeza, hazina inaweza kujazwa tena kutoka kwa vyanzo vya nje, kama vile ripoti za takwimu.

Jengo la kuhifadhi hujengwaje?

ETL- dhana ya msingi: hatua tatu:
  • Uchimbaji - kutoa data kutoka kwa vyanzo vya nje katika muundo unaoeleweka;
  • Mabadiliko - mabadiliko ya muundo wa data ya chanzo kuwa miundo rahisi kwa ajili ya kujenga mfumo wa uchambuzi;
Wacha tuongeze hatua moja zaidi - kusafisha data ( Kusafisha) - mchakato wa kuchuja data isiyofaa au kurekebisha data yenye makosa kulingana na mbinu za takwimu au za kitaalamu. Ili usitoe ripoti kama vile "Mauzo ya 20011" baadaye.

Turudi kwenye uchambuzi.

Uchambuzi ni nini na kwa nini inahitajika?

Uchambuzi ni utafiti wa data kwa madhumuni ya kufanya maamuzi. Mifumo ya uchambuzi inaitwa mifumo ya usaidizi wa maamuzi ( DSS).

Hapa inafaa kuashiria tofauti kati ya kufanya kazi na DSS na seti rahisi ya ripoti zilizodhibitiwa na zisizodhibitiwa. Uchambuzi katika DSS karibu kila wakati ni mwingiliano na unaorudiwa. Wale. mchambuzi humba kwenye data, akitunga na kurekebisha maswali ya uchambuzi, na kupokea ripoti, muundo ambao unaweza kuwa haijulikani mapema. Tutarudi kwa hili kwa undani zaidi hapa chini tunapojadili lugha ya maswali. MDX.

OLAP

Mifumo ya usaidizi wa maamuzi kwa kawaida huwa na njia ya kumpa mtumiaji data iliyojumlishwa kwa sampuli mbalimbali kutoka seti asilia katika fomu inayofaa kwa utambuzi na uchanganuzi (meza, chati, n.k.). Mbinu ya kitamaduni ya kugawanya data ya chanzo inahusisha kutoa kutoka kwa data ya chanzo seti moja au zaidi za data zenye pande nyingi (mara nyingi huitwa hypercube au metacube), shoka ambazo zina sifa, na seli zina data iliyojumlishwa ya kiasi. (Data kama hizo zinaweza pia kuhifadhiwa katika meza za uhusiano, lakini katika kesi hii tunazungumza juu ya shirika la kimantiki la data, na sio juu ya utekelezaji wa kimwili wa uhifadhi wao.) Pamoja na kila mhimili, sifa zinaweza kupangwa kwa namna ya hierarchies. kuwakilisha viwango tofauti vya maelezo yao. Shukrani kwa muundo huu wa data, watumiaji wanaweza kutunga maswali changamano, kutoa ripoti na kupata vikundi vidogo vya data.

Teknolojia ya uchanganuzi changamano wa data ya pande nyingi inaitwa OLAP (Uchakataji wa Uchanganuzi wa Mtandao). OLAP ni sehemu muhimu ya uhifadhi wa data wa jadi. Wazo la OLAP lilielezewa mnamo 1993 na Edgar Codd, mtafiti mashuhuri wa hifadhidata na mwandishi wa modeli ya data ya uhusiano. Mnamo 1995, kwa kuzingatia mahitaji yaliyowekwa na Codd, kinachojulikana kama mtihani wa FASMI (Uchambuzi wa Haraka wa Taarifa ya Pamoja ya Multidimensional) iliundwa, ikiwa ni pamoja na mahitaji yafuatayo ya maombi ya uchambuzi wa multidimensional:

  • kumpa mtumiaji matokeo ya uchambuzi kwa wakati unaokubalika (kawaida sio zaidi ya sekunde 5), hata kwa gharama ya uchambuzi wa kina;
  • uwezo wa kufanya uchambuzi wowote wa kimantiki na wa takwimu maalum kwa programu fulani na kuihifadhi katika fomu inayopatikana kwa mtumiaji wa mwisho;
  • ufikiaji wa watumiaji wengi kwa data kwa usaidizi wa njia zinazofaa za kufunga na njia za ufikiaji zilizoidhinishwa;
  • uwakilishi wa dhana nyingi za data, ikijumuisha usaidizi kamili wa madaraja na tabaka nyingi (hili ni hitaji kuu la OLAP);
  • uwezo wa kupata taarifa yoyote muhimu, bila kujali kiasi chake na eneo la kuhifadhi.
Ikumbukwe kwamba utendakazi wa OLAP unaweza kutekelezwa kwa njia mbalimbali, kutoka kwa zana rahisi zaidi za uchambuzi wa data katika maombi ya ofisi hadi mifumo ya uchambuzi iliyosambazwa kulingana na bidhaa za seva. Wale. OLAP sio teknolojia, lakini itikadi.

Kabla ya kuzungumza juu ya utekelezaji mbalimbali wa OLAP, hebu tuchunguze kwa undani ni cubes gani kutoka kwa mtazamo wa kimantiki.

Dhana za multidimensional

Ili kuonyesha kanuni za OLAP, tutatumia hifadhidata ya Northwind, ambayo imejumuishwa na Seva ya Microsoft SQL na ni hifadhidata ya kawaida inayohifadhi taarifa za biashara kwa kampuni ya jumla ya usambazaji wa chakula. Data kama hiyo inajumuisha habari kuhusu wauzaji, wateja, orodha ya bidhaa zinazotolewa na aina zao, data kuhusu maagizo na bidhaa zilizoagizwa, orodha ya wafanyikazi wa kampuni.

Mchemraba

Hebu tuchukue kwa mfano jedwali la ankara1, ambalo lina maagizo ya kampuni. Sehemu katika jedwali hili zitakuwa kama ifuatavyo:
  • Tarehe ya kuagiza
  • Nchi
  • Jiji
  • Jina la mteja
  • Kampuni ya utoaji
  • Jina la bidhaa
  • Wingi wa bidhaa
  • Bei ya agizo
Je, tunaweza kupata data gani ya jumla kutoka kwa mtazamo huu? Kwa kawaida haya ni majibu ya maswali kama vile:
  • Je, ni thamani gani ya jumla ya maagizo yaliyowekwa na wateja kutoka nchi fulani?
  • Je, ni thamani gani ya jumla ya maagizo yaliyowekwa na wateja katika nchi fulani na kutolewa na kampuni fulani?
  • Je, ni thamani gani ya jumla ya maagizo yaliyowekwa na wateja katika nchi fulani katika mwaka fulani na kutolewa na kampuni fulani?
Data hii yote inaweza kupatikana kutoka kwa jedwali hili kwa kutumia maswali ya wazi kabisa ya SQL na kuweka vikundi.

Matokeo ya swali hili daima itakuwa safu ya nambari na orodha ya sifa zinazoelezea (kwa mfano, nchi) - hii ni seti ya data ya mwelekeo mmoja au, kwa lugha ya hisabati, vekta.

Hebu fikiria kwamba tunahitaji kupata taarifa juu ya gharama ya jumla ya maagizo kutoka nchi zote na usambazaji wao kati ya makampuni ya utoaji - tutapata meza (matrix) ya nambari, ambapo makampuni ya utoaji yataorodheshwa kwenye vichwa vya safu, nchi zinazofuatana. vichwa, na katika seli kutakuwa na kiasi cha maagizo. Hii ni safu ya data ya pande mbili. Seti hii ya data inaitwa jedwali la egemeo ( jedwali la egemeo) au crosstab.

Ikiwa tunataka kupata data sawa, lakini pia kwa mwaka, basi mabadiliko mengine yatatokea, i.e. seti ya data itakuwa ya pande tatu (tensor ya mpangilio wa 3 wa masharti au "mchemraba" wa 3-dimensional).

Ni wazi, idadi ya juu zaidi ya vipimo ni idadi ya sifa zote (Tarehe, Nchi, Mteja, n.k.) zinazoelezea data yetu iliyojumlishwa (kiasi cha maagizo, idadi ya bidhaa, n.k.).

Hivi ndivyo tunavyokuja kwenye dhana ya multidimensionality na embodiment yake - mchemraba wa multidimensional. Tutaita meza kama hiyo " meza ya ukweli" Vipimo au Shoka za Mchemraba ( vipimo) ni sifa ambazo viwianishi vyake vinaonyeshwa na maadili ya mtu binafsi ya sifa hizi zilizopo kwenye jedwali la ukweli. Wale. kwa mfano, ikiwa habari kuhusu maagizo ilihifadhiwa katika mfumo kutoka 2003 hadi 2010, basi mhimili wa mwaka huu utakuwa na pointi 8 zinazofanana. Ikiwa maagizo yanatoka nchi tatu, basi mhimili wa nchi utakuwa na pointi 3, nk. Bila kujali ni nchi ngapi zimejumuishwa kwenye saraka ya Nchi. Pointi kwenye mhimili huitwa "wanachama" wake ( Wanachama).

Katika kesi hii, data iliyojumuishwa yenyewe itaitwa "hatua" ( Pima) Ili kuepuka kuchanganyikiwa na "vipimo", mwisho huitwa "axes". Seti ya hatua huunda mhimili mwingine wa "Hatua" ( Vipimo) Ina washiriki wengi (alama) kama kuna hatua (safu zilizojumlishwa) kwenye jedwali la ukweli.

Wanachama wa vipimo au shoka wanaweza kuunganishwa na safu moja au zaidi ( uongozi) Wacha tuelezee uongozi ni nini kwa mfano: miji kutoka kwa maagizo inaweza kuunganishwa kuwa wilaya, wilaya kuwa mikoa, mikoa ya nchi, nchi kuwa mabara au vyombo vingine. Wale. kuna muundo wa tabaka - bara- nchi-kanda-wilaya-mji- viwango 5 ( Kiwango) Kwa eneo, data inajumlishwa kwa miji yote iliyojumuishwa humo. Kwa mkoa katika wilaya zote ambazo zina miji yote, nk. Kwa nini tunahitaji madaraja mengi? Kwa mfano, kwenye mhimili wa tarehe ya kuagiza tunaweza kutaka kupanga pointi (yaani siku) katika daraja. Mwaka-Mwezi-Siku au kwa Mwaka-Wiki-Siku: katika hali zote mbili kuna ngazi tatu. Kwa wazi, Wiki na Mwezi hupanga siku tofauti. Pia kuna madaraja, idadi ya viwango ambayo sio ya kuamua na inategemea data. Kwa mfano, folda kwenye diski ya kompyuta.

Mkusanyiko wa data unaweza kutokea kwa kutumia vitendaji kadhaa vya kawaida: jumla, kiwango cha chini, cha juu, wastani, hesabu.

MDX

Wacha tuendelee kwenye lugha ya maswali katika data ya multidimensional.
Lugha ya SQL awali haikuundwa kwa ajili ya watayarishaji programu, bali kwa wachambuzi (na kwa hivyo ina sintaksia inayofanana na lugha asilia). Lakini baada ya muda ikawa ngumu zaidi na sasa wachambuzi wachache wanajua jinsi ya kuitumia vizuri, ikiwa ni sawa. Imekuwa zana ya watengenezaji wa programu. Lugha ya maswali ya MDX, inayosemekana kuwa ilitengenezwa na mwenzetu wa zamani Mosha (au Mosha) Posumansky katika pori la Microsoft, pia ilikusudiwa awali kulenga wachambuzi, lakini dhana zake na sintaksia (ambayo inawakumbusha wazi SQL, na. bure kabisa, i.e. kwa sababu inachanganya tu), ngumu zaidi kuliko SQL. Hata hivyo, misingi yake bado ni rahisi kuelewa.

Tutaiangalia kwa undani kwa sababu ndiyo lugha pekee iliyopokea hadhi ya kawaida ndani ya mfumo wa kiwango cha itifaki cha jumla cha XMLA, na pili kwa sababu kuna utekelezaji wa chanzo huria katika mfumo wa mradi wa Mondrian kutoka kwa kampuni. Pentaho. Mifumo mingine ya uchanganuzi wa OLAP (kwa mfano, Chaguo la Oracle OLAP) kwa kawaida hutumia viendelezi vyao vya sintaksia ya SQL, hata hivyo, pia hutangaza kuunga mkono MDX.

Kufanya kazi na seti za data za uchanganuzi kunamaanisha kuzisoma tu na haimaanishi kuziandika. Hiyo. MDX haina vifungu vya kubadilisha data, lakini kifungu kimoja tu cha uteuzi - chagua.

Katika OLAP unaweza kufanya cubes multidimensional vipande-yaani. data inapochujwa pamoja na shoka moja au zaidi, au makadirio- wakati mchemraba "unapoanguka" kwenye shoka moja au zaidi, kukusanya data. Kwa mfano, mfano wetu wa kwanza na kiasi cha maagizo kutoka kwa nchi ni makadirio ya mchemraba kwenye mhimili wa Nchi. Swali la MDX la kesi hii litaonekana kama hii:

Chagua ...Watoto kwenye safu mlalo kutoka
Nini hapa?

Chagua- neno muhimu limejumuishwa katika syntax kwa uzuri tu.
ni jina la mhimili. Majina yote sahihi katika MDX yameandikwa katika mabano ya mraba.
ni jina la uongozi. Kwa upande wetu, huu ni uongozi wa Jiji la Nchi
- hii ni jina la mwanachama wa mhimili katika ngazi ya kwanza ya uongozi (yaani nchi) Yote - hii ni meta-memba inayounganisha wanachama wote wa mhimili. Kuna meta-term katika kila mhimili. Kwa mfano, katika mhimili wa mwaka kuna "Miaka yote", nk.
Watoto ni kazi ya mwanachama. Kila mwanachama ana kazi kadhaa zinazopatikana. Kama vile Mzazi. Ngazi, Hierarkia, kurudi kwa mtiririko huo babu, ngazi katika uongozi na uongozi yenyewe ambayo mwanachama ni mali katika kesi hii. Watoto - Hurejesha seti ya watoto wanachama wa mwanachama huyu. Wale. kwa upande wetu - nchi.
kwenye safu- Inaonyesha jinsi ya kupanga data hii kwenye jedwali la matokeo. Katika kesi hii - katika kichwa cha mistari. Thamani zinazowezekana hapa: kwenye safu wima, kwenye kurasa, kwenye aya, n.k. Inawezekana pia kuashiria kwa faharisi, kuanzia 0.
kutoka- hii ni dalili ya mchemraba ambao uteuzi hufanywa.

Je, ikiwa hatuhitaji nchi zote, lakini ni nchi chache tu maalum? Ili kufanya hivyo, tunaweza kubainisha kwa uwazi katika ombi nchi tunazohitaji, badala ya kuchagua kila kitu kwa kutumia kipengele cha Kutendakazi cha Watoto.

Chagua ( ..., ... ) kwenye safu mlalo kutoka
Braces curly katika kesi hii ni tamko la seti ( Weka) Seti ni orodha, hesabu ya wanachama kutoka kwa mhimili mmoja.

Sasa hebu tuandike swali kwa mfano wetu wa pili - pato katika muktadha wa mtu anayewasilisha:

Chagua ...Watoto kwenye safu mlalo .Wanachama kwenye safu wima kutoka
Imeongezwa hapa:
- mhimili;
.Wanachama- kazi ya mhimili ambayo inarudisha masharti yote juu yake. Hierarkia na ngazi zina kazi sawa. Kwa sababu Kuna uongozi mmoja tu katika mhimili huu, basi dalili yake inaweza kuachwa, kwa sababu ngazi na uongozi pia ni sawa, basi unaweza kuonyesha wanachama wote katika orodha moja.

Nadhani tayari ni dhahiri jinsi tunaweza kuendelea na mfano wetu wa tatu kwa undani kwa mwaka. Lakini hebu tusibore chini kwa mwaka, lakini chujio - i.e. jenga kipande Ili kufanya hivyo, tutaandika swali lifuatalo:

Chagua ..Watoto kwenye safu mlalo .Wanachama kwenye safu wima kutoka wapi (.)
Uchujaji uko wapi hapa?

wapi- neno kuu
ni mwanachama mmoja wa uongozi . Jina kamili, pamoja na masharti yote, litakuwa: .. , lakini kwa sababu Kwa kuwa jina la mwanachama huyu ni la kipekee ndani ya mhimili, ufafanuzi wote wa kati wa jina unaweza kuachwa.

Kwa nini neno la tarehe liko kwenye mabano? Mabano ni tuple ( tuple) Tuple ni kuratibu moja au zaidi pamoja mbalimbali shoka Kwa mfano, kuchuja pamoja na shoka mbili mara moja, katika mabano tunaorodhesha maneno mawili kutoka tofauti vipimo vilivyotenganishwa na koma. Hiyo ni, tuple inafafanua "kipande" cha mchemraba (au "kuchuja", ikiwa istilahi hiyo iko karibu).

Tuple inatumika kwa zaidi ya kuchuja tu. Nakala pia zinaweza kuwa katika vichwa vya safu mlalo/safu wima/ukurasa, n.k.

Hii ni muhimu, kwa mfano, ili kuonyesha matokeo ya swala tatu-dimensional katika meza mbili-dimensional.

Chagua mchanganyiko (...Watoto, ..Watoto) kwenye safu mlalo .Wanachama kwenye safu wima kutoka wapi (.)
Kuunganisha ni kazi. Hurejesha seti ya nakala (ndiyo, seti inaweza kuwa na tuples!) Kutokana na bidhaa ya Cartesian ya seti mbili. Wale. seti inayotokana itakuwa na michanganyiko yote inayowezekana ya Nchi na Miaka. Vichwa vya safu mlalo vitakuwa na jozi ya maadili: Nchi-Mwaka.

Swali ni, iko wapi dalili ya sifa gani za nambari zinapaswa kuonyeshwa? Katika kesi hii, kipimo cha default kilichoelezwa kwa mchemraba huu kinatumiwa, i.e. Bei ya agizo. Ikiwa tunataka kupata kipimo kingine, basi tunakumbuka kuwa hatua ni washiriki wa kipimo Vipimo. Na tunatenda kwa njia sawa na kwa shoka zingine. Wale. kuchuja hoja kwa mojawapo ya hatua kutaonyesha kipimo hiki hasa kwenye seli.

Swali: Kuna tofauti gani kati ya kuchuja mahali na kuchuja kwa kubainisha washiriki wa mhimili kwenye safu mlalo. Jibu: kivitendo hakuna. Kwa urahisi ambapo kipande kinaonyeshwa kwa shoka ambazo hazishiriki katika uundaji wa vichwa. Wale. mhimili sawa haiwezi kuwepo kwa wakati mmoja kwenye safu, na katika wapi.

Wanachama waliokokotwa

Kwa hoja ngumu zaidi, unaweza kutangaza washiriki waliokokotwa. Wanachama wa shoka za sifa na kipimo. Wale. Unaweza kutangaza, kwa mfano, kipimo kipya kitakachoonyesha mchango wa kila nchi kwa jumla ya maagizo:

Pamoja na mwanachama. kama '.CurrentMember / ..', FORMAT_STRING='0.00%' chagua ...Watoto kwenye safu mlalo kutoka wapi.
Hesabu hutokea katika muktadha wa seli ambayo sifa zake zote za kuratibu zinajulikana. Viwianishi vinavyolingana (wanachama) vinaweza kupatikana kwa kazi ya CurrentMember kwa kila shoka za mchemraba. Hapa lazima tuelewe kwamba usemi huo .Mwanachama wa Sasa/..' haigawanyi istilahi moja baada ya nyingine, bali inagawanya data husika iliyojumlishwa vipande vya mchemraba! Wale. kipande cha eneo la sasa kitagawanywa katika kipande kwa wilaya zote, i.e. thamani ya jumla ya maagizo yote. FORMAT_STRING - huweka umbizo la kuonyesha thamani, i.e. %.

Mfano mwingine wa mwanachama aliyehesabiwa, lakini kwenye mhimili wa miaka:

Pamoja na mwanachama. kama'. -.’
Kwa wazi, ripoti haitakuwa na kitengo, lakini tofauti ya sehemu zinazofanana, i.e. tofauti ya kiasi cha maagizo katika miaka hii miwili.

Onyesha katika ROLAP

Mifumo ya OLAP ni njia moja au nyingine kulingana na aina fulani ya uhifadhi wa data na mfumo wa shirika. Tunapozungumza kuhusu RDBMS, tunazungumza kuhusu ROLAP (tutaacha MOLAP na HOLAP kwa utafiti wa kujitegemea). ROLAP - OLAP kwenye hifadhidata ya uhusiano, i.e. ilivyoelezwa kwa namna ya meza za kawaida mbili-dimensional. Mifumo ya ROLAP hubadilisha maswali ya MDX kuwa SQL. Tatizo kuu la kompyuta kwa hifadhidata ni mkusanyiko wa haraka. Ili kujumlisha kwa haraka, data katika hifadhidata kawaida hupunguzwa sana, i.e. hazihifadhiwa kwa ufanisi sana katika suala la nafasi ya diski kuchukuliwa na ufuatiliaji wa uadilifu wa hifadhidata. Zaidi ya hayo yana majedwali kisaidizi ambayo huhifadhi data iliyojumlishwa kiasi. Kwa hivyo, kwa OLAP, schema ya hifadhidata tofauti kawaida huundwa, ambayo inaiga kwa sehemu tu muundo wa hifadhidata asili za shughuli kulingana na saraka.

Urambazaji

Mifumo mingi ya OLAP hutoa zana wasilianifu za usogezaji kwa swali ambalo tayari limetolewa (na data iliyochaguliwa ipasavyo). Katika kesi hii, kinachojulikana kama "kuchimba" au "kuchimba" hutumiwa. Tafsiri ifaayo zaidi katika Kirusi ingekuwa neno “kuzaa.” Lakini hii ni suala la ladha, katika mazingira fulani neno "kuchimba visima" limekwama.

Chimba- hii ni ripoti inayoelezea kwa kupunguza kiwango cha ujumlishaji wa data, pamoja na kuchuja kwenye mhimili mwingine (au shoka kadhaa). Kuna aina kadhaa za kuchimba visima:

  • drill-chini- kuchuja kwenye mojawapo ya mhimili wa chanzo cha ripoti kwa kuonyesha maelezo ya kina juu ya vizazi ndani ya daraja la mwanachama aliyechaguliwa wa kuchuja. Kwa mfano, ikiwa kuna ripoti ya usambazaji wa maagizo yaliyogawanywa na Nchi na Miaka, basi kubofya mwaka wa 2007 kutaonyesha ripoti iliyogawanywa na Nchi na miezi sawa ya 2007.
  • drill-upande- kuchuja chini ya shoka moja au zaidi zilizochaguliwa na kuondoa mkusanyiko kwenye shoka moja au zaidi. Kwa mfano, ikiwa kuna ripoti ya usambazaji wa maagizo yaliyotolewa na Nchi na Miaka, kisha kubofya mwaka wa 2007 kutaonyesha ripoti nyingine iliyovunjwa, kwa mfano, ya Nchi na Wasambazaji iliyochujwa kufikia 2007.
  • kuchimba visima- kuondoa mkusanyiko kwenye shoka zote na kuchuja kwa wakati mmoja - hukuruhusu kuona data ya chanzo kutoka kwa jedwali la ukweli ambalo thamani katika ripoti ilipatikana. Wale. Unapobofya thamani ya seli, ripoti itaonyeshwa pamoja na maagizo yote yaliyotoa kiasi hiki. Aina ya kuchimba visima vya papo hapo kwenye "kina" sana cha mchemraba.
Ni hayo tu. Sasa, ukiamua kujitolea kwa Ushauri wa Biashara na OLAP, ni wakati wa kuanza kusoma fasihi nzito.

Lebo: Ongeza vitambulisho