Dies ist eine Frage zum Data Warehouse-Design. Wir richten ein Data Warehouse für das Gesundheitswesen ein und beginnen mit zwei wichtigen Quellsystemen, die zusammen etwa 20.000 Tabellen und 2 TB Daten enthalten. 1) Es handelt sich um hochdimensionale Daten. 2) Wir werden OLTP-Systeme nicht stark beeinflussen
Wir haben ein inkrementelles Kimball-Design gewählt. Meine Frage ist, ob alle Daten bereitgestellt, dann in Einfügungen / Aktualisierungen sortiert und in das Data Warehouse gestellt werden sollen. Dann würden die Staging-Daten für das nächste inkrementelle Laden gelöscht.
Damit erhalten Sie 1 Kopie der Daten.
Die andere Methode wäre, es schrittweise in das Staging zu laden, es in Einfügungen / Aktualisierungen zu sortieren und im gleichen Format wie die Quellsysteme zu speichern. Dann würden wir Daten aus den Quellsystemen aus der vollständigen Kopie in das Datawarehouse kombinieren.
Dies würde im Wesentlichen 2 Kopien der Daten hinterlassen, eine in Form der Quellsysteme und eine in das eigentliche Datawarehouse geladen.
Was ist die beste Vorgehensweise dafür? Ich dachte ursprünglich, es wäre am besten, nur die Kopie im Data Warehouse zu speichern und die Quelltabellen bei jedem Laden zu löschen.
In diesem Fall müssten Sie jedoch alle abhängigen Quelltabellen neu laden, wenn Sie jemals zu einer vorhandenen Dimension zurückkehren und eine Spalte hinzufügen müssten. Außerdem würden Sie die Geschichte verlieren?
Es scheint wirklich ineffizient zu sein, es zweimal zu speichern. Ich wollte nur ein paar Gedanken zum Design, Ihren Erfahrungen und Best Practices.
staging
enthaltenen erforderlichen Daten stammen aus einigen Quellen (einige davon sind rund um die Uhr aktiv), und ich habe keine Datenstaging
gelöscht, da ich keinen Grund habe, die Daten des Staging zu löschen. Ah,necessary data
dhdata-warehouse
Daten werden in verwendet und wenn ich mehr Daten benötige, werde ich ETL aus Quellen (Design Fakten + Dimensionen -> Tabelle / Dateien /.../ aus Quellen auswählen).