Multiday

Z DWFC3
Prejsť na: navigácia, hľadanie

Počas denného spracovanie sa občas prihodí, že z dôvodu nedostupnosti extraktu, zlyhania SW alebo HW komponenty sa napodarí spracovanie dokončiť. V závislosti od typu chyby sa niekedy stane, že takáto oprava si vyžiada aj niekoľko dní. V takom prípade je vhodné čo najrýchlejšie dobehnúť oneskorenie. Väčší počet dní je potrebné spracovať v niektorých prípadoch aj po tzv. korekčnom loade, kedy je časť dát spätne upravená a je potrebné spracovať nadväzujúce tabuľky pre dlhšie obdobie. Pri základnej architektúre DWH je často kladená požiadavka na sériovosť spracovania, tzn. aby mohlo začať spracovanie ďalšieho dňa, je potrebné mať dokončené spracovanie dňa aktuálneho. Pri detailnejšom pohľade je ale často možné niektoré úlohy vykonať aj mimo tohto poradia. Aby mohli byť výhody paralelného spracovania čo najlepšie využité, je vhodné implementovať nasledovné koncepty v DWH:

  • snímkovaný stage - to znamená, že STAGE môže obsahovať viacero snímkov v jednom čase, ETL pracujúce s dátami v STAGE musia byť prispôsobené takto stavaným tabuľkám
  • full extrakty v STAGE - ak aj zdrojové systémy dodávajú dáta v inkrementoch, je vhodné tieto dáta previesť na full extrakty. Toto sa netýka dát transakčného charakteru, ale najmä entitných dát, prípadne rôznych zostatkov, apod.

Pri implementácii uvedených odporúčaní získavame výhodu spracovania s vyššiu mierou paralelizmu a pri správnom nastavení miery zaťaženia servera/serverov je možné významne skrátiť čas výpadku, prípadne dokončiť reprocess vybraného obdobia. Dochádza totiž k tomu, že určité časti spracovania nemôžu bežat kvôli nesplneným závislostiam, nie je preto využitý plný potenciál dostupných zdrojov. V takom prípade je pri viacdňovom spracovaní možné spustiť ďalší deň, pričom tieto úlohy sa spúšťajú menej prioritne. Ak je možné spustiť úlohu z najstaršieho rozpracovaného dňa, spustí sa. Pokiaľ to možné nie je, potom sa spúšťa úloha z ďalšieho dňa, ktorá môže bežať pri splnených závislostiach a nastavení limitov záťaže.

Vzhľadom k tomu, že nie všetky typy úloh sú spustiteľné paralelne, resp. mimo poradia je možné na rôznych úrovniach paralelný beh ovplyvňovať. Na najvyššej úrovni je možné takýto beh ovplyvniť nastavením scenára, kde je možné nastaviť počet maximálne spustených spracovaní daného scenára prostredníctvom atribútu Max parallel. Nastavením vyššej hodnoty je umožnené spustenie príslušného počtu spracovaní v jednom čase bez toho, aby predchádzajúce už boli ukončené. Aby došlo k naplánovaniu spracovania, dotaz uvedený na scenári musí vrátiť nový dátum spracovania, resp. novú iterácie aj napriek tomu, že súčasné spracovanie ešte nebolo dokončené.

Po spustení viacerých spracovaní scenára súčasne je možné toto spracovanie ďalej ovplyvňovať prostredníctvom atribútu Multiday mode na úlohe/skupine. Môže nadobúdať nasledovné hodnoty:

  • Group setting - možné nastaviť len na úrovni úlohy, znamená, že preberá nastavenie skupiny
  • Parallel - úloha môže bežať paralelne pre viacero dátumov v ľubovoľnom poradí. Typicky spracovanie full extraktov v snímkovanom stage, alebo snímkované tabuľky vo vyšších vrstvách

Paralelné vykonávanie úlohy vo viacerých spracovaniach

  • Serial - úloha môže bežať pred dokončením iných úloh z predchádzajúcich spracovaní, ale nemôže byť spystená skôr, ako ona sama už v predchádzajúcich spracovaniach dobehla. Typicky spracovanie inkrementálnych extraktov, transakčných dát.

Sériové vykonávanie úlohy vo viacerých spracovaniach

  • Consumed - úloha môže bežať pred dokončením iných úloh z predchádzajúcich spracovaní, ale nemôže byť spystená skôr, ako ona sama už v predchádzajúcich spracovaniach dobehla a zároveň dáta museli byť skonzumované, tzn. dobehli aj všetky priamo závislé úlohy v predchádzajúcich spracovaniach. Typicky sa môže využiť v scenároch, kedy je spracovanie tabuliek rozdelené na transformačnú a historizačnú fázu. Jedna úloha pripraví dáta do dočasnej štruktúry a ďalšia úloha sa postará o historizáciu týchto dát v cieľovej štruktúre. V takomto prípade je nutné zabezpečiť správne nastavenie závislostí - aby historizačná úloha bol priamo závislá od transformačnej úlohy.

Vykonávanie úlohy vo viacerých spracovaniach až po spracovaní výstupných dát

  • Fully processed - úloha môže byť spustená až po úplnom dokončení spracovenia všetkých predchádzajúcich dní. Ide o najviac konzervatívny scenár, kedy úloha čerpá dáta, alebo ovplyvňuje väčšiu časť dátového modelu.