PÄrskats par Agile DWH projektÄÅ”anas metodoloÄ£ijÄm
KrÄtuves izveide ir ilgs un nopietns darbs.
Daudz kas projekta dzÄ«vÄ ir atkarÄ«gs no tÄ, cik labi sÄkumÄ ir pÄrdomÄts objekta modelis un bÄzes struktÅ«ra.
VispÄrpieÅemtÄ pieeja ir bijusi un paliek dažÄdas iespÄjas, kÄ apvienot zvaigžÅu shÄmu ar treÅ”o normÄlo formu. Parasti pÄc principa: sÄkotnÄjie dati - 3NF, vitrÄ«nas - zvaigzne. Å Ä« pieeja, kas ir pÄrbaudÄ«ta laika gaitÄ un ir atbalstÄ«ta ar lielu pÄtÄ«jumu apjomu, ir pirmÄ (un dažreiz arÄ« vienÄ«gÄ) lieta, kas pieredzÄjuÅ”am DWH speciÄlistam ienÄk prÄtÄ, domÄjot par to, kÄdai vajadzÄtu izskatÄ«ties analÄ«tikas krÄtuvei.
No otras puses, bizness kopumÄ un jo Ä«paÅ”i klientu prasÄ«bas mÄdz Ätri mainÄ«ties, un datiem ir tendence augt gan ādziļumÄā, gan āplaÅ”Ä mÄrogÄā. Un Å”eit parÄdÄs galvenais zvaigznes trÅ«kums - ierobežots elastÄ«ba.
Un, ja savÄ klusajÄ un mÄjÄ«gajÄ DWH izstrÄdÄtÄja dzÄ«vÄ pÄkÅ”Åi:
radÄs uzdevums āvismaz kaut ko Ätri izdarÄ«t, un tad jau redzÄsā;
parÄdÄ«jÄs strauji attÄ«stoÅ”s projekts, ar jaunu avotu pieslÄgÅ”anu un biznesa modeļa pÄrstrÄdi vismaz reizi nedÄļÄ;
ir parÄdÄ«jies klients, kuram nav ne jausmas, kÄdai sistÄmai jÄizskatÄs un kÄdas funkcijas tai galu galÄ jÄveic, bet ir gatavs eksperimentÄt un konsekventi pilnveidot vÄlamo rezultÄtu, konsekventi tam tuvojoties;
Projekta vadÄ«tÄjs ieradÄs ar labÄm ziÅÄm: "Un tagad mums ir veikls!"
Vai arÄ«, ja jÅ«s vienkÄrÅ”i vÄlaties uzzinÄt, kÄ vÄl varat izveidot noliktavas - laipni lÅ«dzam!
Ko nozÄ«mÄ āelastÄ«baā?
PirmkÄrt, definÄsim, kÄdÄm Ä«paŔībÄm ir jÄbÅ«t sistÄmai, lai to varÄtu saukt par āelastÄ«guā.
Tas nenozÄ«mÄ, ka izstrÄdes process un datu noliktavas struktÅ«ra ir pilnÄ«gi nesaistÄ«ti. KopumÄ elastÄ«gai arhitektÅ«rai vajadzÄtu bÅ«t ievÄrojami vieglÄk izstrÄdÄt Agile repozitoriju. TomÄr praksÄ biežÄk tiek piedÄvÄtas klasiskÄ DWH Agile izstrÄde saskaÅÄ ar Kimbal un DataVault - saskaÅÄ ar Waterfall, nevis laimÄ«gas elastÄ«bas sakritÄ«bas divos tÄ veidos vienÄ projektÄ.
TÄtad, kÄdÄm iespÄjÄm vajadzÄtu bÅ«t elastÄ«gai uzglabÄÅ”anai? Å eit ir trÄ«s punkti:
AgrÄ«na piegÄde un Ätra piegÄde - tas nozÄ«mÄ, ka ideÄlÄ gadÄ«jumÄ pirmais biznesa rezultÄts (piemÄram, pirmie darba ziÅojumi) ir jÄiegÅ«st pÄc iespÄjas agrÄk, tas ir, vÄl pirms visa sistÄma ir pilnÄ«bÄ izstrÄdÄta un ieviesta. TurklÄt katrai nÄkamajai pÄrskatÄ«Å”anai vajadzÄtu aizÅemt pÄc iespÄjas mazÄk laika.
IteratÄ«vs precizÄjums - tas nozÄ«mÄ, ka katram nÄkamajam uzlabojumam ideÄlÄ gadÄ«jumÄ nevajadzÄtu ietekmÄt funkcionalitÄti, kas jau darbojas. TieÅ”i Å”is brÄ«dis nereti kļūst par lielÄko murgu lielos projektos ā agri vai vÄlu atseviŔķi objekti sÄk iegÅ«t tik daudz savienojumu, ka kļūst vieglÄk pilnÄ«bÄ atkÄrtot loÄ£iku blakus esoÅ”ajÄ kopijÄ, nevis pievienot lauku esoÅ”ai tabulai. Un, ja esat pÄrsteigts, ka esoÅ”o objektu uzlabojumu ietekmes analÄ«ze var aizÅemt vairÄk laika nekÄ paÅ”i uzlabojumi, jÅ«s, visticamÄk, vÄl neesat strÄdÄjis ar lielÄm datu noliktavÄm banku vai telekomunikÄciju jomÄ.
PastÄvÄ«gi pielÄgojoties mainÄ«gajÄm biznesa prasÄ«bÄm - kopÄjÄ objekta struktÅ«ra jÄveido, ne tikai Åemot vÄrÄ iespÄjamo paplaÅ”inÄÅ”anu, bet ar cerÄ«bÄm, ka par Ŕīs nÄkamÄs paplaÅ”inÄÅ”anas virzienu projektÄÅ”anas stadijÄ pat nevarÄtu sapÅot.
Un jÄ, visu Å”o prasÄ«bu izpilde vienÄ sistÄmÄ ir iespÄjama (protams, atseviŔķos gadÄ«jumos un ar dažÄm atrunÄm).
TÄlÄk es aplÅ«koÅ”u divas no populÄrÄkajÄm datu noliktavu veiklÄs projektÄÅ”anas metodoloÄ£ijÄm - Enkura modelis Šø Datu glabÄtuve. Ärpus iekavÄm ir palikuÅ”as tÄdas izcilas tehnikas kÄ, piemÄram, EAV, 6NF (tÄ«rÄ veidÄ) un viss, kas saistÄ«ts ar NoSQL risinÄjumiem - ne tÄpÄc, ka tie bÅ«tu kaut kÄ sliktÄki, un pat ne tÄpÄc, ka Å”ajÄ gadÄ«jumÄ raksts draudÄtu iegÅ«t vidÄjÄ disertÄcijas apjoms. Tas viss attiecas tikai uz nedaudz atŔķirÄ«gas klases risinÄjumiem ā vai nu uz paÅÄmieniem, kurus varat izmantot konkrÄtos gadÄ«jumos neatkarÄ«gi no jÅ«su projekta vispÄrÄjÄs arhitektÅ«ras (piemÄram, EAV), vai globÄli citÄm informÄcijas glabÄÅ”anas paradigmÄm (piemÄram, grafiku datubÄzÄm). un citas iespÄjas NoSQL).
āKlasiskÄsā pieejas problÄmas un to risinÄjumi elastÄ«gÄs metodoloÄ£ijÄs
Ar āklasiskoā pieeju es domÄju veco labo zvaigzni (neatkarÄ«gi no pamatÄ esoÅ”o slÄÅu konkrÄtÄs realizÄcijas, lai Kimball, Inmon un CDM sekotÄji man piedod).
1. Savienojumu stingrÄ kardinalitÄte
Å is modelis ir balstÄ«ts uz skaidru datu sadalÄ«jumu IzmÄrs Šø faktus. Un tas, sasodÄ«ts, ir loÄ£iski - galu galÄ datu analÄ«ze vairumÄ gadÄ«jumu nonÄk lÄ«dz noteiktu skaitlisko rÄdÄ«tÄju (faktu) analÄ«zei noteiktÄs sadaļÄs (dimensijÄs).
Å ajÄ gadÄ«jumÄ savienojumi starp objektiem tiek izveidoti attiecÄ«bu veidÄ starp tabulÄm, izmantojot ÄrÄjo atslÄgu. Tas izskatÄs diezgan dabiski, taÄu nekavÄjoties noved pie pirmÄ elastÄ«bas ierobežojuma - stingra savienojumu kardinalitÄtes definÄ«cija.
Tas nozÄ«mÄ, ka tabulas izstrÄdes stadijÄ katram saistÄ«to objektu pÄrim ir precÄ«zi jÄnosaka, vai tie var bÅ«t saistÄ«ti tik daudz pret daudziem vai tikai viens pret daudziem un ākurÄ virzienÄā. Tas tieÅ”i nosaka, kurai tabulai bÅ«s primÄrÄ atslÄga un kurai bÅ«s ÄrÄjÄ atslÄga. Å Ä«s attieksmes maiÅa, saÅemot jaunas prasÄ«bas, visticamÄk, novedÄ«s pie bÄzes pÄrstrÄdes.
PiemÄram, veidojot ākases Äekaā objektu, jÅ«s, paļaujoties uz tirdzniecÄ«bas nodaļas zvÄrestu, noteicÄt rÄ«cÄ«bas iespÄju viena akcija vairÄkÄm Äekas pozÄ«cijÄm (bet ne otrÄdi):
Un pÄc kÄda laika kolÄÄ£i ieviesa jaunu mÄrketinga stratÄÄ£iju, kurÄ viÅi var darboties tajÄ paÅ”Ä amatÄ vairÄkas akcijas vienlaikus. Un tagad jums ir jÄmaina tabulas, atdalot attiecÄ«bas atseviÅ”Ä·Ä objektÄ.
(Tagad arÄ« ir jÄuzlabo visi atvasinÄtie objekti, kuros ir pievienota veicinÄÅ”anas pÄrbaude).
AttiecÄ«bas datu glabÄtuvÄ un enkura modelÄ«
IzvairÄ«Å”anÄs no Ŕīs situÄcijas izrÄdÄ«jÄs pavisam vienkÄrÅ”a: jums nav jÄuzticas pÄrdoÅ”anas nodaļai, lai to izdarÄ«tu. visi savienojumi sÄkotnÄji tiek saglabÄti atseviŔķÄs tabulÄs un apstrÄdÄt to kÄ daudzi pret daudziem.
Å Ä« pieeja tika ierosinÄta Dens LinÅ”teds kÄ daļa no paradigmas Datu glabÄtuve un pilnÄ«bÄ atbalstÄ«ts Larss Renbeks Š² Enkura modelis.
RezultÄtÄ mÄs iegÅ«stam pirmo elastÄ«go metodoloÄ£iju atŔķirÄ«go iezÄ«mi:
AttiecÄ«bas starp objektiem netiek glabÄtas vecÄku entÄ«tiju atribÅ«tos, bet ir atseviŔķs objektu veids.
Š Datu glabÄtuve Å”Ädas saistÄ«Å”anas tabulas sauc saiteun Enkura modelis SÄkot no Kakla saite. No pirmÄ acu uzmetiena tie ir ļoti lÄ«dzÄ«gi, lai gan to atŔķirÄ«bas nebeidzas ar nosaukumu (kas tiks apspriests tÄlÄk). AbÄs arhitektÅ«rÄs saiÅ”u tabulas var saistÄ«t jebkurÅ” vienÄ«bu skaits (nav obligÄti 2).
Å Ä« atlaiÅ”ana, no pirmÄ acu uzmetiena, nodroÅ”ina ievÄrojamu elastÄ«bu modifikÄcijÄm. Å Äda struktÅ«ra kļūst toleranta ne tikai pret esoÅ”o saiÅ”u kardinalitÄtes izmaiÅÄm, bet arÄ« pret jaunu pievienoÅ”anu - ja tagad Äeka pozÄ«cijai ir arÄ« saite uz kasieri, kurÅ” to izlauzis, Å”Ädas saites parÄdÄ«Å”anÄs vienkÄrÅ”i kļūt par papildinÄjumu esoÅ”ajÄm tabulÄm, neietekmÄjot esoÅ”os objektus un procesus.
2. Datu dublÄÅ”ana
OtrÄ problÄma, ko atrisina elastÄ«gas arhitektÅ«ras, ir mazÄk acÄ«mredzama un, pirmkÄrt, ir raksturÄ«ga. SCD2 tipa mÄrÄ«jumi (pamazÄm mainÄs otrÄ tipa izmÄri), lai gan ne tikai tie.
KlasiskÄ noliktavÄ dimensija parasti ir tabula, kurÄ ir ietverta aizstÄjÄjatslÄga (kÄ PK) un biznesa atslÄgu un atribÅ«tu kopa atseviŔķÄs kolonnÄs.
Ja dimensija atbalsta versiju veidoÅ”anu, versijas derÄ«guma robežas tiek pievienotas standarta lauku kopai, un repozitorijÄ tiek parÄdÄ«tas vairÄkas versijas vienai avota rindai (viena katrai versijas atribÅ«tu maiÅai).
Ja dimensijÄ ir vismaz viens bieži mainÄ«gs versijas atribÅ«ts, Å”Ädas dimensijas versiju skaits bÅ«s iespaidÄ«gs (pat ja pÄrÄjie atribÅ«ti netiek versijas vai nekad nemainÄs), un, ja ir vairÄki Å”Ädi atribÅ«ti, versiju skaits var pieaug eksponenciÄli no to skaita. Å Ä« dimensija var aizÅemt ievÄrojamu vietu diskÄ, lai gan liela daļa tajÄ saglabÄto datu ir vienkÄrÅ”i nemainÄmu atribÅ«tu vÄrtÄ«bu dublikÄti no citÄm rindÄm.
TajÄ paÅ”Ä laikÄ to izmanto arÄ« ļoti bieži denormalizÄcija ā daži atribÅ«ti tiek apzinÄti saglabÄti kÄ vÄrtÄ«ba, nevis kÄ saite uz atsauces grÄmatu vai citu dimensiju. Å Ä« pieeja paÄtrina piekļuvi datiem, samazinot savienojumu skaitu, piekļūstot kategorijai.
Parasti tas noved pie viena un tÄ pati informÄcija tiek glabÄta vienlaikus vairÄkÄs vietÄs. PiemÄram, informÄciju par dzÄ«vesvietas reÄ£ionu un klienta kategoriju var vienlaikus glabÄt dimensijÄs āKlientsā un faktos āPirkumsā, āPiegÄdeā un āZvanu centra zvaniā, kÄ arÄ« āKlients - klientu menedžerisā. ā saiÅ”u tabula.
KopumÄ iepriekÅ” aprakstÄ«tais attiecas uz parastajiem (neversijÄs) izmÄriem, taÄu versijÄs tiem var bÅ«t atŔķirÄ«gs mÄrogs: jaunas objekta versijas parÄdÄ«Å”anÄs (Ä«paÅ”i retrospektÄ«vi) noved pie ne tikai visu saistÄ«to datu atjauninÄÅ”anas. tabulÄm, bet uz saistÄ«tu objektu jaunu versiju kaskÄdes izskatu - kad 1. tabulu izmanto 2. tabulas veidoÅ”anai, bet 2. tabulu izmanto 3. tabulas veidoÅ”anai utt. Pat ja 1. tabulas konstruÄÅ”anÄ nav iesaistÄ«ts neviens 3. tabulas atribÅ«ts (un ir iesaistÄ«ti citi 2. tabulas atribÅ«ti, kas iegÅ«ti no citiem avotiem), Ŕīs konstrukcijas versijas noteikÅ”ana radÄ«s vismaz papildu pieskaitÄmÄs izmaksas un maksimÄli papildu izmaksas. versijas 3. tabulÄ, kam ar to vispÄr nav nekÄda sakara, un tÄlÄk Ä·ÄdÄ.
3. PÄrstrÄdÄÅ”anas nelineÄra sarežģītÄ«ba
TajÄ paÅ”Ä laikÄ katra jauna veikala mÄjvieta, kas veidota, pamatojoties uz citu, palielina vietu skaitu, kur dati var āatŔķirtiesā, kad tiek veiktas izmaiÅas ETL. Tas savukÄrt palielina katras nÄkamÄs pÄrskatÄ«Å”anas sarežģītÄ«bu (un ilgumu).
Ja iepriekÅ” minÄtais apraksta sistÄmas ar reti modificÄtiem ETL procesiem, jÅ«s varat dzÄ«vot Å”ÄdÄ paradigmÄ - jums tikai jÄpÄrliecinÄs, ka visos saistÄ«tajos objektos ir pareizi veiktas jaunas modifikÄcijas. Ja pÄrskatÄ«Å”ana notiek bieži, ievÄrojami palielinÄs iespÄja nejauÅ”i āpazaudÄtā vairÄkus savienojumus.
Ja piedevÄm Åemam vÄrÄ, ka āversijuÄtaisā ETL ir ievÄrojami sarežģītÄks par āneversijuā, tad, bieži atjauninot visu Å”o iekÄrtu, ir diezgan grÅ«ti izvairÄ«ties no kļūdÄm.
Objektu un atribÅ«tu uzglabÄÅ”ana Data Vault un Enchor Model
ElastÄ«go arhitektÅ«ru autoru piedÄvÄto pieeju var formulÄt Å”Ädi:
Ir jÄnodala tas, kas mainÄs no tÄ, kas paliek nemainÄ«gs. Tas ir, glabÄjiet atslÄgas atseviŔķi no atribÅ«tiem.
TomÄr nevajadzÄtu sajaukt nav versijas atribÅ«ts ar nemainÄ«gs: pirmais nesaglabÄ savu izmaiÅu vÄsturi, bet var mainÄ«ties (piemÄram, labojot ievades kļūdu vai saÅemot jaunus datus); otrais nekad nemainÄs.
Viedokļi atŔķiras par to, ko tieÅ”i datu krÄtuvÄ un enkura modelÄ« var uzskatÄ«t par nemainÄ«gu.
No arhitektÅ«ras viedokļa Datu glabÄtuve, var uzskatÄ«t par nemainÄ«gu viss atslÄgu komplekts - dabiskais (organizÄcijas TIN, produkta kods avota sistÄmÄ utt.) un aizstÄjÄjs. TÄdÄ gadÄ«jumÄ atlikuÅ”os atribÅ«tus var iedalÄ«t grupÄs pÄc izmaiÅu avota un/vai biežuma un SaglabÄjiet atseviŔķu tabulu katrai grupai ar neatkarÄ«gu versiju komplektu.
ParadigmÄ Enkura modelis uzskatÄ«ts par nemainÄ«gu tikai surogÄt atslÄga bÅ«tÄ«ba. Viss pÄrÄjais (ieskaitot dabiskÄs atslÄgas) ir tikai Ä«paÅ”s tÄ atribÅ«tu gadÄ«jums. KurÄ visi atribÅ«ti pÄc noklusÄjuma ir neatkarÄ«gi viens no otra, tÄpÄc katram atribÅ«tam a atseviŔķs galds.
Š Datu glabÄtuve tiek izsauktas tabulas, kas satur entÄ«tiju atslÄgas Hubami. Centrmezglos vienmÄr ir fiksÄta lauku kopa:
DabiskÄs entÄ«tijas atslÄgas
SurogÄt atslÄga
Saite uz avotu
Ierakstiet pievienoŔanas laiku
ZiÅas vietnÄ Hubs nekad nemainÄs un nav versiju. ÄrÄji centrmezgli ir ļoti lÄ«dzÄ«gi ID kartes tipa tabulÄm, ko dažÄs sistÄmÄs izmanto surogÄtu Ä£enerÄÅ”anai, tomÄr ir ieteicams izmantot jaucÄju no biznesa atslÄgu kopas kÄ aizstÄjÄjus Data Vault. Å Ä« pieeja vienkÄrÅ”o attiecÄ«bu un atribÅ«tu ielÄdi no avotiem (jums nav jÄpievienojas centrmezglam, lai iegÅ«tu surogÄtu, jums vienkÄrÅ”i jÄaprÄÄ·ina dabiskÄs atslÄgas jaucÄjvÄrds), taÄu var rasties citas problÄmas (piemÄram, ar sadursmÄm). , burtus un nedrukÄjamas rakstzÄ«mes virknes taustiÅos utt. .p.), tÄpÄc tas nav vispÄrpieÅemts.
Visi pÄrÄjie entÄ«tiju atribÅ«ti tiek glabÄti Ä«paÅ”Äs tabulÄs, ko sauc SatelÄ«ti. Vienam centrmezglam var bÅ«t vairÄki satelÄ«ti, kas glabÄ dažÄdas atribÅ«tu kopas.
AtribÅ«tu sadalÄ«jums starp satelÄ«tiem notiek pÄc principa locÄ«tavu maiÅa - vienÄ satelÄ«tÄ var saglabÄt neversÄtus atribÅ«tus (piemÄram, dzimÅ”anas datums un SNILS indivÄ«dam), citÄ - reti mainÄmus versijas (piemÄram, uzvÄrds un pases numurs), treÅ”ajÄ - bieži mainÄ«gie. (piemÄram, piegÄdes adrese, kategorija, pÄdÄjÄ pasÅ«tÄ«juma datums utt.). Å ajÄ gadÄ«jumÄ versiju noteikÅ”ana tiek veikta atseviŔķu satelÄ«tu, nevis visas entÄ«tijas lÄ«menÄ«, tÄpÄc ieteicams atribÅ«tus izplatÄ«t tÄ, lai versiju krustoÅ”anÄs vienÄ satelÄ«tÄ bÅ«tu minimÄla (kas samazina kopÄjo saglabÄto versiju skaitu ).
TÄpat, lai optimizÄtu datu ielÄdes procesu, atseviŔķos satelÄ«tos bieži tiek iekļauti no dažÄdiem avotiem iegÅ«ti atribÅ«ti.
SatelÄ«ti sazinÄs ar centrmezglu, izmantojot sveÅ”a atslÄga (kas atbilst kardinalitÄtei 1 pret daudziem). Tas nozÄ«mÄ, ka Ŕī ānoklusÄjumaā arhitektÅ«ra atbalsta vairÄkas atribÅ«tu vÄrtÄ«bas (piemÄram, vairÄkus kontakttÄlruÅa numurus vienam klientam).
Š Enkura modelis tiek izsauktas tabulas, kurÄs glabÄjas atslÄgas Enkuri. Un viÅi saglabÄ:
Tikai surogÄt atslÄgas
Saite uz avotu
Ierakstiet pievienoŔanas laiku
Tiek aplÅ«kotas dabiskÄs atslÄgas no Enkura modeļa viedokļa parastie atribÅ«ti. Å Ä« opcija var Ŕķist grÅ«tÄk saprotama, taÄu tÄ sniedz daudz plaÅ”Äkas iespÄjas objekta identificÄÅ”anai.
PiemÄram, ja dati par vienu un to paÅ”u entÄ«tiju var nÄkt no dažÄdÄm sistÄmÄm, no kurÄm katra izmanto savu dabisko atslÄgu. ProgrammÄ Data Vault tas var novest pie diezgan apgrÅ«tinoÅ”Äm vairÄku centrmezglu struktÅ«rÄm (viens katram avotam + vienojoÅ”a galvenÄ versija), savukÄrt Anchor modelÄ« katra avota dabiskÄ atslÄga ietilpst tÄ atribÅ«tÄ un to var izmantot, ielÄdÄjot neatkarÄ«gi no visi pÄrÄjie.
Bet Å”eit ir arÄ« viens mÄnÄ«gs punkts: ja atribÅ«ti no dažÄdÄm sistÄmÄm tiek apvienoti vienÄ entÄ«tijÄ, visticamÄk, ir daži "lÄ«mÄÅ”anas" noteikumi, ar kuru sistÄmai jÄsaprot, ka ieraksti no dažÄdiem avotiem atbilst vienam entÄ«tijas gadÄ«jumam.
Š Datu glabÄtuve Å”ie noteikumi, visticamÄk, noteiks veidojumu galvenÄs entÄ«tijas āaizstÄjÄjs centrsā. un nekÄdÄ veidÄ neietekmÄ centrmezglus, kas glabÄ dabiskÄs avota atslÄgas un to sÄkotnÄjos atribÅ«tus. Ja kÄdÄ brÄ«dÄ« sapludinÄÅ”anas noteikumi mainÄs (vai tiek atjauninÄti atribÅ«ti, ar kuriem tÄ tiek veikta), pietiks ar aizstÄjÄjcentrmezglu pÄrformatÄÅ”anu.
Š Enkura modelis Å”Äda vienÄ«ba, visticamÄk, tiks saglabÄta vienÄ«gais enkurs. Tas nozÄ«mÄ, ka visi atribÅ«ti, neatkarÄ«gi no tÄ, no kÄda avota tie nÄk, bÅ«s saistÄ«ti ar vienu un to paÅ”u aizstÄjÄju. Kļūdaini sapludinÄtu ierakstu atdalÄ«Å”ana un kopumÄ sapludinÄÅ”anas atbilstÄ«bas uzraudzÄ«ba Å”ÄdÄ sistÄmÄ var bÅ«t daudz grÅ«tÄka, it Ä«paÅ”i, ja noteikumi ir diezgan sarežģīti un bieži mainÄs, un vienu un to paÅ”u atribÅ«tu var iegÅ«t no dažÄdiem avotiem (lai gan tas noteikti ir iespÄjams, jo katra atribÅ«ta versija saglabÄ saiti uz savu avotu).
JebkurÄ gadÄ«jumÄ, ja jÅ«su sistÄmai ir jÄÄ«steno funkcionalitÄte dublÄÅ”anÄs, ierakstu un citu MDM elementu sapludinÄÅ”ana, ir vÄrts pievÄrst Ä«paÅ”u uzmanÄ«bu dabisko atslÄgu glabÄÅ”anas aspektiem veiklÄs metodoloÄ£ijÄs. IespÄjams, ka apjomÄ«gÄkais Data Vault dizains pÄkÅ”Åi bÅ«s droÅ”Äks sapludinÄÅ”anas kļūdu ziÅÄ.
Enkura modelis nodroÅ”ina arÄ« papildu objekta tipu, ko sauc Mezgls tas bÅ«tÄ«bÄ ir Ä«paÅ”s deÄ£enerÄts enkura veids, kurÄ var bÅ«t tikai viens atribÅ«ts. Mezglus paredzÄts izmantot, lai saglabÄtu vienotus direktorijus (piemÄram, dzimums, Ä£imenes stÄvoklis, klientu apkalpoÅ”anas kategorija utt.). AtŔķirÄ«bÄ no Enkura, Mezgls nav saistÄ«tu atribÅ«tu tabulu, un tÄ vienÄ«gais atribÅ«ts (nosaukums) vienmÄr tiek saglabÄts vienÄ tabulÄ ar atslÄgu. Mezgli ir savienoti ar enkuriem ar saiÅ”u tabulÄm (Tie) tÄdÄ paÅ”Ä veidÄ, kÄ Enkuri ir savienoti viens ar otru.
Nav skaidra viedokļa par mezglu izmantoÅ”anu. PiemÄram, Nikolajs Golovs, kurÅ” aktÄ«vi veicina Enkura modeļa izmantoÅ”anu KrievijÄ, uzskata (ne nepamatoti), ka ne par vienu uzziÅu grÄmatu var droÅ”i apgalvot, ka vienmÄr bÅ«s statisks un vienlÄ«meÅa, tÄpÄc labÄk nekavÄjoties izmantot pilnvÄrtÄ«gu Enchor visiem objektiem.
VÄl viena svarÄ«ga atŔķirÄ«ba starp Data Vault un Anchor modeli ir pieejamÄ«ba savienojumu atribÅ«ti:
Š Datu glabÄtuve Saites ir tÄdi paÅ”i pilnvÄrtÄ«gi objekti kÄ Hubs, un tiem var bÅ«t paÅ”u atribÅ«ti. Uz Enkura modelis Saites tiek izmantotas tikai, lai savienotu Enkurus un nevar bÅ«t savas Ä«paŔības. Å Ä« atŔķirÄ«ba rada ievÄrojami atŔķirÄ«gas modelÄÅ”anas pieejas faktus, kas tiks apspriests tÄlÄk.
Faktu glabÄÅ”ana
Pirms tam mÄs galvenokÄrt runÄjÄm par mÄrÄ«jumu modelÄÅ”anu. Fakti ir nedaudz mazÄk skaidri.
Š Datu glabÄtuve tipisks faktu glabÄÅ”anas objekts ir Saite, kuras satelÄ«tos tiek pievienoti reÄlie rÄdÄ«tÄji.
Å Ä« pieeja Ŕķiet intuitÄ«va. Tas nodroÅ”ina Ärtu piekļuvi analizÄtajiem rÄdÄ«tÄjiem un kopumÄ ir lÄ«dzÄ«gs tradicionÄlajai faktu tabulai (tikai rÄdÄ«tÄji tiek glabÄti nevis paÅ”Ä tabulÄ, bet ākaimiÅuā tabulÄ). Bet ir arÄ« nepilnÄ«bas: viena no modeļa tipiskÄm modifikÄcijÄm - faktu atslÄgas paplaÅ”inÄÅ”ana - rada nepiecieÅ”amÄ«bu pievienojot saitei jaunu ÄrÄjo atslÄgu. Un tas, savukÄrt, āsalaužā modularitÄti un, iespÄjams, rada nepiecieÅ”amÄ«bu veikt izmaiÅas citos objektos.
Š Enkura modelis Savienojumam nevar bÅ«t savi atribÅ«ti, tÄpÄc Ŕī pieeja nedarbosies ā absolÅ«ti visiem atribÅ«ti un rÄdÄ«tÄjiem jÄbÅ«t saistÄ«tiem ar vienu konkrÄtu enkuru. SecinÄjums no tÄ ir vienkÄrÅ”s - Katram faktam ir vajadzÄ«gs arÄ« savs enkurs. Dažiem no tÄ, ko esam pieraduÅ”i uztvert kÄ faktus, tas var izskatÄ«ties dabiski - piemÄram, pirkuma faktu var lieliski reducÄt uz objektu āpasÅ«tÄ«jumsā vai āsaÅemÅ”anaā, vietnes apmeklÄjums uz sesiju utt. Bet ir arÄ« fakti, kuriem nav tik viegli atrast tik dabisku ānesÄjobjektuā - piemÄram, preÄu atliekas noliktavÄs katras dienas sÄkumÄ.
AttiecÄ«gi problÄmas ar modularitÄti, paplaÅ”inot faktu atslÄgu enkura modelÄ«, nerodas (pietiek vienkÄrÅ”i pievienot jaunu relÄciju attiecÄ«gajam enkuram), taÄu modeļa projektÄÅ”ana faktu attÄloÅ”anai ir mazÄk viennozÄ«mÄ«ga; var parÄdÄ«ties āmÄkslÄ«gieā enkuri. kas parÄda biznesa objekta modeli neskaidrÄ veidÄ.
KÄ tiek panÄkta elastÄ«ba
IegÅ«tÄ konstrukcija abos gadÄ«jumos satur ievÄrojami vairÄk tabulunekÄ tradicionÄlie mÄrÄ«jumi. Bet tas var aizÅemt ievÄrojami mazÄk vietas diskÄ ar tÄdu paÅ”u versiju atribÅ«tu kopu kÄ tradicionÄlÄ dimensija. Protams, Å”eit nav nekÄdas maÄ£ijas - viss ir saistÄ«ts ar normalizÄÅ”anu. Izplatot atribÅ«tus pa satelÄ«tiem (Datu glabÄtuvÄ) vai atseviŔķÄm tabulÄm (enkura modelis), mÄs samazinÄm (vai pilnÄ«bÄ likvidÄjam) dažu atribÅ«tu vÄrtÄ«bu dublÄÅ”anÄs, mainot citus.
Par Datu glabÄtuve laimests bÅ«s atkarÄ«gs no atribÅ«tu sadalÄ«juma starp SatelÄ«tiem, un par Enkura modelis ā ir gandrÄ«z tieÅ”i proporcionÄls vidÄjam versiju skaitam uz vienu mÄrÄ«jumu objektu.
TomÄr vietas ietaupÄ«jums ir svarÄ«ga, bet ne galvenÄ priekÅ”rocÄ«ba, uzglabÄjot atribÅ«tus atseviŔķi. KopÄ ar atseviŔķu attiecÄ«bu uzglabÄÅ”anu Ŕī pieeja padara veikalu modulÄrais dizains. Tas nozÄ«mÄ, ka Å”ÄdÄ modelÄ« izskatÄs gan atseviŔķu atribÅ«tu, gan visu jaunu priekÅ”metu jomu pievienoÅ”ana virsbÅ«ve pÄr esoÅ”u objektu kopu, tos nemainot. Un tieÅ”i tas padara aprakstÄ«tÄs metodikas elastÄ«gas.
Tas arÄ« atgÄdina pÄreju no gabalražoÅ”anas uz masveida ražoÅ”anu - ja tradicionÄlajÄ pieejÄ katra modeļa tabula ir unikÄla un prasa Ä«paÅ”u uzmanÄ«bu, tad elastÄ«gÄs metodikÄs tas jau ir standarta ādetaļuā komplekts. No vienas puses, tabulu ir vairÄk, un datu ielÄdes un izguves procesiem vajadzÄtu izskatÄ«ties sarežģītÄkiem. No otras puses, viÅi kļūst tipisks. Kas nozÄ«mÄ, ka var bÅ«t automatizÄta un balstÄ«ta uz metadatiem. JautÄjums ākÄ mÄs to liksim?ā, uz kuru atbilde varÄtu aizÅemt ievÄrojamu daļu no uzlabojumu izstrÄdes darba, tagad vienkÄrÅ”i nav tÄ vÄrts (kÄ arÄ« jautÄjums par modeļa maiÅas ietekmi uz darba procesiem ).
Tas nenozÄ«mÄ, ka analÄ«tiÄ·i Å”ÄdÄ sistÄmÄ nemaz nav vajadzÄ«gi ā kÄdam tomÄr ir jÄpÄrstrÄdÄ objektu kopa ar atribÅ«tiem un jÄizdomÄ, kur un kÄ to visu ielÄdÄt. TaÄu ievÄrojami samazinÄs darba apjoms, kÄ arÄ« kļūdas iespÄjamÄ«ba un izmaksas. Gan analÄ«zes stadijÄ, gan ETL izstrÄdes laikÄ, ko lielÄ mÄrÄ var reducÄt uz metadatu rediÄ£ÄÅ”anu.
TumÅ”Ä puse
Viss iepriekÅ” minÄtais padara abas pieejas patiesi elastÄ«gas, tehnoloÄ£iski progresÄ«vas un piemÄrotas iteratÄ«vai uzlaboÅ”anai. Protams, ir arÄ« āmuca ziedÄā, par kuru, manuprÄt, jau var nojaust.
Datu dekompozÄ«cija, kas ir elastÄ«gu arhitektÅ«ru modularitÄtes pamatÄ, izraisa tabulu skaita palielinÄÅ”anos un attiecÄ«gi virs galvas pievienojas izlases laikÄ. Lai vienkÄrÅ”i iegÅ«tu visus dimensijas atribÅ«tus, klasiskajÄ veikalÄ pietiek ar vienu atlasi, bet elastÄ«gai arhitektÅ«rai bÅ«s nepiecieÅ”ama vesela virkne savienojumu. TurklÄt, ja visus Å”os atskaiÅ”u savienojumus var uzrakstÄ«t iepriekÅ”, analÄ«tiÄ·i, kuri ir pieraduÅ”i rakstÄ«t SQL ar roku, cietÄ«s divreiz.
Ir vairÄki fakti, kas atvieglo Å”o situÄciju:
StrÄdÄjot ar lieliem izmÄriem, visi tÄ atribÅ«ti gandrÄ«z nekad netiek izmantoti vienlaikus. Tas nozÄ«mÄ, ka var bÅ«t mazÄk savienojumu, nekÄ Å”Ä·iet, no pirmÄ acu uzmetiena uz modeli. PieŔķirot atribÅ«tus satelÄ«tiem, Data Vault var Åemt vÄrÄ arÄ« paredzamo koplietoÅ”anas biežumu. TajÄ paÅ”Ä laikÄ paÅ”i centrmezgli vai enkuri ir nepiecieÅ”ami galvenokÄrt surogÄtu Ä£enerÄÅ”anai un kartÄÅ”anai ielÄdes stadijÄ, un tos reti izmanto vaicÄjumos (tas jo Ä«paÅ”i attiecas uz enkuriem).
Visi savienojumi ir ar atslÄgu. TurklÄt āsaspiestÄksā datu glabÄÅ”anas veids samazina tabulu skenÄÅ”anas izmaksas, kur tas ir nepiecieÅ”ams (piemÄram, filtrÄjot pÄc atribÅ«ta vÄrtÄ«bas). Tas var novest pie tÄ, ka paraugu ÅemÅ”ana no normalizÄtas datu bÄzes ar virkni savienojumu bÅ«s pat ÄtrÄka nekÄ vienas smagas dimensijas skenÄÅ”ana ar daudzÄm versijÄm katrÄ rindÄ.
PiemÄram, Å”eit Å”is RakstÄ ir detalizÄts salÄ«dzinoÅ”ais Anchor modeļa veiktspÄjas tests ar paraugu no vienas tabulas.
Daudz kas ir atkarÄ«gs no dzinÄja. DaudzÄm mÅ«sdienu platformÄm ir iekÅ”Äjie savienojuma optimizÄcijas mehÄnismi. PiemÄram, MS SQL un Oracle var āizlaistā savienojumus ar tabulÄm, ja to dati netiek izmantoti nekur, izÅemot citus savienojumus, un tie neietekmÄ galÄ«go atlasi (tabulas/savienojuma likvidÄÅ”ana), un MPP Vertica Avito kolÄÄ£u pieredze, ir izrÄdÄ«jies lielisks Enchor Model dzinÄjs, Åemot vÄrÄ vaicÄjumu plÄna manuÄlu optimizÄciju. No otras puses, Anchor Model glabÄÅ”ana, piemÄram, Click House, kuram ir ierobežots pievienoÅ”anÄs atbalsts, pagaidÄm neizskatÄs pÄc ļoti labas idejas.
TurklÄt abÄm arhitektÅ«rÄm ir Ä«paÅ”as kustÄ«bas, atvieglojot piekļuvi datiem (gan no vaicÄjuma veiktspÄjas viedokļa, gan galalietotÄjiem). PiemÄram, Point-In-Time tabulas programmÄ Data Vault vai Ä«paÅ”as tabulas funkcijas enkura modelÄ«.
KopÄ
AplÅ«koto elastÄ«go arhitektÅ«ru galvenÄ bÅ«tÄ«ba ir to "dizaina" modularitÄte.
TieŔi Ŕis īpaŔums ļauj:
PÄc sÄkotnÄjÄs sagatavoÅ”anÄs, kas saistÄ«ta ar metadatu izvietoÅ”anu un pamata ETL algoritmu rakstÄ«Å”anu, Ätri nodroÅ”inÄt klientam pirmo rezultÄtu pÄris atskaiÅ”u veidÄ, kas satur datus tikai no dažiem avota objektiem. Nav nepiecieÅ”ams pilnÄ«bÄ (pat augstÄkÄ lÄ«menÄ«) pÄrdomÄt visu objekta modeli.
Datu modelis var sÄkt darboties (un bÅ«t noderÄ«gs) tikai ar 2ā3 objektiem un pÄc tam augt pakÄpeniski (attiecÄ«bÄ uz Enkura modeli Nikolaju piemÄrots jauks salÄ«dzinÄjums ar micÄliju).
LielÄkÄ daļa uzlabojumu, tostarp tÄmas paplaÅ”inÄÅ”ana un jaunu avotu pievienoÅ”ana neietekmÄ esoÅ”o funkcionalitÄti un nerada risku salauzt kaut ko, kas jau darbojas.
Pateicoties sadalÄ«Å”anai standarta elementos, ETL procesi Å”ÄdÄs sistÄmÄs izskatÄs vienÄdi, to rakstÄ«Å”ana ir piemÄrota algoritmizÄÅ”anai un galu galÄ automatizÄcija.
Å Ä«s elastÄ«bas cena ir sniegumu. Tas nenozÄ«mÄ, ka Å”Ädos modeļos nav iespÄjams sasniegt pieÅemamu veiktspÄju. BiežÄk nekÄ nÄ, lai sasniegtu vÄlamos rÄdÄ«tÄjus, iespÄjams, vienkÄrÅ”i bÅ«s jÄpieliek vairÄk pūļu un uzmanÄ«bas detaļÄm.