Sakte Endre Dimensjoner (SCD) – dimensjoner som endres sakte over tid, snarere enn å endre på regelmessig basis, gang-base. I Data Warehouse det er et behov for å spore endringer i dimensjon attributter for å rapportere historiske data. Med andre ord, gjennomføring av SCD typer bør gjøre det mulig for brukere å tildele riktig dimensjon s-attributt-verdi for en gitt dato. Eksempel på slike mål kan være: kunde, geografi, ansatt.,
Det er mange måter hvordan å håndtere SCD. De mest populære er:
- Skriv inn 0 – passiv metode
- Type 1 – Overskrive den gamle verdien
- Type 2 – å Skape en ny supplerende opptak
- Skriv inn 3 – Legge til en ny kolonne
- Skriv inn 4 – Bruk av historiske tabell
- Skriv inn 6 – Kombinere tilnærminger typer 1,2,3 (1+2+3=6)
Skriv inn 0 – passiv metode. I denne metoden ingen spesielle tiltak er utført ved dimensjonale endringer. Noen dimensjon data kan forbli den samme som den ble første gang satt inn, kan andre bli overskrevet.,
Type 1 – Overskrive den gamle verdien. I denne metoden ingen historie med dimensjon endringer er holdt i databasen. Den gamle dimensjon verdi er rett og slett overskrevet være den nye. Denne typen er enkle å vedlikeholde, og er ofte bruk for data over hvilke endringer som er forårsaket av behandling korreksjoner(f.eks. fjerning spesialtegn, korrigering av stavefeil).,
Før endring:
Customer_ID | Customer_Name | Customer_Type |
---|---|---|
1 | Cust_1 | Corporate |
Etter endringen:
Customer_ID | Customer_Name | Customer_Type |
---|---|---|
1 | Cust_1 | Detaljhandel |
Type 2 – å Skape en ny supplerende opptak., I denne metodikken alle historie dimensjon endringer er holdt i databasen. Du kan ta attributtendring ved å legge til en ny rad med en ny surrogat-tasten til dimensjonen på bordet. Både tidligere og nye rader som inneholder attributter den naturlige tasten(eller andre holdbar identifier). Også «effektiv dato» og «dagens indikator’ kolonner er brukt i denne metoden. Det kan bare være én rekord med gjeldende indikator satt til ‘Y’. For «effektiv dato’ kolonner, dvs. start_date og end_date, den end_date for gjeldende oppføring vanligvis er satt til verdi 9999-12-31., Å innføre endringer i dimensjonal modell i type 2 kan være veldig dyrt database drift, så det er ikke anbefalt å bruke den i mål, hvor en ny attributt kan bli lagt til i fremtiden.,
Før endring:
Customer_ID | Customer_Name | Customer_Type | Start_Date | End_Date | Current_Flag |
---|---|---|---|---|---|
1 | Cust_1 | Corporate | 22-07-2010 | 31-12-9999 | Y |
Etter endringen:
Type 3 – Legge til en ny kolonne. I denne typen vanligvis bare den nåværende og forrige verdi av dimensjon er holdt i databasen., Den nye verdien er lagt inn ‘current/nye» kolonnen og den gamle til den » gamle/eldre kolonnen. Generelt kan en si at historien er begrenset til antall kolonne opprettet for lagring av historiske data. Dette er den minst vanlige nødvendig teknikk.,iv id=»2f5bdb6350″>
Etter endringen:
Customer_ID | Customer_Name | Current_Type | Previous_Type |
---|---|---|---|
1 | Cust_1 | Detaljhandel | Corporate |
Skriv inn 4 – Bruk av historiske tabellen., I denne metoden en egen historisk tabellen brukes til å spore alle dimensjon s-attributtet historiske endringer for hver enkelt dimensjon. ‘Main’ dimensjon tabell holder bare den gjeldende data f.eks. kunden og customer_history bord.
Gjeldende tabell:
Customer_ID | Customer_Name | Customer_Type |
---|---|---|
1 | Cust_1 | Corporate |
Historisk tabell:
Skriv inn 6 – Kombinere tilnærminger typer 1,2,3 (1+2+3=6)., I denne typen vi har i dimensjon tabell slik flere kolonner som:
- current_type – for å holde verdien av attributtet. All historie forteller for gitt element av attributtet har den samme verdien.
- historical_type – for å holde historiske verdien av attributtet. All historie forteller for gitt element av attributtet kan ha forskjellige verdier.
- start_date – for å holde startdato av «effektiv dato» av attributtet ‘ s historie.
- end_date – for å holde sluttdato av «effektiv dato» av attributtet ‘ s historie.,
- current_flag – for å holde informasjon om de nyeste spille inn.
I denne metoden for å ta attributtendring vi legge til en ny oppføring som i type 2. Den current_type informasjon er overskrevet med nye som i type 1. Vi lagrer historie i en historical_column som i type 3.