Schedule

Z DWFC3
Verzia z 11:57, 16. august 2017, ktorú vytvoril Ferec (Diskusia | príspevky)

(rozdiel) ← Staršia verzia | Aktuálna úprava (rozdiel) | Novšia verzia → (rozdiel)
Prejsť na: navigácia, hľadanie

Plánovaním (schedule) nazývame činnosť, ktorá určuje, ktorá úloha bude zaradená do príslušného spracovania. Vykonáva sa pred samotným začatím spracovania.

Jednotkou plánovania je úloha, ktorá beží v rámci spracovania. [Processing|Spracovanie] je definované dátumom spracovania a prípadne nepovinným atribútom [Iteration|Iterácia]. Rozsah plánovania je ohraničený scenárom, tzn. naraz sú plánované úlohy patriace do jedného scenára.

Samotný proces plánovania prebieha nasledovne:

  • Pre každý povolený scenár je vykonaný SQL dotaz, ktorý je súčasťou definície tohto scenára
  • Ako prvý riadok a prvý stĺpec výsledku tohto selectu je očakávaný dátum spracovania, ktorý je možné spustiť, v nasledujúcom stĺpci (nepovinnom) je kód iterácie (voľný text)
  • Ak za získaný dátum spracovania (alebo novší) už spracovanie prebeho alebo začalo, dátum je ignorovaný.
  • Ak pracuje scenár aj s iteráciami, potom je v rámci dátumu porovnaná aj iterácia jednoduchým textovým porovnaním. Ak už bola iterácia spustená (prípadne novšia podľa textového zoradenia), iterácia sa ignoruje.
  • V prípade, že je dostupné spracovanie, ktoré ešte nebolo spustené (ani žiadne novšie), vyberie sa zoznam všetkých úloh, ktoré spĺňajú nasledovné podmienky:
    • úloha je povolená (Enabled)
    • skupina, v ktorej je úloha je povolená (Enabled)
    • úloha je naplánovaná, tzn. je nastavená na denné spracovanie, alebo plán spracovania zodpovedá aktuálnemu dátumu spracovania (napr. každý pondelok, a aktuálny dátum spracovania je pondelok)
  • Po naplánovaní úlohy sú vykonané základné kontroly a začínajú sa spracovávať jednotlivé úlohy, pre ktoré sú splnené všetky podmienky pre spustenie (závislosti medzi úlohami, skupinami) popri dodržaní podmienok pre riadenie záťaže servera (paralelizmus, záťaž).


Jednoduchý príklad denného spracovania typický pre spracovanie dátového skladu:

  • Jeden scenár nazvaný DWH má nasledovný SQL dotaz:

select getdate()

  • Výsledkom dotazu je jeden riadok a jeden stĺpec, ktorý vracia aktuálny dátum a čas (vlastne dátum by bol postačujúci, čas je v tomto prípade ignorovaný)
  • Ak ešte nebolo spracovanie vykonané za tento dátum, naplánujú sa všetky úlohy spracovania
  • Úlohy sa postupne vykonajú
  • Po dokončení poslednej úlohy je spracovanie dokončené a je odstránené z plánovania


Príklad viacnásobného (intra-day) spracovania:

  • Jeden scenár nazvaný Near-RT má nasledovný SQL dotaz:

select getdate() as date, cast(datepart(hh, getdate())/6 as varchar) as iteration

  • Výsledkom dotazu je jeden riadok, pričom prvý stĺpecje identický ako v predchádzajúcom príklade, druhý stĺpec predstavuje kód iterácie a nadobúda hodnoty 0-3
  • Spracovanie tohto scenára je teda naplánované každých 6 hodín, tzn. vždy, keď kód iterácie nadobudne novú hodnotu
  • pre každé plánované spracovanie sú vykonané úlohy daného scenára
  • Naplánovanie každej iterácie sa považuje za samostatné spracovanie a má vlastný identifikátor