{"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\/hu\/blog\/administrirovanie\/obzor-gibkih-metodologij-proektirovaniya-dwh","title":{"rendered":"A rugalmas DWH tervez\u00e9si m\u00f3dszertanok \u00e1ttekint\u00e9se","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A t\u00e1rol\u00f3fejleszt\u00e9s hossz\u00fa \u00e9s komoly feladat. <\/p>\n<p>A projekt \u00e9let\u00e9ben sok minden m\u00falik azon, hogy az objektummodell \u00e9s az adatb\u00e1zis szerkezete mennyire van j\u00f3l megtervezve a kezdetekkor.<\/p>\n<p>A k\u00f6zkelet\u0171 megk\u00f6zel\u00edt\u00e9sek k\u00f6z\u00e9 tartozik, hogy a \"csillag\" s\u00e9ma \u00e9s a harmadik norm\u00e1lforma (3NF) k\u00fcl\u00f6nb\u00f6z\u0151 kombin\u00e1ci\u00f3it alkalmazz\u00e1k. \u00c1ltal\u00e1ban az elv szerint: az alapadatok \u2013 3NF, a vitrin\u00e1k \u2013 csillag. Ez a megk\u00f6zel\u00edt\u00e9s, amelyet az id\u0151 pr\u00f3b\u00e1ja is meg\u00e1llt \u00e9s sz\u00e1mos kutat\u00e1s al\u00e1t\u00e1maszt, az els\u0151 (\u00e9s n\u00e9ha az egyetlen) dolog, ami egy tapasztalt DWH szakember esz\u00e9be jut, amikor arr\u00f3l gondolkodik, hogy hogyan kell kin\u00e9znie egy analitikai t\u00e1rol\u00f3nak.<\/p>\n<p>M\u00e1sr\u00e9szr\u0151l a v\u00e1llalkoz\u00e1sok \u00e9s az \u00fcgyf\u00e9l ig\u00e9nyei \u00e1ltal\u00e1ban gyorsan v\u00e1ltoznak, m\u00edg az adatok \"m\u00e9lys\u00e9gben\" \u00e9s \"sz\u00e9less\u00e9gben\" is n\u00f6vekednek. Itt jelentkezik a csillag f\u0151 h\u00e1tr\u00e1nya \u2013 a korl\u00e1tozott <b>flexibilit\u00e1s<\/b>.<\/p>\n<p>\u00c9s ha a DWH-fejleszt\u0151 csendes \u00e9s k\u00e9nyelmes \u00e9let\u00e9be hirtelen:<\/p>\n<ul>\n<li>felmer\u00fclt a k\u00e9rd\u00e9s: \"Csak csin\u00e1ljunk valamit gyorsan, azt\u00e1n majd megl\u00e1tjuk\";<\/li>\n<li>megjelent egy dinamikusan fejl\u0151d\u0151 projekt, \u00faj forr\u00e1sok bekapcsol\u00e1s\u00e1val \u00e9s heti legal\u00e1bb egy alkalommal t\u00f6rt\u00e9n\u0151 \u00fczleti modell \u00e1talak\u00edt\u00e1ssal;<\/li>\n<li>megjelenik egy \u00fcgyf\u00e9l, aki nem tudja, hogyan kell kin\u00e9znie a rendszernek \u00e9s milyen funkci\u00f3kat kell ell\u00e1tnia a v\u00e9g\u00e9n, de nyitott a k\u00eds\u00e9rletez\u00e9sre \u00e9s a fokozatos pontos\u00edt\u00e1sra a k\u00edv\u00e1nt eredm\u00e9ny el\u00e9r\u00e9s\u00e9vel;<\/li>\n<li>ben\u00e9zett egy projektmenedzser boldog h\u00edrekkel: \"Mostant\u00f3l agilis m\u00f3dszertanunk van!\"<\/li>\n<\/ul>\n<p>\nVagy ha csak k\u00edv\u00e1ncsi vagy, hogy m\u00e9g hogyan lehet t\u00e1rol\u00f3kat \u00e9p\u00edteni \u2013 \u00fcdv\u00f6zl\u00fcnk a cikk alatt!<\/p>\n<p><img decoding=\"async\" alt=\"A rugalmas DWH tervez\u00e9si m\u00f3dszertanok \u00e1ttekint\u00e9se\" 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>Mit jelent a \u201erugalmass\u00e1g\u201d?<\/h3>\n<p>\nEl\u0151sz\u00f6r hat\u00e1rozzuk meg, hogy milyen tulajdons\u00e1gokkal kell rendelkeznie a rendszernek ahhoz, hogy \u201erug\u00e1lmasnak\u201d mondhassuk. <\/p>\n<p>Fontos megjegyezni, hogy a le\u00edrt tulajdons\u00e1goknak kifejezetten a <b>rendszerre<\/b>, nem pedig a <b>fejleszt\u00e9si folyamatra <\/b>vonatkoznak. Teh\u00e1t, ha az Agile m\u00f3dszertanr\u00f3l szeretn\u00e9l olvasni, akkor jobb, ha m\u00e1s cikkekkel ismerkedsz. P\u00e9ld\u00e1ul a Habr-on sok \u00e9rdekes anyag tal\u00e1lhat\u00f3 (mint <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/436178\/\">\u00e1ttekint\u0151<\/a><\/noindex> \u00e9s <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/284012\/\">gyakorlati<\/a><\/noindex>, valamint <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dataart\/blog\/245605\/\">probl\u00e9m\u00e1k)<\/a><\/noindex>).<\/p>\n<p>Ez nem azt jelenti, hogy a fejleszt\u00e9si folyamat \u00e9s a DWH strukt\u00far\u00e1ja egy\u00e1ltal\u00e1n nincs \u00f6sszef\u00fcgg\u00e9sben. \u00c1ltal\u00e1noss\u00e1gban elmondhat\u00f3, hogy az Agile m\u00f3dszerek szerint tervezett rugalmas architekt\u00far\u00e1j\u00fa adatt\u00e1rol\u00f3 fejleszt\u00e9se l\u00e9nyegesen k\u00f6nnyebb kellene, hogy legyen. A gyakorlatban azonban gyakrabban tal\u00e1lkozunk olyan megold\u00e1sokkal, mint az Agile klasszikus DWH a Kimball alapj\u00e1n \u00e9s a Data Vault \u2013 v\u00edzes\u00e9s m\u00f3dszertan szerint, mint a boldog v\u00e9letlenekkel, ahol a k\u00e9t megk\u00f6zel\u00edt\u00e9s egy projekten bel\u00fcl egyes\u00fcl.<\/p>\n<p>Teh\u00e1t, milyen lehet\u0151s\u00e9gekkel kell rendelkeznie egy rugalmas adatt\u00e1rol\u00f3nak? H\u00e1rom pontot emelhet\u00fcnk ki:<\/p>\n<ol>\n<li><b>Korai sz\u00e1ll\u00edt\u00e1s \u00e9s gyors fejleszt\u00e9s<\/b> \u2014 ez azt jelenti, hogy ide\u00e1lisan az els\u0151 \u00fczleti eredm\u00e9nyt (p\u00e9ld\u00e1ul az els\u0151 m\u0171k\u00f6d\u0151 jelent\u00e9seket) a lehet\u0151 legkor\u00e1bban el kellene \u00e9rni, teh\u00e1t m\u00e9g azel\u0151tt, hogy a rendszert teljesen megtervezt\u00e9k \u00e9s bevezett\u00e9k. R\u00e1ad\u00e1sul minden k\u00f6vetkez\u0151 fejleszt\u00e9snek is a lehet\u0151 legkevesebb id\u0151t kellene ig\u00e9nyelnie.<\/li>\n<li><b>Iterat\u00edv fejleszt\u00e9s<\/b> \u2014 ez azt jelenti, hogy minden k\u00f6vetkez\u0151 fejleszt\u00e9s ide\u00e1lisan nem \u00e9rintheti a m\u00e1r m\u0171k\u00f6d\u0151 funkci\u00f3kat. Ez a szempont gyakran v\u00e1lik a legnagyobb r\u00e9m\u00e1lomm\u00e1 nagy projektek eset\u00e9n \u2013 el\u0151bb-ut\u00f3bb az egyes objektumok annyi kapcsol\u00f3d\u00e1st kapnak, hogy egyszer\u0171bb a logik\u00e1t egy m\u00e1sik p\u00e9ld\u00e1nyban \u00fajra\u00e9p\u00edteni, mint egy mez\u0151t hozz\u00e1adni a megl\u00e9v\u0151 t\u00e1bl\u00e1hoz. \u00c9s ha meglep, hogy a megl\u00e9v\u0151 objektumokra gyakorolt hat\u00e1s elemz\u00e9se t\u00f6bb id\u0151t vehet ig\u00e9nybe, mint maga a fejleszt\u00e9s \u2013 val\u00f3sz\u00edn\u0171leg m\u00e9g nem dolgozt\u00e1l nagy DWH projektekkel a banki szektorban vagy a telekommunik\u00e1ci\u00f3ban.<\/li>\n<li><b>Folyamatos alkalmazkod\u00e1s a v\u00e1ltoz\u00f3 \u00fczleti ig\u00e9nyekhez<\/b> \u2014 a teljes objektumstrukt\u00far\u00e1t nemcsak a lehets\u00e9ges b\u0151v\u00edt\u00e9sek figyelembev\u00e9tel\u00e9vel kell megtervezni, hanem \u00fagy is, hogy a k\u00f6vetkez\u0151 b\u0151v\u00edt\u00e9s ir\u00e1nya olyan dolgokat tartalmazzon, amir\u0151l az \u00e9p\u00edt\u00e9si szakaszban m\u00e9g \u00e1lmodni sem mert\u00e9l.<\/li>\n<\/ol>\n<p>\nIgen, mindezeknek a k\u00f6vetelm\u00e9nyeknek a megfelel\u00e9se egy rendszerben lehets\u00e9ges (term\u00e9szetesen bizonyos esetekben \u00e9s n\u00e9h\u00e1ny megszor\u00edt\u00e1ssal).<\/p>\n<p>Al\u00e1bb k\u00e9t legn\u00e9pszer\u0171bb m\u00f3dszertan\u00e1t fogom vizsg\u00e1lni a DWH rugalmas tervez\u00e9s\u00e9nek \u2014 <b>Anchor model<\/b> \u00e9s <b>Data Vault<\/b>. A z\u00e1r\u00f3jeleken k\u00edv\u00fcl maradnak olyan csod\u00e1s megold\u00e1sok, mint p\u00e9ld\u00e1ul az EAV, a 6NF (tiszta form\u00e1j\u00e1ban) \u00e9s minden, ami a NoSQL megold\u00e1sokhoz kapcsol\u00f3dik \u2014 nem az\u00e9rt, mert ezek valamilyen szempontb\u00f3l rosszabbak, \u00e9s nem is az\u00e9rt, mert egy\u00e9bk\u00e9nt a cikk vesz\u00e9lybe ker\u00fclt volna, hogy elvesz\u00edti a k\u00f6z\u00e9p-hossz\u00fas\u00e1g\u00fa dolgozatok m\u00e9ret\u00e9t. Egyszer\u0171en csak arr\u00f3l van sz\u00f3, hogy ezek a megold\u00e1sok egy m\u00e1sik oszt\u00e1ly\u00faak \u2014 vagy olyan m\u00f3dszerekkel kapcsolatosak, amelyeket speci\u00e1lis esetekben alkalmazhat, f\u00fcggetlen\u00fcl a projekt \u00e1ltal\u00e1nos architekt\u00far\u00e1j\u00e1t\u00f3l (mint az EAV), vagy glob\u00e1lisan elt\u00e9r\u0151 adatbevitel-paradigm\u00e1kra vonatkoznak (mint p\u00e9ld\u00e1ul a gr\u00e1f alap\u00fa DB-k \u00e9s m\u00e1s NoSQL lehet\u0151s\u00e9gek).<\/p>\n<h3>A \u201eklasszikus\u201d megk\u00f6zel\u00edt\u00e9s probl\u00e9m\u00e1i \u00e9s megold\u00e1sai a rugalmas metodol\u00f3gi\u00e1kban<\/h3>\n<p>\n<i>\u201eKlasszikus\u201d megk\u00f6zel\u00edt\u00e9s alatt a r\u00e9gi j\u00f3 szt\u00e1rt \u00e9rtem (f\u00fcggetlen\u00fcl az als\u00f3bb r\u00e9tegek konkr\u00e9t megval\u00f3s\u00edt\u00e1s\u00e1t\u00f3l, bocs\u00e1ssanak meg nekem Kimball, Inmon \u00e9s a CDM k\u00f6vet\u0151i).<br \/>\n<\/i><\/p>\n<h4>1. Szoros kapcsolatok cardinalit\u00e1sa<\/h4>\n<p>\nEgy ilyen modell alapja a data szigor\u00fa feloszt\u00e1sa <b>dimenzi\u00f3kra (Dimension)<\/b> \u00e9s <b>t\u00e9nyekre (Fact)<\/b>. \u00c9s ez, a fen\u00e9be is, logikus \u2014 hiszen az adatelemz\u00e9s t\u00falnyom\u00f3 t\u00f6bbs\u00e9ge val\u00f3j\u00e1ban a bizonyos numerikus mutat\u00f3k (t\u00e9nyek) elemz\u00e9s\u00e9re vonatkozik meghat\u00e1rozott dimenzi\u00f3kban.<\/p>\n<p>Ez\u00e9rt az objektumok k\u00f6z\u00f6tti kapcsolatokat a k\u00fcls\u0151 kulcs \u00e1ltal \u00f6sszekapcsolt t\u00e1bl\u00e1k form\u00e1j\u00e1ban r\u00f6gz\u00edtik. Ez \u00edgy el\u00e9g term\u00e9szetesnek t\u0171nik, de azonnal az els\u0151 rugalmass\u00e1gi korl\u00e1toz\u00e1shoz vezet \u2014 <b>a kapcsolatok cardinalit\u00e1s\u00e1nak szigor\u00fa meghat\u00e1roz\u00e1sa<\/b>.<\/p>\n<p>Ez azt jelenti, hogy a t\u00e1bl\u00e1k tervez\u00e9si szakasz\u00e1ban pontosan meg kell hat\u00e1roznia, hogy minden egyes kapcsol\u00f3d\u00f3 objektump\u00e1r sok-hoz-sok kapcsolatban, vagy csak 1-hez-sok kapcsolatban van-e, \u00e9s hogy \u201emilyen ir\u00e1nyban\u201d. Ez k\u00f6zvetlen\u00fcl befoly\u00e1solja, hogy melyik t\u00e1bl\u00e1ban lesz az els\u0151dleges kulcs \u00e9s melyikben a k\u00fcls\u0151. Az ilyen kapcsolatok megv\u00e1ltoztat\u00e1sa \u00faj k\u00f6vetelm\u00e9nyek bevezet\u00e9se eset\u00e9n nagy val\u00f3sz\u00edn\u0171s\u00e9ggel a teljes adatb\u00e1zis \u00fajragondol\u00e1s\u00e1hoz vezet.<\/p>\n<p>P\u00e9ld\u00e1ul, amikor egy \u201ep\u00e9nzt\u00e1ri bizonylat\u201d objektumot tervezett, a sales r\u00e9szleg esk\u00fcv\u0151i \u00edg\u00e9reteire t\u00e1maszkodva lehet\u0151s\u00e9get biztos\u00edtott arra, hogy <b>egy prom\u00f3ci\u00f3s akci\u00f3 t\u00f6bb bizonylati t\u00e9telre vonatkozhasson<\/b> (de nem ford\u00edtva):<\/p>\n<p><img decoding=\"async\" alt=\"A rugalmas DWH tervez\u00e9si m\u00f3dszertanok \u00e1ttekint\u00e9se\" src=\"\/wp-content\/uploads\/2020\/08\/15226cb79c30364d94147383ba36a8fd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nNem sokkal k\u00e9s\u0151bb a koll\u00e9g\u00e1k bevezett\u00e9k az \u00faj marketing strat\u00e9gi\u00e1t, amelyben egyazon t\u00e9telre t\u00f6bb prom\u00f3ci\u00f3s akci\u00f3 is \u00e9rv\u00e9nyes lehet <b>egyszerre.<\/b>Most pedig ki kell dolgoznia a t\u00e1bl\u00e1kat, kiemelve a kapcsolatot egy k\u00fcl\u00f6n objektumban. <\/p>\n<p>(Minden sz\u00e1rmaztatott objektum, ahol a k\u00f6zvetlen ellen\u0151rz\u00e9s zajlik a prom\u00f3n, szint\u00e9n sz\u00fcks\u00e9gess\u00e9 v\u00e1lt a pontos\u00edt\u00e1sra).<\/p>\n<p><img decoding=\"async\" alt=\"A rugalmas DWH tervez\u00e9si m\u00f3dszertanok \u00e1ttekint\u00e9se\" src=\"\/wp-content\/uploads\/2020\/08\/3c4d84a31088660257d74c4c703071e0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Kapcsolatok a Data Vault \u00e9s Anchor Model<\/b><\/p>\n<p>Ilyen helyzet elker\u00fcl\u00e9se viszonylag egyszer\u0171nek bizonyult: nem szabad hinni az \u00e9rt\u00e9kes\u00edt\u00e9si oszt\u00e1lynak, ehhez elegend\u0151 <b>az \u00f6sszes kapcsolatot eredetileg k\u00fcl\u00f6n t\u00e1bl\u00e1kban t\u00e1rolni<\/b> \u00e9s a sok-hoz-sok feldolgoz\u00e1sa. <\/p>\n<p>Ez a megk\u00f6zel\u00edt\u00e9s <b>Dan Linstedt \u00e1ltal lett javasolva<\/b> mint a paradigma r\u00e9sze, <b>Data Vault<\/b> \u00e9s teljesen t\u00e1mogatva van <b>Lars R\u00f6nnb\u00e4ck \u00e1ltal<\/b> be. <b>Az Anchor Modelt<\/b>.<\/p>\n<p>V\u00e9g\u00fcl kapunk egy els\u0151dleges jellemz\u0151t a rugalmas metodol\u00f3gi\u00e1kban:<\/p>\n<blockquote><p>A kapcsolatok az objektumok k\u00f6z\u00f6tt nem a sz\u00fcl\u0151 entit\u00e1sok attrib\u00fatumaiban, hanem k\u00fcl\u00f6nf\u00e9le objektumk\u00e9nt jelennek meg.<\/p><\/blockquote>\n<p>A <b>Data Vault<\/b> Ezeket a kapcsol\u00f3t\u00e1bl\u00e1kat <b>(lehet\u0151v\u00e9 teszi a webfejleszt\u0151k sz\u00e1m\u00e1ra, hogy optimaliz\u00e1lj\u00e1k az er\u0151forr\u00e1sok bet\u00f6lt\u00e9s\u00e9t az er\u0151forr\u00e1sok relat\u00edv priorit\u00e1s\u00e1nak megad\u00e1s\u00e1val).<\/b>, m\u00edg a <b>Anchor Modelnek<\/b> \u2014 <b>K\u00f6thet\u00e9snek<\/b>. Els\u0151 r\u00e1n\u00e9z\u00e9sre nagyon hasonl\u00edtanak, b\u00e1r a nev\u00fck k\u00f6zti elt\u00e9r\u00e9s nem mer\u00fcl ki (err\u0151l a tov\u00e1bbiekben besz\u00e9l\u00fcnk). Mindk\u00e9t architekt\u00far\u00e1ban a kapcsol\u00f3t\u00e1bl\u00e1k b\u00e1rmilyen sz\u00e1m\u00fa entit\u00e1st \u00f6sszekapcsolhatnak, <b>(nem felt\u00e9tlen\u00fcl 2).<\/b> Ez a l\u00e1tsz\u00f3lagos redundancia jelent\u0151s rugalmass\u00e1got biztos\u00edt a k\u00e9s\u0151bbi m\u00f3dos\u00edt\u00e1sok sor\u00e1n. Ez a strukt\u00fara toler\u00e1ns\u00e1 v\u00e1lik nemcsak a megl\u00e9v\u0151 kapcsolatok kardinalit\u00e1s\u00e1nak megv\u00e1ltoz\u00e1s\u00e1val, hanem \u00faj kapcsolatok hozz\u00e1ad\u00e1s\u00e1val is \u2014 ha a sz\u00e1ml\u00e1z\u00e1si t\u00e9telhez tov\u00e1bbi hivatkoz\u00e1s ker\u00fcl egy p\u00e9nzt\u00e1rosra, az ilyen \u00f6sszekapcsol\u00e1s egyszer\u0171en egy megl\u00e9v\u0151 t\u00e1bl\u00e1kra \u00e9p\u00fcl\u0151 kieg\u00e9sz\u00edt\u00e9s lesz an\u00e9lk\u00fcl, hogy b\u00e1rmely megl\u00e9v\u0151 objektumra \u00e9s folyamatra hat\u00e1ssal lenne.<\/p>\n<p>2. Adatduplik\u00e1ci\u00f3<\/p>\n<p><img decoding=\"async\" alt=\"A rugalmas DWH tervez\u00e9si m\u00f3dszertanok \u00e1ttekint\u00e9se\" src=\"\/wp-content\/uploads\/2020\/08\/6a3b942a6e5d04dcbe2ff0881ebdf1bf.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h4>A m\u00e1sodik probl\u00e9ma, amelyet a rugalmas architekt\u00far\u00e1k megoldanak, egy\u00e9rtelm\u0171bb \u00e9s els\u0151sorban<\/h4>\n<p>\nSCD2 t\u00edpus\u00fa m\u00e9r\u00e9sekre jellemz\u0151, <b>(lassan v\u00e1ltoz\u00f3 m\u00e1sodik t\u00edpus\u00fa m\u00e9r\u00e9sek), b\u00e1r nem csak ezekre.<\/b> A klasszikus adatt\u00e1rh\u00e1zban a m\u00e9r\u00e9s \u00e1ltal\u00e1ban egy t\u00e1bl\u00e1zat, amely tartalmaz egy szubjekt\u00edv kulcsot (mint els\u0151dleges kulcs) \u00e9s egy \u00fczleti kulcsokkal \u00e9s attrib\u00fatumokkal ell\u00e1tott oszlopcsoportot.<\/p>\n<p>Ha a m\u00e9r\u00e9s t\u00e1mogatja a verzi\u00f3kezel\u00e9st, a standard mez\u0151k\u00e9szlethez id\u0151kereteket adunk a verzi\u00f3 \u00e9rv\u00e9nyess\u00e9g\u00e9nek, \u00e9s egy forr\u00e1ssoron t\u00f6bb verzi\u00f3 jelenik meg az adatt\u00e1rban (mindegyik verzi\u00f3v\u00e1ltoztat\u00e1shoz egy). <\/p>\n<p><img decoding=\"async\" alt=\"A rugalmas DWH tervez\u00e9si m\u00f3dszertanok \u00e1ttekint\u00e9se\" src=\"\/wp-content\/uploads\/2020\/08\/059dd47b2302b58c19a0144061b78cb4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHa a m\u00e9r\u00e9s t\u00e1mogatja a verzi\u00f3kezel\u00e9st, a standard mez\u0151k\u00e9szlethez hozz\u00e1ad\u00f3dnak a verzi\u00f3 \u00e9rv\u00e9nyess\u00e9gi id\u0151hat\u00e1rai, \u00e9s a forr\u00e1sban t\u00f6bb verzi\u00f3 jelenik meg a t\u00e1rol\u00f3ban (minden verzi\u00f3 attrib\u00fatum\u00e1nak m\u00f3dos\u00edt\u00e1s\u00e1hoz egy-egy).<\/p>\n<p>Ha a m\u00e9r\u00e9s tartalmaz legal\u00e1bb egy gyakran v\u00e1ltoz\u00f3 verzion\u00e1lt attrib\u00fatumot, akkor az ilyen m\u00e9r\u00e9s verzi\u00f3inak sz\u00e1ma jelent\u0151s lesz (m\u00e9g akkor is, ha a t\u00f6bbi attrib\u00fatum nem verzion\u00e1lt, vagy soha nem v\u00e1ltozik), \u00e9s ha ilyen attrib\u00fatumokb\u00f3l t\u00f6bb is van, a verzi\u00f3k sz\u00e1ma geometrikus Progresszi\u00f3ban n\u00f6vekedhet ezek sz\u00e1m\u00e1hoz k\u00e9pest. Ez a m\u00e9r\u00e9s jelent\u0151s lemezter\u00fcletet foglalhat el, b\u00e1r a benne t\u00e1rolt adatok nagy r\u00e9sze csak az \u00e1lland\u00f3 attrib\u00fatumok m\u00e1solata m\u00e1s sorokb\u00f3l.<\/p>\n<p><img decoding=\"async\" alt=\"A rugalmas DWH tervez\u00e9si m\u00f3dszertanok \u00e1ttekint\u00e9se\" src=\"\/wp-content\/uploads\/2020\/08\/f3d5a4fd83a5ef36355961302173791d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEzen k\u00edv\u00fcl gyakran alkalmazz\u00e1k <b>a denormaliz\u00e1l\u00e1st<\/b> \u2014 az attrib\u00fatumok egy r\u00e9sz\u00e9t sz\u00e1nd\u00e9kosan \u00e9rt\u00e9kk\u00e9nt t\u00e1rolj\u00e1k, nem pedig hivatkoz\u00e1sk\u00e9nt egy adatt\u00e1rra vagy m\u00e1s m\u00e9r\u00e9sre. Ez a megk\u00f6zel\u00edt\u00e9s felgyors\u00edtja az adatokhoz val\u00f3 hozz\u00e1f\u00e9r\u00e9st, cs\u00f6kkentve a lek\u00e9rdez\u00e9sek sz\u00e1m\u00e1t a m\u00e9r\u00e9shez val\u00f3 hozz\u00e1f\u00e9r\u00e9skor.<\/p>\n<p>\u00c1ltal\u00e1ban ez azt eredm\u00e9nyezi, hogy <b>ugyanaz az inform\u00e1ci\u00f3 egy id\u0151ben t\u00f6bb helyen t\u00e1rol\u00f3dik<\/b>. P\u00e9ld\u00e1ul a lak\u00f3helyre \u00e9s az \u00fcgyf\u00e9l kateg\u00f3ri\u00e1ba val\u00f3 tartoz\u00e1sra vonatkoz\u00f3 inform\u00e1ci\u00f3k egyidej\u0171leg t\u00e1rol\u00f3dhatnak a \"\u00dcgyf\u00e9l\" m\u00e9r\u00e9sekben, valamint a \"V\u00e1s\u00e1rl\u00e1s\", \"Sz\u00e1ll\u00edt\u00e1s\" \u00e9s \"Telefonos \u00fcgyf\u00e9lszolg\u00e1lati megkeres\u00e9sek\" t\u00e9nyekben, illetve az \"\u00dcgyf\u00e9l - \u00dcgyf\u00e9l menedzser\" kapcsol\u00f3t\u00e1bl\u00e1ban.<\/p>\n<p>\u00d6sszess\u00e9g\u00e9ben a fenti le\u00edr\u00e1s az \u00e1ltal\u00e1nos (nem verzion\u00e1lt) m\u00e9r\u00e9sekre is vonatkozik, de a verzion\u00e1ltak eset\u00e9ben m\u00e1s m\u00e9ret\u0171ek lehetnek: egy \u00faj verzi\u00f3 megjelen\u00e9se (k\u00fcl\u00f6n\u00f6sen visszamen\u0151leges hat\u00e1llyal) nem csup\u00e1n a kapcsol\u00f3d\u00f3 t\u00e1bl\u00e1k friss\u00edt\u00e9s\u00e9hez vezet, hanem \u00faj verzi\u00f3k l\u00e1ncolatos megjelen\u00e9s\u00e9hez is a kapcsol\u00f3d\u00f3 objektumokban \u2014 amikor az 1. t\u00e1bl\u00e1t a 2. t\u00e1bla elk\u00e9sz\u00edt\u00e9s\u00e9hez haszn\u00e1lj\u00e1k, a 2. t\u00e1bl\u00e1t pedig a 3. t\u00e1bla \u00f6ssze\u00e1ll\u00edt\u00e1s\u00e1hoz stb. M\u00e9g ha az 1. t\u00e1bla egyetlen attrib\u00fatuma sem vesz r\u00e9szt a 3. t\u00e1bla elk\u00e9sz\u00edt\u00e9s\u00e9ben (hanem m\u00e1s attrib\u00fatumok a 2. t\u00e1bl\u00e1b\u00f3l, amelyek m\u00e1s forr\u00e1sokb\u00f3l sz\u00e1rmaznak), a keresztverzi\u00f3s friss\u00edt\u00e9s ennek a konstrukci\u00f3nak legal\u00e1bb tov\u00e1bbi k\u00f6lts\u00e9geket eredm\u00e9nyez, legfeljebb pedig felesleges verzi\u00f3khoz vezethet a 3. t\u00e1bl\u00e1ban, ami ebben az esetben \"nem is tartozik ide\", \u00e9s \u00edgy tov\u00e1bb a l\u00e1ncban.<\/p>\n<p><img decoding=\"async\" alt=\"A rugalmas DWH tervez\u00e9si m\u00f3dszertanok \u00e1ttekint\u00e9se\" src=\"\/wp-content\/uploads\/2020\/08\/2935f93abc46f02bdc528accda2af758.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>3. A fejleszt\u00e9s nemline\u00e1ris \u00f6sszetetts\u00e9ge<\/h4>\n<p>\nE mellett minden \u00faj ablak, amely egy m\u00e1sikon alapul, n\u00f6veli annak a helyek sz\u00e1m\u00e1t, ahol az adatok \"elt\u00e9rhetnek\" az ETL-folyamat m\u00f3dos\u00edt\u00e1sakor. Ez pedig a k\u00f6vetkez\u0151 fejleszt\u00e9sek \u00f6sszetetts\u00e9g\u00e9nek (\u00e9s id\u0151tartam\u00e1nak) n\u00f6veked\u00e9s\u00e9hez vezet.<\/p>\n<p>Ha a fenti le\u00edr\u00e1s a ritk\u00e1n friss\u00edtett ETL folyamatokkal rendelkez\u0151 rendszerekre vonatkozik, akkor ebben a paradigma m\u00e9g m\u0171k\u00f6dhet \u2014 elegend\u0151 figyelni arra, hogy az \u00faj friss\u00edt\u00e9sek helyesen legyenek beillesztve az \u00f6sszes kapcsol\u00f3d\u00f3 objektumba. Ha azonban a friss\u00edt\u00e9sek gyakran t\u00f6rt\u00e9nnek, akkor jelent\u0151sen megn\u00f6vekszik annak val\u00f3sz\u00edn\u0171s\u00e9ge, hogy v\u00e9letlen\u00fcl \"kihagyunk\" n\u00e9h\u00e1ny kapcsolatot.<\/p>\n<p>Ha figyelembe vessz\u00fck, hogy a \"verzi\u00f3s\" ETL sokkal bonyolultabb, mint a \"nem verzi\u00f3s\", elker\u00fclni a hib\u00e1kat a gyakori friss\u00edt\u00e9sek eset\u00e9n meglehet\u0151sen neh\u00e9zz\u00e9 v\u00e1lik.<\/p>\n<h3>Objektumok \u00e9s attrib\u00fatumok t\u00e1rol\u00e1sa Data Vault \u00e9s Anchor Model seg\u00edts\u00e9g\u00e9vel<\/h3>\n<p>\nA rugalmas architekt\u00far\u00e1k szerz\u0151i \u00e1ltal javasolt megk\u00f6zel\u00edt\u00e9st \u00edgy lehet megfogalmazni:<\/p>\n<blockquote><p>El kell v\u00e1lasztani azt, ami v\u00e1ltozik, att\u00f3l, ami v\u00e1ltozatlan. Vagyis a kulcsokat k\u00fcl\u00f6n kell t\u00e1rolni az attrib\u00fatumokt\u00f3l.<\/p><\/blockquote>\n<p> Ez nem \u00f6sszet\u00e9vesztend\u0151 <b>nem verzi\u00f3s<\/b> attributummal, amely <b>v\u00e1ltozatlan<\/b>: az els\u0151 nem t\u00e1rolja a v\u00e1ltoz\u00e1sainak t\u00f6rt\u00e9net\u00e9t, de v\u00e1ltozhat (p\u00e9ld\u00e1ul a bevitt hib\u00e1k jav\u00edt\u00e1sakor vagy \u00faj adatok beszerz\u00e9sekor), m\u00edg a m\u00e1sodik sosem v\u00e1ltozik.<\/p>\n<p>Azzal kapcsolatban, hogy mi sz\u00e1m\u00edt v\u00e1ltozatlannak a Data Vault \u00e9s az Anchor modellekben, elt\u00e9r\u0151 n\u00e9zetek l\u00e9teznek.<\/p>\n<p>Az architekt\u00fara szempontj\u00e1b\u00f3l <b>Data Vault<\/b>, a v\u00e1ltozatlannak tekinthet\u0151 <b>az \u00f6sszes kulcs<\/b> \u2014 term\u00e9szetes (c\u00e9gek ad\u00f3sz\u00e1ma, a term\u00e9k k\u00f3dja a forr\u00e1sszervezetben, stb.) \u00e9s szubjekt\u00edv. Ezzel p\u00e1rhuzamosan a t\u00f6bbi attrib\u00fatumot forr\u00e1sonk\u00e9nt \u00e9s\/vagy v\u00e1ltoz\u00e1si gyakoris\u00e1g szerint csoportos\u00edtani lehet, \u00e9s <b>minden csoportnak k\u00fcl\u00f6n t\u00e1bl\u00e1t kell vezetni<\/b> f\u00fcggetlen verzi\u00f3k\u00e9szlettel.<\/p>\n<p>Az Anchor Model paradigma alapj\u00e1n <b>az v\u00e1ltozatlan<\/b> csak a szubjekt\u00edv kulcs <b>entit\u00e1sok. Minden m\u00e1s (term\u00e9szetes kulcsok is) csup\u00e1n a saj\u00e1t attrib\u00fatumainak k\u00fcl\u00f6n esete. Ezenk\u00edv\u00fcl<\/b> az \u00f6sszes attrib\u00fatum alap\u00e9rtelmez\u00e9s szerint f\u00fcggetlen egym\u00e1st\u00f3l <b>, ez\u00e9rt minden attrib\u00fatumhoz<\/b>k\u00fcl\u00f6n t\u00e1bl\u00e1zatot kell l\u00e9trehozni <b>a kulcsok entit\u00e1sait tartalmaz\u00f3 t\u00e1bl\u00e1k neve<\/b>.<\/p>\n<p>A <b>Data Vault<\/b> Hubok (Hub) <b>. A Hubok mindig r\u00f6gz\u00edtett mez\u0151k\u00e9szletet tartalmaznak:<\/b>Term\u00e9szetes kulcsok entit\u00e1shoz<\/p>\n<ul>\n<li>Szubjekt\u00edv kulcs<\/li>\n<li>Hivatkoz\u00e1s a forr\u00e1sra<\/li>\n<li>Bejegyz\u00e9s id\u0151pontja<\/li>\n<li>A Hubokban l\u00e9v\u0151 bejegyz\u00e9sek<\/li>\n<\/ul>\n<p>\nsoha nem v\u00e1ltoznak \u00e9s nincsenek verzi\u00f3ik. <b>soha nem v\u00e1ltoznak \u00e9s nincsenek verzi\u00f3k<\/b>. A k\u00fcls\u0151 hubok nagyon hasonl\u00edtanak az ID-map t\u00edpus\u00fa t\u00e1bl\u00e1kra, amelyeket bizonyos rendszerek haszn\u00e1lnak sz\u00f3rakoztat\u00f3k gener\u00e1l\u00e1s\u00e1ra, azonban a Data Vault-ban javasolt, hogy nem eg\u00e9sz sz\u00e1m\u00fa szekvenci\u00e1t, hanem a v\u00e1llalati kulcsok k\u00e9szlet\u00e9nek hash-\u00e9t alkalmazz\u00e1k sz\u00f3rakoztat\u00f3k\u00e9nt. Ez a megk\u00f6zel\u00edt\u00e9s egyszer\u0171s\u00edti a kapcsolatok \u00e9s attrib\u00fatumok bet\u00f6lt\u00e9s\u00e9t a forr\u00e1sokb\u00f3l (nem sz\u00fcks\u00e9ges csatlakozni a hubhoz a sz\u00f3rakoztat\u00f3 megszerz\u00e9s\u00e9hez, elegend\u0151 egyszer\u0171en kisz\u00e1molni a hash-t a term\u00e9szetes kulcsb\u00f3l), de m\u00e1s probl\u00e9m\u00e1kat is okozhat (p\u00e9ld\u00e1ul \u00fctk\u00f6z\u00e9sekkel, a nagybet\u0171s \u00edr\u00e1ssal \u00e9s a nem nyomtathat\u00f3 karakterekkel a karakterkulcsokban stb.), ez\u00e9rt nem \u00e1ltal\u00e1nosan elfogadott.<\/p>\n<p>Minden m\u00e1s entit\u00e1s attrib\u00fatumai speci\u00e1lis t\u00e1bl\u00e1kban t\u00e1rol\u00f3dnak, amelyeket <b>satelitoknak (Satellit)<\/b>. Egy hubnak t\u00f6bb satelitja is lehet, amelyek k\u00fcl\u00f6nb\u00f6z\u0151 attrib\u00fatumcsoportokat t\u00e1rolnak.<\/p>\n<p><img decoding=\"async\" alt=\"A rugalmas DWH tervez\u00e9si m\u00f3dszertanok \u00e1ttekint\u00e9se\" src=\"\/wp-content\/uploads\/2020\/08\/e145f211b8cfb51894e6e1789991e1cd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAz attrib\u00fatumok eloszt\u00e1sa a satelitok k\u00f6z\u00f6tt a <b>k\u00f6z\u00f6s v\u00e1ltoztat\u00e1s<\/b> - elv\u00e9n t\u00f6rt\u00e9nik - egy satelitban t\u00e1rolhat\u00f3k nem verzion\u00e1lt attrib\u00fatumok (p\u00e9ld\u00e1ul sz\u00fclet\u00e9si d\u00e1tum \u00e9s TAJ sz\u00e1m mag\u00e1nszem\u00e9lyek sz\u00e1m\u00e1ra), egy m\u00e1sikban - ritk\u00e1n v\u00e1ltoz\u00f3 verzion\u00e1ltak (p\u00e9ld\u00e1ul vezet\u00e9kn\u00e9v \u00e9s szem\u00e9lyi igazolv\u00e1ny sz\u00e1m), a harmadikban - gyakran v\u00e1ltoz\u00f3 attrib\u00fatumok (p\u00e9ld\u00e1ul sz\u00e1ll\u00edt\u00e1si c\u00edm, kateg\u00f3ria, utols\u00f3 rendel\u00e9s d\u00e1tuma stb.). A verzion\u00e1l\u00e1s az egyes satelitok szintj\u00e9n t\u00f6rt\u00e9nik, nem az entit\u00e1s szintj\u00e9n, ez\u00e9rt \u00e9rdemes az attrib\u00fatumok eloszt\u00e1s\u00e1t \u00fagy v\u00e9gezni, hogy a verzi\u00f3k \u00e1tfed\u00e9se egy satelitban minim\u00e1lis legyen (ami cs\u00f6kkenti a t\u00e1rolt verzi\u00f3k \u00f6sszes sz\u00e1m\u00e1t). <\/p>\n<p>Emellett az adatok bet\u00f6lt\u00e9si folyamat\u00e1nak optimaliz\u00e1l\u00e1sa \u00e9rdek\u00e9ben gyakran egyes satelitokba ker\u00fclnek \u00e1t az olyan attrib\u00fatumok, amelyeket k\u00fcl\u00f6nb\u00f6z\u0151 forr\u00e1sokb\u00f3l nyernek.<\/p>\n<p>A satelitokat a hubbal a <b>k\u00fcls\u0151 kulcs<\/b> (ami megfelel az 1-hez-sok kapcsol\u00f3d\u00e1snak). Ez azt jelenti, hogy a t\u00f6bbsz\u00f6r\u00f6s attrib\u00fatum\u00e9rt\u00e9kek (p\u00e9ld\u00e1ul t\u00f6bb telefonsz\u00e1m egy \u00fcgyf\u00e9lhez) az ilyen architekt\u00fara \u201calap\u00e9rtelmez\u00e9s szerint\u201d t\u00e1mogatva vannak.<\/p>\n<p>A <b>Az anchor model (Anchor Model)<\/b> t\u00e1bl\u00e1k, amelyek a kulcsokat t\u00e1rolj\u00e1k, \u00fagynevezett <b>anchoroknak (Anchor)<\/b>. Ezek t\u00e1rolj\u00e1k: <\/p>\n<ul>\n<li><b>Csak sz\u00f3rakoztat\u00f3 kulcsok<\/b><\/li>\n<li>Bejegyz\u00e9s id\u0151pontja<\/li>\n<li>A Hubokban l\u00e9v\u0151 bejegyz\u00e9sek<\/li>\n<\/ul>\n<p>\nA term\u00e9szetes kulcsok az Anchor Model szempontj\u00e1b\u00f3l <b>rendes attrib\u00fatumoknak<\/b>sz\u00e1m\u00edtanak. Ez a lehet\u0151s\u00e9g tal\u00e1n bonyolultabbnak t\u0171nik a meg\u00e9rt\u00e9s szempontj\u00e1b\u00f3l, de sokkal nagyobb lehet\u0151s\u00e9get ad az objektum azonos\u00edt\u00e1s\u00e1ra.<\/p>\n<p><img decoding=\"async\" alt=\"A rugalmas DWH tervez\u00e9si m\u00f3dszertanok \u00e1ttekint\u00e9se\" src=\"\/wp-content\/uploads\/2020\/08\/0bf941581fd1177eda228d4429cf69db.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00e9ld\u00e1ul, ha ugyanarr\u00f3l a entit\u00e1sr\u00f3l sz\u00e1rmaz\u00f3 adatok k\u00fcl\u00f6nb\u00f6z\u0151 rendszerekb\u0151l \u00e9rkeznek, mindegyik saj\u00e1t term\u00e9szetes kulccsal rendelkezik. A Data Vault rendszer\u00e9ben ez el\u00e9g sokr\u00e9t\u0171 konstrukci\u00f3khoz vezethet, ahol t\u00f6bb hub sz\u00fcks\u00e9ges (egy forr\u00e1sonk\u00e9nt + egy \u00f6sszekapcsol\u00f3 mesterverzi\u00f3), m\u00edg a Horgony modellel az egyes forr\u00e1sok term\u00e9szetes kulcsai saj\u00e1t attrib\u00fatumukba ker\u00fclnek \u00e9s f\u00fcggetlen\u00fcl haszn\u00e1lhat\u00f3k a t\u00f6bbit\u0151l a bet\u00f6lt\u00e9s sor\u00e1n. <\/p>\n<p>De itt van egy ravasz pillanat: ha egy entit\u00e1sban k\u00fcl\u00f6nb\u00f6z\u0151 rendszerekb\u0151l sz\u00e1rmaz\u00f3 attrib\u00fatumok egyes\u00fclnek, val\u00f3sz\u00edn\u0171leg l\u00e9teznek bizonyos <b>\u201e\u00f6sszevon\u00e1si\u201d<\/b>szab\u00e1lyok, amelyek alapj\u00e1n a rendszernek meg kell \u00e9rtenie, hogy a k\u00fcl\u00f6nb\u00f6z\u0151 forr\u00e1sokb\u00f3l sz\u00e1rmaz\u00f3 rekordok egy entit\u00e1s p\u00e9ld\u00e1ny\u00e1hoz tartoznak. <\/p>\n<p>A <b>Data Vault<\/b> Ezek a szab\u00e1lyok val\u00f3sz\u00edn\u0171leg meghat\u00e1rozz\u00e1k az <b>\u201eszurrog\u00e1t hub\u201d mester-enti<\/b> t\u00e1st, \u00e9s egy\u00e1ltal\u00e1n nem befoly\u00e1solj\u00e1k a hhubokat, amelyek t\u00e1rolj\u00e1k a forr\u00e1sok term\u00e9szetes kulcsait \u00e9s azok eredeti attrib\u00fatumait. Ha valamikor az \u00f6sszevon\u00e1si szab\u00e1lyok v\u00e1ltoznak (vagy \u00e9rkezik egy friss\u00edt\u00e9s azokhoz az attrib\u00fatumokhoz, amelyek alapj\u00e1n ez t\u00f6rt\u00e9nik), elegend\u0151 lesz a szurrog\u00e1t hubokat \u00fajraform\u00e1lni.<\/p>\n<p>A <b>A Horgony modellel<\/b> azonban egy ilyen entit\u00e1s val\u00f3sz\u00edn\u0171leg <b>egyetlen horgon fog t\u00e1rol\u00f3dni.<\/b>Ez azt jelenti, hogy minden attrib\u00fatum, f\u00fcggetlen\u00fcl att\u00f3l, hogy mely forr\u00e1sb\u00f3l sz\u00e1rmazik, ugyanahhoz a szurrog\u00e1thoz lesz hozz\u00e1rendelve. A t\u00e9vesen \u00f6sszevont rekordok sz\u00e9tv\u00e1laszt\u00e1sa \u00e9s az aktu\u00e1lis \u00f6sszevon\u00e1s nyomon k\u00f6vet\u00e9se egy ilyen rendszerben l\u00e9nyegesen nehezebb lehet, k\u00fcl\u00f6n\u00f6sen, ha a szab\u00e1lyok el\u00e9gg\u00e9 bonyolultak \u00e9s gyakran v\u00e1ltoznak, \u00e9s egy \u00e9s ugyanazon attrib\u00fatum k\u00fcl\u00f6nb\u00f6z\u0151 forr\u00e1sokb\u00f3l sz\u00e1rmazhat (b\u00e1r ez pontosan lehets\u00e9ges, mivel minden attrib\u00fatum verzi\u00f3ja hivatkozik a saj\u00e1t forr\u00e1s\u00e1ra).<\/p>\n<p>Mindenesetre, ha a rendszer\u00e9ben tervezik a <b>rekordok deduplik\u00e1l\u00e1s\u00e1nak, egyes\u00edt\u00e9s\u00e9nek \u00e9s m\u00e1s MDM elemeknek a funkci\u00f3j\u00e1t,<\/b>k\u00fcl\u00f6n\u00f6sen figyelmesen meg kell ismerkednie a term\u00e9szetes kulcsok t\u00e1rol\u00e1s\u00e1nak aspektusaival a rugalmas m\u00f3dszertanokban. Lehets\u00e9ges, hogy a Data Vault bonyolultabb konstrukci\u00f3ja hirtelen biztons\u00e1gosabbnak bizonyul az egyes\u00edt\u00e9si hib\u00e1k szempontj\u00e1b\u00f3l.<\/p>\n<p><b>A Horgony model szint\u00e9n biztos\u00edt egy tov\u00e1bbi objektum t\u00edpust, amelyet<\/b> Knotnak (Csom\u00f3nak) <b>h\u00edvnak, l\u00e9nyeg\u00e9ben ez egy k\u00fcl\u00f6nleges<\/b> degener\u00e1lt t\u00edpusa a horgony\u00e1nak. <b>degener\u00e1lt horgonyle\u00edr\u00e1s<\/b>, amely csak egyetlen attrib\u00fatumot tartalmazhat. A csom\u00f3pontokat s\u00edk adatb\u00e1zisok t\u00e1rol\u00e1s\u00e1ra sz\u00e1nj\u00e1k (p\u00e9ld\u00e1ul nem, csal\u00e1di \u00e1llapot, \u00fcgyf\u00e9lszolg\u00e1lati kateg\u00f3ria stb.). A horgonyokt\u00f3l elt\u00e9r\u0151en a csom\u00f3pont <b>nincs kapcsol\u00f3d\u00f3 attrib\u00fatumt\u00e1bl\u00e1ja<\/b>, \u00e9s az egyetlen attrib\u00fatuma (a n\u00e9v) mindig ugyanabban a t\u00e1bl\u00e1zatban van, mint a kulcs. A csom\u00f3pontok a horgonyokkal kapcsolattart\u00f3 t\u00e1bl\u00e1k (Tie) r\u00e9v\u00e9n kapcsol\u00f3dnak, ak\u00e1rcsak a horgonyok egym\u00e1ssal.<\/p>\n<p>Nincs egy\u00e9rtelm\u0171 v\u00e9lem\u00e9ny a csom\u00f3pontok haszn\u00e1lat\u00e1r\u00f3l. P\u00e9ld\u00e1ul <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/azathot\/\">Nyikolaj Hovalev<\/a><\/noindex>, aki akt\u00edvan n\u00e9pszer\u0171s\u00edti a horgony modellek alkalmaz\u00e1s\u00e1t Oroszorsz\u00e1gban, \u00fagy v\u00e9li (nem alaptalanul), hogy egyetlen adatb\u00e1zis eset\u00e9n sem lehet pontosan \u00e1ll\u00edtani, hogy az <b>k\u00edm\u00e9letlenek voltak<\/b> statikus \u00e9s egy szint\u0171 lesz, ez\u00e9rt minden objektum eset\u00e9n a legjobb, ha azonnal teljes \u00e9rt\u00e9k\u0171 horgonyt haszn\u00e1lunk.<\/p>\n<p>Egy m\u00e1sik fontos k\u00fcl\u00f6nbs\u00e9g a Data Vault \u00e9s a horgony modell k\u00f6z\u00f6tt az, hogy <b>a kapcsolatoknak vannak attrib\u00fatumaik<\/b>:<\/p>\n<p>A <b>Data Vault<\/b> A kapcsolatok ugyanolyan teljes \u00e9rt\u00e9k\u0171 objektumok, mint a k\u00f6zpontok, \u00e9s rendelkezhetnek <b>saj\u00e1t attrib\u00fatumokkal<\/b>. A <b>A Horgony modellel<\/b> A kapcsolatok kiz\u00e1r\u00f3lag horgonyok \u00f6sszekapcsol\u00e1s\u00e1ra szolg\u00e1lnak, \u00e9s <b>saj\u00e1t attrib\u00fatumokkal nem rendelkezhetnek<\/b>. Ez a k\u00fcl\u00f6nbs\u00e9g l\u00e9nyegesen elt\u00e9r\u0151 megk\u00f6zel\u00edt\u00e9seket eredm\u00e9nyez a modellez\u00e9s sor\u00e1n, <b>a t\u00e9nyekkel<\/b>, amelyr\u0151l k\u00e9s\u0151bb sz\u00f3lunk.<\/p>\n<h3>T\u00e9nyek t\u00e1rol\u00e1sa<\/h3>\n<p>\nEddig f\u0151leg a dimenzi\u00f3k modellez\u00e9s\u00e9r\u0151l besz\u00e9lt\u00fcnk. A t\u00e9nyek eset\u00e9ben a helyzet kiss\u00e9 kevesebb egy\u00e9rtelm\u0171s\u00e9ggel b\u00edr.<\/p>\n<p>A <b>Data Vault<\/b> tipikus t\u00e9nyt\u00e1rol\u00f3 objektum \u2014<b> Kapcsolat (Link)<\/b>, amelynek egyes m\u0171holdai tartalmazz\u00e1k a t\u00e9nyez\u0151 mutat\u00f3kat.<\/p>\n<p>Ez a megk\u00f6zel\u00edt\u00e9s intuit\u00edvnak t\u0171nik. K\u00f6nny\u0171 hozz\u00e1f\u00e9r\u00e9st biztos\u00edt az elemzett mutat\u00f3khoz \u00e9s \u00f6sszess\u00e9g\u00e9ben hasonl\u00edt a hagyom\u00e1nyos t\u00e9nyt\u00e1bl\u00e1zathoz (csak a mutat\u00f3k nem mag\u00e1ban a t\u00e1bl\u00e1zatban, hanem a \"szomsz\u00e9dos\" t\u00e1bl\u00e1zatban vannak t\u00e1rolva). De vannak csapd\u00e1k is: a modell egyik tipikus m\u00f3dos\u00edt\u00e1sa \u2014 a t\u00e9ny kulcs\u00e1nak kiterjeszt\u00e9se \u2014 sz\u00fcks\u00e9gess\u00e9 teszi <b>\u00faj k\u00fcls\u0151 kulcs hozz\u00e1ad\u00e1s\u00e1t a Linkben<\/b>. Ez pedig \"megt\u00f6ri\" a modularit\u00e1st, \u00e9s potenci\u00e1lisan m\u00e1s objektumok m\u00f3dos\u00edt\u00e1s\u00e1t is sz\u00fcks\u00e9gess\u00e9 teheti.<\/p>\n<p>A <b>A Horgony modellel<\/b> A kapcsolat nem rendelkezhet saj\u00e1t attrib\u00fatumokkal, ez\u00e9rt ez a megk\u00f6zel\u00edt\u00e9s nem m\u0171k\u00f6dik \u2014 abszol\u00fat minden attrib\u00fatumnak \u00e9s mutat\u00f3nak egy adott horgonyhoz kell kapcsol\u00f3dnia. A k\u00f6vetkeztet\u00e9s egyszer\u0171: <b>minden t\u00e9nyhez is sz\u00fcks\u00e9ges egy saj\u00e1t horgony<\/b>. Ami a t\u00e9nyeket illeti, ez term\u00e9szetesnek t\u0171nhet \u2014 p\u00e9ld\u00e1ul a v\u00e1s\u00e1rl\u00e1s t\u00e9nye j\u00f3l egyeztethet\u0151 a \"rendel\u00e9s\" vagy \"sz\u00e1mla\" objektummal, egy webhely l\u00e1togat\u00e1sa pedig a session-nel stb. De l\u00e9teznek olyan t\u00e9nyek is, amelyekn\u00e9l nem olyan egyszer\u0171 megtal\u00e1lni az ilyen term\u00e9szetes \"objektum-hordoz\u00f3t\" \u2014 p\u00e9ld\u00e1ul a k\u00e9szletmaradv\u00e1nyok a rakt\u00e1rakban minden nap elej\u00e9n. <\/p>\n<p>\u00cdgy a t\u00e9nykulcs modul\u00e1ris b\u0151v\u00edt\u00e9s\u00e9vel kapcsolatos probl\u00e9m\u00e1k nem l\u00e9pnek fel az Anchor modellben (csak annyit kell tenn\u00fcnk, hogy \u00faj Kapcsolatot adunk a megfelel\u0151 Horgonyhoz), de a t\u00e9nyek megjelen\u00edt\u00e9s\u00e9re tervezett modell kev\u00e9sb\u00e9 egy\u00e9rtelm\u0171, \u201emesters\u00e9ges\u201d Horgonyok is megjelenhetnek, amelyek nem egy\u00e9rtelm\u0171en t\u00fckr\u00f6zik az \u00fczleti objektummodellt.<\/p>\n<h3>Hogyan \u00e9rhet\u0151 el a rugalmass\u00e1g<\/h3>\n<p>\nA l\u00e9trej\u00f6v\u0151 konstrukci\u00f3 mindk\u00e9t esetben tartalmaz <b>l\u00e9nyegesen t\u00f6bb t\u00e1bl\u00e1t<\/b>, mint a hagyom\u00e1nyos dimenzi\u00f3. De helyet foglalhat el <b>l\u00e9nyegesen kevesebb lemezhelyet<\/b> ugyanazzal a verzi\u00f3s attrib\u00fatumokkal, mint a hagyom\u00e1nyos dimenzi\u00f3. Term\u00e9szetesen itt nincsen m\u00e1gikus megold\u00e1s \u2014 az eg\u00e9sz a normaliz\u00e1l\u00e1sr\u00f3l sz\u00f3l. Az attrib\u00fatumokat a Satelite-okba (Data Vault) vagy k\u00fcl\u00f6n t\u00e1bl\u00e1kba (Anchor Model) osztva cs\u00f6kkentj\u00fck (vagy teljesen kiz\u00e1rjuk) <b>az egyes attrib\u00fatumok \u00e9rt\u00e9keinek megism\u00e9tl\u0151d\u00e9s\u00e9t m\u00e1sok m\u00f3dos\u00edt\u00e1sakor.<\/b>.<\/p>\n<p>A <b>Data Vault<\/b> A nyeres\u00e9g a Satelite-okhoz rendelt attrib\u00fatumok eloszl\u00e1s\u00e1t\u00f3l f\u00fcgg, \u00e9s a <b>A Horgony modellel<\/b> \u2014 gyakorlatilag egyenesen ar\u00e1nyos az objektumdimenzi\u00f3 \u00e1tlagos verzi\u00f3sz\u00e1m\u00e1val.<\/p>\n<p>A t\u00e1rolt hely\u00e9rt el\u00e9rt nyeres\u00e9g azonban fontos, de nem a legf\u0151bb el\u0151nye az attrib\u00fatumok k\u00fcl\u00f6n t\u00e1rol\u00e1s\u00e1nak. Az ilyen megk\u00f6zel\u00edt\u00e9s a kapcsolatok k\u00fcl\u00f6n t\u00e1rol\u00e1s\u00e1val egy\u00fctt az adatt\u00e1rat <b>modul\u00e1ris konstrukci\u00f3v\u00e1<\/b>. Ez azt jelenti, hogy az egyes attrib\u00fatumok \u00e9s teljes \u00faj t\u00e9mak\u00f6r\u00f6k hozz\u00e1ad\u00e1sa ilyen modellben \u00fagy jelenik meg, mint <b>kieg\u00e9sz\u00edt\u00e9s<\/b> a megl\u00e9v\u0151 objektumcsoporthoz an\u00e9lk\u00fcl, hogy azokat m\u00f3dos\u00edtan\u00e1nk. \u00c9s ez az, ami rugalmass\u00e1 teszi a le\u00edrt metodol\u00f3gi\u00e1kat.<\/p>\n<p>Ez eml\u00e9keztet a darabgy\u00e1rt\u00e1sr\u00f3l a t\u00f6meggy\u00e1rt\u00e1sra val\u00f3 \u00e1tmenetre \u2014 m\u00edg a hagyom\u00e1nyos megk\u00f6zel\u00edt\u00e9sben minden t\u00e1bl\u00e1nak egyedileg kell kezelnie, addig a rugalmas metodol\u00f3gi\u00e1kban ezek m\u00e1r egy sor tipikus \"alkatr\u00e9sz\". Az egyik oldalr\u00f3l n\u0151 a t\u00e1bl\u00e1k sz\u00e1ma, az adatok bet\u00f6lt\u00e9si \u00e9s lek\u00e9rdez\u00e9si folyamatai bonyolultabbnak t\u0171nhetnek. M\u00e1sr\u00e9szt, ezek <b>tipikusak<\/b>. Ez\u00e9rt lehetnek <b>automatiz\u00e1lt \u00e9s adatkezel\u00e9s alatt \u00e1ll\u00f3 metaadatok<\/b>. A k\u00e9rd\u00e9s \u201chogyan fogjuk elhelyezni?\u201d, amely kor\u00e1bban jelent\u0151s r\u00e9szesed\u00e9st k\u00e9pviselt a projekttervez\u00e9shez sz\u00fcks\u00e9ges munk\u00e1kban, most m\u00e1r egyszer\u0171en nem mer\u00fcl fel (mint ahogy a modellv\u00e1ltoz\u00e1s folyamatokra gyakorolt hat\u00e1s\u00e1nak k\u00e9rd\u00e9se sem). <\/p>\n<p>Ez nem jelenti azt, hogy analitik\u00e1kra egy ilyen rendszerben egy\u00e1ltal\u00e1n nincs sz\u00fcks\u00e9g \u2014 valakinek m\u00e9g mindig dolgoznia kell az objektumok attrib\u00fatumk\u00e9szlet\u00e9n, \u00e9s ki kell der\u00edtenie, honnan \u00e9s hogyan t\u00f6ltse be mindezt. De a munka mennyis\u00e9ge, valamint a hiba val\u00f3sz\u00edn\u0171s\u00e9ge \u00e9s k\u00f6lts\u00e9ge jelent\u0151sen cs\u00f6kken. Az anal\u00edzis f\u00e1zis\u00e1ban, \u00e9s a legy\u00e1rt\u00e1s sor\u00e1n az ETL, ami nagy r\u00e9szben a metaadatok szerkeszt\u00e9s\u00e9re reduk\u00e1l\u00f3dhat. <\/p>\n<h3>S\u00f6t\u00e9t oldal<\/h3>\n<p>\nMindezek a fentebb le\u00edrtak val\u00f3ban rugalmass\u00e1, technol\u00f3giaiv\u00e1 \u00e9s iterat\u00edv fejleszt\u00e9sre alkalmass\u00e1 teszik mindk\u00e9t megk\u00f6zel\u00edt\u00e9st. Term\u00e9szetesen van egy 'k\u00e1d k\u00e1tr\u00e1ny', amir\u0151l m\u00e1r gondolom, hogy sejtette.<\/p>\n<p>Az adatok dekompoz\u00edci\u00f3ja, amely a rugalmas architekt\u00far\u00e1k modularit\u00e1s\u00e1nak alapj\u00e1t k\u00e9pezi, a t\u00e1bl\u00e1k sz\u00e1m\u00e1nak n\u00f6veked\u00e9s\u00e9hez vezet, \u00e9s ennek megfelel\u0151en <b>a k\u00f6lts\u00e9gek<\/b> a kitapint\u00e1sok sor\u00e1n. Ahhoz, hogy egyszer\u0171en megkapjuk az \u00f6sszes m\u00e9r\u00e9si attrib\u00fatumot, a klasszikus adatt\u00e1rh\u00e1zban elegend\u0151 egy kiv\u00e1laszt\u00e1s, m\u00edg a rugalmas architekt\u00fara t\u00f6bb csatlakoz\u00e1st ig\u00e9nyel. R\u00e1ad\u00e1sul, m\u00edg ezek a csatlakoz\u00e1sok a jelent\u00e9sekhez el\u0151re meg\u00edrhat\u00f3k, az SQL-t k\u00e9zzel \u00edr\u00f3 analitik\u00e1k k\u00e9tszer olyan nehezen fogj\u00e1k ezt megval\u00f3s\u00edtani.<\/p>\n<p>Van n\u00e9h\u00e1ny t\u00e9ny, amely megk\u00f6nny\u00edti ezt a helyzetet:<\/p>\n<p><b>Nagy dimenzi\u00f3k haszn\u00e1lata sor\u00e1n szinte soha nem haszn\u00e1lj\u00e1k egyszerre az \u00f6sszes attrib\u00fatumot.<\/b> Ez azt jelenti, hogy a csatlakoz\u00e1sok sz\u00e1ma kevesebb lehet, mint ahogy els\u0151 r\u00e1n\u00e9z\u00e9sre a modell alapj\u00e1n t\u0171nik. A Data Vault eset\u00e9ben a v\u00e1rhat\u00f3 k\u00f6z\u00f6s haszn\u00e1lat gyakoris\u00e1g\u00e1t is figyelembe lehet venni az attrib\u00fatumok szatelitok k\u00f6z\u00f6tti eloszt\u00e1s\u00e1n\u00e1l. Ezen k\u00edv\u00fcl maguk a Hubok vagy Horgok els\u0151sorban a megfelel\u0151k l\u00e9trehoz\u00e1s\u00e1hoz \u00e9s t\u00e9rk\u00e9pez\u00e9s\u00e9hez sz\u00fcks\u00e9gesek a bet\u00f6lt\u00e9si szakaszban, \u00e9s ritk\u00e1n haszn\u00e1lj\u00e1k a lek\u00e9rdez\u00e9sek sor\u00e1n (k\u00fcl\u00f6n\u00f6sen a Horgok eset\u00e9ben ez igaz).<\/p>\n<p><b>Minden csatlakoz\u00e1s kulcs alapj\u00e1n t\u00f6rt\u00e9nik.<\/b> Ezenk\u00edv\u00fcl az adatok \u201et\u00f6m\u00f6r\u00edtett\u201d t\u00e1rol\u00e1s\u00e1nak m\u00f3dja cs\u00f6kkenti a t\u00e1bl\u00e1k bej\u00e1r\u00e1s\u00e1nak k\u00f6lts\u00e9geit, ahol ez sz\u00fcks\u00e9ges (p\u00e9ld\u00e1ul attrib\u00fatum \u00e9rt\u00e9k szerinti sz\u0171r\u00e9skor). Ez oda vezethet, hogy a normaliz\u00e1lt adatb\u00e1zisb\u00f3l sz\u00e1mos csatlakoz\u00e1ssal v\u00e9gzett lek\u00e9rdez\u00e9s m\u00e9g gyorsabb lehet, mint egy neh\u00e9z dimenzi\u00f3 egy sorban l\u00e9v\u0151 sok verzi\u00f3val val\u00f3 bej\u00e1r\u00e1sa.<\/p>\n<p>P\u00e9ld\u00e1ul itt van <noindex><a rel=\"nofollow\" href=\"http:\/\/www.anchormodeling.com\/wp-content\/uploads\/2011\/05\/Anchor-Modeling.pdf\">ebben <\/a><\/noindex> egy cikk, amely r\u00e9szletes \u00f6sszehasonl\u00edt\u00f3 teljes\u00edtm\u00e9nytesztet tartalmaz az Anchor modell \u00e9s az egy t\u00e1bl\u00e1b\u00f3l val\u00f3 lek\u00e9rdez\u00e9s k\u00f6z\u00f6tt.<\/p>\n<p><b>Sok f\u00fcgg a motort\u00f3l.<\/b> Sok modern platform rendelkezik bels\u0151 csatlakoz\u00e1si optimaliz\u00e1l\u00f3 mechanizmusokkal. P\u00e9ld\u00e1ul a MS SQL \u00e9s az Oracle k\u00e9pes \u201ekihagyni\u201d a csatlakoz\u00e1sokat a t\u00e1bl\u00e1kra, ha ezek adatai sehol nem haszn\u00e1latosak, csak m\u00e1s csatlakoz\u00e1sokban, \u00e9s nem befoly\u00e1solj\u00e1k a v\u00e9gs\u0151 eredm\u00e9nyt (table\/join elimination), m\u00edg a MPP Vertica a <noindex><a rel=\"nofollow\" href=\"http:\/\/www.anchormodeling.com\/wp-content\/uploads\/2011\/05\/Big_Data_Normalization.pdf\">kolleg\u00e1k tapasztalata szerint az Avit\u00f3t\u00f3l<\/a><\/noindex>kiv\u00e1l\u00f3 motork\u00e9nt bizonyult az Anchor modellhez, n\u00e9mi manu\u00e1lis lek\u00e9rdez\u00e9soptimaliz\u00e1l\u00e1ssal. M\u00e1sr\u00e9szr\u0151l, az Anchor modell t\u00e1rol\u00e1sa, p\u00e9ld\u00e1ul Click House-on, amely korl\u00e1tozott csatlakoz\u00e1si t\u00e1mogat\u00e1ssal rendelkezik, nem t\u0171nik t\u00fal j\u00f3 \u00f6tletnek.<\/p>\n<p>Ezen k\u00edv\u00fcl mindk\u00e9t architekt\u00fara sz\u00e1m\u00e1ra l\u00e9teznek <b>k\u00fcl\u00f6nleges technik\u00e1k<\/b>, amelyek megk\u00f6nny\u00edtik az adatokhoz val\u00f3 hozz\u00e1f\u00e9r\u00e9st (mind a lek\u00e9rdez\u00e9sek teljes\u00edtm\u00e9nye, mind a v\u00e9gfelhaszn\u00e1l\u00f3k szempontj\u00e1b\u00f3l). P\u00e9ld\u00e1ul, <b>Point-In-Time t\u00e1bl\u00e1k<\/b> a Data Vault-ban vagy <b>k\u00fcl\u00f6nleges t\u00e1bl\u00e1zati funkci\u00f3k<\/b> az Anchor modellben.<\/p>\n<h2>\u00d6sszesen<\/h2>\n<p>\nA fent eml\u00edtett rugalmas architekt\u00far\u00e1k l\u00e9nyege a \u201emodul\u00e1ris\u201d szerkezet\u00fck. <\/p>\n<p>Ez a tulajdons\u00e1g teszi lehet\u0151v\u00e9:<\/p>\n<ul>\n<li>N\u00e9h\u00e1ny kezd\u0151 el\u0151k\u00e9sz\u00edt\u00e9s ut\u00e1n, amely mag\u00e1ban foglalja a metainform\u00e1ci\u00f3k telep\u00edt\u00e9s\u00e9t \u00e9s az alapvet\u0151 ETL algoritmusok meg\u00edr\u00e1s\u00e1t, <b>gyorsan bemutathatjuk az els\u0151 eredm\u00e9nyt<\/b> n\u00e9h\u00e1ny jelent\u00e9s form\u00e1j\u00e1ban, amelyek csak n\u00e9h\u00e1ny forr\u00e1st tartalmaznak. Az eg\u00e9sz objektum modell teljes kidolgoz\u00e1sa (m\u00e9g fels\u0151 szinten sem) nem sz\u00fcks\u00e9ges ehhez.<\/li>\n<li>Az adatm\u00f3d modell 2-3 objektummal elkezdheti a m\u0171k\u00f6d\u00e9st (\u00e9s el\u0151ny\u00f6ket hozni), majd <b>lassan kiterjedhet<\/b> (az Anchor modellel kapcsolatban Nikolaj <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/avito\/blog\/322510\/\">alkalmazott egy <\/a><\/noindex>sz\u00e9p hasonlatot a gomba rendszer\u00e9vel).<\/li>\n<li>A legt\u00f6bb m\u00f3dos\u00edt\u00e1s, bele\u00e9rtve a t\u00e1rgyk\u00f6r kiterjeszt\u00e9s\u00e9t \u00e9s \u00faj forr\u00e1sok hozz\u00e1ad\u00e1s\u00e1t, <b>nem \u00e9rinti a megl\u00e9v\u0151 funkci\u00f3kat, \u00e9s nem jelent vesz\u00e9lyt arra, hogy valami m\u00e1r m\u0171k\u00f6d\u0151t elrontson.<\/b>.<\/li>\n<li>A standard element decomposition makes ETL processes in such systems uniform, their writing is subject to algorithmization and, ultimately, <b>automation<\/b>.<\/li>\n<\/ul>\n<p>\nThe price of such flexibility is <b>teljes\u00edtm\u00e9ny<\/b>. This does not mean that achieving acceptable performance on such models is impossible. Most often, you may just need to put in more effort and attention to detail to reach the desired metrics.<\/p>\n<h2>Alkalmaz\u00e1sok<\/h2>\n<p><\/p>\n<h4>Entity types <b>Data Vault<\/b><\/h4>\n<p>\n<img decoding=\"async\" alt=\"A rugalmas DWH tervez\u00e9si m\u00f3dszertanok \u00e1ttekint\u00e9se\" src=\"\/wp-content\/uploads\/2020\/08\/6bbaee505587152d7e5c11b2889bf25a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMore about Data Vault:<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/danlinstedt.com\/\">Dan Linstedt's website<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.dwh-club.com\/ru\/dwh-bi-articles\/vse-o-data-vault.html\">Everything about Data Vault in Russian<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/348188\/\">About Data Vault on Habr<\/a><\/noindex><\/p>\n<h4>Types of entities <b>az v\u00e1ltozatlan<\/b><\/h4>\n<p>\n<img decoding=\"async\" alt=\"A rugalmas DWH tervez\u00e9si m\u00f3dszertanok \u00e1ttekint\u00e9se\" src=\"\/wp-content\/uploads\/2020\/08\/d518f01e6a5c241e9e73d1ea0210c557.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMore about the Anchor Model:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/www.anchormodeling.com\/\">Creators of the Anchor Model website<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/avito\/blog\/322510\/\">Article on the implementation experience of the Anchor Model at Avito<\/a><\/noindex><\/p>\n<p>Summary table with common features and differences of the reviewed approaches:<\/p>\n<p><img decoding=\"async\" alt=\"A rugalmas DWH tervez\u00e9si m\u00f3dszertanok \u00e1ttekint\u00e9se\" src=\"\/wp-content\/uploads\/2020\/08\/807717245fd874ab141031fc64e584fc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>Forr\u00e1s: <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.3 - 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\/hu\/blog\/administrirovanie\/obzor-gibkih-metodologij-proektirovaniya-dwh\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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\/hu\/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\udd47Review of flexible DWH design methodologies | ProHoster","description":"A t\u00e1rol\u00f3fejleszt\u00e9s hossz\u00fa \u00e9s komoly feladat.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/obzor-gibkih-metodologij-proektirovaniya-dwh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\/hu\/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\/hu\/wp-json\/wp\/v2\/posts\/92015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=92015"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/92015\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/92016"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=92015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=92015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=92015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}