Database
 sql >> Baza danych >  >> RDS >> Database

SCD typu 4

Dane wymiarowe, które zmieniają się powoli lub nieprzewidywalnie, są rejestrowane w analizach wolno zmieniających się wymiarów (SCD). W środowisku hurtowni danych tabela wymiarów ma klucz podstawowy, który jednoznacznie identyfikuje każdy rekord i inne informacje znane jako dane wymiarowe.

Wszystkie metody aktualizacji dla różnych typów SCD są realizowane za pomocą programu SortCL w IRI CoSort. W IRI Voracity dostępny jest kreator, który pomaga w tworzeniu skryptów zadań SCD używanych podczas uruchamiania programu SortCL. Większość typów SCD używa pełnego sprzężenia zewnętrznego w celu dopasowania rekordów z oryginalnego źródła danych do rekordów w zaktualizowanym źródle na podstawie zrównania klucza z każdego z nich. Jednak typ 4 dokonuje aktualizacji za pomocą sortowania.

Typ 4 SCD

Model Typu 4 jest podobny do modelu Typu 2. Różnica polega na tym, że są utrzymywane 2 tabele lub pliki:jedna dla bieżących kosztów i jedna do przechowywania rekordów historii dla kosztów. Kiedy nowe aktualne rekordy są dodawane do wzorca, te nowe rekordy są zwykle dodawane do historii w tym samym czasie.

Definicje pól są takie same w aktualizacji, historii i plikach głównych lub tabelach. Posortujemy rekordy dla aktualizacji i historii razem. Zostanie utworzony nowy wzorzec, który będzie miał tylko jeden rekord dla każdego kodu produktu i ten rekord będzie najbardziej aktualny. Historia będzie zawierała wszystkie rekordy dla każdego kodu produktu w tym te ze źródła aktualizacji.

Początkowa tabela wzorcowa będzie taka sama, jak początkowa tabela wzorcowa z naszego przykładu Typu 1 z wartościami przedstawionymi poniżej.

Kod produktu Koszt Data rozpoczęcia
C123 125,50 20110228
F112 2365,00 20120101
G101 19,25 20110930
J245 450,50 20110430
S022 98,75 20110515

Wszystkie dane aktualizacji będą miały tę samą datę rozpoczęcia. Źródło update.dat zawiera rekordy o następujących wartościach:

Kod produktu Koszt Data rozpoczęcia
F112 2425,00 20120701
J245 550,50 20120701
M447 101,75 20120701
S022 101,75 20120701

Poniższe źródło historii początkowej jest podobne do początkowego wzorca w Typie 2. Tak więc Typ 4 jest kombinacją Typu 1 i Typu 2, gdzie wzorzec jest taki sam jak wzorzec Typu 1, a historia jest taka sama, jak w przypadku wzorca Typu 2.

Kod produktu Koszt Data rozpoczęcia
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

W IRI Workbench dostępny jest kreator Voracity, który pomaga w tworzeniu skryptów do aktualizacji plików i tabel Dimensional. Ten kreator znajduje się w menu rozwijanym Wolność na pasku nawigacyjnym. Najpierw wybierasz typ SCD. Następnie zostanie wyświetlone okno, w którym wybierasz źródła używane do przetwarzania aktualizacji.


Na następnym ekranie możesz ustawić sortowanie, wybierając klawisze. Istnieją 2 klucze:Kod produktu następnie Data rozpoczęcia . Grupujemy według kodu produktu , ale musimy też posortować w porządku malejącym według Data rozpoczęcia w każdym Kodzie Produktu grupowanie. Dzieje się tak, abyśmy mogli filtrować najnowszy rekord dla każdego kodu produktu pogrupuj do nowego wzorca.

Aby ustawić datę rozpoczęcia klucz, który sortuje w kolejności malejącej, wybierz ten klucz, a następnie wybierz Edytuj klucz . Spowoduje to wyświetlenie następującego ekranu:

W menu Kierunek wybierz Malejąc .

Oto skrypt pracy dla tego rodzaju:

/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

Poniżej znajduje się zaktualizowany wzorzec utworzony przez uruchomienie powyższego skryptu zadania przy użyciu SortCL. Wartości są takie same, jak w przypadku aktualizacji typu 1.

Kod produktu Koszt Data rozpoczęcia
C123 125,50 20110228
F112 2425,00 20120701
G101 19,25 20110930
J245 550,50 20120701
M447 139,25 20120701
S022 101,75 20120701

Plik historii zawiera wszystkie poprzednie rekordy oraz nowe rekordy z pliku aktualizacji.

Kod produktu Koszt Data rozpoczęcia
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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. T-SQL a SQL

  2. Model danych do handlu akcjami, funduszami i kryptowalutami

  3. Mity dotyczące wydajności:Obcięcie nie może zostać wycofane

  4. Podstawy wyrażeń tabelarycznych, Część 3 – Tablice pochodne, względy optymalizacyjne

  5. Wskazówki dotyczące blokad odczytu/zapisu w zależności od poziomu izolacji transakcji w MSSQL