{"id":92015,"date":"2020-08-21T19:42:13","date_gmt":"2020-08-21T17:42:13","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/obzor-gibkih-metodologij-proektirovaniya-dwh"},"modified":"2020-08-21T19:42:13","modified_gmt":"2020-08-21T17:42:13","slug":"obzor-gibkih-metodologij-proektirovaniya-dwh","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/obzor-gibkih-metodologij-proektirovaniya-dwh","title":{"rendered":"Pasqyr\u00eb e metodologjive fleksibile t\u00eb projektimit DWH","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Zhvillimi i nj\u00eb depoje t\u00eb dh\u00ebnash \u00ebsht\u00eb nj\u00eb proces i gjat\u00eb dhe serioz. <\/p>\n<p>Shum\u00eb gj\u00ebra n\u00eb jet\u00ebn e nj\u00eb projekti varen nga sa mir\u00eb jan\u00eb menduar modeli i objekteve dhe struktura e baz\u00ebs s\u00eb t\u00eb dh\u00ebnave q\u00eb n\u00eb fillim.<\/p>\n<p>Qasja e pranuar gjer\u00ebsisht ka qen\u00eb dhe mbetet kombinimi i varianteve t\u00eb ndryshme t\u00eb skem\u00ebs \u201cyll\u201d me form\u00ebn e tret\u00eb normale. Zakonisht, sipas parimit: t\u00eb dh\u00ebnat burimore \u2014 3NF, data mart-et \u2014 yll. Kjo qasje, e provuar me koh\u00ebn dhe e mb\u00ebshtetur nga nj\u00eb num\u00ebr i madh studimesh, \u00ebsht\u00eb gj\u00ebja e par\u00eb (dhe ndonj\u00ebher\u00eb e vetmja) q\u00eb i vjen n\u00eb mendje nj\u00eb specialisti me p\u00ebrvoj\u00eb t\u00eb DWH kur mendon se si duhet t\u00eb duket nj\u00eb depo analitike e t\u00eb dh\u00ebnave.<\/p>\n<p>Nga ana tjet\u00ebr, biznesi n\u00eb t\u00ebr\u00ebsi dhe k\u00ebrkesat e klientit n\u00eb ve\u00e7anti priren t\u00eb ndryshojn\u00eb shpejt, nd\u00ebrsa t\u00eb dh\u00ebnat t\u00eb rriten si \u201cn\u00eb thell\u00ebsi\u201d, ashtu edhe \u201cn\u00eb gjer\u00ebsi\u201d. Pik\u00ebrisht k\u00ebtu del n\u00eb pah mang\u00ebsia kryesore e skem\u00ebs yll \u2014 <b>fleksibiliteti i kufizuar<\/b>.<\/p>\n<p>Dhe n\u00ebse n\u00eb jet\u00ebn tuaj t\u00eb qet\u00eb e komode si zhvillues DWH papritur:<\/p>\n<ul>\n<li>u shfaq detyra \u201ct\u00eb b\u00ebjm\u00eb shpejt t\u00eb pakt\u00ebn di\u00e7ka, pastaj do t\u00eb shohim\u201d;<\/li>\n<li>u shfaq nj\u00eb projekt me zhvillim t\u00eb vrullsh\u00ebm, me lidhjen e burimeve t\u00eb reja dhe rishikimin e modelit t\u00eb biznesit t\u00eb pakt\u00ebn nj\u00eb her\u00eb n\u00eb jav\u00eb;<\/li>\n<li>u shfaq nj\u00eb klient q\u00eb nuk e ka t\u00eb qart\u00eb si duhet t\u00eb duket sistemi dhe cilat funksione duhet t\u00eb kryej\u00eb n\u00eb fund, por \u00ebsht\u00eb i gatsh\u00ebm p\u00ebr eksperimente dhe p\u00ebr sakt\u00ebsimin gradual t\u00eb rezultatit t\u00eb d\u00ebshiruar, duke iu afruar atij hap pas hapi;<\/li>\n<li>hyri menaxheri i projektit me lajmin e g\u00ebzuesh\u00ebm: \u201cDhe tani kemi Agile!\u201d.<\/li>\n<\/ul>\n<p>\nOse n\u00ebse thjesht ju intereson t\u00eb m\u00ebsoni se si tjet\u00ebr mund t\u00eb nd\u00ebrtohen depot e t\u00eb dh\u00ebnave \u2014 mir\u00eb se vini m\u00eb posht\u00eb!<\/p>\n<p><img decoding=\"async\" alt=\"Pasqyr\u00eb e metodologjive fleksibile t\u00eb projektimit DWH\" src=\"\/wp-content\/uploads\/2020\/08\/59cd70ca3af4841d0c5c9bfbbd7636a3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>\u00c7far\u00eb do t\u00eb thot\u00eb \u00abfleksibilitet\u00bb<\/h3>\n<p>\nS\u00eb pari, le t\u00eb p\u00ebrcaktojm\u00eb se \u00e7far\u00eb vetish duhet t\u00eb ket\u00eb nj\u00eb sistem q\u00eb t\u00eb mund t\u00eb quhet \u201cfleksib\u00ebl\u201d. <\/p>\n<p>M\u00eb vete vlen t\u00eb theksohet se vetit\u00eb e p\u00ebrshkruara duhet t\u2019i referohen pik\u00ebrisht <b>sistemit<\/b>, dhe jo <b>procesit <\/b>t\u00eb zhvillimit t\u00eb tij. Prandaj, n\u00ebse donit t\u00eb lexonit p\u00ebr Agile si metodologji zhvillimi, m\u00eb mir\u00eb shihni artikuj t\u00eb tjer\u00eb. P\u00ebr shembull, po k\u00ebtu, n\u00eb Habr, ka shum\u00eb materiale interesante (si <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/436178\/\">p\u00ebrmbledh\u00ebse<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/284012\/\">praktike<\/a><\/noindex>, ashtu edhe <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dataart\/blog\/245605\/\">mbi problematika<\/a><\/noindex>).<\/p>\n<p>Kjo nuk do t\u00eb thot\u00eb se procesi i zhvillimit dhe struktura e DW nuk kan\u00eb fare lidhje mes tyre. N\u00eb p\u00ebrgjith\u00ebsi, nd\u00ebrtimi i nj\u00eb depoje t\u00eb dh\u00ebnash me arkitektur\u00eb fleksibile sipas Agile duhet t\u00eb jet\u00eb duksh\u00ebm m\u00eb i leht\u00eb. Megjithat\u00eb, n\u00eb praktik\u00eb m\u00eb shpesh hasen kombinime si zhvillimi sipas Agile i nj\u00eb DWH klasik sipas Kimball dhe Data Vault sipas waterfall, sesa p\u00ebrputhje t\u00eb lumtura t\u00eb fleksibilitetit n\u00eb t\u00eb dyja format e tij brenda t\u00eb nj\u00ebjtit projekt.<\/p>\n<p>Pra, \u00e7far\u00eb aft\u00ebsish duhet t\u00eb ket\u00eb nj\u00eb depo fleksibile e t\u00eb dh\u00ebnave? K\u00ebtu mund t\u00eb ve\u00e7ohen tre pika:<\/p>\n<ol>\n<li><b>Dor\u00ebzim i hersh\u00ebm dhe p\u00ebrmir\u00ebsim i shpejt\u00eb<\/b> \u2014 kjo do t\u00eb thot\u00eb se, n\u00eb rastin ideal, rezultati i par\u00eb i biznesit (p\u00ebr shembull, raportet e para funksionale) duhet t\u00eb merret sa m\u00eb her\u00ebt t\u00eb jet\u00eb e mundur, pra ende p\u00ebrpara se sistemi t\u00eb projektohet dhe t\u00eb zbatohet plot\u00ebsisht n\u00eb t\u00ebr\u00ebsi. N\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb, \u00e7do p\u00ebrmir\u00ebsim pasues duhet gjithashtu t\u00eb marr\u00eb sa m\u00eb pak koh\u00eb.<\/li>\n<li><b>P\u00ebrmir\u00ebsim iterativ<\/b> \u2014 kjo do t\u00eb thot\u00eb se \u00e7do p\u00ebrmir\u00ebsim i radh\u00ebs, n\u00eb rastin ideal, nuk duhet t\u00eb ndikoj\u00eb funksionalitetin q\u00eb tashm\u00eb \u00ebsht\u00eb n\u00eb pun\u00eb. Pik\u00ebrisht kjo pik\u00eb shpesh kthehet n\u00eb makthin m\u00eb t\u00eb madh n\u00eb projektet e m\u00ebdha \u2014 her\u00ebt a von\u00eb, objektet e ve\u00e7anta fillojn\u00eb t\u00eb mbingarkohen me aq shum\u00eb lidhje, sa b\u00ebhet m\u00eb e leht\u00eb t\u00eb p\u00ebrs\u00ebritet plot\u00ebsisht logjika n\u00eb nj\u00eb kopje pran\u00eb saj, sesa t\u00eb shtohet nj\u00eb fush\u00eb n\u00eb tabel\u00ebn ekzistuese. Dhe n\u00ebse ju habit fakti q\u00eb analiza e ndikimit t\u00eb nj\u00eb p\u00ebrmir\u00ebsimi mbi objektet ekzistuese mund t\u00eb marr\u00eb m\u00eb shum\u00eb koh\u00eb se vet\u00eb p\u00ebrmir\u00ebsimi, ka shum\u00eb t\u00eb ngjar\u00eb q\u00eb ende t\u00eb mos keni punuar me DW t\u00eb m\u00ebdha n\u00eb sektorin bankar ose n\u00eb telekom.<\/li>\n<li><b>P\u00ebrshtatje e vazhdueshme ndaj k\u00ebrkesave t\u00eb biznesit q\u00eb ndryshojn\u00eb<\/b> \u2014 struktura e p\u00ebrgjithshme e objekteve duhet t\u00eb projektohet jo thjesht duke marr\u00eb parasysh zgjerimin e mundsh\u00ebm, por duke llogaritur q\u00eb drejtimi i zgjerimit t\u00eb ardhsh\u00ebm mund t\u00eb jet\u00eb di\u00e7ka q\u00eb as nuk do t\u2019ju shkonte n\u00eb mendje n\u00eb faz\u00ebn e projektimit.<\/li>\n<\/ol>\n<p>\nDhe po, p\u00ebrmbushja e t\u00eb gjitha k\u00ebtyre k\u00ebrkesave n\u00eb nj\u00eb sistem t\u00eb vet\u00ebm \u00ebsht\u00eb e mundur (natyrisht, n\u00eb raste t\u00eb caktuara dhe me disa kufizime).<\/p>\n<p>M\u00eb posht\u00eb do t\u00eb shqyrtoj dy metodologjit\u00eb m\u00eb t\u00eb njohura t\u00eb projektimit fleksibil p\u00ebr DW \u2014 <b>Anchor model<\/b> dhe <b>Data Vault<\/b>. Jasht\u00eb k\u00ebtij materiali mbeten teknika kaq t\u00eb mira si, p\u00ebr shembull, EAV, 6NF (n\u00eb form\u00ebn e past\u00ebr) dhe gjith\u00e7ka q\u00eb lidhet me zgjidhjet NoSQL \u2014 jo sepse jan\u00eb disi m\u00eb t\u00eb dob\u00ebta, madje as sepse n\u00eb k\u00ebt\u00eb rast artikulli do t\u00eb rrezikonte t\u00eb merrte p\u00ebrmasat e nj\u00eb disertacioni mesatar. Thjesht, t\u00eb gjitha k\u00ebto i p\u00ebrkasin zgjidhjeve t\u00eb nj\u00eb klase disi tjet\u00ebr \u2014 ose teknikave q\u00eb mund t\u2019i p\u00ebrdorni n\u00eb raste specifike, pavar\u00ebsisht nga arkitektura e p\u00ebrgjithshme e projektit tuaj (si EAV), ose paradigmave thelb\u00ebsisht t\u00eb ndryshme t\u00eb ruajtjes s\u00eb informacionit (si, p\u00ebr shembull, bazat e t\u00eb dh\u00ebnave grafike dhe variante t\u00eb tjera t\u00eb NoSQL).<\/p>\n<h3>Problemet e qasjes \u201cklasike\u201d dhe zgjidhjet e tyre n\u00eb metodologjit\u00eb fleksibile<\/h3>\n<p>\n<i>Me qasjen \u201cklasike\u201d kam parasysh modelin e vjet\u00ebr t\u00eb mir\u00eb me yll (pavar\u00ebsisht nga implementimi konkret i shtresave m\u00eb posht\u00eb, m\u00eb falshin adhuruesit e Kimball, Inmon dhe CDM).<br \/>\n<\/i><\/p>\n<h4>1. Kardinaliteti i ngurt\u00eb i marr\u00ebdh\u00ebnieve<\/h4>\n<p>\nN\u00eb baz\u00eb t\u00eb nj\u00eb modeli t\u00eb till\u00eb vendoset nj\u00eb ndarje e qart\u00eb e t\u00eb dh\u00ebnave n\u00eb <b>dimensione (Dimension)<\/b> dhe <b>fakte (Fact)<\/b>. Dhe kjo, dreqi ta haj\u00eb, \u00ebsht\u00eb logjike \u2014 sepse analiza e t\u00eb dh\u00ebnave n\u00eb shumic\u00ebn d\u00ebrrmuese t\u00eb rasteve reduktohet pik\u00ebrisht n\u00eb analiz\u00ebn e treguesve t\u00eb caktuar numerik\u00eb (fakteve) sipas prerjeve t\u00eb caktuara (dimensioneve).<\/p>\n<p>Nd\u00ebrkoh\u00eb, lidhjet midis objekteve p\u00ebrcaktohen si lidhje midis tabelave p\u00ebrmes \u00e7el\u00ebsit t\u00eb huaj. Kjo duket krejt e natyrshme, por menj\u00ebher\u00eb sjell kufizimin e par\u00eb t\u00eb fleksibilitetit \u2014 <b>p\u00ebrcaktimin e ngurt\u00eb t\u00eb kardinalitetit t\u00eb marr\u00ebdh\u00ebnieve<\/b>.<\/p>\n<p>Kjo do t\u00eb thot\u00eb q\u00eb n\u00eb faz\u00ebn e projektimit t\u00eb tabelave duhet t\u00eb p\u00ebrcaktoni sakt\u00ebsisht p\u00ebr \u00e7do \u00e7ift objektesh t\u00eb lidhura n\u00ebse ato mund t\u00eb jen\u00eb n\u00eb marr\u00ebdh\u00ebnie shum\u00eb-me-shum\u00eb, apo vet\u00ebm nj\u00eb-me-shum\u00eb, dhe \u201cn\u00eb cilin drejtim\u201d. Nga kjo varet drejtp\u00ebrdrejt se n\u00eb cil\u00ebn prej tabelave do t\u00eb jet\u00eb \u00e7el\u00ebsi primar dhe n\u00eb cil\u00ebn \u2014 \u00e7el\u00ebsi i huaj. Ndryshimi i k\u00ebsaj marr\u00ebdh\u00ebnieje pas marrjes s\u00eb k\u00ebrkesave t\u00eb reja me shum\u00eb gjasa do t\u00eb \u00e7oj\u00eb n\u00eb ripunimin e baz\u00ebs s\u00eb t\u00eb dh\u00ebnave.<\/p>\n<p>P\u00ebr shembull, duke projektuar objektin \u201ckupon fiskal\u201d, ju, duke u mb\u00ebshtetur te garancit\u00eb solemne t\u00eb departamentit t\u00eb shitjeve, keni parashikuar mund\u00ebsin\u00eb e veprimit t\u00eb <b>nj\u00eb promocioni mbi disa rreshta t\u00eb kuponit<\/b> (por jo anasjelltas):<\/p>\n<p><img decoding=\"async\" alt=\"Pasqyr\u00eb e metodologjive fleksibile t\u00eb projektimit DWH\" src=\"\/wp-content\/uploads\/2020\/08\/15226cb79c30364d94147383ba36a8fd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDhe pas nj\u00ebfar\u00eb kohe, koleg\u00ebt prezantuan nj\u00eb strategji t\u00eb re marketingu, n\u00eb t\u00eb cil\u00ebn mbi t\u00eb nj\u00ebjtin rresht mund t\u00eb veprojn\u00eb <b>disa promocione nj\u00ebkoh\u00ebsisht<\/b>. Dhe tani duhet t\u00eb p\u00ebrpunoni tabelat m\u00eb tej, duke e ve\u00e7uar marr\u00ebdh\u00ebnien n\u00eb nj\u00eb objekt m\u00eb vete. <\/p>\n<p>(T\u00eb gjitha objektet derivuese ku b\u00ebhet join i \u00e7ekut me promon tani gjithashtu k\u00ebrkojn\u00eb p\u00ebrpunim shtes\u00eb).<\/p>\n<p><img decoding=\"async\" alt=\"Pasqyr\u00eb e metodologjive fleksibile t\u00eb projektimit DWH\" src=\"\/wp-content\/uploads\/2020\/08\/3c4d84a31088660257d74c4c703071e0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Lidhjet n\u00eb Data Vault dhe Anchor Model<\/b><\/p>\n<p>Shmangia e nj\u00eb situate t\u00eb till\u00eb doli t\u00eb ishte mjaft e thjesht\u00eb: mjafton t\u00eb mos i besohet departamentit t\u00eb shitjeve dhe <b>t\u00eb gjitha lidhjet t\u00eb ruhen q\u00eb n\u00eb fillim n\u00eb tabela t\u00eb ve\u00e7anta<\/b> dhe t\u00eb trajtohen si many-to-many. <\/p>\n<p>Kjo qasje u propozua nga <b>Dan Linstedt<\/b> si pjes\u00eb e paradigm\u00ebs s\u00eb <b>Data Vault<\/b> dhe u mb\u00ebshtet plot\u00ebsisht nga <b>Lars R\u00f6nnb\u00e4ck<\/b> n\u00eb <b>Anchor Model<\/b>.<\/p>\n<p>Si rezultat, marrim ve\u00e7orin\u00eb e par\u00eb dalluese t\u00eb metodologjive fleksib\u00ebl:<\/p>\n<blockquote><p>Lidhjet midis objekteve nuk ruhen n\u00eb atributet e entiteteve prind, por p\u00ebrfaq\u00ebsojn\u00eb nj\u00eb lloj m\u00eb vete objektesh.<\/p><\/blockquote>\n<p>N\u00eb <b>Data Vault<\/b> k\u00ebto tabela nd\u00ebrlidh\u00ebse quhen <b>Link<\/b>, nd\u00ebrsa n\u00eb <b>Anchor Model<\/b> \u2014 <b>Tie<\/b>. N\u00eb pamje t\u00eb par\u00eb ato jan\u00eb shum\u00eb t\u00eb ngjashme, megjith\u00ebse dallimet e tyre nuk kufizohen vet\u00ebm te emri (p\u00ebr \u00e7ka do t\u00eb flasim m\u00eb posht\u00eb). N\u00eb t\u00eb dy arkitekturat, tabelat nd\u00ebrlidh\u00ebse mund t\u00eb lidhin <b>\u00e7far\u00ebdo numri entitetesh<\/b> (jo domosdoshm\u00ebrisht 2).<\/p>\n<p>Kjo tepric\u00eb, q\u00eb n\u00eb pamje t\u00eb par\u00eb duket e panevojshme, jep fleksibilitet t\u00eb konsideruesh\u00ebm gjat\u00eb ndryshimeve. Kjo struktur\u00eb b\u00ebhet tolerante jo vet\u00ebm ndaj ndryshimit t\u00eb kardinaliteteve t\u00eb lidhjeve ekzistuese, por edhe ndaj shtimit t\u00eb t\u00eb rejave \u2014 n\u00ebse tani nj\u00eb pozicion \u00e7eku do t\u00eb ket\u00eb edhe nj\u00eb referenc\u00eb te ark\u00ebtari q\u00eb e ka regjistruar, shfaqja e nj\u00eb lidhjeje t\u00eb till\u00eb do t\u00eb jet\u00eb thjesht nj\u00eb shtres\u00eb shtes\u00eb mbi tabelat ekzistuese, pa ndikuar n\u00eb asnj\u00eb objekt apo proces ekzistues.<\/p>\n<p><img decoding=\"async\" alt=\"Pasqyr\u00eb e metodologjive fleksibile t\u00eb projektimit DWH\" src=\"\/wp-content\/uploads\/2020\/08\/6a3b942a6e5d04dcbe2ff0881ebdf1bf.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h4>2. Dublikimi i t\u00eb dh\u00ebnave<\/h4>\n<p>\nProblemi i dyt\u00eb q\u00eb zgjidhet nga arkitekturat fleksib\u00ebl \u00ebsht\u00eb m\u00eb pak i duksh\u00ebm dhe \u00ebsht\u00eb karakteristik kryesisht p\u00ebr <b>dimensionet e tipit SCD2<\/b> (dimensione me ndryshim t\u00eb ngadalt\u00eb t\u00eb tipit 2), megjith\u00ebse jo vet\u00ebm p\u00ebr to.<\/p>\n<p>N\u00eb nj\u00eb depo klasike t\u00eb t\u00eb dh\u00ebnave, dimensioni zakonisht p\u00ebrfaq\u00ebson nj\u00eb tabel\u00eb q\u00eb p\u00ebrmban nj\u00eb \u00e7el\u00ebs z\u00ebvend\u00ebsues (si PK), si edhe nj\u00eb grup \u00e7el\u00ebsash biznesi dhe atributesh n\u00eb kolona t\u00eb ve\u00e7anta. <\/p>\n<p><img decoding=\"async\" alt=\"Pasqyr\u00eb e metodologjive fleksibile t\u00eb projektimit DWH\" src=\"\/wp-content\/uploads\/2020\/08\/059dd47b2302b58c19a0144061b78cb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00ebse dimensioni mb\u00ebshtet versionim, grupit standard t\u00eb fushave i shtohen kufijt\u00eb kohor\u00eb t\u00eb vlefshm\u00ebris\u00eb s\u00eb versionit, dhe p\u00ebr nj\u00eb rresht n\u00eb burim krijohen disa versione n\u00eb depo (nga nj\u00eb p\u00ebr \u00e7do ndryshim t\u00eb atributeve t\u00eb versionuara).<\/p>\n<p>N\u00ebse dimensioni p\u00ebrmban t\u00eb pakt\u00ebn nj\u00eb atribut versionues q\u00eb ndryshon shpesh, numri i versioneve t\u00eb k\u00ebtij dimensioni do t\u00eb jet\u00eb i konsideruesh\u00ebm (edhe n\u00ebse atributet e tjera nuk jan\u00eb versionuese ose nuk ndryshojn\u00eb kurr\u00eb), nd\u00ebrsa n\u00ebse ka disa atribute t\u00eb tilla, numri i versioneve mund t\u00eb rritet n\u00eb progresion gjeometrik n\u00eb var\u00ebsi t\u00eb numrit t\u00eb tyre. Nj\u00eb dimension i till\u00eb mund t\u00eb z\u00ebr\u00eb hap\u00ebsir\u00eb t\u00eb konsiderueshme n\u00eb disk, megjith\u00ebse pjesa m\u00eb e madhe e t\u00eb dh\u00ebnave t\u00eb ruajtura n\u00eb t\u00eb jan\u00eb thjesht dublikat\u00eb t\u00eb vlerave t\u00eb atributeve t\u00eb pandryshueshme nga rreshta t\u00eb tjer\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Pasqyr\u00eb e metodologjive fleksibile t\u00eb projektimit DWH\" src=\"\/wp-content\/uploads\/2020\/08\/f3d5a4fd83a5ef36355961302173791d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00ebr m\u00eb tep\u00ebr, shum\u00eb shpesh p\u00ebrdoret edhe <b>denormalizimi<\/b> \u2014 nj\u00eb pjes\u00eb e atributeve ruhen q\u00ebllimisht si vler\u00eb dhe jo si referenc\u00eb ndaj nj\u00eb klasifikuesi ose dimensioni tjet\u00ebr. Kjo qasje p\u00ebrshpejton qasjen n\u00eb t\u00eb dh\u00ebna, duke ulur numrin e join-eve gjat\u00eb aksesimit t\u00eb dimensionit.<\/p>\n<p>Si rregull, kjo \u00e7on n\u00eb faktin q\u00eb <b>i nj\u00ebjti informacion ruhet nj\u00ebkoh\u00ebsisht n\u00eb disa vende<\/b>. P\u00ebr shembull, informacioni p\u00ebr rajonin e banimit dhe p\u00ebrkat\u00ebsin\u00eb n\u00eb kategorin\u00eb e klientit mund t\u00eb ruhet nj\u00ebkoh\u00ebsisht n\u00eb dimensionin \u201cKlient\u201d dhe n\u00eb faktet \u201cBlerje\u201d, \u201cDor\u00ebzim\u201d dhe \u201cKontakte me call center\u201d, si edhe n\u00eb tabel\u00ebn nd\u00ebrlidh\u00ebse \u201cKlient \u2014 Menaxher i klientit\u201d.<\/p>\n<p>N\u00eb p\u00ebrgjith\u00ebsi, sa u p\u00ebrshkrua m\u00eb sip\u00ebr vlen edhe p\u00ebr dimensionet e zakonshme (jo versionuese), por te dimensionet versionuese kjo mund t\u00eb marr\u00eb p\u00ebrmasa t\u00eb tjera: shfaqja e nj\u00eb versioni t\u00eb ri t\u00eb objektit (sidomos n\u00eb m\u00ebnyr\u00eb retroaktive) nuk sjell thjesht p\u00ebrdit\u00ebsimin e t\u00eb gjitha tabelave t\u00eb lidhura, por edhe shfaqjen kaskad\u00eb t\u00eb versioneve t\u00eb reja t\u00eb objekteve t\u00eb lidhura \u2014 kur Tabela 1 p\u00ebrdoret p\u00ebr nd\u00ebrtimin e Tabel\u00ebs 2, nd\u00ebrsa Tabela 2 p\u00ebrdoret p\u00ebr nd\u00ebrtimin e Tabel\u00ebs 3, e k\u00ebshtu me radh\u00eb. Edhe n\u00ebse asnj\u00eb atribut i Tabel\u00ebs 1 nuk merr pjes\u00eb n\u00eb nd\u00ebrtimin e Tabel\u00ebs 3 (dhe n\u00eb t\u00eb marrin pjes\u00eb atribute t\u00eb tjera t\u00eb Tabel\u00ebs 2, t\u00eb marra nga burime t\u00eb tjera), p\u00ebrdit\u00ebsimi versionues i k\u00ebsaj strukture, t\u00eb pakt\u00ebn, do t\u00eb sjell\u00eb kosto shtes\u00eb operative, nd\u00ebrsa n\u00eb rastin m\u00eb t\u00eb keq \u2014 versione t\u00eb panevojshme n\u00eb Tabel\u00ebn 3, e cila k\u00ebtu n\u00eb fakt \u201cnuk ka lidhje fare\u201d, dhe m\u00eb tej p\u00ebrgjat\u00eb gjith\u00eb zinxhirit.<\/p>\n<p><img decoding=\"async\" alt=\"Pasqyr\u00eb e metodologjive fleksibile t\u00eb projektimit DWH\" src=\"\/wp-content\/uploads\/2020\/08\/2935f93abc46f02bdc528accda2af758.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>3. Kompleksitet jolinear i p\u00ebrpunimeve<\/h4>\n<p>\nP\u00ebr m\u00eb tep\u00ebr, \u00e7do data mart i ri q\u00eb nd\u00ebrtohet mbi baz\u00ebn e nj\u00eb tjetri rrit numrin e pikave ku t\u00eb dh\u00ebnat mund t\u00eb \u201cdalin nga sinkroni\u201d gjat\u00eb ndryshimeve n\u00eb ETL. Kjo, nga ana tjet\u00ebr, sjell rritje t\u00eb kompleksitetit (dhe koh\u00ebzgjatjes) s\u00eb \u00e7do p\u00ebrpunimi t\u00eb m\u00ebpassh\u00ebm.<\/p>\n<p>N\u00ebse sa m\u00eb sip\u00ebr vlen p\u00ebr sisteme me procese ETL q\u00eb p\u00ebrpunohen rrall\u00eb, mund t\u00eb punohet n\u00eb nj\u00eb paradigm\u00eb t\u00eb till\u00eb \u2014 mjafton thjesht t\u00eb kontrollohet q\u00eb p\u00ebrmir\u00ebsimet e reja t\u00eb aplikohen sakt\u00eb n\u00eb t\u00eb gjitha objektet e lidhura. Por n\u00ebse p\u00ebrmir\u00ebsimet b\u00ebhen shpesh, gjasat p\u00ebr t\u00eb \u201charruar\u201d rast\u00ebsisht disa lidhje rriten ndjesh\u00ebm.<\/p>\n<p>N\u00ebse, p\u00ebr m\u00eb tep\u00ebr, merret parasysh se ETL \u201cme versionim\u201d \u00ebsht\u00eb duksh\u00ebm m\u00eb i nd\u00ebrlikuar se ai \u201cpa versionim\u201d, shmangia e gabimeve gjat\u00eb p\u00ebrpunimeve t\u00eb shpeshta t\u00eb gjith\u00eb k\u00ebtij sistemi b\u00ebhet mjaft e v\u00ebshtir\u00eb.<\/p>\n<h3>Ruajtja e objekteve dhe atributeve n\u00eb Data Vault dhe Anchor Model<\/h3>\n<p>\nQasja e propozuar nga autor\u00ebt e arkitekturave fleksibile mund t\u00eb formulohet k\u00ebshtu:<\/p>\n<blockquote><p>Duhet t\u00eb ndahet ajo q\u00eb ndryshon nga ajo q\u00eb mbetet e pandryshueshme. Pra, \u00e7el\u00ebsat duhen ruajtur ve\u00e7mas nga atributet.<\/p><\/blockquote>\n<p> Megjithat\u00eb, nuk duhet ngat\u00ebrruar <b>pa versionim<\/b> atributi me <b>t\u00eb pandryshuesh\u00ebm<\/b>: i pari nuk ruan historin\u00eb e ndryshimeve t\u00eb veta, por mund t\u00eb ndryshoj\u00eb (p\u00ebr shembull, gjat\u00eb korrigjimit t\u00eb nj\u00eb gabimi n\u00eb futje ose pas marrjes s\u00eb t\u00eb dh\u00ebnave t\u00eb reja), nd\u00ebrsa i dyti nuk ndryshon kurr\u00eb.<\/p>\n<p>Pik\u00ebpamjet mbi at\u00eb se \u00e7far\u00eb sakt\u00ebsisht mund t\u00eb konsiderohet e pandryshueshme n\u00eb Data Vault dhe Anchor Model ndryshojn\u00eb.<\/p>\n<p>Nga pik\u00ebpamja e arkitektur\u00ebs <b>Data Vault<\/b>, i pandryshuesh\u00ebm mund t\u00eb konsiderohet <b>i gjith\u00eb grupi i \u00e7el\u00ebsave<\/b> \u2014 natyror\u00eb (NIPT-i i organizat\u00ebs, kodi i produktit n\u00eb sistemin burimor etj.) dhe surrogate. Nd\u00ebrkoh\u00eb, atributet e tjera mund t\u00eb ndahen n\u00eb grupe sipas burimit dhe\/ose shpesht\u00ebsis\u00eb s\u00eb ndryshimeve dhe <b>p\u00ebr secilin grup t\u00eb mbahet nj\u00eb tabel\u00eb m\u00eb vete<\/b> me nj\u00eb grup versionesh t\u00eb pavarura.<\/p>\n<p>Nd\u00ebrsa n\u00eb paradigm\u00ebn e <b>Anchor Model<\/b> i pandryshuesh\u00ebm konsiderohet <b>vet\u00ebm \u00e7el\u00ebsi surrogate<\/b> i entitetit. Gjith\u00e7ka tjet\u00ebr (p\u00ebrfshir\u00eb \u00e7el\u00ebsat natyror\u00eb) \u00ebsht\u00eb thjesht nj\u00eb rast i ve\u00e7ant\u00eb i atributeve t\u00eb tij. N\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb, <b>t\u00eb gjitha atributet jan\u00eb t\u00eb pavarura nga nj\u00ebri-tjetri si parazgjedhje<\/b>, prandaj p\u00ebr secilin atribut duhet t\u00eb krijohet nj\u00eb <b>tabel\u00eb m\u00eb vete<\/b>.<\/p>\n<p>N\u00eb <b>Data Vault<\/b> tabelat q\u00eb p\u00ebrmbajn\u00eb \u00e7el\u00ebsat e entiteteve quhen <b>Hub-e (Hub)<\/b>. Hub-et p\u00ebrmbajn\u00eb gjithmon\u00eb nj\u00eb grup fushash fikse:<\/p>\n<ul>\n<li>\u00c7el\u00ebsat natyror\u00eb t\u00eb entitetit<\/li>\n<li>\u00c7el\u00ebsi surrogate<\/li>\n<li>Referenca te burimi<\/li>\n<li>Koha e shtimit t\u00eb regjistrimit<\/li>\n<\/ul>\n<p>\nRegjistrimet n\u00eb Hub-e <b>nuk ndryshojn\u00eb kurr\u00eb dhe nuk kan\u00eb versione<\/b>. Nga ana e jashtme, hub-et jan\u00eb shum\u00eb t\u00eb ngjash\u00ebm me tabelat e tipit ID-map q\u00eb p\u00ebrdoren n\u00eb disa sisteme p\u00ebr gjenerimin e surrogateve, megjithat\u00eb n\u00eb Data Vault rekomandohet q\u00eb si surrogate t\u00eb p\u00ebrdoret jo nj\u00eb sekuenc\u00eb me numra t\u00eb plot\u00eb, por nj\u00eb hash i grupit t\u00eb \u00e7el\u00ebsave t\u00eb biznesit. Kjo qasje thjeshton ngarkimin e lidhjeve dhe atributeve nga burimet (nuk ka nevoj\u00eb t\u00eb b\u00ebhen join me hub-in p\u00ebr t\u00eb marr\u00eb surrogate-in, mjafton t\u00eb llogaritet hash-i nga \u00e7el\u00ebsi natyror), por mund t\u00eb sjell\u00eb probleme t\u00eb tjera (t\u00eb lidhura, p\u00ebr shembull, me kolizionet, regjistrin e shkronjave dhe karakteret e paprintueshme n\u00eb \u00e7el\u00ebsat tekstual\u00eb etj.), prandaj nuk konsiderohet si praktik\u00eb universalisht e pranuar.<\/p>\n<p>T\u00eb gjitha atributet e tjera t\u00eb entiteteve ruhen n\u00eb tabela t\u00eb posa\u00e7me, t\u00eb quajtura <b>Satelit\u00eb (Satellit)<\/b>. Nj\u00eb hub mund t\u00eb ket\u00eb disa satelit\u00eb q\u00eb ruajn\u00eb grupe t\u00eb ndryshme atributesh.<\/p>\n<p><img decoding=\"async\" alt=\"Pasqyr\u00eb e metodologjive fleksibile t\u00eb projektimit DWH\" src=\"\/wp-content\/uploads\/2020\/08\/e145f211b8cfb51894e6e1789991e1cd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nShp\u00ebrndarja e atributeve nd\u00ebrmjet satelit\u00ebve b\u00ebhet sipas parimit t\u00eb <b>ndryshimit t\u00eb p\u00ebrbashk\u00ebt<\/b> \u2014 n\u00eb nj\u00eb satelit mund t\u00eb ruhen atribute jo-versionale (p\u00ebr shembull, data e lindjes dhe numri personal p\u00ebr nj\u00eb person fizik), n\u00eb nj\u00eb tjet\u00ebr atribute versionale q\u00eb ndryshojn\u00eb rrall\u00eb (p\u00ebr shembull, mbiemri dhe numri i pasaport\u00ebs), nd\u00ebrsa n\u00eb nj\u00eb t\u00eb tret\u00eb atribute q\u00eb ndryshojn\u00eb shpesh (p\u00ebr shembull, adresa e dor\u00ebzimit, kategoria, data e porosis\u00eb s\u00eb fundit etj.). Versionimi n\u00eb k\u00ebt\u00eb rast mbahet n\u00eb nivelin e satelit\u00ebve individual\u00eb, jo t\u00eb entitetit n\u00eb t\u00ebr\u00ebsi, ndaj shp\u00ebrndarja e atributeve \u00ebsht\u00eb e arsyeshme t\u00eb b\u00ebhet n\u00eb m\u00ebnyr\u00eb q\u00eb mbivendosja e versioneve brenda nj\u00eb sateliti t\u00eb jet\u00eb minimale (gj\u00eb q\u00eb ul numrin e p\u00ebrgjithsh\u00ebm t\u00eb versioneve t\u00eb ruajtura). <\/p>\n<p>Gjithashtu, p\u00ebr t\u00eb optimizuar procesin e ngarkimit t\u00eb t\u00eb dh\u00ebnave, atributet e marra nga burime t\u00eb ndryshme shpesh ndahen n\u00eb satelit\u00eb t\u00eb ve\u00e7ant\u00eb.<\/p>\n<p>Satelit\u00ebt lidhen me Hub-in p\u00ebrmes <b>\u00e7el\u00ebsit t\u00eb jasht\u00ebm<\/b> (q\u00eb korrespondon me kardinalitetin 1-me-shum\u00eb). Kjo do t\u00eb thot\u00eb se vlerat e shum\u00ebfishta t\u00eb atributeve (p\u00ebr shembull, disa numra telefoni kontakti p\u00ebr nj\u00eb klient) mb\u00ebshteten nga kjo arkitektur\u00eb \u201csi parazgjedhje\u201d.<\/p>\n<p>N\u00eb <b>Modelit Anchor (Anchor Model)<\/b> tabelat q\u00eb ruajn\u00eb \u00e7el\u00ebsat quhen <b>Anchors (Anchor)<\/b>. Dhe ato ruajn\u00eb: <\/p>\n<ul>\n<li><b>Vet\u00ebm \u00e7el\u00ebsa surrogate<\/b><\/li>\n<li>Referenca te burimi<\/li>\n<li>Koha e shtimit t\u00eb regjistrimit<\/li>\n<\/ul>\n<p>\n\u00c7el\u00ebsat natyror\u00eb, nga k\u00ebndv\u00ebshtrimi i Modelit Anchor, konsiderohen si <b>atribute t\u00eb zakonshme<\/b>. Ky variant mund t\u00eb duket m\u00eb i v\u00ebshtir\u00eb p\u00ebr t\u2019u kuptuar, por ofron shum\u00eb m\u00eb tep\u00ebr hap\u00ebsir\u00eb p\u00ebr identifikimin e objektit.<\/p>\n<p><img decoding=\"async\" alt=\"Pasqyr\u00eb e metodologjive fleksibile t\u00eb projektimit DWH\" src=\"\/wp-content\/uploads\/2020\/08\/0bf941581fd1177eda228d4429cf69db.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00ebr shembull, n\u00ebse t\u00eb dh\u00ebnat p\u00ebr t\u00eb nj\u00ebjtin entitet mund t\u00eb vijn\u00eb nga sisteme t\u00eb ndryshme, ku secili p\u00ebrdor \u00e7el\u00ebsin e vet natyror. N\u00eb Data Vault kjo mund t\u00eb \u00e7oj\u00eb n\u00eb struktura mjaft t\u00eb r\u00ebnda me disa hub-e (nga nj\u00eb p\u00ebr \u00e7do burim + nj\u00eb version master q\u00eb i bashkon), nd\u00ebrsa n\u00eb Anchor Model \u00e7el\u00ebsi natyror i \u00e7do burimi vendoset n\u00eb atributin e vet dhe mund t\u00eb p\u00ebrdoret gjat\u00eb ngarkimit pavar\u00ebsisht nga t\u00eb gjith\u00eb t\u00eb tjer\u00ebt. <\/p>\n<p>Por k\u00ebtu fshihet edhe nj\u00eb moment delikat: n\u00ebse n\u00eb nj\u00eb entitet bashkohen atribute nga sisteme t\u00eb ndryshme, me shum\u00eb gjasa ekzistojn\u00eb disa <b>rregulla t\u00eb \u201cbashkimit\u201d<\/b>, sipas t\u00eb cilave sistemi duhet t\u00eb kuptoj\u00eb se regjistrimet nga burime t\u00eb ndryshme i p\u00ebrkasin t\u00eb nj\u00ebjtit instanc\u00eb t\u00eb entitetit. <\/p>\n<p>N\u00eb <b>Data Vault<\/b> K\u00ebto rregulla, me shum\u00eb gjasa, do t\u00eb p\u00ebrcaktojn\u00eb formimin e <b>\u201chub-it surrogate\u201d t\u00eb entitetit master<\/b> dhe nuk do t\u00eb ndikojn\u00eb aspak te Hub-et q\u00eb ruajn\u00eb \u00e7el\u00ebsat natyror\u00eb t\u00eb burimeve dhe atributet e tyre fillestare. N\u00ebse n\u00eb nj\u00eb moment rregullat e bashkimit ndryshojn\u00eb (ose vjen nj\u00eb p\u00ebrdit\u00ebsim i atributeve mbi t\u00eb cilat ai kryhet), do t\u00eb mjaftoj\u00eb t\u00eb riformohen hub-et surrogate.<\/p>\n<p>N\u00eb <b>Anchor Model<\/b> nd\u00ebrkaq nj\u00eb entitet i till\u00eb, me shum\u00eb gjasa, do t\u00eb ruhet n\u00eb <b>nj\u00eb ankor\u00eb t\u00eb vetme<\/b>. Kjo do t\u00eb thot\u00eb se t\u00eb gjitha atributet, pavar\u00ebsisht nga cili burim jan\u00eb marr\u00eb, do t\u00eb lidhen me t\u00eb nj\u00ebjtin surrogate. Ndarja e regjistrimeve t\u00eb bashkuara gabimisht dhe, n\u00eb p\u00ebrgjith\u00ebsi, ndjekja e vlefshm\u00ebris\u00eb s\u00eb bashkimit n\u00eb nj\u00eb sistem t\u00eb till\u00eb mund t\u00eb rezultoj\u00eb duksh\u00ebm m\u00eb e v\u00ebshtir\u00eb, sidomos n\u00ebse rregullat jan\u00eb mjaft komplekse dhe ndryshojn\u00eb shpesh, nd\u00ebrsa i nj\u00ebjti atribut mund t\u00eb merret nga burime t\u00eb ndryshme (edhe pse kjo \u00ebsht\u00eb plot\u00ebsisht e mundur, pasi \u00e7do version i atributit ruan referenc\u00ebn te burimi i vet).<\/p>\n<p>N\u00eb \u00e7do rast, n\u00ebse n\u00eb sistemin tuaj parashikohet zbatimi i funksionalitetit p\u00ebr <b>deduplikim, bashkim regjistrimesh dhe elemente t\u00eb tjera t\u00eb MDM<\/b>, ia vlen t\u00eb analizohen me kujdes t\u00eb ve\u00e7ant\u00eb aspektet e ruajtjes s\u00eb \u00e7el\u00ebsave natyror\u00eb n\u00eb metodologjit\u00eb fleksibile. Ka gjasa q\u00eb struktura m\u00eb e r\u00ebnd\u00eb e Data Vault t\u00eb dal\u00eb papritur m\u00eb e sigurt nga k\u00ebndv\u00ebshtrimi i gabimeve t\u00eb bashkimit.<\/p>\n<p><b>Anchor Model<\/b> gjithashtu parashikon nj\u00eb lloj shtes\u00eb objekti, t\u00eb quajtur <b>Nyja (Knot)<\/b> n\u00eb thelb, kjo \u00ebsht\u00eb nj\u00eb <b>form\u00eb e degjeneruar e ankor\u00ebs<\/b>, i cili mund t\u00eb p\u00ebrmbaj\u00eb vet\u00ebm nj\u00eb atribut. Nyjet supozohet t\u00eb p\u00ebrdoren p\u00ebr ruajtjen e referencave t\u00eb thjeshta (p\u00ebr shembull gjinia, statusi martesor, kategoria e sh\u00ebrbimit t\u00eb klientit etj.). Ndryshe nga Anchor, Nyja <b>nuk ka tabela atributesh t\u00eb lidhura<\/b>, nd\u00ebrsa atributi i saj i vet\u00ebm (emri) ruhet gjithmon\u00eb n\u00eb t\u00eb nj\u00ebjt\u00ebn tabel\u00eb me \u00e7el\u00ebsin. Nyjet lidhen me Anchor p\u00ebrmes tabelave t\u00eb lidhjes (Tie), nj\u00ebsoj si lidhen anchor\u00ebt me nj\u00ebri-tjetrin.<\/p>\n<p>Nuk ka nj\u00eb mendim t\u00eb vet\u00ebm p\u00ebr p\u00ebrdorimin e Nyjeve. P\u00ebr shembull, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/azathot\/\">Nikolai Golov<\/a><\/noindex>, i cili promovon n\u00eb m\u00ebnyr\u00eb aktive p\u00ebrdorimin e modelit Anchor n\u00eb Rusi, konsideron (me t\u00eb drejt\u00eb) se p\u00ebr asnj\u00eb referenc\u00eb nuk mund t\u00eb thuhet me siguri se ajo <b>t\u00eb ashp\u00ebr n\u00eb<\/b> do t\u00eb jet\u00eb statike dhe me nj\u00eb nivel t\u00eb vet\u00ebm, prandaj p\u00ebr t\u00eb gjitha objektet \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb p\u00ebrdoret menj\u00ebher\u00eb nj\u00eb Anchor i plot\u00eb.<\/p>\n<p>Nj\u00eb tjet\u00ebr dallim i r\u00ebnd\u00ebsish\u00ebm midis Data Vault dhe modelit Anchor \u00ebsht\u00eb prania e <b>atributeve te lidhjet<\/b>:<\/p>\n<p>N\u00eb <b>Data Vault<\/b> Lidhjet jan\u00eb objekte po aq t\u00eb plota sa edhe Hub-et dhe mund t\u00eb ken\u00eb <b>atributet e tyre<\/b>. N\u00eb <b>Anchor Model<\/b> Lidhjet p\u00ebrdoren vet\u00ebm p\u00ebr t\u00eb bashkuar Anchor-et dhe <b>nuk mund t\u00eb ken\u00eb atribute t\u00eb tyre<\/b>. Ky ndryshim sjell qasje thelb\u00ebsisht t\u00eb ndryshme ndaj modelimit t\u00eb <b>fakteve<\/b>, p\u00ebr t\u00eb cilat do t\u00eb flasim m\u00eb tej.<\/p>\n<h3>Ruajtja e fakteve<\/h3>\n<p>\nDeri tani kemi folur kryesisht p\u00ebr modelimin e dimensioneve. Me faktet, situata \u00ebsht\u00eb disi m\u00eb pak e qart\u00eb.<\/p>\n<p>N\u00eb <b>Data Vault<\/b> objekti tipik p\u00ebr ruajtjen e fakt\u00ebve \u2014<b> Lidhja (Link)<\/b>, n\u00eb Satellite-et e s\u00eb cil\u00ebs ruhen treguesit numerik\u00eb.<\/p>\n<p>Kjo qasje duket intuitive. Ajo ofron qasje t\u00eb thjesht\u00eb te treguesit q\u00eb analizohen dhe n\u00eb p\u00ebrgjith\u00ebsi i ngjan nj\u00eb tabele tradicionale faktesh (vet\u00ebm se treguesit nuk ruhen n\u00eb vet\u00eb tabel\u00ebn, por n\u00eb nj\u00eb \u201cfqinje\u201d). Por ka edhe v\u00ebshtir\u00ebsi: nj\u00eb nga zgjerimet tipike t\u00eb modelit \u2014 zgjerimi i \u00e7el\u00ebsit t\u00eb faktit \u2014 sjell nevoj\u00ebn p\u00ebr <b>shtimin e nj\u00eb \u00e7el\u00ebsi t\u00eb ri t\u00eb jasht\u00ebm n\u00eb Link<\/b>. Kjo, nga ana tjet\u00ebr, \u201ce thyen\u201d modularitetin dhe potencialisht krijon nevoj\u00ebn p\u00ebr ndryshime edhe n\u00eb objekte t\u00eb tjera.<\/p>\n<p>N\u00eb <b>Anchor Model<\/b> Lidhja nuk mund t\u00eb ket\u00eb atribute t\u00eb veta, prandaj kjo qasje nuk funksionon \u2014 absolutisht t\u00eb gjitha atributet dhe treguesit duhet t\u00eb lidhen me nj\u00eb anchor konkret. P\u00ebrfundimi \u00ebsht\u00eb i thjesht\u00eb \u2014 <b>edhe p\u00ebr \u00e7do fakt nevojitet anchor-i i vet<\/b>. P\u00ebr nj\u00eb pjes\u00eb t\u00eb asaj q\u00eb jemi m\u00ebsuar ta perceptojm\u00eb si fakte, kjo mund t\u00eb duket e natyrshme \u2014 p\u00ebr shembull, fakti i blerjes p\u00ebrfaq\u00ebsohet leht\u00ebsisht nga objekti \u201cporosi\u201d ose \u201cfatur\u00eb\u201d, vizita n\u00eb sajt \u2014 nga sesioni, e k\u00ebshtu me radh\u00eb. Por ka edhe fakte p\u00ebr t\u00eb cilat nuk \u00ebsht\u00eb aq e leht\u00eb t\u00eb gjendet nj\u00eb \u201cobjekt bart\u00ebs\u201d i till\u00eb natyror \u2014 p\u00ebr shembull, gjendja e stokut n\u00eb magazina n\u00eb fillim t\u00eb \u00e7do dite. <\/p>\n<p>P\u00ebrkat\u00ebsisht, probleme me modularitetin gjat\u00eb zgjerimit t\u00eb \u00e7el\u00ebsit t\u00eb faktit n\u00eb modelin Anchor nuk lindin (mjafton thjesht t\u00eb shtohet nj\u00eb Lidhje e re te Anchor-i p\u00ebrkat\u00ebs), por projektimi i modelit p\u00ebr t\u00eb pasqyruar faktet \u00ebsht\u00eb m\u00eb pak i nj\u00ebkuptimt\u00eb dhe mund t\u00eb shfaqen Anchor-e \u201cartificiale\u201d, q\u00eb e pasqyrojn\u00eb modelin objektor t\u00eb biznesit jo n\u00eb m\u00ebnyr\u00eb t\u00eb dukshme.<\/p>\n<h3>Si arrihet fleksibiliteti<\/h3>\n<p>\nStruktura e p\u00ebrftuar n\u00eb t\u00eb dyja rastet p\u00ebrmban <b>duksh\u00ebm m\u00eb shum\u00eb tabela<\/b>, sesa nj\u00eb dimension tradicional. Por mund t\u00eb z\u00ebr\u00eb <b>duksh\u00ebm m\u00eb pak hap\u00ebsir\u00eb n\u00eb disk<\/b> me t\u00eb nj\u00ebjtin grup atributesh t\u00eb versionuara si nj\u00eb dimension tradicional. Natyrisht, k\u00ebtu nuk ka asnj\u00eb magji \u2014 e gjitha lidhet me normalizimin. Duke i shp\u00ebrndar\u00eb atributet n\u00ebp\u00ebr Satellite (n\u00eb Data Vault) ose n\u00eb tabela t\u00eb ve\u00e7anta (n\u00eb Anchor Model), ne zvog\u00eblojm\u00eb (ose e eliminojm\u00eb plot\u00ebsisht) <b>dyfishimin e vlerave t\u00eb disa atributeve kur ndryshojn\u00eb t\u00eb tjerat<\/b>.<\/p>\n<p>P\u00ebr <b>Data Vault<\/b> p\u00ebrfitimi do t\u00eb varet nga shp\u00ebrndarja e atributeve n\u00ebp\u00ebr Satellite, nd\u00ebrsa p\u00ebr <b>Anchor Model<\/b> \u2014 \u00ebsht\u00eb pothuajse drejtp\u00ebrdrejt proporcional me numrin mesatar t\u00eb versioneve p\u00ebr objekt dimensioni.<\/p>\n<p>Megjithat\u00eb, p\u00ebrfitimi n\u00eb hap\u00ebsir\u00ebn e z\u00ebn\u00eb \u00ebsht\u00eb nj\u00eb avantazh i r\u00ebnd\u00ebsish\u00ebm, por jo kryesori i ruajtjes s\u00eb ve\u00e7uar t\u00eb atributeve. S\u00eb bashku me ruajtjen e ve\u00e7uar t\u00eb lidhjeve, nj\u00eb qasje e till\u00eb e b\u00ebn magazin\u00ebn e t\u00eb dh\u00ebnave <b>nj\u00eb struktur\u00eb modulare<\/b>. Kjo do t\u00eb thot\u00eb se shtimi si i atributeve t\u00eb ve\u00e7anta, ashtu edhe i fushave krejt\u00ebsisht t\u00eb reja l\u00ebndore n\u00eb nj\u00eb model t\u00eb till\u00eb, paraqitet si nj\u00eb <b>shtres\u00ebzim<\/b> mbi grupin ekzistues t\u00eb objekteve pa i ndryshuar ato. Dhe pik\u00ebrisht kjo i b\u00ebn fleksibile metodologjit\u00eb e p\u00ebrshkruara.<\/p>\n<p>Kjo ngjan edhe me kalimin nga prodhimi artizanal te ai masiv \u2014 n\u00ebse n\u00eb qasjen tradicionale \u00e7do tabel\u00eb e modelit \u00ebsht\u00eb unike dhe k\u00ebrkon v\u00ebmendje t\u00eb ve\u00e7ant\u00eb, at\u00ebher\u00eb n\u00eb metodologjit\u00eb fleksibile kemi tashm\u00eb nj\u00eb grup \u201cpjes\u00ebsh\u201d tipike. Nga nj\u00ebra an\u00eb, tabelat b\u00ebhen m\u00eb t\u00eb shumta dhe proceset e ngarkimit e t\u00eb marrjes s\u00eb t\u00eb dh\u00ebnave duhet t\u00eb duken m\u00eb komplekse. Nga ana tjet\u00ebr, ato b\u00ebhen <b>tipike<\/b>. Dhe kjo do t\u00eb thot\u00eb se mund t\u00eb jen\u00eb <b>jan\u00eb t\u00eb automatizuara dhe t\u00eb menaxhohen nga metadatat<\/b>. Pyetja \u201csi do ta organizojm\u00eb?\u201d, p\u00ebrgjigjja e s\u00eb cil\u00ebs mund t\u00eb zinte nj\u00eb pjes\u00eb t\u00eb konsiderueshme t\u00eb pun\u00ebs gjat\u00eb projektimit t\u00eb p\u00ebrmir\u00ebsimeve, tani thjesht nuk shtrohet m\u00eb (ashtu si edhe pyetja p\u00ebr ndikimin e ndryshimit t\u00eb modelit mbi proceset q\u00eb jan\u00eb n\u00eb funksion). <\/p>\n<p>Kjo nuk do t\u00eb thot\u00eb se analist\u00ebt n\u00eb nj\u00eb sistem t\u00eb till\u00eb nuk nevojiten fare \u2014 dikush ende duhet t\u00eb p\u00ebrpunoj\u00eb grupin e objekteve me atributet p\u00ebrkat\u00ebse dhe t\u00eb kuptoj\u00eb se nga dhe si do t\u00eb ngarkohen t\u00eb gjitha k\u00ebto. Por v\u00ebllimi i pun\u00ebs, si edhe gjasat dhe kostoja e gabimit, ulen ndjesh\u00ebm. Si n\u00eb faz\u00ebn e analiz\u00ebs, ashtu edhe gjat\u00eb zhvillimit t\u00eb ETL, i cili n\u00eb nj\u00eb pjes\u00eb t\u00eb madhe mund t\u00eb reduktohet n\u00eb redaktimin e metadatave. <\/p>\n<h3>Ana e err\u00ebt<\/h3>\n<p>\nGjith\u00e7ka e p\u00ebrshkruar m\u00eb sip\u00ebr i b\u00ebn t\u00eb dyja qasjet v\u00ebrtet fleksibile, teknologjikisht t\u00eb avancuara dhe t\u00eb p\u00ebrshtatshme p\u00ebr p\u00ebrmir\u00ebsime iterative. Natyrisht, ekziston edhe \u201cana negative\u201d, p\u00ebr t\u00eb cil\u00ebn besoj se tashm\u00eb e merrni me mend.<\/p>\n<p>Dekompozimi i t\u00eb dh\u00ebnave, q\u00eb q\u00ebndron n\u00eb baz\u00eb t\u00eb modularitetit t\u00eb arkitekturave fleksibile, \u00e7on n\u00eb rritjen e numrit t\u00eb tabelave dhe, p\u00ebr rrjedhoj\u00eb, t\u00eb <b>kostove shtes\u00eb<\/b> p\u00ebr join-et gjat\u00eb marrjes s\u00eb t\u00eb dh\u00ebnave. P\u00ebr t\u00eb marr\u00eb thjesht t\u00eb gjitha atributet e nj\u00eb dimensioni, n\u00eb nj\u00eb depo klasike mjafton nj\u00eb SELECT i vet\u00ebm, nd\u00ebrsa nj\u00eb arkitektur\u00eb fleksibile do t\u00eb k\u00ebrkoj\u00eb nj\u00eb varg t\u00eb t\u00ebr\u00eb join-esh. Madje, n\u00ebse p\u00ebr raportet t\u00eb gjitha k\u00ebto join-e mund t\u00eb shkruhen paraprakisht, analist\u00ebt q\u00eb jan\u00eb m\u00ebsuar ta shkruajn\u00eb SQL me dor\u00eb do ta ndiejn\u00eb k\u00ebt\u00eb dyfish m\u00eb shum\u00eb.<\/p>\n<p>Ka disa fakte q\u00eb e leht\u00ebsojn\u00eb k\u00ebt\u00eb situat\u00eb:<\/p>\n<p><b>Gjat\u00eb pun\u00ebs me dimensione t\u00eb m\u00ebdha, pothuajse kurr\u00eb nuk p\u00ebrdoren nj\u00ebkoh\u00ebsisht t\u00eb gjitha atributet e tyre.<\/b> Kjo do t\u00eb thot\u00eb se join-et mund t\u00eb jen\u00eb m\u00eb pak nga sa duket n\u00eb shikim t\u00eb par\u00eb t\u00eb modelit. N\u00eb Data Vault mund t\u00eb merret parasysh edhe frekuenca e pritshme e p\u00ebrdorimit t\u00eb p\u00ebrbashk\u00ebt gjat\u00eb shp\u00ebrndarjes s\u00eb atributeve n\u00ebp\u00ebr satelit\u00eb. Nd\u00ebrkoh\u00eb, vet\u00eb Hub-et ose Anchor-\u00ebt nevojiten kryesisht p\u00ebr gjenerimin dhe mapimin e surrogate-ve n\u00eb faz\u00ebn e ngarkimit dhe p\u00ebrdoren rrall\u00eb n\u00eb pyetje (kjo vlen ve\u00e7an\u00ebrisht p\u00ebr Anchor-\u00ebt).<\/p>\n<p><b>T\u00eb gjitha join-et jan\u00eb sipas \u00e7el\u00ebsit.<\/b> P\u00ebr m\u00eb tep\u00ebr, m\u00ebnyra m\u00eb \u201ce ngjeshur\u201d e ruajtjes s\u00eb t\u00eb dh\u00ebnave ul kostot shtes\u00eb t\u00eb skanimit t\u00eb tabelave aty ku kjo \u00ebsht\u00eb e nevojshme (p\u00ebr shembull, gjat\u00eb filtrimit sipas vler\u00ebs s\u00eb atributit). Kjo mund t\u00eb sjell\u00eb q\u00eb p\u00ebrzgjedhja nga nj\u00eb baz\u00eb e normalizuar me shum\u00eb join t\u00eb jet\u00eb madje m\u00eb e shpejt\u00eb sesa skanimi i nj\u00eb dimensioni t\u00eb vet\u00ebm t\u00eb r\u00ebnd\u00eb me shum\u00eb versione p\u00ebr rresht.<\/p>\n<p>P\u00ebr shembull, n\u00eb <noindex><a rel=\"nofollow\" href=\"http:\/\/www.anchormodeling.com\/wp-content\/uploads\/2011\/05\/Anchor-Modeling.pdf\">k\u00ebt\u00eb <\/a><\/noindex> artikullin ka nj\u00eb test krahasues t\u00eb detajuar t\u00eb performanc\u00ebs s\u00eb modelit Anchor kundrejt p\u00ebrzgjedhjes nga nj\u00eb tabel\u00eb e vetme.<\/p>\n<p><b>Shum\u00eb\u00e7ka varet nga engine-i.<\/b> Shum\u00eb platforma moderne kan\u00eb mekanizma t\u00eb brendsh\u00ebm p\u00ebr optimizimin e join. P\u00ebr shembull, MS SQL dhe Oracle din\u00eb t\u2019i \u201canashkalojn\u00eb\u201d join-et me tabela n\u00ebse t\u00eb dh\u00ebnat e tyre nuk p\u00ebrdoren askund tjet\u00ebr p\u00ebrve\u00e7 join-eve t\u00eb tjera dhe nuk ndikojn\u00eb n\u00eb p\u00ebrzgjedhjen p\u00ebrfundimtare (table\/join elimination), nd\u00ebrsa MPP Vertica, sipas <noindex><a rel=\"nofollow\" href=\"http:\/\/www.anchormodeling.com\/wp-content\/uploads\/2011\/05\/Big_Data_Normalization.pdf\">p\u00ebrvoj\u00ebs s\u00eb koleg\u00ebve nga Avito<\/a><\/noindex>, \u00ebsht\u00eb treguar si nj\u00eb engine i shk\u00eblqyer p\u00ebr modelin Anchor, me kushtin e nj\u00eb optimizimi t\u00eb caktuar manual t\u00eb planit t\u00eb query-t. Nga ana tjet\u00ebr, ruajtja e modelit Anchor, p\u00ebr shembull, n\u00eb Click House, i cili ka mb\u00ebshtetje t\u00eb kufizuar p\u00ebr join, p\u00ebr momentin nuk duket si ide shum\u00eb e mir\u00eb.<\/p>\n<p>P\u00ebrve\u00e7 k\u00ebsaj, p\u00ebr t\u00eb dyja arkitekturat ekzistojn\u00eb <b>teknika t\u00eb posa\u00e7me<\/b>, q\u00eb leht\u00ebsojn\u00eb qasjen n\u00eb t\u00eb dh\u00ebna (si nga k\u00ebndv\u00ebshtrimi i performanc\u00ebs s\u00eb query-ve, ashtu edhe p\u00ebr p\u00ebrdoruesit fundor\u00eb). P\u00ebr shembull, <b>tabelat Point-In-Time<\/b> n\u00eb Data Vault ose <b>funksione t\u00eb posa\u00e7me tabelare<\/b> n\u00eb modelin Anchor.<\/p>\n<h2>P\u00ebrve\u00e7 k\u00ebsaj<\/h2>\n<p>\nThelbi kryesor i arkitekturave fleksibile t\u00eb shqyrtuara q\u00ebndron te modulariteti i \u201cnd\u00ebrtimit\u201d t\u00eb tyre. <\/p>\n<p>Pik\u00ebrisht kjo ve\u00e7ori b\u00ebn t\u00eb mundur:<\/p>\n<ul>\n<li>Pas nj\u00eb p\u00ebrgatitjeje fillestare, t\u00eb lidhur me vendosjen e metadata-ve dhe shkrimin e algoritmeve baz\u00eb ETL, <b>t\u2019i ofrohet shpejt klientit rezultati i par\u00eb<\/b> n\u00eb form\u00ebn e disa raporteve q\u00eb p\u00ebrmbajn\u00eb t\u00eb dh\u00ebna vet\u00ebm nga disa objekte t\u00eb burimeve. P\u00ebr k\u00ebt\u00eb nuk \u00ebsht\u00eb e domosdoshme t\u00eb mendohet plot\u00ebsisht (madje as n\u00eb nivel t\u00eb lart\u00eb) e gjith\u00eb modeli i objekteve.<\/li>\n<li>Modeli i t\u00eb dh\u00ebnave mund t\u00eb filloj\u00eb t\u00eb funksionoj\u00eb (dhe t\u00eb sjell\u00eb vler\u00eb) vet\u00ebm me 2-3 objekte, e m\u00eb pas <b>t\u00eb zgjerohet gradualisht<\/b> (sa i p\u00ebrket modelit Anchor, Nikolai <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/avito\/blog\/322510\/\">p\u00ebrdori <\/a><\/noindex>nj\u00eb krahasim t\u00eb bukur me micelin).<\/li>\n<li>Shumica e p\u00ebrmir\u00ebsimeve, p\u00ebrfshir\u00eb zgjerimin e fush\u00ebs s\u00eb biznesit dhe shtimin e burimeve t\u00eb reja, <b>nuk prekin funksionalitetin ekzistues dhe nuk krijojn\u00eb rrezik p\u00ebr t\u00eb prishur di\u00e7ka q\u00eb tashm\u00eb funksionon<\/b>.<\/li>\n<li>Fal\u00eb dekompozimit n\u00eb elemente standarde, proceset ETL n\u00eb sisteme t\u00eb tilla duken t\u00eb nj\u00ebjta, shkrimi i tyre i n\u00ebnshtrohet algoritmizimit dhe, n\u00eb fund t\u00eb fundit, <b>automatizimit<\/b>.<\/li>\n<\/ul>\n<p>\nKostoja e k\u00ebsaj fleksibiliteti \u00ebsht\u00eb <b>e p\u00ebrmir\u00ebsuar<\/b>. Kjo nuk do t\u00eb thot\u00eb se \u00ebsht\u00eb e pamundur t\u00eb arrihet nj\u00eb performanc\u00eb e pranueshme me modele t\u00eb tilla. M\u00eb shpesh, thjesht mund t\u2019ju nevojiten m\u00eb shum\u00eb p\u00ebrpjekje dhe v\u00ebmendje ndaj detajeve p\u00ebr t\u00eb arritur metrikat e k\u00ebrkuara.<\/p>\n<h2>Aplikacionet<\/h2>\n<p><\/p>\n<h4>Llojet e entiteteve <b>Data Vault<\/b><\/h4>\n<p>\n<img decoding=\"async\" alt=\"Pasqyr\u00eb e metodologjive fleksibile t\u00eb projektimit DWH\" src=\"\/wp-content\/uploads\/2020\/08\/6bbaee505587152d7e5c11b2889bf25a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nM\u00eb shum\u00eb rreth Data Vault:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/danlinstedt.com\/\">Faqja e Dan Linstedt<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.dwh-club.com\/ru\/dwh-bi-articles\/vse-o-data-vault.html\">Gjith\u00e7ka rreth Data Vault n\u00eb rusisht<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/348188\/\">Rreth Data Vault n\u00eb Habr<\/a><\/noindex><\/p>\n<h4>Llojet e entiteteve <b>Anchor Model<\/b><\/h4>\n<p>\n<img decoding=\"async\" alt=\"Pasqyr\u00eb e metodologjive fleksibile t\u00eb projektimit DWH\" src=\"\/wp-content\/uploads\/2020\/08\/d518f01e6a5c241e9e73d1ea0210c557.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nM\u00eb shum\u00eb rreth Anchor Model:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/www.anchormodeling.com\/\">Faqja e krijuesve t\u00eb Anchor Model<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/avito\/blog\/322510\/\">Artikull mbi p\u00ebrvoj\u00ebn e zbatimit t\u00eb Anchor Model n\u00eb Avito<\/a><\/noindex><\/p>\n<p>Tabel\u00eb p\u00ebrmbledh\u00ebse me tiparet e p\u00ebrbashk\u00ebta dhe dallimet e qasjeve t\u00eb shqyrtuara:<\/p>\n<p><img decoding=\"async\" alt=\"Pasqyr\u00eb e metodologjive fleksibile t\u00eb projektimit DWH\" src=\"\/wp-content\/uploads\/2020\/08\/807717245fd874ab141031fc64e584fc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/glowbyte\/blog\/515940\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u2014 \u0434\u0435\u043b\u043e \u0434\u043e\u043b\u0433\u043e\u0435 \u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0435. \u041c\u043d\u043e\u0433\u043e\u0435 \u0432 \u0436\u0438\u0437\u043d\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u043e\u0433\u043e, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u043e\u0434\u0443\u043c\u0430\u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0431\u0430\u0437\u044b \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435. \u041e\u0431\u0449\u0435\u043f\u0440\u0438\u043d\u044f\u0442\u044b\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u043c \u0431\u044b\u043b\u0438 \u0438 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f \u0441\u0445\u0435\u043c\u044b \u201c\u0437\u0432\u0435\u0437\u0434\u0430\u201d \u0441 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u043e\u0439. \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443: \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u2014 3NF, \u0432\u0438\u0442\u0440\u0438\u043d\u044b \u2014 \u0437\u0432\u0435\u0437\u0434\u0430. \u042d\u0442\u043e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434, \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0438 \u043f\u043e\u0434\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u044b\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":92016,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-92015","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u2014 \u0434\u0435\u043b\u043e \u0434\u043e\u043b\u0433\u043e\u0435 \u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/obzor-gibkih-metodologij-proektirovaniya-dwh\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u0431\u0437\u043e\u0440 \u0433\u0438\u0431\u043a\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DWH | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u2014 \u0434\u0435\u043b\u043e \u0434\u043e\u043b\u0433\u043e\u0435 \u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/obzor-gibkih-metodologij-proektirovaniya-dwh\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-08-21T17:42:13+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-21T17:42:13+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47P\u00ebrmbledhje e metodologjive fleksibile t\u00eb projektimit DWH | ProHoster","description":"Zhvillimi i nj\u00eb depoje t\u00eb dh\u00ebnash \u00ebsht\u00eb nj\u00eb proces i gjat\u00eb dhe serioz.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/obzor-gibkih-metodologij-proektirovaniya-dwh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u0431\u0437\u043e\u0440 \u0433\u0438\u0431\u043a\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u043b\u043e\u0433\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DWH | ProHoster","og:description":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u2014 \u0434\u0435\u043b\u043e \u0434\u043e\u043b\u0433\u043e\u0435 \u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0435.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/obzor-gibkih-metodologij-proektirovaniya-dwh","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-08-21T17:42:13+00:00","article:modified_time":"2020-08-21T17:42:13+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"92015","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:16:44","updated":"2022-09-27 14:57:59","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/92015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=92015"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/92015\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/92016"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=92015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=92015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=92015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}