{"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\/sk\/blog\/administrirovanie\/obzor-gibkih-metodologij-proektirovaniya-dwh","title":{"rendered":"Preh\u013ead flexibiln\u00fdch metod\u00edk dizajnu DWH","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>V\u00fdvoj \u00falo\u017eiska je dlh\u00fd a v\u00e1\u017eny proces. <\/p>\n<p>Mnoh\u00e9 v \u017eivote projektu z\u00e1vis\u00ed od toho, ako dobre je premyslen\u00e1 objektov\u00e1 model a \u0161trukt\u00fara datab\u00e1zy na za\u010diatku.<\/p>\n<p>Be\u017en\u00fdm pr\u00edstupom bol a zost\u00e1va r\u00f4zne varianty kombin\u00e1cie sch\u00e9my \u201ehviezda\u201c s tre\u0165ou norm\u00e1lnou formou. Zvy\u010dajne ide o princ\u00edp: p\u00f4vodn\u00e9 d\u00e1ta \u2014 3NF, d\u00e1tov\u00e9 sklady \u2014 hviezda. Tento pr\u00edstup, overen\u00fd \u010dasom a podlo\u017een\u00fd mno\u017estvom v\u00fdskumov, je prv\u00e9 (a niekedy aj jedin\u00e9), \u010do pr\u00edde na um sk\u00fasen\u00e9mu DWH odborn\u00edkovi pri my\u0161lienke, ako by malo vyzera\u0165 analytick\u00e9 \u00falo\u017eisko.<\/p>\n<p>Na druhej strane \u2014 biznisu ako celku a po\u017eiadavk\u00e1m z\u00e1kazn\u00edka najm\u00e4 je vlastn\u00e9 r\u00fdchlo sa meni\u0165, a d\u00e1tam \u2014 r\u00e1s\u0165 ako \u201edo h\u013abky\u201c, tak aj \u201edo \u0161\u00edrky\u201c. A tu sa ukazuje hlavn\u00e1 nev\u00fdhoda hviezdy \u2014 obmedzen\u00e1 <b>flexibilita<\/b>.<\/p>\n<p>A ak vo va\u0161om pokojnom a \u00fatulnom \u017eivote DWH v\u00fdvoj\u00e1ra zrazu:<\/p>\n<ul>\n<li>sa objavila \u00faloha \u201er\u00fdchlo nie\u010do spravi\u0165 a potom uvid\u00edme\u201c;<\/li>\n<li>sa objavil dynamicky sa rozv\u00edjaj\u00faci projekt, s pripojen\u00edm nov\u00fdch zdrojov a prepracovan\u00edm obchodn\u00e9ho modelu minim\u00e1lne raz za t\u00fd\u017ede\u0148;<\/li>\n<li>sa objavil z\u00e1kazn\u00edk, ktor\u00fd nem\u00e1 predstavu o tom, ako by syst\u00e9m mal vyzera\u0165 a ak\u00e9 funkcie by mal vykon\u00e1va\u0165, ale je pripraven\u00fd na experimenty a postupn\u00e9 upres\u0148ovanie po\u017eadovan\u00e9ho v\u00fdsledku s postupn\u00fdm pribl\u00ed\u017een\u00edm k nemu;<\/li>\n<li>sa objavil projektov\u00fd mana\u017e\u00e9r s radostnou spr\u00e1vou: \u201eA teraz m\u00e1me agiln\u00e9!\u201c<\/li>\n<\/ul>\n<p>\nAlebo ak v\u00e1s len zauj\u00edma, ako inak mo\u017eno budova\u0165 \u00falo\u017eisk\u00e1 \u2014 vitajte v \u010dl\u00e1nku!<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead flexibiln\u00fdch metod\u00edk dizajnu 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>\u010co znamen\u00e1 \u201eflexibilita\u201c<\/h3>\n<p>\nNa \u00favod si vyjasnime, ak\u00e9 vlastnosti by mala ma\u0165 syst\u00e9m, aby sa dala nazva\u0165 \u201eflexibilnou\u201c. <\/p>\n<p>Osobitne je potrebn\u00e9 uvies\u0165, \u017ee opisovan\u00e9 vlastnosti by sa mali vz\u0165ahova\u0165 pr\u00e1ve na <b>syst\u00e9m<\/b>, a nie na <b>proces <\/b>jeho v\u00fdvoja. Preto ak ste chceli \u010d\u00edta\u0165 o Agilnom ako metodol\u00f3gii v\u00fdvoja, rad\u0161ej sa obozn\u00e1mte s in\u00fdmi \u010dl\u00e1nkami. Napr\u00edklad, tu na Habr je mno\u017estvo zauj\u00edmav\u00fdch materi\u00e1lov (ako <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/436178\/\">preh\u013eadn\u00fdch<\/a><\/noindex> a <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/284012\/\">praktick\u00fdch<\/a><\/noindex>, tak aj <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dataart\/blog\/245605\/\">probl\u00e9mov\u00fdch<\/a><\/noindex>).<\/p>\n<p>To nie znamen\u00e1, \u017ee proces v\u00fdvoja a \u0161trukt\u00fara d\u00e1tov\u00e9ho skladu nie s\u00fa v\u00f4bec prepojen\u00e9. V\u0161eobecne plat\u00ed, \u017ee vyv\u00edja\u0165 flexibiln\u00e9 \u00falo\u017eisko pomocou metodiky Agile by malo by\u0165 podstatne jednoduch\u0161ie. Na praxi sa v\u0161ak \u010dastej\u0161ie stretneme s variantmi v\u00fdvoja klasick\u00e9ho DWH pod\u013ea Kimballa a DataVault \u2014 pod\u013ea vodop\u00e1du, ne\u017e s \u0161\u0165astn\u00fdmi zhoda flexibility v oboch jej podob\u00e1ch na jednom projekte.<\/p>\n<p>A tak, ak\u00e9 mo\u017enosti by malo ma\u0165 flexibiln\u00e9 \u00falo\u017eisko? Tu m\u00f4\u017eeme vy\u010dleni\u0165 tri body:<\/p>\n<ol>\n<li><b>R\u00e1no dodanie a r\u00fdchla \u00faprava<\/b> \u2014 to znamen\u00e1, \u017ee v ide\u00e1lnom pr\u00edpade by prv\u00fd obchodn\u00fd v\u00fdsledok (napr\u00edklad prv\u00e9 funk\u010dn\u00e9 spr\u00e1vy) mal by\u0165 dosiahnut\u00fd \u010do najsk\u00f4r, t.j. e\u0161te pred t\u00fdm, ako bola cel\u00e1 syst\u00e9m plne navrhnut\u00e1 a implementovan\u00e1. Ka\u017ed\u00e1 nasleduj\u00faca \u00faprava by tie\u017e mala trva\u0165 \u010do najkrat\u0161ie.<\/li>\n<li><b>Iterat\u00edvna \u00faprava<\/b> \u2014 to znamen\u00e1, \u017ee ka\u017ed\u00e1 nasleduj\u00faca \u00faprava by v ide\u00e1lnom pr\u00edpade nemala zasahova\u0165 do u\u017e funguj\u00facej funkcionality. Tento bod sa \u010dasto st\u00e1va najv\u00e4\u010d\u0161ou no\u010dnou morou na ve\u013ek\u00fdch projektoch \u2014 sk\u00f4r \u010di nesk\u00f4r za\u010dn\u00fa jednotliv\u00e9 objekty nadob\u00fada\u0165 tak\u00e9 mno\u017estvo v\u00e4zieb, \u017ee je jednoduch\u0161ie \u00faplne zopakova\u0165 logiku v k\u00f3pii ved\u013ea, ako prida\u0165 pole do existuj\u00facej tabu\u013eky. A ak v\u00e1s prekvapuje, \u017ee anal\u00fdza vplyvu \u00fapravy na existuj\u00face objekty m\u00f4\u017ee trva\u0165 dlh\u0161ie ako samotn\u00e1 \u00faprava \u2014 pravdepodobne ste e\u0161te nepracovali s ve\u013ek\u00fdmi d\u00e1tov\u00fdmi skladmi v bankovn\u00edctve alebo telekomunik\u00e1ci\u00e1ch.<\/li>\n<li><b>St\u00e1la adapt\u00e1cia na meniace sa po\u017eiadavky biznisu<\/b> \u2014 celkov\u00e1 objektov\u00e1 \u0161trukt\u00fara by mala by\u0165 navrhnut\u00e1 nie len s oh\u013eadom na mo\u017en\u00e9 roz\u0161\u00edrenie, ale s predpokladom, \u017ee smer tohto \u010fal\u0161ieho roz\u0161\u00edrenia si v n\u00e1vrhov\u00fdch f\u00e1zach ani nemohli predstavi\u0165.<\/li>\n<\/ol>\n<p>\nA \u00e1no, splnenie v\u0161etk\u00fdch t\u00fdchto po\u017eiadaviek v jednom syst\u00e9me je mo\u017en\u00e9 (samozrejme, za ur\u010dit\u00fdch okolnost\u00ed a s nieko\u013ek\u00fdmi v\u00fdhradami).<\/p>\n<p>Ni\u017e\u0161ie sa pozriem na dve najpopul\u00e1rnej\u0161ie metodol\u00f3gie flexibiln\u00e9ho n\u00e1vrhu pre DWH \u2014 <b>Anchor model<\/b> a <b>Data Vault<\/b>. Za z\u00e1tvorkami zost\u00e1vaj\u00fa tak\u00e9 skvel\u00e9 pr\u00edstupy, ako napr\u00edklad EAV, 6NF (v \u010distej forme) a v\u0161etko, \u010do sa t\u00fdka rie\u0161en\u00ed NoSQL \u2014 nie preto, \u017ee by boli nejako hor\u0161ie, a ani nie preto, \u017ee by \u010dl\u00e1nok v tomto pr\u00edpade hrozil nadobudnut\u00edm objemu priemern\u00e9ho dizerta\u010dn\u00e9ho projektu. Jednoducho v\u0161etko toto sa t\u00fdka rie\u0161en\u00ed inej triedy \u2014 bu\u010f pr\u00edstupov, ktor\u00e9 m\u00f4\u017eete aplikova\u0165 v \u0161pecifick\u00fdch pr\u00edpadoch, bez oh\u013eadu na celkov\u00fa architekt\u00faru v\u00e1\u0161ho projektu (ako EAV), alebo glob\u00e1lne in\u00fdch paradigmatick\u00fdch pr\u00edstupov k ukladaniu inform\u00e1ci\u00ed (ako napr\u00edklad grafov\u00e9 DB a in\u00e9 varianty NoSQL).<\/p>\n<h3>Probl\u00e9my 'klasick\u00e9ho' pr\u00edstupu a ich rie\u0161enia v flexibiln\u00fdch metodol\u00f3giach<\/h3>\n<p>\n<i>Pod 'klasick\u00fdm' pr\u00edstupom rozumiem star\u00fa dobr\u00fa hviezdu (nez\u00e1visle od konkr\u00e9tnej implement\u00e1cie ni\u017e\u0161\u00edch vrstiev, nech ma ospravedlnia zast\u00e1ncovia Kimballa, Inmona a CDM).<br \/>\n<\/i><\/p>\n<h4>1. Pevn\u00e1 cardinalita vz\u0165ahov<\/h4>\n<p>\nNa z\u00e1klade takejto modelovej strukt\u00fary sa zaklad\u00e1 jasn\u00e9 rozdelenie \u00fadajov na <b>dimenzie (Dimension)<\/b> a <b>fakty (Fact)<\/b>. A to je, sakra, logick\u00e9 \u2014 ve\u010f anal\u00fdza \u00fadajov vo v\u00e4\u010d\u0161ine pr\u00edpadov spo\u010d\u00edva pr\u00e1ve v anal\u00fdze ur\u010dit\u00fdch \u010d\u00edseln\u00fdch ukazovate\u013eov (faktov) v ur\u010dit\u00fdch rezy (dimenzi\u00e1ch).<\/p>\n<p>Pri tom sa vz\u0165ahy medzi objektmi zakladaj\u00fa vo forme vz\u0165ahov medzi tabu\u013ekami pomocou vonkaj\u0161ieho k\u013e\u00fa\u010da. To vyzer\u00e1 celkom prirodzene, ale okam\u017eite vedie k prv\u00e9mu obmedzeniu flexibility \u2014 <b>pevn\u00e9mu ur\u010deniu kardinality vz\u0165ahov<\/b>.<\/p>\n<p>To znamen\u00e1, \u017ee v etape projektovania tabuliek mus\u00edte presne ur\u010di\u0165, pre ka\u017ed\u00fd p\u00e1r s\u00favisiacich objektov, \u010di m\u00f4\u017eu by\u0165 v vz\u0165ahu mnoh\u00ed k mnoh\u00fdm, alebo iba 1 k mnoh\u00fdm, a 'v akom smere'. Od toho priamo z\u00e1vis\u00ed, v ktorej tabu\u013eke bude prim\u00e1rny k\u013e\u00fa\u010d a v ktorej \u2014 vonkaj\u0161\u00ed. Zmena tohto vz\u0165ahu pri prich\u00e1dzaj\u00facich nov\u00fdch po\u017eiadavk\u00e1ch je s vysokou pravdepodobnos\u0165ou spojen\u00e1 s rekon\u0161trukciou datab\u00e1zy.<\/p>\n<p>Napr\u00edklad, pri navrhovan\u00ed objektu 'pokladni\u010dn\u00fd blo\u010dek' ste, opieraj\u00fac sa o prisahanie oddelenia predaja, zakomponovali mo\u017enos\u0165 p\u00f4sobenia <b>jednej propaga\u010dnej akcie na nieko\u013eko blo\u010dkov\u00fdch polo\u017eiek<\/b> (ale nie naopak):<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead flexibiln\u00fdch metod\u00edk dizajnu DWH\" src=\"\/wp-content\/uploads\/2020\/08\/15226cb79c30364d94147383ba36a8fd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA po nejakom \u010dase kolegovia zaviedli nov\u00fa marketingov\u00fa strat\u00e9giu, pod\u013ea ktorej na jednu a t\u00fa ist\u00fa polo\u017eku m\u00f4\u017eu p\u00f4sobi\u0165 <b>nieko\u013eko propaga\u010dn\u00fdch akci\u00ed s\u00fa\u010dasne<\/b>. A teraz mus\u00edte upravi\u0165 tabu\u013eky, vy\u010dleni\u0165 vz\u0165ah do samostatn\u00e9ho objektu. <\/p>\n<p>(V\u0161etky odvoden\u00e9 objekty, v ktor\u00fdch doch\u00e1dza k zlu\u010dovaniu kontrol na promo, teraz tie\u017e potrebuj\u00fa \u00fapravy).<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead flexibiln\u00fdch metod\u00edk dizajnu DWH\" src=\"\/wp-content\/uploads\/2020\/08\/3c4d84a31088660257d74c4c703071e0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Vz\u0165ahy v Data Vault a Anchor Model<\/b><\/p>\n<p>Vyhn\u00fa\u0165 sa takej situ\u00e1cii sa uk\u00e1zalo by\u0165 celkom jednoduch\u00e9: netreba veri\u0165 predaju, sta\u010d\u00ed <b>v\u0161etky vz\u0165ahy uchov\u00e1va\u0165 v samostatn\u00fdch tabu\u013ek\u00e1ch<\/b> a spracov\u00e1va\u0165 ako mnoh\u00fdmi-k-mnoh\u00fdm. <\/p>\n<p>Tak\u00fdto pr\u00edstup navrhol <b>Dan Linstedt<\/b> ako s\u00fa\u010das\u0165 paradigmy <b>Data Vault<\/b> a bol plne podporen\u00fd <b>Larsom R\u00f6nnb\u00e4ckom<\/b> v <b>Jadrov\u00e9ho modelu (Anchor Model)<\/b>.<\/p>\n<p>Tak z\u00edskavame prv\u00fa v\u00fdrazn\u00fa vlastnos\u0165 flexibiln\u00fdch metodol\u00f3gi\u00ed:<\/p>\n<blockquote><p>Vz\u0165ahy medzi objektmi nie s\u00fa ulo\u017een\u00e9 v atrib\u00fatoch rodi\u010dovsk\u00fdch ent\u00edt, ale predstavuj\u00fa samostatn\u00fd typ objektov.<\/p><\/blockquote>\n<p>V <b>Data Vault<\/b> tak\u00e9to prepojuj\u00face tabu\u013eky sa naz\u00fdvaj\u00fa <b>Odkaz<\/b>, a v <b>Jadrov\u00fd model<\/b> \u2014 <b>Prepojenie<\/b>. Na prv\u00fd poh\u013ead s\u00fa ve\u013emi podobn\u00e9, hoci n\u00e1zvy ich rozdiely nevy\u010derp\u00e1vaj\u00fa (o \u010dom sa bude diskutova\u0165 ni\u017e\u0161ie). V oboch architekt\u00farach m\u00f4\u017eu prepojuj\u00face tabu\u013eky sp\u00e1ja\u0165 <b>\u013eubovo\u013en\u00fd po\u010det ent\u00edt<\/b> (nie nevyhnutne 2).<\/p>\n<p>T\u00e1to na prv\u00fd poh\u013ead nadbyto\u010dnos\u0165 poskytuje z\u00e1sadn\u00fa flexibilitu pri \u00faprav\u00e1ch. Tak\u00e1to \u0161trukt\u00fara sa st\u00e1va tolerantnou nielen vo\u010di zmene kardinal\u00edt existuj\u00facich vz\u0165ahov, ale aj k pridaniu nov\u00fdch \u2013 ak teraz ku kontrolnej polo\u017eke pribudne aj odkaz na pokladn\u00edka, ktor\u00fd ju zrealizoval, vznik takejto v\u00e4zby sa stane iba nadstavbou nad existuj\u00facimi tabu\u013ekami bez vplyvu na ak\u00e9ko\u013evek existuj\u00face objekty a procesy.<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead flexibiln\u00fdch metod\u00edk dizajnu DWH\" src=\"\/wp-content\/uploads\/2020\/08\/6a3b942a6e5d04dcbe2ff0881ebdf1bf.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h4>2. Duplicitn\u00e9 d\u00e1ta<\/h4>\n<p>\nDruh\u00e1 ot\u00e1zka, ktor\u00fa rie\u0161ia flexibiln\u00e9 architekt\u00fary, je menej zrejm\u00e1 a patr\u00ed predov\u0161etk\u00fdm <b>k meraniam typu SCD2<\/b> (pomal\u00e9 meniace sa merania druh\u00e9ho typu), aj ke\u010f nie iba im.<\/p>\n<p>V klasickom \u00falo\u017eisku predstavuje meranie zvy\u010dajne tabu\u013eku, ktor\u00e1 obsahuje surrogate k\u013e\u00fa\u010d (ako PK) a s\u00fabor obchodn\u00fdch k\u013e\u00fa\u010dov a atrib\u00fatov v samostatn\u00fdch st\u013apcoch. <\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead flexibiln\u00fdch metod\u00edk dizajnu DWH\" src=\"\/wp-content\/uploads\/2020\/08\/059dd47b2302b58c19a0144061b78cb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAk meranie podporuje verzovanie, k \u0161tandardnej sade pol\u00ed sa prid\u00e1vaj\u00fa hranice \u010dasovej \u00fa\u010dinnosti verzie, a na jeden riadok v zdroji sa objav\u00ed nieko\u013eko verzi\u00ed v \u00falo\u017eisku (po jednej na ka\u017ed\u00fa zmenu verziov\u00fdch atrib\u00fatov).<\/p>\n<p>Ak meranie obsahuje aspo\u0148 jeden \u010dasto sa meniaci verzi\u010dn\u00fd atrib\u00fat, po\u010det verzi\u00ed tak\u00e9hoto merania bude p\u00f4sobiv\u00fd (aj ke\u010f ostatn\u00e9 atrib\u00faty nie s\u00fa verzi\u010dn\u00e9 alebo sa nikdy nemenia), a ak je t\u00fdchto atrib\u00fatov viac \u2014 po\u010det verzi\u00ed m\u00f4\u017ee r\u00e1s\u0165 geometrickou progresiou v z\u00e1vislosti od ich po\u010dtu. Tak\u00e9to meranie m\u00f4\u017ee zaber\u00e1 zna\u010dn\u00fd objem diskov\u00e9ho priestoru, hoci v\u00e4\u010d\u0161ina uchov\u00e1van\u00fdch \u00fadajov s\u00fa len duplicity hodn\u00f4t nemenn\u00fdch atrib\u00fatov z in\u00fdch riadkov.<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead flexibiln\u00fdch metod\u00edk dizajnu DWH\" src=\"\/wp-content\/uploads\/2020\/08\/f3d5a4fd83a5ef36355961302173791d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPri tom sa ve\u013emi \u010dasto aplikuje e\u0161te aj <b>denormaliz\u00e1cia<\/b> \u2014 \u010das\u0165 atrib\u00fatov sa \u00famyselne uchov\u00e1va vo forme hodnoty, a nie odkazu na referen\u010dn\u00fa tabulku alebo in\u00e9 meranie. Tento pr\u00edstup ur\u00fdch\u013euje pr\u00edstup k \u00fadajom a zni\u017euje po\u010det spojen\u00ed pri pr\u00edstupe k meraniu.<\/p>\n<p>Ako pravidlo, to vedie k tomu, \u017ee <b>rovnak\u00e9 inform\u00e1cie s\u00fa uchov\u00e1van\u00e9 s\u00fa\u010dasne na viacer\u00fdch miestach<\/b>. Napr\u00edklad inform\u00e1cie o regi\u00f3nu pobytu a pr\u00edslu\u0161nosti do kateg\u00f3rie klienta m\u00f4\u017eu by\u0165 s\u00fa\u010dasne uchov\u00e1van\u00e9 v meraniach \u201eKlient\u201c a v skuto\u010dnostiach \u201eN\u00e1kup\u201c, \u201eDoprava\u201c a \u201eObr\u00e1tenia na call centrum\u201c, ako aj v prepojenej tabu\u013eke \u201eKlient \u2014 Klientsky mana\u017e\u00e9r.\u201c<\/p>\n<p>Celkovo vy\u0161\u0161ie op\u00edsan\u00e9 plat\u00ed aj pre be\u017en\u00e9 (neverzi\u010dn\u00e9) merania, ale vo verzi\u010dn\u00fdch to m\u00f4\u017ee ma\u0165 in\u00fd rozsah: vznik novej verzie objektu (najm\u00e4 sp\u00e4tne) vedie nielen k aktualiz\u00e1cii v\u0161etk\u00fdch s\u00favisiacich tabuliek, ale k kask\u00e1dov\u00e9mu vzniku nov\u00fdch verzi\u00ed s\u00favisiacich objektov \u2014 ke\u010f Tabu\u013eka 1 sa pou\u017e\u00edva pri zostavovan\u00ed Tabu\u013eky 2, a Tabu\u013eka 2 pri zostavovan\u00ed Tabu\u013eky 3 at\u010f. Aj ke\u010f \u017eiaden atrib\u00fat Tabu\u013eky 1 nie je zapojen\u00fd do zostavovania Tabu\u013eky 3 (a zapojen\u00e9 s\u00fa in\u00e9 atrib\u00faty z Tabu\u013eky 2, z\u00edskan\u00e9 z in\u00fdch zdrojov), verziov\u00e1 aktualiz\u00e1cia tejto kon\u0161trukcie minim\u00e1lne povedie k dodato\u010dn\u00fdm n\u00e1kladom a v maxim\u00e1lnom pr\u00edpade k zbyto\u010dn\u00fdm verzi\u00e1m v Tabu\u013eke 3, ktor\u00e1 tu je vlastne \"nepr\u00edpustn\u00e1\" a \u010falej v re\u0165azci.<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead flexibiln\u00fdch metod\u00edk dizajnu DWH\" src=\"\/wp-content\/uploads\/2020\/08\/2935f93abc46f02bdc528accda2af758.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>3. Neline\u00e1rna zlo\u017eitost \u00faprav<\/h4>\n<p>\nPri tom ka\u017ed\u00e1 nov\u00e1 vitr\u00edna, postaven\u00e1 na z\u00e1klade inej, zvy\u0161uje po\u010det miest, kde sa \u00fadaje m\u00f4\u017eu \"rozdeli\u0165\" pri vykon\u00e1van\u00ed zmien v ETL. To, na druhej strane, vedie k zv\u00fd\u0161eniu zlo\u017eitosti (a trvania) ka\u017ed\u00e9ho nasleduj\u00faceho upravovania.<\/p>\n<p>Ak sa v\u00fd\u0161e uveden\u00e9 t\u00fdka syst\u00e9mov s m\u00e1lo upravovan\u00fdmi ETL procesmi, m\u00f4\u017ee sa v takej paradigme \u017ei\u0165 \u2013 sta\u010d\u00ed len sledova\u0165, aby nov\u00e9 \u00fapravy boli spr\u00e1vne zahrnut\u00e9 do v\u0161etk\u00fdch s\u00favisiacich objektov. Ak sa v\u0161ak \u00fapravy robia \u010dasto, pravdepodobnos\u0165, \u017ee sa nieko\u013eko v\u00e4zieb \"preme\u0161k\u00e1\", sa zna\u010dne zvy\u0161uje.<\/p>\n<p>Ak navy\u0161e zv\u00e1\u017eime, \u017ee \"verzovan\u00e9\" ETL je podstatne zlo\u017eitej\u0161ie ako \"neverzovan\u00e9\", vyhn\u00fa\u0165 sa chyb\u00e1m pri \u010dast\u00fdch \u00faprav\u00e1ch tohto riadenia je dos\u0165 n\u00e1ro\u010dn\u00e9.<\/p>\n<h3>Ukladanie objektov a atrib\u00fatov v Data Vault a Anchor Model<\/h3>\n<p>\nPr\u00edstup, ktor\u00fd autori flexibiln\u00fdch architekt\u00far navrhuj\u00fa, mo\u017eno formulova\u0165 takto:<\/p>\n<blockquote><p>Je potrebn\u00e9 oddeli\u0165 to, \u010do sa men\u00ed, od toho, \u010do zost\u00e1va nemenn\u00e9. To znamen\u00e1 uklada\u0165 k\u013e\u00fa\u010de oddelene od atrib\u00fatov.<\/p><\/blockquote>\n<p> Pri tom by sa nemalo zamie\u0148a\u0165 <b>neverzovan\u00fd<\/b> atrib\u00fat s <b>nemenn\u00fdm<\/b>: prv\u00fd neuchov\u00e1va hist\u00f3riu svojich zmien, ale m\u00f4\u017ee sa meni\u0165 (napr\u00edklad pri oprave chybn\u00e9ho zadania alebo z\u00edskan\u00ed nov\u00fdch \u00fadajov), druh\u00fd \u2013 nikdy sa nemen\u00ed.<\/p>\n<p>N\u00e1zory na to, \u010do presne mo\u017eno pova\u017eova\u0165 za nemenn\u00e9 v Data Vault a Anchor modeli, sa l\u00ed\u0161ia.<\/p>\n<p>Z poh\u013eadu architekt\u00fary <b>Data Vault<\/b>, nemenn\u00e9 mo\u017eno pova\u017eova\u0165 <b>cel\u00fd s\u00fabor k\u013e\u00fa\u010dov<\/b> \u2014 natur\u00e1lne (I\u010cO organiz\u00e1cie, k\u00f3d tovaru v zdrojovom syst\u00e9me a pod.) a substitu\u010dn\u00e9. Pri tom ostatn\u00e9 atrib\u00faty je mo\u017en\u00e9 rozdeli\u0165 do skup\u00edn pod\u013ea zdroja a\/alebo frekvencie zmien a <b>pre ka\u017ed\u00fa skupinu vies\u0165 samostatn\u00fa tabu\u013eku<\/b> s nez\u00e1visl\u00fdm s\u00faborom verzi\u00ed.<\/p>\n<p>V paradigme <b>Anchor Model<\/b> sa za nemenn\u00fd pova\u017euje <b>len substitu\u010dn\u00fd k\u013e\u00fa\u010d<\/b> ent\u00edt. V\u0161etko ostatn\u00e9 (vr\u00e1tane natur\u00e1lnych k\u013e\u00fa\u010dov) je jednoducho osobitn\u00fdm pr\u00edpadom jeho atrib\u00fatov. Pri tom <b>v\u0161etky atrib\u00faty s\u00fa predvolene nez\u00e1visl\u00e9 jeden od druh\u00e9ho<\/b>, preto pre ka\u017ed\u00fd atrib\u00fat by mala by\u0165 vytvoren\u00e1 <b>samostatn\u00e1 tabu\u013eka<\/b>.<\/p>\n<p>V <b>Data Vault<\/b> tabu\u013eky, obsahuj\u00face k\u013e\u00fa\u010de ent\u00edt, sa naz\u00fdvaj\u00fa <b>Huby (Hub)<\/b>. Huby v\u017edy obsahuj\u00fa pevn\u00fd s\u00fabor pol\u00ed:<\/p>\n<ul>\n<li>Natur\u00e1lne k\u013e\u00fa\u010de ent\u00edt<\/li>\n<li>Substitu\u010dn\u00fd k\u013e\u00fa\u010d<\/li>\n<li>Odkaz na zdroj<\/li>\n<li>\u010cas pridania z\u00e1znamu<\/li>\n<\/ul>\n<p>\nZ\u00e1znamy v Huboch <b>nikdy nie s\u00fa menen\u00e9 a nemaj\u00fa verzie.<\/b>. Extern\u00e9 huby ve\u013emi pripom\u00ednaj\u00fa tabu\u013eky typu ID-map, ktor\u00e9 sa vyu\u017e\u00edvaj\u00fa v niektor\u00fdch syst\u00e9moch na generovanie surrogate, av\u0161ak v Data Vault sa odpor\u00fa\u010da pou\u017e\u00edva\u0165 nie celo\u010d\u00edseln\u00fd sekvenc, ale hash z podnikov\u00fdch k\u013e\u00fa\u010dov. Tento pr\u00edstup zjednodu\u0161uje na\u010d\u00edtanie vz\u0165ahov a atrib\u00fatov zo zdrojov (nie je potrebn\u00e9 sa pripoji\u0165 k hubu na z\u00edskanie surrogate, sta\u010d\u00ed jednoducho vypo\u010d\u00edta\u0165 hash z prirodzen\u00e9ho k\u013e\u00fa\u010da), ale m\u00f4\u017ee vyvola\u0165 in\u00e9 probl\u00e9my (napr\u00edklad s\u00favisiace s kol\u00edziami, ve\u013ek\u00fdmi p\u00edsmenami a nevidite\u013en\u00fdmi znakmi v re\u0165azcov\u00fdch k\u013e\u00fa\u010doch at\u010f.), preto nie je v\u0161eobecne prij\u00edman\u00fd.<\/p>\n<p>V\u0161etky ostatn\u00e9 atrib\u00faty ent\u00edt sa ukladaj\u00fa v \u0161peci\u00e1lnych tabu\u013ek\u00e1ch naz\u00fdvan\u00fdch <b>Satellity (Satellit)<\/b>. Jeden hub m\u00f4\u017ee ma\u0165 nieko\u013eko satelitov, ktor\u00e9 uchov\u00e1vaj\u00fa r\u00f4zne s\u00fabory atrib\u00fatov.<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead flexibiln\u00fdch metod\u00edk dizajnu DWH\" src=\"\/wp-content\/uploads\/2020\/08\/e145f211b8cfb51894e6e1789991e1cd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRozdelenie atrib\u00fatov medzi satelitmi sa vykon\u00e1va na princ\u00edpe <b>spolo\u010dnej zmeny<\/b> \u2014 v jednom satelite m\u00f4\u017eu by\u0165 uchov\u00e1van\u00e9 neverzionovan\u00e9 atrib\u00faty (napr\u00edklad d\u00e1tum narodenia a S\u010cIT pre fyzick\u00e9 osoby), v druhom \u2014 zriedka sa meniac\u00e9 verziovan\u00e9 (napr\u00edklad priezvisko a \u010d\u00edslo pasu), v tre\u0165om \u2014 \u010dasto sa meniac\u00e9 (napr\u00edklad adresa doru\u010denia, kateg\u00f3ria, d\u00e1tum poslednej objedn\u00e1vky at\u010f.). Verzionovanie sa pritom vykon\u00e1va na \u00farovni jednotliv\u00fdch satelitov, nie celej entity, preto je rozumn\u00e9 rozde\u013eova\u0165 atrib\u00faty tak, aby prienik verzi\u00ed v jednom satelite bol minim\u00e1lny (\u010do skracuje celkov\u00fd po\u010det uchov\u00e1van\u00fdch verzi\u00ed). <\/p>\n<p>Tie\u017e, na optimaliz\u00e1ciu procesu na\u010d\u00edtania \u00fadajov, s\u00fa do samostatn\u00fdch satelitov \u010dasto pres\u00favan\u00e9 atrib\u00faty z\u00edskan\u00e9 z r\u00f4znych zdrojov.<\/p>\n<p>Satelity s\u00fa prepojen\u00e9 s hubom pomocou <b>cudz\u00edch k\u013e\u00fa\u010dov<\/b> \u010do zodpoved\u00e1 kardinalite 1-k-mnoh\u00fdm. To znamen\u00e1, \u017ee viacer\u00e9 hodnoty atrib\u00fatov (napr\u00edklad nieko\u013eko kontaktn\u00fdch telef\u00f3nnych \u010d\u00edsiel jedn\u00e9ho klienta) s\u00fa touto architekt\u00farou \u201cpod\u013ea predpokladu\u201d podporovan\u00e9.<\/p>\n<p>V <b>Kotviacej modely (Anchor Model)<\/b> tabu\u013eky, ktor\u00e9 ukladaj\u00fa k\u013e\u00fa\u010de, sa naz\u00fdvaj\u00fa <b>Kotvy (Anchor)<\/b>. A uchov\u00e1vaj\u00fa: <\/p>\n<ul>\n<li><b>Len surrogate k\u013e\u00fa\u010de<\/b><\/li>\n<li>Odkaz na zdroj<\/li>\n<li>\u010cas pridania z\u00e1znamu<\/li>\n<\/ul>\n<p>\nPrirodzen\u00e9 k\u013e\u00fa\u010de z poh\u013eadu Kotviacej Modely s\u00fa pova\u017eovan\u00e9 za <b>be\u017en\u00e9 atrib\u00faty<\/b>. T\u00e1to varianta sa m\u00f4\u017ee javi\u0165 zlo\u017eitej\u0161ia na pochopenie, ale poskytuje ove\u013ea v\u00e4\u010d\u0161\u00ed priestor na identifik\u00e1ciu objektu.<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead flexibiln\u00fdch metod\u00edk dizajnu DWH\" src=\"\/wp-content\/uploads\/2020\/08\/0bf941581fd1177eda228d4429cf69db.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNapr\u00edklad, ak \u00fadaje o jednej a tej istej entite m\u00f4\u017eu poch\u00e1dza\u0165 z r\u00f4znych syst\u00e9mov, pri\u010dom v ka\u017edom sa pou\u017e\u00edva svoj prirodzen\u00fd k\u013e\u00fa\u010d. V Data Vault to m\u00f4\u017ee vies\u0165 k pomerne zlo\u017eit\u00fdm kon\u0161trukci\u00e1m z viacer\u00fdch hubov (po jednom na zdroj + sp\u00e1jaj\u00faca hlavn\u00e1 verzia), zatia\u013e \u010do v Kotvovej modely sa prirodzen\u00fd k\u013e\u00fa\u010d ka\u017ed\u00e9ho zdroja dost\u00e1va do svojho atrib\u00fatu a m\u00f4\u017ee sa pou\u017e\u00edva\u0165 pri na\u010d\u00edtan\u00ed nez\u00e1visle od ostatn\u00fdch. <\/p>\n<p>Ale tu sa skr\u00fdva jeden zlo\u017eit\u00fd moment: ak sa v jednej entite sp\u00e1jaj\u00fa atrib\u00faty z r\u00f4znych syst\u00e9mov, pravdepodobne existuj\u00fa ur\u010dit\u00e9 <b>pravidl\u00e1 \u201esp\u00e1jania\u201c<\/b>, pod\u013ea ktor\u00fdch mus\u00ed syst\u00e9m rozumie\u0165, \u017ee z\u00e1znamy z r\u00f4znych zdrojov zodpovedaj\u00fa jedn\u00e9mu exempl\u00e1ru entity. <\/p>\n<p>V <b>Data Vault<\/b> Tieto pravidl\u00e1 pravdepodobne ur\u010duj\u00fa formovanie <b>\u201esurrog\u00e1tneho hubu\u201c hlavnej entity<\/b> a nemaj\u00fa \u017eiadny vplyv na Huby, ktor\u00e9 uchov\u00e1vaj\u00fa prirodzen\u00e9 k\u013e\u00fa\u010de zdrojov a ich p\u00f4vodn\u00e9 atrib\u00faty. Ak sa v nejakom momente pravidl\u00e1 sp\u00e1jania zmenia (alebo pr\u00edde aktualiz\u00e1cia atrib\u00fatov, pod\u013ea ktor\u00fdch sa vykon\u00e1va), bude sta\u010di\u0165 znovu vytvori\u0165 surrog\u00e1tne huby.<\/p>\n<p>V <b>Kotvov\u00e1 modela<\/b> v\u0161ak tak\u00e1 entita pravdepodobne bude ulo\u017een\u00e1 v <b>jedinom kotve<\/b>. To znamen\u00e1, \u017ee v\u0161etky atrib\u00faty, bez oh\u013eadu na to, z ak\u00e9ho zdroja s\u00fa z\u00edskan\u00e9, bud\u00fa viazan\u00e9 na ten ist\u00fd surrog\u00e1t. Rozdeli\u0165 omylom zl\u00fa\u010den\u00e9 z\u00e1znamy a celkovo sledova\u0165 aktu\u00e1lnos\u0165 sp\u00e1jania v takomto syst\u00e9me m\u00f4\u017ee by\u0165 podstatne \u0165a\u017e\u0161ie, najm\u00e4 ak s\u00fa pravidl\u00e1 dos\u0165 zlo\u017eit\u00e9 a \u010dasto sa menia, a ten ist\u00fd atrib\u00fat m\u00f4\u017ee by\u0165 z\u00edskan\u00fd z r\u00f4znych zdrojov (hoci to je ur\u010dite mo\u017en\u00e9, preto\u017ee ka\u017ed\u00e1 verzia atrib\u00fatu uchov\u00e1va odkaz na svoj zdroj).<\/p>\n<p>V ka\u017edom pr\u00edpade, ak vo va\u0161om syst\u00e9me je pl\u00e1novan\u00e1 realiz\u00e1cia funkcie <b>deduplik\u00e1cie, zl\u00fa\u010denia z\u00e1znamov a in\u00fdch prvkov MDM<\/b>, stoj\u00ed za to obzvl\u00e1\u0161\u0165 d\u00f4kladne obozn\u00e1mi\u0165 sa s aspektmi uchov\u00e1vania prirodzen\u00fdch k\u013e\u00fa\u010dov v flexibiln\u00fdch met\u00f3dach. Pravdepodobne zlo\u017eitej\u0161ia kon\u0161trukcia Data Vault sa zrazu uk\u00e1\u017ee by\u0165 bezpe\u010dnej\u0161ou z poh\u013eadu ch\u00fdb pri zl\u00fa\u010den\u00ed.<\/p>\n<p><b>Kotvov\u00e1 modela<\/b> taktie\u017e predpoklad\u00e1 \u010fal\u0161\u00ed typ objektu, naz\u00fdvan\u00fd <b>Uzol (Knot)<\/b> v podstate ide o \u0161peci\u00e1lny <b>degenerovan\u00fd typ kotvy<\/b>, ktor\u00fd m\u00f4\u017ee obsahova\u0165 iba jeden atrib\u00fat. Uzly sa predpokladaj\u00fa na uchov\u00e1vanie ploch\u00fdch slovn\u00edkov (napr\u00edklad pohlavie, rodinn\u00fd stav, kateg\u00f3ria obsluhy z\u00e1kazn\u00edkov a pod.). Na rozdiel od Kotvy, Uzol <b>nem\u00e1 priraden\u00e9 tabu\u013eky atrib\u00fatov<\/b>, a jeho jedin\u00fd atrib\u00fat (n\u00e1zov) sa v\u017edy uchov\u00e1va v jednej tabu\u013eke s k\u013e\u00fa\u010dom. Uzly s\u00fa prepojen\u00e9 s Kotvami prostredn\u00edctvom tabu\u013eiek-v\u00e4zieb (Tie) rovnako, ako s\u00fa kotvy navz\u00e1jom.<\/p>\n<p>Nie je jednozna\u010dn\u00fd n\u00e1zor na pou\u017e\u00edvanie Uzlov. Napr\u00edklad <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/azathot\/\">Nikolaj Golov<\/a><\/noindex>, ktor\u00fd akt\u00edvne presadzuje pou\u017e\u00edvanie Kotvovej modelu v Rusku, tvrd\u00ed (nie bezd\u00f4vodne), \u017ee pre \u017eiadny slovn\u00edk nemo\u017eno presne tvrdi\u0165, \u017ee bude <b>v\u017edy<\/b> statick\u00fd a jednorozmern\u00fd, preto je pre v\u0161etky objekty lep\u0161ie hne\u010f pou\u017e\u00edva\u0165 plnohodnotn\u00fa Kotvu.<\/p>\n<p>\u010eal\u0161\u00edm d\u00f4le\u017eit\u00fdm rozdielom medzi Data Vault a Kotvovou modelom je existencia <b>atrib\u00fatov u v\u00e4zieb<\/b>:<\/p>\n<p>V <b>Data Vault<\/b> V\u00e4zby s\u00fa rovnako plnohodnotn\u00e9 objekty ako Haby a m\u00f4\u017eu ma\u0165 <b>vlastn\u00e9 atrib\u00faty<\/b>. V <b>Kotvov\u00e1 modela<\/b> V\u00e4zby sa pou\u017e\u00edvaj\u00fa iba na prepojenie Kotiev a <b>vlastn\u00e9 atrib\u00faty ma\u0165 nem\u00f4\u017eu<\/b>. Tento rozdiel poskytuje v\u00fdznamne odli\u0161n\u00e9 pr\u00edstupy k modelovaniu <b>faktov<\/b>, o \u010dom sa bude diskutova\u0165 \u010falej.<\/p>\n<h3>Ukladanie faktov<\/h3>\n<p>\nPredt\u00fdm sme hovorili hlavne o modelovan\u00ed rozmerov. S faktami je situ\u00e1cia o nie\u010do menej jednozna\u010dn\u00e1.<\/p>\n<p>V <b>Data Vault<\/b> typick\u00fd objekt na uchov\u00e1vanie faktov \u2014<b> V\u00e4zba (Link)<\/b>, v Satelitoch ktorej sa uklad\u00e1 hmotnostn\u00fd ukazovate\u013e.<\/p>\n<p>Tento pr\u00edstup sa jav\u00ed intuit\u00edvne zrozumite\u013en\u00fd. Poskytuje jednoduch\u00fd pr\u00edstup k analyzovan\u00fdm ukazovate\u013eom a vo v\u0161eobecnosti sa podob\u00e1 tradi\u010dnej tabu\u013eke faktov (len ukazovatele s\u00fa ulo\u017een\u00e9 nie v tej istej tabu\u013eke, ale v 'susednej'). Ale s\u00fa tu aj skryt\u00e9 n\u00e1strahy: jedna z typick\u00fdch opr\u00e1v modelu \u2014 roz\u0161\u00edrenie k\u013e\u00fa\u010da faktu \u2014 si vy\u017eaduje <b>pridanie nov\u00e9ho vonkaj\u0161ieho k\u013e\u00fa\u010da do Linku<\/b>. A to zase 'nar\u00fa\u0161a' modul\u00e1rnos\u0165 a potenci\u00e1lne vy\u017eaduje opravy in\u00fdch objektov.<\/p>\n<p>V <b>Kotvov\u00e1 modela<\/b> V\u00e4zba nem\u00f4\u017ee ma\u0165 vlastn\u00e9 atrib\u00faty, preto tak\u00fd pr\u00edstup neobstoj\u00ed \u2014 absol\u00fatne v\u0161etky atrib\u00faty a ukazovatele musia by\u0165 viazan\u00e9 na jeden konkr\u00e9tny uzol. Z toho vypl\u00fdva jednoduch\u00fd z\u00e1ver \u2014 <b>pre ka\u017ed\u00fd fakt je tie\u017e potrebn\u00e1 vlastn\u00e1 kotva<\/b>. Pre \u010das\u0165 toho, \u010do zvy\u010dajne vn\u00edmame ako fakty, to m\u00f4\u017ee vyzera\u0165 prirodzene \u2014 napr\u00edklad fakt n\u00e1kupu sa dobre zhoduje s objektom \u201eobjedn\u00e1vka\u201c alebo \u201eblo\u010dek\u201c, n\u00e1v\u0161teva webovej str\u00e1nky \u2014 so \u201esession\u201c at\u010f. Ale objavuj\u00fa sa aj fakty, pre ktor\u00e9 nie je tak\u00e9 jednoduch\u00e9 n\u00e1js\u0165 tak\u00fd prirodzen\u00fd \u201eobjekt-nosite\u013e\u201c \u2014 napr\u00edklad zostatky tovaru na sklade na za\u010diatku ka\u017ed\u00e9ho d\u0148a. <\/p>\n<p>Zodpovedaj\u00faco, probl\u00e9my s modul\u00e1rnos\u0165ou pri roz\u0161irovan\u00ed k\u013e\u00fa\u010da faktu v Kotvovom modeli nevznikaj\u00fa (sta\u010d\u00ed jednoducho prida\u0165 nov\u00fa Sv\u00e4zku k pr\u00edslu\u0161n\u00e9mu Kotve), ale navrhovanie modelu na zobrazenie faktov je menej jednozna\u010dn\u00e9, m\u00f4\u017eu sa objavova\u0165 \u201eumel\u00e9\u201c Kotvy, ktor\u00e9 zn\u00e1zor\u0148uj\u00fa objektov\u00fd model podnikania nejasne.<\/p>\n<h3>Ako sa dosahuje flexibilita<\/h3>\n<p>\nV\u00fdsledn\u00e1 kon\u0161trukcia v oboch pr\u00edpadoch obsahuje <b>podstatne viac tabuliek<\/b>, ne\u017e tradi\u010dn\u00e9 meranie. Ale m\u00f4\u017ee zaberaj\u00fa <b>podstatne menej diskov\u00e9ho priestoru<\/b> pri tom istom s\u00fabore verziov\u00fdch atrib\u00fatov, ktor\u00e9 m\u00e1 tradi\u010dn\u00e9 meranie. \u017diadna m\u00e1gia tu, prirodzene, nie je \u2014 v\u0161etko spo\u010d\u00edva v normaliz\u00e1cii. Rozde\u013eovan\u00edm atrib\u00fatov medzi Satelity (v Data Vault) alebo oddelen\u00e9 tabu\u013eky (Kotvov\u00fd model) zni\u017eujeme (alebo \u00faplne vylu\u010dujeme) <b>zdvojovanie hodn\u00f4t niektor\u00fdch atrib\u00fatov pri zmene in\u00fdch<\/b>.<\/p>\n<p>Pre <b>Data Vault<\/b> v\u00fdhoda bude z\u00e1visie\u0165 od rozdelenia atrib\u00fatov medzi Satelity, a pre <b>Kotvov\u00e1 modela<\/b> \u2014 prakticky priamo \u00famerne k priemern\u00e9mu po\u010dtu verzi\u00ed na objektoch merania.<\/p>\n<p>Av\u0161ak zisk na obsadenom mieste \u2014 d\u00f4le\u017eit\u00e1, ale nie hlavn\u00fa v\u00fdhodu oddelen\u00e9ho ukladania atrib\u00fatov. Spolu s oddelen\u00fdm ukladan\u00edm v\u00e4zieb, tak\u00fd pr\u00edstup rob\u00ed \u00falo\u017eisko <b>modul\u00e1rnou kon\u0161trukciou<\/b>. To znamen\u00e1, \u017ee pridanie ako jednotliv\u00fdch atrib\u00fatov, tak aj cel\u00fdch nov\u00fdch predmetn\u00fdch oblast\u00ed v takom modeli vyzer\u00e1 ako <b>nadstavba<\/b> nad existuj\u00facim s\u00faborom objektov bez ich zmeny. A to je presne to, \u010do rob\u00ed op\u00edsan\u00e9 metodiky flexibiln\u00fdmi.<\/p>\n<p>Takisto to pripom\u00edna prechod od kusovej v\u00fdroby k hromadnej \u2014 ak v tradi\u010dnom pr\u00edstupe ka\u017ed\u00e1 tabu\u013eka modelu je jedine\u010dn\u00e1 a vy\u017eaduje si osobitn\u00fa pozornos\u0165, tak v flexibiln\u00fdch metodik\u00e1ch \u2014 je to u\u017e s\u00fabor typov\u00fdch \u201edielov\u201c. Na jednej strane, tabuliek sa st\u00e1va viac, procesy na\u010d\u00edtania a vyberania d\u00e1t musia vyzera\u0165 zlo\u017eitej\u0161ie. Na druhej strane \u2014 st\u00e1vaj\u00fa sa <b>typov\u00fdmi<\/b>. A teda, m\u00f4\u017eu by\u0165 <b>s\u00fa automatizovan\u00e9 a spravovan\u00e9 metad\u00e1tami<\/b>. Ot\u00e1zka \u201eako budeme uklada\u0165?\u201c, na ktor\u00fa mohla odpove\u010f zabera\u0165 v\u00fdznamn\u00fa \u010das\u0165 pr\u00e1ce na dizajne \u00faprav, teraz jednoducho nestoj\u00ed (rovnako ako ot\u00e1zka o vplyve zmeny modelu na funguj\u00face procesy). <\/p>\n<p>To neznamen\u00e1, \u017ee analytici v takomto syst\u00e9me s\u00fa \u00faplne zbyto\u010dn\u00ed \u2014 niekto st\u00e1le mus\u00ed spracova\u0165 s\u00fabor objektov s atrib\u00fatmi a zisti\u0165, odkia\u013e a ako to v\u0161etko na\u010d\u00edta\u0165. Ale objem pr\u00e1ce, ako aj pravdepodobnos\u0165 a cena chyby sa v\u00fdrazne zni\u017euj\u00fa. Ako v etap\u00e1ch anal\u00fdzy, tak aj pri v\u00fdvoji ETL, ktor\u00fd m\u00f4\u017ee do zna\u010dnej miery spo\u010d\u00edva\u0165 v \u00faprave metad\u00e1t. <\/p>\n<h3>Temn\u00e1 str\u00e1nka<\/h3>\n<p>\nV\u0161etko vy\u0161\u0161ie op\u00edsan\u00e9 rob\u00ed oba pr\u00edstupy skuto\u010dne flexibiln\u00fdmi, technologick\u00fdmi a vhodn\u00fdmi pre iterat\u00edvne \u00fapravy. Samozrejme, \u017ee existuje aj \u201ebarel dechtu\u201c, o ktorom, si mysl\u00edm, u\u017e tu\u0161\u00edte.<\/p>\n<p>Dekompoz\u00edcia d\u00e1t, ktor\u00e1 sa nach\u00e1dza v jadre modularity flexibiln\u00fdch architekt\u00far, vedie k zv\u00fd\u0161eniu po\u010dtu tabuliek a t\u00fdm p\u00e1dom <b>prev\u00e1dzkov\u00fdch n\u00e1kladov<\/b> na JOINY pri v\u00fdbere. Aby sme jednoducho z\u00edskali v\u0161etky atrib\u00faty merania, v klasickom \u00falo\u017eisku sta\u010d\u00ed jeden SELECT, zatia\u013e \u010do flexibiln\u00e1 architekt\u00fara si vy\u017eaduje cel\u00fa radu JOINOV. A ak je mo\u017en\u00e9 v\u0161etky tieto JOINY nap\u00edsa\u0165 vopred pre spr\u00e1vy, analytici zvyknut\u00ed p\u00edsa\u0165 SQL ru\u010dne bud\u00fa trpie\u0165 dvojmo.<\/p>\n<p>Existuje nieko\u013eko faktov, ktor\u00e9 u\u013eah\u010duj\u00fa tak\u00fato situ\u00e1ciu:<\/p>\n<p><b>Pri pr\u00e1ci s ve\u013ek\u00fdmi meraniami sa takmer nikdy pou\u017e\u00edvaj\u00fa naraz v\u0161etky jeho atrib\u00faty.<\/b> To znamen\u00e1, \u017ee JOINOV m\u00f4\u017ee by\u0165 menej, ako sa zd\u00e1 na prv\u00fd poh\u013ead na model. V Data Vault je mo\u017en\u00e9 tie\u017e zoh\u013eadni\u0165 predpokladan\u00fa frekvenciu spolo\u010dn\u00e9ho pou\u017e\u00edvania pri rozde\u013eovan\u00ed atrib\u00fatov medzi satelity. Samotn\u00e9 Huby alebo Kotvy s\u00fa predov\u0161etk\u00fdm potrebn\u00e9 na generovanie a mapovanie surrogate na etape na\u010d\u00edtania a zriedka sa pou\u017e\u00edvaj\u00fa v dotazoch (toto sa predov\u0161etk\u00fdm t\u00fdka Kotiev).<\/p>\n<p><b>V\u0161etky JOINY s\u00fa pod\u013ea k\u013e\u00fa\u010da.<\/b> Okrem toho, \u201ekompaktnej\u0161\u00ed\u201c sp\u00f4sob ukladania d\u00e1t zni\u017euje re\u017eijn\u00e9 n\u00e1klady na prehliadanie tabuliek tam, kde je to potrebn\u00e9 (napr\u00edklad pri filtrovan\u00ed pod\u013ea hodnoty atrib\u00fatu). To m\u00f4\u017ee vies\u0165 k tomu, \u017ee v\u00fdber z normalizovanej datab\u00e1zy s mno\u017estvom joinov bude dokonca r\u00fdchlej\u0161\u00ed ako prehliadanie jednej \u0165a\u017ekej dimenzie s mnoh\u00fdmi verziami na riadok.<\/p>\n<p>Napr\u00edklad, tu v <noindex><a rel=\"nofollow\" href=\"http:\/\/www.anchormodeling.com\/wp-content\/uploads\/2011\/05\/Anchor-Modeling.pdf\">tejto <\/a><\/noindex> \u010dl\u00e1nku je podrobn\u00fd porovn\u00e1vac\u00ed test v\u00fdkonu Kotvovej modely s v\u00fdberom z jednej tabu\u013eky.<\/p>\n<p><b>Ve\u013ea z\u00e1vis\u00ed od enginu.<\/b> Mnoh\u00e9 modern\u00e9 platformy maj\u00fa vstavan\u00e9 mechanizmy optimaliz\u00e1cie joinov. Napr\u00edklad, MS SQL a Oracle dok\u00e1\u017eu \u201epresko\u010di\u0165\u201c joiny na tabu\u013eky, ak sa ich d\u00e1ta nikde nepou\u017e\u00edvaj\u00fa, okrem in\u00fdch joinov a neovplyv\u0148uj\u00fa fin\u00e1lny v\u00fdber (table\/join elimination), zatia\u013e \u010do MPP Vertica pod\u013ea <noindex><a rel=\"nofollow\" href=\"http:\/\/www.anchormodeling.com\/wp-content\/uploads\/2011\/05\/Big_Data_Normalization.pdf\">sk\u00fasenost\u00ed kolegov z Avita<\/a><\/noindex>, sa uk\u00e1zala ako vynikaj\u00faci engine pre Kotvov\u00fa modelu s oh\u013eadom na ur\u010dit\u00fa manu\u00e1lnu optimaliz\u00e1ciu pl\u00e1nu dopytu. Na druhej strane, uchov\u00e1vanie Kotvovej modely, napr\u00edklad, na Click House, ktor\u00fd m\u00e1 obmedzen\u00fa podporu joinov, zatia\u013e nevyzer\u00e1 ako pr\u00e1ve najlep\u0161\u00ed n\u00e1pad.<\/p>\n<p>Okrem toho, pre obe architekt\u00fary existuj\u00fa <b>\u0161peci\u00e1lne techniky<\/b>, ktor\u00e9 u\u013eah\u010duj\u00fa pr\u00edstup k d\u00e1tam (\u010di u\u017e z poh\u013eadu v\u00fdkonu dopytov, alebo pre koncov\u00fdch pou\u017e\u00edvate\u013eov). Napr\u00edklad, <b>Point-In-Time tabu\u013eky<\/b> v Data Vault alebo <b>\u0161peci\u00e1lne tabu\u013ekov\u00e9 funkcie<\/b> v Kotvovej modele.<\/p>\n<h2>Spolu<\/h2>\n<p>\nHlavn\u00e1 podstata presk\u00faman\u00fdch flexibiln\u00fdch architekt\u00far spo\u010d\u00edva v modul\u00e1rnosti ich \u201ekon\u0161trukcie\u201c. <\/p>\n<p>Pr\u00e1ve t\u00e1to vlastnos\u0165 umo\u017e\u0148uje:<\/p>\n<ul>\n<li>Po ur\u010ditej po\u010diato\u010dnej pr\u00edprave, s\u00favisiacej so rozmiestnen\u00edm metad\u00e1t a p\u00edsan\u00edm z\u00e1kladn\u00fdch ETL algoritmov, <b>r\u00fdchlo poskytn\u00fa\u0165 z\u00e1kazn\u00edkovi prv\u00fd v\u00fdsledok<\/b> vo forme nieko\u013ek\u00fdch spr\u00e1v, ktor\u00e9 obsahuj\u00fa d\u00e1ta z nieko\u013ek\u00fdch zdrojov\u00fdch objektov. Celkom prem\u00fd\u0161\u013ea\u0165 (aj na vy\u0161\u0161ej \u00farovni) o celej objektovej modelu pre to nie je nevyhnutn\u00e9.<\/li>\n<li>Model d\u00e1t m\u00f4\u017ee za\u010da\u0165 fungova\u0165 (a prin\u00e1\u0161a\u0165 \u00fa\u017eitok) len s 2-3 objektmi, a potom <b>postupne sa rozrasta\u0165<\/b> (vo vz\u0165ahu k Kotvovej modely Nikolaj <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/avito\/blog\/322510\/\">aplikoval <\/a><\/noindex>kr\u00e1sne porovnanie s houbov\u00fdmi izol\u00e1tmi).<\/li>\n<li>V\u00e4\u010d\u0161ina \u00faprav, vr\u00e1tane roz\u0161\u00edrenia predmetnej oblasti a pridania nov\u00fdch zdrojov <b>nezasahuje do existuj\u00facej funkcionality a nezapr\u00ed\u010di\u0148uje riziko rozbi\u0165 nie\u010do, \u010do u\u017e funguje.<\/b>.<\/li>\n<li>V\u010faka dekompoz\u00edcii na \u0161tandardn\u00e9 prvky vyzeraj\u00fa ETL procesy v tak\u00fdchto syst\u00e9moch jednotne, ich p\u00edsanie sa d\u00e1 algoritmizova\u0165 a, nakoniec, <b>automatizova\u0165<\/b>.<\/li>\n<\/ul>\n<p>\nCena tejto flexibility spo\u010d\u00edva v tom, <b>v\u00fdkonnos\u0165<\/b>. Neznamen\u00e1 to, \u017ee dosiahnu\u0165 prijate\u013en\u00fd v\u00fdkon na tak\u00fdchto modeloch je nemo\u017en\u00e9. \u010castej\u0161ie ne\u017e nie, v\u00e1m m\u00f4\u017ee sta\u010di\u0165 len viac \u00fasilia a pozornosti na detaily na dosiahnutie potrebn\u00fdch metrik.<\/p>\n<h2>Aplik\u00e1cie<\/h2>\n<p><\/p>\n<h4>Typy ent\u00edt <b>Data Vault<\/b><\/h4>\n<p>\n<img decoding=\"async\" alt=\"Preh\u013ead flexibiln\u00fdch metod\u00edk dizajnu DWH\" src=\"\/wp-content\/uploads\/2020\/08\/6bbaee505587152d7e5c11b2889bf25a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nViac o Data Vault:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/danlinstedt.com\/\">Webstr\u00e1nka Dana List\u00e4dta<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.dwh-club.com\/ru\/dwh-bi-articles\/vse-o-data-vault.html\">V\u0161etko o Data Vault v ru\u0161tine<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/348188\/\">O Data Vault na Habre<\/a><\/noindex><\/p>\n<h4>Typy ent\u00edt <b>Anchor Model<\/b><\/h4>\n<p>\n<img decoding=\"async\" alt=\"Preh\u013ead flexibiln\u00fdch metod\u00edk dizajnu DWH\" src=\"\/wp-content\/uploads\/2020\/08\/d518f01e6a5c241e9e73d1ea0210c557.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nViac o Anchor Model:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/www.anchormodeling.com\/\">Webstr\u00e1nka tvorcov Anchor Model<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/avito\/blog\/322510\/\">\u010cl\u00e1nok o sk\u00fasenostiach s implement\u00e1ciou Anchor Model v Avito<\/a><\/noindex><\/p>\n<p>Preh\u013eadn\u00e1 tabu\u013eka s spolo\u010dn\u00fdmi rysmi a rozdielmi presk\u00faman\u00fdch pr\u00edstupov:<\/p>\n<p><img decoding=\"async\" alt=\"Preh\u013ead flexibiln\u00fdch metod\u00edk dizajnu DWH\" src=\"\/wp-content\/uploads\/2020\/08\/807717245fd874ab141031fc64e584fc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>Zdroj: <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.4 - 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\/sk\/blog\/administrirovanie\/obzor-gibkih-metodologij-proektirovaniya-dwh\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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\/sk\/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\udd47Preh\u013ead flexibiln\u00fdch metod\u00edk n\u00e1vrhu DWH | ProHoster","description":"V\u00fdvoj \u00falo\u017eiska je dlh\u00fd a v\u00e1\u017eny proces.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/obzor-gibkih-metodologij-proektirovaniya-dwh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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\/sk\/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\/sk\/wp-json\/wp\/v2\/posts\/92015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=92015"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/92015\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/92016"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=92015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=92015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=92015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}