Ausfüllen einer Faktentabelle

Nachdem Sie die Dimensionstabellen in Ihrem Data Warehouse gefüllt haben, sind Sie nun bereit, die Faktentabelle zu füllen. Sie füllen eine Faktentabelle mit numerischen Messwerten aus Tabellen in der OLTP-Datenbank.

Wichtig: Sie müssen die Dimensionstabellen füllen, bevor Sie die Faktentabelle füllen.

Die folgenden Schritte beschreiben, wie Sie Spectrum™ Technology Platform verwenden, um eine Faktentabelle in Ihrem Data Warehouse zu füllen. Sie werden einen Datenfluss erstellen, der Quelldaten aus einer Tabelle in Ihrer Quelldatenbank einliest, die normalen Schlüssel in den Quelltabellen mit Surrogatschlüsseln aus den Dimensionstabellen ersetzt und dann die aktualisierten Datensätze, die die Surrogatschlüssel und die Faktendaten aus den Quelltabellen enthalten, in die Faktentabelle lädt.

  1. Erstellen Sie in der Management Console Verbindungen zu Ihrer Datenquelle und zum Data Warehouse.
  2. Klicken Sie im Enterprise Designer auf Datei > Neu > Datenfluss > Auftrag.
  3. Ziehen Sie, je nach Quelle der Daten, die Sie in die Faktentabelle schreiben möchten, den entsprechenden Schritt auf die Arbeitsfläche.
    • Um Daten aus einer Datenbank zum Füllen der Tabelle zu verwenden, ziehen Sie den Read from DB-Schritt auf die Arbeitsfläche.
    • Um Daten aus einem Flatfile zum Füllen der Tabelle zu verwenden, ziehen Sie den Read from File-Schritt auf die Arbeitsfläche.
    • Um Daten aus einer Datei mit variablem Format zum Füllen der Tabelle zu verwenden, ziehen Sie den Read from Variable Format File-Schritt auf die Arbeitsfläche.
    • Um Daten aus einer XML-Datei zum Füllen der Tabelle zu verwenden, ziehen Sie den Read from XML-Schritt auf die Arbeitsfläche.
  4. Doppelklicken Sie auf den Quellschritt, den Sie gerade auf der Arbeitsfläche platziert haben, und konfigurieren Sie ihn, auf die Quelle der Daten zu verweisen, mit denen Sie die Faktentabelle füllen möchten.
    • Weitere Informationen zum Konfigurieren des „Read from DB“-Schrittes finden Sie unter Read from DB.
    • Weitere Informationen zum Konfigurieren des „Read from File“-Schrittes finden Sie unter Read from File.
    • Weitere Informationen zum Konfigurieren des „Read from Variable Format File“-Schrittes finden Sie unter Read from Variable Format File.
    • Weitere Informationen zum Konfigurieren des „Read from XML“-Schrittes finden Sie unter Read from XML.
    Anmerkung: Normalerweise liest ein Datenfluss, der eine Faktentabelle füllt, Daten aus einer Datenbank und nicht aus einer Datei. Da dies das gebräuchlichste Szenario ist, wird in den Beispielen der restlichen Schritte „Read from DB“ verwendet.
  5. Ziehen Sie einen Broadcaster-Schritt auf die Arbeitsfläche und verbinden Sie ihn mit dem Quellschritt.

    Ihr Datenfluss sieht nun folgendermaßen aus:

  6. Ziehen Sie für jede Dimensionstabelle in Ihrem Data Warehouse einen „Query DB“-Schritt auf die Arbeitsfläche und verbinden Sie ihn mit dem Broadcaster-Schritt.

    Wenn Sie in Ihrem Data Warehouse beispielsweise über vier Dimensionstabellen verfügen, ziehen Sie vier „Query DB“-Schritte auf die Arbeitsfläche. Ihr Datenfluss sieht nun folgendermaßen aus:

    Die „Query DB“-Schritte werden verwendet, um den Surrogatschlüssel für jede Dimension über den normalen Schlüssel aus der Datenquelle zu suchen. Der Surrogatschlüssel ersetzt dann den normalen Schlüssel in jedem Datensatz, der in die Faktentabelle geladen wird.

    Tipp: Sie können den Namen des Schrittes ändern, um einfacher zu sehen, welche Tabelle von einem Schritt abgefragt wird.
  7. Konfigurieren Sie jeden „Query DB“-Schritt, den Surrogatschlüssel für jeden normalen Schlüssel in der Datenquelle zu suchen. Gehen Sie dazu wie folgt vor:
    1. Geben Sie im Feld Verbindung die Verbindung zum Data Warehouse an.
    2. Wählen Sie im Feld Tabelle/Ansicht: die Dimensionstabelle aus, die Sie über diesen Schritt abfragen möchten.
    3. Geben Sie im Feld Where eine WHERE-Anweisung ein, die den Surrogatschlüssel basierend auf dem Wert im entsprechenden Datenflussfeld sucht.

      Das folgende Beispiel sucht den Surrogatschlüssel für ein Produkt, indem nach dem Datensatz in der Dimensionstabelle gesucht wird, dessen Wert in der Spalte description mit dem Wert im Feld product_name der Datenquelle übereinstimmt.

      description=${product_name}
    4. Wählen Sie in der Spalte Einschließen die Datenbankspalte aus, die den Surrogatschlüssel enthält.

    Ein „Query DB“-Schritt, der den Surrogatschlüssel für einen Produktnamen sucht, würde beispielsweise folgendermaßen aussehen:

    In diesem Beispiel sucht die Abfrage den Produktschlüssel, indem sie nach dem Datensatz in der Tabelle prod_dimension sucht, bei dem der Wert in der Spalte description mit dem Wert im Datenflussfeld product_name übereinstimmt. Der Schritt gibt das Feld product_key aus der Tabelle zurück und fügt es dem Datenfluss hinzu, wie das aktivierte Kästchen in der Spalte Einschließen anzeigt.

  8. Ziehen Sie einen „Record Combiner“-Schritt auf die Arbeitsfläche und verbinden Sie alle „Query DB“-Schritte mit diesem.

    Ihr Datenfluss sollte nun folgendermaßen aussehen:



  9. Ziehen Sie einen „Write to DB“-Schritt auf die Arbeitsfläche und verbinden Sie ihn mit dem „Record Combiner“-Schritt.

    Ihr Datenfluss sollte nun folgendermaßen aussehen:

  10. Konfigurieren Sie den „Write to DB“-Schritt, die Datensätze in die Faktentabelle zu schreiben. Gehen Sie dazu wie folgt vor:
    1. Geben Sie im Feld Verbindung die Verbindung zum Data Warehouse an.
    2. Wählen Sie im Feld Tabelle/Ansicht: die Faktentabelle aus, die Sie über diesen Schritt abfragen möchten. Wenn die Faktentabelle noch nicht im Data Warehouse vorhanden ist, klicken Sie auf Tabelle erstellen, um die Faktentabelle im Data Warehouse zu erstellen.
    3. Aktivieren Sie für jedes Feld, das Sie in die Faktentabelle schreiben möchten, das Kästchen in der Spalte Einschließen.
    4. Beachten Sie, dass auf der Registerkarte Laufzeit standardmäßig Einfügen als Option für den Schreibmodus ausgewählt ist. Normalerweise wird die Faktentabelle im Einfügemodus gefüllt, Sie können diese Option daher ausgewählt lassen.
  11. Speichern Sie Ihren Datenfluss und führen Sie ihn aus.

Beispiel zum Ersetzen von Quelldaten mit Schlüsseln aus der Dimensionstabelle

Betrachten Sie folgenden Datensatz:

March 28 2013,Parsley Garlic Pasta,Mile High Gourmet Market,78.35

Dieses Beispiel besteht aus einem Datumsfeld, gefolgt von einem Produktnamen (Parsley Garlic Pasta), einem Kunden (Mile High Gourmet Market) und einer Menge (78.25). Das Data Warehouse verfügt über Dimensionstabellen für das Datum, den Produktnamen und den Kunden. Daher müssen die normalen Schlüssel in diesem Datensatz durch die Surrogatschlüssel aus den Dimensionstabellen ersetzt werden. Dazu muss der Datenfluss drei „Query DB“-Schritte enthalten, einer zur Suche des Surrogatschlüssels für das Datum, einer zur Suche des Surrogatschlüssels für den Produktnamen und einer zur Suche des Surrogatschlüssels für den Kunden.

Jeder „Query DB“-Schritt muss über eine WHERE-Anweisung verfügen, die den Surrogatschlüssel sucht.

Als Ergebnis dieser Suchen könnte der Datensatz nach dem Schreiben in die Faktentabelle folgendermaßen aussehen:

711,1,15,78.35

Beachten Sie, dass die normalen Schlüssel für Datum, Produktname und Kunde durch Surrogatschlüssel ersetzt wurden.