sql >> Databáze >  >> RDS >> Database

SCD typ 4

Rozměrová data, která se mění pomalu nebo nepředvídatelně, jsou zachycena v analýzách Slowly Changing Dimensions (SCD). V prostředí datového skladu má tabulka dimenzí primární klíč, který jednoznačně identifikuje každý záznam a další informace, které jsou známé jako dimenzionální data.

Všechny metody aktualizace pro různé typy SCD se provádějí pomocí programu SortCL v IRI CoSort. V IRI Voracity existuje průvodce, který pomáhá při vytváření skriptů úloh SCD používaných při spouštění programu SortCL. Většina typů SCD používá úplné vnější spojení k porovnání záznamů z původního zdroje dat se záznamy v aktualizovaném zdroji na základě ztotožnění klíče z každého z nich. Typ 4 však provede aktualizaci pomocí řazení.

SCD typu 4

Model typu 4 je podobný modelu typu 2. Rozdíl je v tom, že jsou udržovány 2 tabulky nebo soubory:jedna pro aktuální náklady a jedna pro uchovávání záznamů historie pro náklady. Když jsou nové aktuální záznamy přidány do hlavního serveru, tyto nové záznamy jsou obvykle přidány do historie ve stejnou dobu.

Definice polí jsou stejné v aktualizaci, historii a hlavních souborech nebo tabulkách. Záznamy pro aktualizaci a historii seřadíme společně. Bude vytvořen nový hlavní server, který bude mít pouze jeden záznam pro každý ProductCode a ten záznam bude nejaktuálnější. Historie bude obsahovat všechny záznamy pro každý Kód produktu včetně těch ze zdroje aktualizací.

Počáteční hlavní tabulka bude stejná jako výchozí hlavní tabulka z našeho příkladu typu 1 s hodnotami, jak je uvedeno níže.

Kód produktu Cena Datum zahájení
C123 125,50 20110228
F112 2365,00 20120101
G101 19:25 20110930
J245 450,50 20110430
S022 98,75 20110515

Všechna data aktualizace budou mít stejné počáteční datum. Zdroj update.dat obsahuje záznamy s následujícími hodnotami:

Kód produktu Cena Datum zahájení
F112 2425,00 20120701
J245 550,50 20120701
M447 101,75 20120701
S022 101,75 20120701

Počáteční zdroj historie níže je jako počáteční master u Typu 2. Typ 4 je tedy kombinací typu 1 a typu 2, kde master je stejný jako master typu 1 a historie je stejná jako master typu 2.

Kód produktu Cena Datum zahájení
C123 125,50 20110228
F112 2365,00 20120101
G101 19:25 20110930
G101 21.25 20110501
J245 450,50 20110430
J245 425,25 20101001
J245 385,25 20100215
S022 98,75 20110515

V IRI Workbench je průvodce Voracity, který pomáhá při vytváření skriptů pro aktualizaci Dimensional souborů a tabulek. Tento průvodce se nachází v rozevíracím seznamu Voracity na navigační liště. Nejprve vyberte typ SCD. Poté se zobrazí okno, ve kterém vyberete zdroje, které se používají pro zpracování aktualizace.


Na další obrazovce nastavíte řazení výběrem kláves. Existují 2 klíče:Kód produktu poté Datum zahájení . Seskupujeme podle Kódu produktu , ale musíme také řadit v sestupném pořadí podle Datum zahájení v každém kódu produktu seskupení. Je to proto, abychom mohli filtrovat nejnovější záznam pro každý ProductCode seskupit do nového hlavního serveru.

Chcete-li nastavit Datum zahájení klíč, který se řadí v sestupném pořadí, vyberte tento klíč a poté vyberte Upravit klíč . Zobrazí se následující obrazovka:

V rozbalovací nabídce Směr vyberte Sestupně .

Zde je skript úlohy pro řazení:

/INFILE=C:/IRI/CoSort95/workbench.orig/workspace/SCD/SCD4/history4.dat
    /PROCESS=DELIMITED
    /ALIAS=history4
    /FIELD=(PRODUCTCODE, TYPE=ASCII, POSITION=1, SEPARATOR=",", FRAME='\"')
    /FIELD=(COST, TYPE=NUMERIC, POSITION=2, SEPARATOR=",", FRAME='\"')
    /FIELD=(STARTDATE, TYPE=ASCII, POSITION=3, SEPARATOR=",", FRAME='\"')
/INFILE=C:/IRI/CoSort95/workbench.orig/workspace/SCD/update.dat
    /PROCESS=DELIMITED
    /ALIAS=update
    /FIELD=(PRODUCTCODE, TYPE=ASCII, POSITION=1, SEPARATOR=",", FRAME='\"')
    /FIELD=(COST, TYPE=NUMERIC, POSITION=2, SEPARATOR=",", FRAME='\"')
    /FIELD=(STARTDATE, TYPE=ASCII, POSITION=3, SEPARATOR=",", FRAME='\"')

/SORT
    /KEY=(PRODUCTCODE, TYPE=ASCII)
    /KEY=(STARTDATE, DESCENDING, TYPE=ASCII)

/OUTFILE=history4.dat
 # This file will contain all the records from both inputs
    /PROCESS=DELIMITED
    /FIELD=(PRODUCTCODE, TYPE=ASCII, POSITION=1, SEPARATOR=",", FRAME='\"')
    /FIELD=(COST, TYPE=NUMERIC, POSITION=2, SEPARATOR=",", FRAME='\"')
    /FIELD=(STARTDATE, TYPE=ASCII, POSITION=3, SEPARATOR=",", FRAME='\"')

/OUTFILE=master4.dat
# Include only one record for each ProductCode
    /PROCESS=DELIMITED
    /FIELD=(PRODUCTCODE, TYPE=ASCII, POSITION=1, SEPARATOR=",", FRAME='\"')
    /FIELD=(COST, TYPE=NUMERIC, POSITION=2, SEPARATOR=",", FRAME='\"')
    /FIELD=(STARTDATE, TYPE=ASCII, POSITION=3, SEPARATOR=",", FRAME='\"')
    /INCLUDE WHERE PRODUCTCODE

Níže je aktualizovaná předloha vytvořená spuštěním výše uvedeného skriptu úlohy pomocí SortCL. Hodnoty jsou stejné jako v aktualizaci typu 1.

Kód produktu Cena Datum zahájení
C123 125,50 20110228
F112 2425,00 20120701
G101 19:25 20110930
J245 550,50 20120701
M447 139,25 20120701
S022 101,75 20120701

Soubor historie obsahuje všechny předchozí záznamy plus nové záznamy z aktualizačního souboru.

Kód produktu Cena Datum zahájení
C123 125,50 20110228
F112 2425,00 20120701
F112 2365,00 20120101
G101 19:25 20110930
G101 21.25 20110501
J245 550,50 20120701
J245 450,50 20110430
J245 425,25 20101001
J245 385,25 20100215
M447 101,75 220120701
S022 101,75 20120701
S022 98,75 20110515

  1. Jak používat pg_stat_activity?

  2. Použití automatizace k urychlení testů vydání na PostgreSQL

  3. Změny licencí Common Sense pro SQL Server 2014 Standard Edition

  4. Jak zavolat hashovací funkci Oracle MD5?