Laden von Data Warehouse-Tabellen
Grundsätzlich wird ein Data Warehouse geladen, indem neue Daten aus Dateien in einem Data Lake in Tabellen im Data Warehouse hinzugefügt werden. Die COPY
-Anweisung ist wie im folgenden Beispiel gezeigt eine effektive Möglichkeit, diese Aufgabe zu erledigen:
COPY INTO dbo.StageProducts
(ProductID, ProductName, ProductCategory, Color, Size, ListPrice, Discontinued)
FROM 'https://mydatalake.blob.core.windows.net/data/stagedfiles/products/*.parquet'
WITH
(
FILE_TYPE = 'PARQUET',
MAXERRORS = 0,
IDENTITY_INSERT = 'OFF'
);
Überlegungen zum Entwerfen eines Data Warehouse-Ladeprozesses
Eines der gängigsten Muster für das Laden eines Data Warehouse besteht darin, Daten aus Quellsystemen in Dateien in einem Data Lake zu übertragen, die Dateidaten in Stagingtabellen zu erfassen und sie dann mithilfe von SQL-Anweisungen aus den Stagingtabellen in die Dimensions- und Faktentabellen zu laden. Normalerweise wird das Laden von Daten als regelmäßiger Batchprozess durchgeführt, bei dem Einfügungen und Aktualisierungen im Data Warehouse so koordiniert werden, dass sie in regelmäßigen Abständen (z. B. täglich, wöchentlich oder monatlich) erfolgen.
In den meisten Fällen sollten Sie einen Data Warehouse-Ladeprozess implementieren, der Aufgaben in der folgenden Reihenfolge ausführt:
- Erfassen der neuen Daten, die in einen Data Lake geladen werden sollen, sowie Durchführen von Bereinigungsvorgängen vor dem Laden oder Transformationen (bei Bedarf)
- Laden der Daten aus Dateien in Stagingtabellen im relationalen Data Warehouse
- Laden der Dimensionstabellen aus den Dimensionsdaten in den Stagingtabellen, Aktualisieren vorhandener Zeilen bzw. Einfügen neuer Zeilen sowie Generieren von Ersatzschlüsselwerten (bei Bedarf)
- Laden der Faktentabellen aus den Faktendaten in den Stagingtabellen sowie Suchen der entsprechenden Ersatzschlüssel für verwandte Dimensionen
- Durchführen einer Optimierung nach dem Laden durch das Aktualisieren von Indizes und Tabellenverteilungsstatistiken
Nachdem Sie die COPY
-Anweisung zum Laden von Daten in Stagingtabellen verwendet haben, können Sie eine Kombination der Anweisungen INSERT
, UPDATE
, MERGE
und CREATE TABLE AS SELECT
(CTAS) nutzen, um die bereitgestellten Daten in Dimensions- und Faktentabellen zu laden.
Hinweis
Die Implementierung einer effektiven Data Warehouse-Ladelösung erfordert eine sorgfältige Prüfung der Verwaltung von Ersatzschlüsseln, langsam wechselnden Dimensionen und anderer Komplexitäten, die ein Schema für relationale Data Warehouses umfasst. Weitere Informationen zu den Techniken zum Laden eines Data Warehouses finden Sie im Modul Laden von Daten in ein relationales Data Warehouse.