Databázové moduly

Pro uložení dat máme Postgres (s PostGIS nadstavbou pro Geo data), Mongo DB, Influx DB. Máme nyní jich více z důvodu různých charakterů dat a datových sad - na některá strukturovaná data je optimální použít relační databázi, pro některá se více hodí dokumentová či time-series databáze. Snažíme se tak být flexibilní a co nejlépe se o data starat, ukládat a poskytovat datovým analytikům v nejsmysluplnější podobě.

Obecný popis databáze

Základní databázové schéma

Databáze je členěna na jednotlivá schémata

  1. public (obsahuje vlastní data)
  2. analytic (schéma určeno pro tvorbu a ukládání analytických agregátů a pohledů a přístup datových analytiků)
  3. meta (určeno k ukládání metadat o jednotlivých datových sadách)
  4. history (historické tabulky k jednotlivým datovým tabulkám)
  5. tmp (určeno pro tvorbu dočasných extraktů z primárních dat)
  6. common (číselníky a data užívaná napříč datovými sadami)

Schéma META

META schéma databáze

Toto schéma by mělo obsahovat základní informace o evidovaných datových sadách. Zároveň obsahuje informace o průběhu plnění jednotlivých sad. Tabulka batch obsahuje údaje o jednotlivých datových dávkách, tak jek přicházely do datové platformy. Extract_summary je detailní záznam o rozvrstvení dat do jednotlivých extraktů.

Schéma PUBLIC

Schéma datové sady

Obsahuje jednotlivé datové sady. Každá z nich může sestávat z jedné až několika extraktů (datových tabulek). Jejich případné provázání je závislé na doméně dané datové sady. Dle charakteru ukládaných dat je někdy vhodné vytvořit historizační tabulku, která obsahuje všechny změny v primárním extraktu. Taková tabulky je vytvořena ve schématu history a je plněna trigerem, který je nad vlastním extraktem. Všechny tabulky datových sad obsahují stejnou skupinu auditních polí, které jsou určeny k získání přehledu o původu a stavu daného záznamu

  • create_batch_id – identifikátor dávky (batch) která vytvořila záznam
  • created_by - identifátor uživatele nebo systému, který záznam vytvořil
  • created_at - časová značky, kdy byl záznam vytvořen v datové platformě V případě změny db záznamu je uložena informace o této změně
  • update_batch_id – identifikátor dávky (batch) která měnila záznam naposledy
  • update_by - identifátor uživatele nebo systému, který záznam naposledy měnil
  • update_at - časová značky, kdy byl záznam upraven v datové platformě

Schéma HISTORY

Schéma obsahuje historizační tabulky plněné trigery. Důvodem vytvoření takové tabulky je potřeba zkoumat stav dat k určitému časovému bodu.

Schéma ANALYTIC

Je určen k specializovaným analýzám, kdy je potřeba vhodným způsobem měnit (např. agregovat) primární data.

Schéma TMP

Je určen k tvorbě dočasných tabulek potřebných v jednotlivých dílčích výpočtech.

Popis vnitřních procedur databáze

Scéma META obsahuje i základní procedury a funkce určené k obecné správě.

  • add_audit_fields (úprava – rozšíření tabulky o standardní množinu auditních polí)
  • create_batch (vytvoření záznamu v batch – open)
  • close_batch (ukončení zpracování dávky – CLOSE/ERROR)
  • count_batch (při ukončení dávky – zápis do extract_summary)
  • close_extract (Fce uzavírá existující extrakt v rámci dávky dávky (voláno z MongoDb)
  • create_historization_process (Vytvoření historizační tabulky a trigeru)
  • retention (Retenční proces nad db – dle metadat)
  • trg_general_write_history (Obecná trg fce pro historizační trigery)

Popis retenční politiky dat

Retenční politika databáze je řízena informacemi uloženými v metadatech. Obecně lze očekávat že jednotlivé datové sady budou mít rozdílnou potřebu, jak dlouho ukládat produkční data. Tato informace je uložena v metadatech.

Každá datová sada obsahuje dva údaje a to:

  • retention_days
  • h_retention_days

Tyto údaje udávají po kolika dnech budou data z databáze odstraněna, a to samostatně pro produkční tabulky a pro historizační tabulky. Pokud je údaj nevyplněn, znamená to, že data nebudou průběžně odstraňována. Tyto údaje jsou platné pro celou datovou sadu. V případě, že u některého extraktu je potřebné nastavit retenční údaje odlišným způsobem, lze stejné atributy vyplnit i v záznamu tabulky extract. Pokud jsou tyto údaje vyplněné mají vyšší prioritu než údaje v dataset.