Баррасии методологияҳои тарроҳии Agile DWH

Ташаккул додани як анбор кори тӯлонӣ ва ҷиддӣ аст.

Бисёр чиз дар ҳаёти лоиҳа аз он вобаста аст, ки модели объект ва сохтори асосӣ дар оғоз то чӣ андоза хуб фикр карда шудааст.

Муносибати аз ҷониби умум қабулшуда вариантҳои гуногуни якҷоя кардани схемаи ситораҳо бо шакли сеюми муқаррарӣ буд ва боқӣ мемонад. Чун қоида, аз рӯи принсип: маълумоти ибтидоӣ - 3NF, витринаҳо - ситора. Ин равиш, ки аз ҷониби вақт санҷида ва аз ҷониби миқдори зиёди тадқиқот дастгирӣ карда мешавад, аввалин (ва баъзан ягона) чизест, ки ба фикри мутахассиси ботаҷрибаи DWH ҳангоми фикр кардан дар бораи он, ки анбори таҳлилӣ бояд чӣ гуна бошад.

Аз тарафи дигар, тиҷорат дар маҷмӯъ ва махсусан талаботи муштариён зуд тағйир меёбад ва маълумот тамоюли ҳам “амиқӣ” ва ҳам “дар васеъ” афзоиш меёбад. Ва дар ин ҷо камбудии асосии ситора пайдо мешавад - маҳдуд аст чандирӣ.

Ва агар дар ҳаёти ором ва бароҳати шумо ҳамчун як таҳиягари DWH ногаҳон:

  • вазифа ба миён омад, ки «акаллан кореро зуд анчом дихем, баъд мебинем»;
  • лоиҳаи босуръат рушдёбанда пайдо шуд, ки бо пайваст кардани манбаъҳои нав ва коркарди модели бизнес на камтар аз як маротиба дар як ҳафта;
  • муштарӣ пайдо шуд, ки намедонад, ки система бояд чӣ гуна бошад ва дар ниҳоят он бояд чӣ вазифаҳоро иҷро кунад, аммо омода аст, ки таҷриба кунад ва натиҷаи дилхоҳро пайваста такмил диҳад ва пайваста ба он наздик шавад;
  • Менеҷери лоиҳа бо хушхабар омад: "Ва акнун мо чолок ҳастем!"

Ё агар шумо танҳо ба фаҳмидани он, ки чӣ гуна шумо метавонед анборҳои нигоҳдорӣ созед - ба буриш хуш омадед!

Баррасии методологияҳои тарроҳии Agile DWH

Маънои «фасеҳ» чӣ маъно дорад?

Аввалан, биёед муайян кунем, ки система барои «фасеҳ» номида шуданаш бояд кадом хосиятҳоро дошта бошад.

Алоҳида, бояд қайд кард, ки хосиятҳои тавсифшуда бояд ба таври махсус алоқаманд бошанд система, на ба раванд инкишофи он. Аз ин рӯ, агар шумо хоҳед, ки дар бораи Agile ҳамчун методологияи рушд хонед, беҳтар аст мақолаҳои дигарро хонед. Масалан, дар ҳамон ҷо, дар Habré, бисёр маводи ҷолиб мавҷуданд (масалан барраси и амалӣ, ва мушкилӣ).

Ин маънои онро надорад, ки раванди рушд ва сохтори анбори додаҳо комилан ба ҳам алоқаманд нестанд. Дар маҷмӯъ, таҳияи як анбори Agile барои меъмории тезтар бояд хеле осонтар бошад. Бо вуҷуди ин, дар амал, бештар вариантҳои таҳияи Agile-и классикии DWH мувофиқи Kimbal ва DataVault вуҷуд доранд - тибқи Шаршара, назар ба тасодуфҳои хушбахтии чандирӣ дар ду шакли он дар як лоиҳа.

Пас, нигоҳдории чандир бояд чӣ гуна қобилиятҳоро дошта бошад? Дар ин ҷо се нукта вуҷуд дорад:

  1. Интиқоли барвақт ва гардиши зуд - ин маънои онро дорад, ки беҳтарин натиҷаи тиҷорат (масалан, ҳисоботи аввалини корӣ) бояд ҳарчи зудтар, яъне ҳатто пеш аз он ки тамоми система пурра тарҳрезӣ ва татбиқ карда шавад, ба даст оварда шавад. Илова бар ин, ҳар як таҷдиди минбаъда бояд то ҳадди имкон вақти камро дар бар гирад.
  2. Такмили такрорӣ - ин маънои онро дорад, ки ҳар як такмили минбаъда набояд ба функсияе, ки аллакай кор мекунад, таъсир нарасонад. Маҳз ин лаҳза аксар вақт даҳшати бузургтарин дар лоиҳаҳои калон мегардад - дер ё зуд, объектҳои инфиродӣ ба гирифтани пайвастагиҳои зиёд шурӯъ мекунанд, ки пурра такрор кардани мантиқ дар як нусхаи наздик осонтар мешавад, назар ба илова кардани майдон ба ҷадвали мавҷуда. Ва агар шумо дар ҳайрат бошед, ки таҳлили таъсири беҳбудиҳо ба объектҳои мавҷуда метавонад назар ба беҳбудиҳо вақти зиёдтарро талаб кунад, шумо эҳтимолан то ҳол бо анборҳои бузурги маълумот дар бонкҳо ё телекоммуникатсия кор накардаед.
  3. Мутобиқ шудан ба талаботи тағйирёбандаи тиҷорат - сохтори умумии объект бояд на танҳо бо назардошти тавсеаи имконпазир тарҳрезӣ шавад, балки бо интизории он, ки самти ин тавсеаи навбатиро дар марҳилаи тарҳрезӣ ҳатто орзу кардан мумкин нест.

Ва ҳа, қонеъ кардани ҳамаи ин талабот дар як система имконпазир аст (албатта, дар баъзе ҳолатҳо ва бо баъзе қайдҳо).

Дар зер ман ду методологияи маъмултарини тарроҳии зудро барои анборҳои додаҳо баррасӣ хоҳам кард - Модели лангар и Хазинаи маълумот. Аз қавс берун мондан чунин техникаҳои аъло, масалан, EAV, 6NF (дар шакли холис) ва ҳама чизҳои марбут ба ҳалли NoSQL - на аз он сабаб, ки онҳо то андозае бадтаранд ва ҳатто аз он сабаб, ки дар ин ҳолат мақола таҳдид мекунад хачми дисми миёна. Ин танҳо он аст, ки ҳамаи ин ба ҳалли як синфи каме дигар дахл дорад - ё ба усулҳое, ки шумо метавонед дар ҳолатҳои мушаххас истифода баред, новобаста аз меъмории умумии лоиҳаи шумо (ба монанди EAV) ё ба парадигмаҳои дигари нигоҳдории иттилоот (масалан, пойгоҳи додаҳои графикӣ) ва дигар имконоти NoSQL).

Проблемаҳои равиши «классикӣ» ва ҳалли онҳо дар методологияи чандир

Бо равиши "классикӣ" ман ситораи хуби кӯҳнаро дар назар дорам (новобаста аз татбиқи мушаххаси қабатҳои асосӣ, бигзор пайравони Кимбалл, Инмон ва CDM маро бубахшанд).

1. Кардиналии сахти пайвастхо

Ин модел ба тақсимоти дақиқи додаҳо асос ёфтааст Андоза и фактхо. Ва ин, лаънат, мантиқист - дар ниҳоят, таҳлили маълумот дар аксари ҳолатҳо ба таҳлили баъзе нишондиҳандаҳои ададӣ (фактҳо) дар қисматҳои муайян (андозаҳо) рост меояд.

Дар ин маврид робитаи байни объектхо дар шакли муносибатхои байни чадвалхо бо истифода аз калиди хоричи мукаррар карда мешавад. Ин хеле табиӣ ба назар мерасад, аммо фавран ба маҳдудияти аввалини чандирӣ оварда мерасонад - катъиян муайян кардани кардиналии алокахо.

Ин маънои онро дорад, ки дар марҳилаи тарҳрезии ҷадвал, шумо бояд барои ҳар як ҷуфти объектҳои алоқаманд дақиқ муайян кунед, ки оё онҳо метавонанд ба бисёр-ба-бисёр, ё танҳо 1-ба-бисёр алоқаманданд ва “дар кадом самт”. Ин бевосита муайян мекунад, ки кадом ҷадвал дорои калиди асосӣ ва кадоме калиди хориҷӣ хоҳад буд. Тағйир додани ин муносибат ҳангоми қабули талаботҳои нав, эҳтимоли зиёд ба коркарди база оварда мерасонад.

Масалан, ҳангоми тарҳрезии объекти "квитансия", шумо ба қасамҳои шӯъбаи фурӯш такя карда, имкони амалро муқаррар кардед. як пешбарӣ барои якчанд вазифаҳои чек (вале на баръакс):

Баррасии методологияҳои тарроҳии Agile DWH
Ва пас аз чанд вақт, ҳамкорон стратегияи нави маркетингро ҷорӣ карданд, ки дар он онҳо метавонанд дар як мавқеъ амал кунанд якчанд аксияҳо дар як вақт. Ва акнун шумо бояд ҷадвалҳоро бо роҳи ҷудо кардани муносибат ба объекти алоҳида тағир диҳед.

(Ҳамаи объектҳои ҳосилшуда, ки дар онҳо чеки пешбарӣ ҳамроҳ карда шудааст, ҳоло низ бояд такмил дода шавад).

Баррасии методологияҳои тарроҳии Agile DWH
Муносибатҳо дар Data Vault ва Anchor Model

Пешгирӣ аз ин вазъият хеле оддӣ буд: шумо набояд ба шӯъбаи фурӯш бовар кунед. ҳама пайвастҳо дар аввал дар ҷадвалҳои алоҳида нигоҳ дошта мешаванд ва онро ҳамчун бисёр-ба-бисёр коркард кунед.

Чунин равиш пешниҳод карда шуд Дэн Линстедт ҳамчун қисми парадигма Хазинаи маълумот ва комилан дастгирй карда мешавад Ларс Рённбек в Модели лангар.

Дар натиҷа, мо аввалин хусусияти фарқкунандаи методологияҳои чандирро ба даст меорем:

Муносибатҳои байни объектҳо дар атрибутҳои объектҳои волидайн нигоҳ дошта намешаванд, балки як намуди алоҳидаи объект мебошанд.

В Хазинаи маълумот чунин ҷадвалҳои пайвандкунанда номида мешаванд Link, дар ҳоле ки дар Модели лангар - галстук. Дар назари аввал, онҳо хеле монанданд, гарчанде ки фарқияти онҳо бо ном тамом намешавад (ки дар поён муҳокима карда мешавад). Дар ҳарду меъморӣ, ҷадвалҳои истинод метавонанд пайваст шаванд ягон шумораи субъектҳо (на ҳатман 2).

Ин зиёдатӣ, дар назари аввал, чандирии назаррасро барои тағирот таъмин мекунад. Чунин сохтор на танҳо ба тағйироти ҷиддии пайвандҳои мавҷуда, балки инчунин ба илова кардани пайвандҳои нав таҳаммулпазир мегардад - агар ҳоло мавқеи чек низ ба хазинадоре, ки онро шикастааст, робита дошта бошад, пайдоиши чунин пайванд танҳо хоҳад буд. бе таъсир ба ягон объект ва равандҳои мавҷуда илова бар ҷадвалҳои мавҷуда гардад.

Баррасии методологияҳои тарроҳии Agile DWH

2. Такрори маълумот

Масъалаи дуюме, ки бо меъмории чандир ҳал карда мешавад, камтар аён аст ва дар ҷои аввал хос аст. Андозагирии навъи SCD2 (одиста-охиста тагьир ёфтани андозахои навъи дуюм), гарчанде на танхо онхо.

Дар анбори классикӣ, андоза одатан ҷадвалест, ки дорои калиди ивазкунанда (ҳамчун PK) ва маҷмӯи калидҳои корӣ ва атрибутҳо дар сутунҳои алоҳида мебошад.

Баррасии методологияҳои тарроҳии Agile DWH

Агар андозагирӣ нусхабардориро дастгирӣ кунад, ба маҷмӯи стандартии майдонҳо ҳудуди эътибори версия илова карда мешавад ва якчанд версияҳо дар репозиторий барои як сатри манбаъ пайдо мешаванд (якто барои ҳар як тағирот дар атрибутҳои версиявӣ).

Агар андоза ақаллан як атрибути зудтағйиршавандаи версияро дар бар гирад, шумораи версияҳои чунин андоза таъсирбахш хоҳад буд (ҳатто агар атрибутҳои боқимонда версия набошанд ё ҳеҷ гоҳ тағир наёбанд) ва агар якчанд чунин атрибутҳо вуҷуд дошта бошанд, шумораи версияҳо метавонанд аз шумораи онхо ба таври экспоненциалй меафзояд. Ин андоза метавонад миқдори зиёди фазои дискро ишғол кунад, гарчанде ки қисми зиёди маълумоте, ки он нигоҳ медорад, танҳо такрори арзишҳои атрибутҳои тағирнопазир аз сатрҳои дигар мебошанд.

Баррасии методологияҳои тарроҳии Agile DWH

Дар айни замон, он низ хеле зуд истифода мешавад денормальизатсия — баъзе атрибутҳо қасдан ҳамчун арзиш нигоҳ дошта мешаванд, на ҳамчун истинод ба китоби маълумотнома ё андозагирии дигар. Ин равиш дастрасии маълумотро суръат мебахшад ва шумораи пайвастҳоро ҳангоми дастрасӣ ба андоза кам мекунад.

Одатан ин ба он оварда мерасонад як маълумот дар як вақт дар якчанд ҷой нигоҳ дошта мешавад. Масалан, маълумот дар бораи минтақаи истиқомат ва категорияи муштарӣ метавонад ҳамзамон дар ченакҳои «Мизоҷ» ва далелҳои «Харид», «Расонидани» ва «Зангҳои маркази тамос», инчунин дар «Муштарӣ - Менеҷери муштарӣ» нигоҳ дошта шавад. ” ҷадвали истинод.

Умуман, чизҳои дар боло тавсифшуда ба андозаҳои муқаррарӣ (ғайриверсиявӣ) дахл доранд, аммо дар версияҳо онҳо метавонанд миқёси дигар дошта бошанд: пайдоиши версияи нави объект (махсусан дар бозгашт) на танҳо ба навсозии ҳама чизҳои марбут ба он оварда мерасонад. ҷадвалҳо, вале ба намуди каскади версияҳои нави объектҳои алоқаманд - вақте ки ҷадвали 1 барои сохтани Ҷадвали 2 ва ҷадвали 2 барои сохтани Ҷадвали 3 ва ғайра истифода мешавад. Ҳатто агар ягон атрибути Ҷадвали 1 дар сохтани Ҷадвали 3 иштирок накунад (ва дигар атрибутҳои Ҷадвали 2, ки аз дигар сарчашмаҳо гирифта шудаанд, ҷалб карда шаванд), версияи ин сохтмон ҳадди ақал ба хароҷоти иловагӣ ва ҳадди аксар ба иловагӣ оварда мерасонад. версияҳои дар ҷадвали 3. ки чизе ба кор бо он дар ҳама, ва минбаъд поён занҷир.

Баррасии методологияҳои тарроҳии Agile DWH

3. Мушкилии ғайрихаттии коркарди такрорӣ

Ҳамзамон, ҳар як дӯкони наве, ки дар асоси дигар сохта шудааст, шумораи ҷойҳоеро зиёд мекунад, ки ҳангоми тағирот ба ETL маълумот метавонанд "фарқ шаванд". Ин, дар навбати худ, боиси зиёд шудани мураккабии (ва давомнокии) ​​ҳар як таҷдиди минбаъда мегардад.

Агар дар боло системаҳо бо равандҳои кам тағйирёбандаи ETL тавсиф карда шаванд, шумо метавонед дар чунин парадигма зиндагӣ кунед - шумо танҳо бояд боварӣ ҳосил кунед, ки тағиротҳои нав ба ҳама объектҳои алоқаманд дуруст ворид карда шудаанд. Агар таҷдиди назар зуд-зуд рух диҳад, эҳтимолияти тасодуфан "набудани" якчанд пайвастшавӣ ба таври назаррас меафзояд.

Агар ба ғайр аз ин, мо ба назар гирем, ки ETL-и "версияи версиявӣ" нисбат ба "версияи ғайринавбатӣ" хеле мураккабтар аст, пешгирӣ кардани хатогиҳо ҳангоми зуд-зуд нав кардани тамоми ин иншоот хеле душвор мешавад.

Нигоҳ доштани объектҳо ва атрибутҳо дар Data Vault ва Anchor Model

Муносибати аз ҷониби муаллифони меъмории чандир пешниҳодшуда метавонад ба таври зерин ифода карда шавад:

Он чизеро, ки аз он чизе, ки бетағйир мемонад, ҷудо кардан лозим аст. Яъне калидҳоро аз атрибутҳо ҷудо нигоҳ доред.

Бо вуҷуди ин, набояд иштибоҳ кунад версия нашудааст атрибут бо бетағйир: якум таърихи тагйироти худро нигох намедорад, балки метавонад тагйир ёбад (масалан, хангоми ислохи хатои воридот ё гирифтани маълумоти нав); дуюмаш хеч гох тагйир намеёбад.

Нуқтаҳои назар дар бораи он, ки он чизеро, ки дар махзани маълумот ва модели Anchor тағйирнопазир ҳисобидан мумкин аст, фарқ мекунанд.

Аз нуктаи назари меъморй Хазинаи маълумот, бетағйир донистан мумкин аст тамоми маҷмӯи калидҳо — натуралй (РИН-и ташкилот, коди махсулот дар системаи манбаъ ва гайра) ва суррогат. Дар ин ҳолат, атрибутҳои боқимондаро аз рӯи манбаъ ва/ё басомади тағйирот ва Барои ҳар як гурӯҳ ҷадвали алоҳида тартиб диҳед бо маҷмӯи мустақили версияҳо.

Дар парадигма Модели лангар бетағйир ҳисобида мешавад танҳо калиди ивазкунанда моҳият. Ҳама чизи дигар (аз ҷумла калидҳои табиӣ) танҳо як ҳолати махсуси атрибутҳои он аст. Дар он чо ҳама атрибутҳо ба таври нобаёнӣ аз ҳамдигар мустақиланд, бинобар ин барои ҳар як атрибут а ҷадвали алоҳида.

В Хазинаи маълумот ҷадвалҳое, ки калидҳои объект доранд, даъват карда мешаванд Ҳубами. Hub ҳамеша маҷмӯи собит майдонҳоро дар бар мегирад:

  • Калидҳои объекти табиӣ
  • Калиди ивазкунанда
  • Истинод ба манбаъ
  • Вақти иловаро сабт кунед

Мақолаҳо дар Hubs ҳеҷ гоҳ тағир намеёбад ва версия надоранд. Аз берун, хабҳо ба ҷадвалҳои навъи ID-харита, ки дар баъзе системаҳо барои тавлиди суррогатҳо истифода мешаванд, хеле шабоҳат доранд, аммо тавсия дода мешавад, ки хэшро аз маҷмӯи калидҳои корӣ ҳамчун суррогатҳо дар Data Vault истифода баред. Ин равиш боркунии муносибатҳо ва атрибутҳоро аз манбаъҳо осон мекунад (барои ба даст овардани суррогат ба марказ ҳамроҳ шудан лозим нест, танҳо ба шумо лозим аст, ки хэши калиди табииро ҳисоб кунед), аммо метавонад мушкилоти дигарро ба вуҷуд орад (масалан, бо бархӯрдҳо алоқаманд) , регистр ва аломатҳои чопнашаванда дар калидҳои сатр ва ғайра.

Ҳама атрибутҳои объекти дигар дар ҷадвалҳои махсуси номдор нигоҳ дошта мешаванд Моҳвораҳо. Як марказ метавонад якчанд моҳвора дошта бошад, ки маҷмӯи атрибутҳои гуногунро нигоҳ медоранд.

Баррасии методологияҳои тарроҳии Agile DWH

Тақсимоти атрибутҳо дар байни моҳвораҳо мувофиқи принсип сурат мегирад тағироти муштарак — дар як моҳвора атрибутҳои версиянанашавандаро нигоҳ доштан мумкин аст (масалан, санаи таваллуд ва SNILS барои шахси воқеӣ), дар дигараш - версияҳои кам ивазшаванда (масалан, насаб ва рақами шиноснома), дар сеюм - зуд-зуд ивазшаванда. (масалан, суроғаи таҳвил, категория, санаи фармоиши охирин ва ғайра). Дар ин ҳолат, версиясозӣ дар сатҳи моҳвораҳои алоҳида анҷом дода мешавад, на дар маҷмӯъ, аз ин рӯ тавсия дода мешавад, ки атрибутҳо тақсим карда шаванд, то чорроҳаи версияҳо дар як моҳвора ҳадди аққал бошад (ки шумораи умумии версияҳои захирашударо кам мекунад) ).

Инчунин, барои оптимизатсияи раванди боркунии маълумот, атрибутҳои аз сарчашмаҳои гуногун гирифташуда аксар вақт ба моҳвораҳои инфиродӣ дохил карда мешаванд.

Моҳвораҳо бо Hub тавассути калиди хориҷӣ (ки ба 1-то-бисёр кардиналият мувофиқ аст). Ин маънои онро дорад, ки арзишҳои атрибутҳои сершумор (масалан, рақамҳои сершумори телефони тамос барои як муштарӣ) аз ҷониби ин меъмории "пешфарз" дастгирӣ карда мешаванд.

В Модели лангар ҷадвалҳое, ки калидҳоро нигоҳ медоранд, номида мешаванд Лангар. Ва нигоҳ медоранд:

  • Танҳо калидҳои ивазкунанда
  • Истинод ба манбаъ
  • Вақти иловаро сабт кунед

Калидҳои табиӣ аз нуқтаи назари модели Anchor баррасӣ карда мешаванд хосиятҳои оддӣ. Ин вариант метавонад фаҳмиши душвортар ба назар расад, аммо он барои муайян кардани объект имконият медиҳад.

Баррасии методологияҳои тарроҳии Agile DWH

Масалан, агар маълумот дар бораи як объект аз системаҳои гуногун гирифта шавад, ки ҳар кадоми онҳо калиди табиии худро истифода мебаранд. Дар Data Vault, ин метавонад ба сохторҳои хеле душвори якчанд марказҳо оварда расонад (якто барои як манбаъ + версияи ягонаи усто), дар ҳоле ки дар модели Anchor калиди табиии ҳар як манбаъ ба атрибути худ меафтад ва онро ҳангоми боркунӣ новобаста аз он истифода бурдан мумкин аст. хамаи дигарон.

Аммо дар ин ҷо як нуктаи маккорона низ ҳаст: агар атрибутҳои системаҳои гуногун дар як объект муттаҳид шаванд, эҳтимол дорад, ки баъзе қоидаҳои "часпидан", ки тавассути он система бояд фаҳмад, ки сабтҳо аз сарчашмаҳои гуногун ба як мисоли объект мувофиқат мекунанд.

В Хазинаи маълумот ин қоидаҳо эҳтимолан ташаккулро муайян мекунанд "маркази суррогатӣ" -и субъекти асосӣ ва ба ҳеҷ ваҷҳ ба Hubs, ки калидҳои манбаи табиӣ ва атрибутҳои аслии онҳоро нигоҳ медоранд, таъсир намерасонад. Агар дар ягон лаҳза қоидаҳои якҷояшавӣ тағир ёбад (ё атрибутҳое, ки тавассути онҳо он иҷро карда мешавад, нав карда шавад), он барои аз нав формат кардани марказҳои суррогат кофӣ хоҳад буд.

В Модели лангар чунин объект эҳтимолан дар он нигоҳ дошта мешавад ягона лангар. Ин маънои онро дорад, ки тамоми сифатҳо, новобаста аз он, ки аз кадом сарчашма гирифта мешаванд, ба ҳамон ивазкунанда баста мешаванд. Ҷудо кардани сабтҳои нодуруст муттаҳидшуда ва дар маҷмӯъ, мониторинги аҳамияти муттаҳидшавӣ дар чунин система метавонад хеле мушкилтар бошад, хусусан агар қоидаҳо хеле мураккаб бошанд ва зуд-зуд тағйир ёбанд ва як атрибутро аз манбаъҳои гуногун ба даст овардан мумкин аст (гарчанде ки он албатта имконпазир аст, зеро ҳар як версияи атрибутӣ истиноди манбаи худро нигоҳ медорад).

Дар ҳар сурат, агар системаи шумо бояд ин функсияро амалӣ кунад нусхабардорӣ, якҷоя кардани сабтҳо ва дигар унсурҳои MDM, бояд диққати махсус ба ҷанбаҳои нигоҳдории калидҳои табиӣ дар методологияи agile дода шавад. Эҳтимол дорад, ки тарҳи калонтари Data Vault ногаҳон аз ҷиҳати хатогиҳои якҷоя бехатартар хоҳад буд.

Модели лангар инчунин намуди объекти иловагии ном дорад Гирех аслан махсус аст намуди таназзули лангар, ки метавонад танҳо як атрибут дошта бошад. Гиреҳҳо бояд барои нигоҳ доштани маълумотномаҳои ҳамвор истифода шаванд (масалан, ҷинс, вазъи оилавӣ, категорияи хидматрасонии муштариён ва ғайра). Баръакси Лангар, гиреҳ ҷадвалҳои атрибутҳои алоқаманд надорад, ва ягона атрибути он (ном) ҳамеша дар як ҷадвал бо калид нигоҳ дошта мешавад. Гиреҳҳо бо лангарҳо тавассути ҷадвалҳои галстук (Галстук) ба ҳамон тарзе пайваст карда мешаванд, ки лангарҳо ба ҳамдигар пайваст мешаванд.

Дар бораи истифодаи гиреҳҳо фикри дақиқ вуҷуд надорад. Барои намуна, Николай Голов, ки фаъолона истифода бурдани модели Anchor дар Русияро таблиғ мекунад, боварӣ дорад (беасос нест), ки на як китоби маълумотномаро бо итминон метавон гуфт, ки он ҳамеша статикӣ ва яксатҳи хоҳад буд, аз ин рӯ беҳтар аст, ки фавран барои ҳама объектҳо як Anchor-и мукаммалро истифода баред.

Фарқи дигари муҳими байни Data Vault ва модели Anchor мавҷудият аст хосиятҳои пайвастшавӣ:

В Хазинаи маълумот Истинодҳо ҳамон объектҳои мукаммали Hubs мебошанд ва метавонанд дошта бошанд сифатҳои худ. Дар Модели лангар Истинодҳо танҳо барои пайваст кардани лангарҳо ва сифатхои худро дошта наметавонанд. Ин тафовут боиси ба таври назаррас фарқ кардани равишҳои моделсозӣ мегардад фактхо, ки минбаъд мухокима карда мешавад.

Нигоҳдории далелҳо

Пеш аз ин, мо асосан дар бораи моделсозии андозагирӣ сӯҳбат кардем. Фактхо каме равшантаранд.

В Хазинаи маълумот объекти маъмулии нигоҳ доштани фактҳо мебошад Пайванд, ки дар спутникхои онхо нишондихандахои реалй илова карда шудаанд.

Ин равиш интуитивӣ ба назар мерасад. Он дастрасии осонро ба нишондиҳандаҳои таҳлилшударо таъмин мекунад ва умуман ба ҷадвали анъанавии фактҳо монанд аст (танҳо нишондиҳандаҳо на дар худи ҷадвал, балки дар ҷадвали "ҳамсоя" нигоҳ дошта мешаванд). Аммо камбудиҳо низ ҳастанд: яке аз тағироти маъмулии модел - васеъ кардани калиди далелҳо - зарур аст илова кардани калиди нави хориҷӣ ба Link. Ва ин, дар навбати худ, модулиро "шиканад" ва эҳтимолан зарурати тағир додани объектҳои дигарро ба вуҷуд меорад.

В Модели лангар Пайвастшавӣ наметавонад атрибутҳои худро дошта бошад, аз ин рӯ ин равиш кор намекунад - комилан ҳама атрибутҳо ва нишондиҳандаҳо бояд ба як лангари мушаххас пайваст карда шаванд. Хулоса аз ин оддӣ аст - Ҳар як далел низ ба лангари худ ниёз дорад. Барои баъзе чизҳое, ки мо ҳамчун далел қабул кардаем, ин метавонад табиӣ бошад - масалан, далели харид метавонад ба объекти "фармоиш" ё "квитансия", боздид аз сайт ба сессия ва ғайра комилан кам карда шавад. Аммо фактхое хам хастанд, ки барои онхо пайдо кардани чунин «объекти боркашон»-и табий чандон осон нест — масалан, бокимондахои мол дар анборхо дар аввали хар руз.

Мувофиқи он, ҳангоми васеъ кардани калиди далелҳо дар модели Anchor мушкилот бо модулият ба миён намеояд (фақат илова кардани Муносибати нав ба Анкери мувофиқ кифоя аст), аммо тарҳрезии модел барои намоиши далелҳо камтар равшан аст; Лангарҳои "сунъӣ" метавонанд пайдо шаванд. ки модели объекти тичоратиро ба таври норавшан нишон медиханд.

Чӣ тавр чандирӣ ба даст оварда мешавад

Сохтмони натиҷа дар ҳарду ҳолат дорои ба таври назаррас бештар ҷадвалҳонисбат ба андозагирии анъанавӣ. Аммо он метавонад гирифта шавад фазои диск ба таври назаррас камтар бо ҳамон маҷмӯи атрибутҳои нусхабардорӣ ҳамчун андозагирии анъанавӣ. Табиист, ки дар ин ҷо ҷодугарӣ вуҷуд надорад - ин ҳама дар бораи ба эътидол овардан аст. Бо паҳн кардани атрибутҳо дар байни моҳвораҳо (дар махзани маълумот) ё ҷадвалҳои инфиродӣ (Модели Anchor), мо кам мекунем (ё комилан нест мекунем) такрори арзишҳои баъзе атрибутҳо ҳангоми тағир додани дигарон.

барои Хазинаи маълумот бурдіои хоҳад оид ба тақсимоти атрибутҳо дар байни моҳвораҳо вобаста аст, ва барои Модели лангар — ба микдори миёнаи версияхо дар як объекти ченкунй кариб бевосита мутаносиб аст.

Бо вуҷуди ин, сарфаи ҷой бартарии муҳими нигоҳ доштани атрибутҳо дар алоҳидагӣ нест. Якҷоя бо нигоҳдории алоҳидаи муносибатҳо, ин равиш месозад мағоза тарҳи модулӣ. Ин маънои онро дорад, ки илова кардани ҳам атрибутҳои инфиродӣ ва ҳам мавзӯъҳои нав дар чунин модел ба назар мерасад навсозӣ дар болои маҷмӯи мавҷудаи объектҳо бидуни тағир додани онҳо. Ва ин маҳз он чизест, ки методологияҳои тавсифшударо чандир мегардонад.

Ин инчунин ба гузариш аз истеҳсоли қисмҳо ба истеҳсоли оммавӣ шабоҳат дорад - агар дар равиши анъанавӣ ҳар як ҷадвали модел беназир бошад ва диққати махсусро талаб кунад, пас дар методологияҳои чандир он аллакай маҷмӯи "қисмҳои" стандартӣ мебошад. Аз як тараф, ҷадвалҳои бештар вуҷуд доранд ва равандҳои боркунӣ ва дарёфти маълумот бояд мураккабтар ба назар мерасанд. Аз тарафи дигар, онҳо мешаванд хос. Ин маънои онро дорад, ки вуҷуд дорад автоматӣ ва метадата идора карда мешавад. Саволи «мо онро чӣ тавр мегузорем?», ки ҷавобаш метавонад қисми зиёди корҳоро оид ба тарҳрезии такмилҳоро дар бар гирад, ҳоло ба он намеарзад (инчунин савол дар бораи таъсири тағир додани модел ба равандҳои корӣ). ).

Ин маънои онро надорад, ки таҳлилгарон дар чунин система умуман лозим нестанд - ба касе лозим аст, ки тавассути маҷмӯи объектҳо бо атрибутҳо кор кунад ва бифаҳмад, ки ҳамаро дар куҷо ва чӣ гуна бор кардан лозим аст. Аммо ҳаҷми кор, инчунин эҳтимолият ва арзиши хато, ба таври назаррас кам карда мешавад. Ҳам дар марҳилаи таҳлил ва ҳам ҳангоми таҳияи ETL, ки дар қисми муҳими он метавонад ба таҳрири метамаълумот кам карда шавад.

Як тараф

Ҳама чизҳои дар боло зикршуда ҳарду равишро воқеан чандир, аз ҷиҳати технологӣ пешрафта ва барои такмили такрорӣ мувофиқ мекунанд. Албатта, "баррел дар атрафшон" низ вуҷуд дорад, ки ман фикр мекунам, ки шумо аллакай дар бораи он тахмин карда метавонед.

Декомпозитсияи маълумот, ки асоси модулияти меъмории чандир мебошад, боиси афзоиши шумораи ҷадвалҳо мегардад ва мутаносибан, боло ҳангоми гирифтани намуна ҳамроҳ шудан. Барои ба даст овардани ҳама атрибутҳои андоза, дар мағозаи классикӣ як интихоб кифоя аст, аммо меъмории чандир як қатор пайвастҳоро талаб мекунад. Гузашта аз ин, агар ҳамаи ин пайвастагиҳоро барои ҳисобот пешакӣ навиштан мумкин бошад, пас таҳлилгароне, ки ба даст навиштани SQL одат кардаанд, дучанд зарар мебинанд.

Якчанд далелҳо мавҷуданд, ки ин вазъиятро осон мекунанд:

Ҳангоми кор бо андозаҳои калон, ҳама атрибутҳои он қариб ҳеҷ гоҳ дар як вақт истифода намешаванд. Ин маънои онро дорад, ки метавонад камтар пайвастшавӣ вуҷуд дошта бошад, назар ба он ки дар назари аввал дар модел ба назар мерасад. Data Vault инчунин метавонад басомади интизории мубодиларо ҳангоми тақсим кардани атрибутҳо ба моҳвораҳо ба назар гирад. Ҳамзамон, худи Hub ё Anchors пеш аз ҳама барои тавлид ва харитасозии суррогатҳо дар марҳилаи боркунӣ лозиманд ва дар дархостҳо хеле кам истифода мешаванд (ин махсусан барои Anchors дуруст аст).

Ҳама пайвастшавӣ бо калид анҷом дода мешавад. Илова бар ин, тарзи бештар «фишурдашудаи» нигоҳдории маълумот хароҷоти сканкунии ҷадвалҳоро дар ҷое, ки он лозим аст, кам мекунад (масалан, ҳангоми филтркунӣ аз рӯи арзиши атрибут). Ин метавонад ба он оварда расонад, ки интихоб аз пойгоҳи додаҳои муқарраршуда бо як қатор пайвастҳо ҳатто зудтар аз скан кардани як андозагирии вазнин бо версияҳои зиёде дар як сатр хоҳад буд.

Масалан, дар ин чо ин Дар мақола санҷиши муфассали муқоисавии иҷрои модели Anchor бо намуна аз як ҷадвал оварда шудааст.

Бисёр чиз аз муҳаррик вобаста аст. Бисёр платформаҳои муосир механизмҳои оптимизатсияи дохилӣ доранд. Масалан, MS SQL ва Oracle метавонанд пайвастшавиро ба ҷадвалҳо "гузаранд", агар маълумоти онҳо ба истиснои пайвастҳои дигар дар ягон ҷо истифода нашавад ва ба интихоби ниҳоӣ (ҷадвал/барҳамдиҳии ҳамроҳшавӣ) ва MPP Vertica таъсир нарасонад. таҷрибаи ҳамкорони аз Avito, бо назардошти баъзе оптимизатсияи дастӣ нақшаи дархост, як муҳаррики аъло барои модели Anchor собит кардааст. Аз тарафи дигар, нигоҳдории Модели Anchor, масалан, дар Click House, ки дастгирии маҳдуди ҳамроҳ дорад, ҳанӯз як идеяи хуб ба назар намерасад.

Илова бар ин, барои ҳарду меъморӣ вуҷуд дорад ҳаракатҳои махсус, осон кардани дастрасии маълумот (ҳам аз нуқтаи назари иҷрои дархост ва ҳам барои корбарони ниҳоӣ). Барои намуна, Ҷадвалҳои "Нукта дар вақт" дар махзани маълумот ё функсияҳои махсуси ҷадвал дар модели Anchor.

Ҳамагӣ

Моҳияти асосии меъмориҳои тағйирпазири баррасишаванда модул будани «тарҳ» -и онҳост.

Маҳз ин амвол имкон медиҳад:

  • Пас аз чанд омодагии ибтидоии марбут ба густариши метамаълумотҳо ва навиштани алгоритмҳои асосии ETL, зуд ба мизочон натичаи аввалинро таъмин намояд дар шакли якчанд гузоришҳо, ки дорои маълумот аз якчанд объектҳои манбаъ мебошанд. Барои пурра фикр кардан (ҳатто дар сатҳи боло) тамоми модели объект шарт нест.
  • Модели маълумот метавонад танҳо бо 2-3 объект ба кор шурӯъ кунад (ва муфид бошад) ва баъд тадричан афзояд (дар бораи модели Анкор Николай татбиқ карда шуд муқоисаи хуб бо mycelium).
  • Аксари такмилҳо, аз ҷумла васеъ кардани майдони мавзӯъ ва илова кардани манбаъҳои нав ба функсияҳои мавҷуда таъсир намерасонад ва хатари шикастани чизе, ки аллакай кор мекунад, вуҷуд надорад.
  • Бо шарофати таҷзия ба унсурҳои стандартӣ, равандҳои ETL дар чунин системаҳо якхелаанд, навиштани онҳо ба алгоритмизатсия қарз медиҳад ва дар ниҳоят, автоматика.

Нархи ин чандирӣ аст Маҳсулнокӣ. Ин маънои онро надорад, ки ба даст овардани нишондиҳандаҳои қобили қабул дар чунин моделҳо ғайриимкон аст. Бештари вақт, шумо метавонед барои ноил шудан ба ченакҳои дилхоҳатон кӯшиш ва таваҷҷӯҳи бештар ба тафсилот лозим шавад.

Барномаҳои

Намудҳои субъектҳо Хазинаи маълумот

Баррасии методологияҳои тарроҳии Agile DWH

Маълумоти бештар дар бораи Data Vault:
Вебсайти Дан Лиштадт
Ҳама дар бораи Data Vault бо забони русӣ
Дар бораи Data Vault дар Habré

Намудҳои субъектҳо Модели лангар

Баррасии методологияҳои тарроҳии Agile DWH

Тафсилоти бештар дар бораи модели Anchor:

Вебсайти эҷодкорони Anchor Model
Мақола дар бораи таҷрибаи татбиқи модели Anchor дар Avito

Ҷадвали ҷамъбастӣ бо хусусиятҳои умумӣ ва фарқиятҳои равишҳои баррасишуда:

Баррасии методологияҳои тарроҳии Agile DWH

Манбаъ: will.com

Илова Эзоҳ