ETL-Definitionen (Extract Transform Load) – Übersicht

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 5 Minuten Lesedauer
  • ETL-Definitionen extrahieren Daten aus einer Quelltabelle, wandeln die Daten nach Bedarf um und laden die Daten in eine oder mehrere Zieltabellen. ETL-Definitionen unterstützen auch geschachtelte Datenstrukturen.

    ETL-Definitionen geben an, wie Daten zugeordnet werden

    Das Importieren von Daten beginnt mit einer Datenquelle. Eine Datenquelle gibt den Typ der Daten, die Sie extrahieren möchten, und ihren Speicherort an. Nachdem die Daten extrahiert wurden, werden sie in eine Bereitstellungs- oder Importsatztabelle geladen. Dann gibt eine ETL-Definition an, wie die Daten einer oder mehreren Zieltabellen in ServiceNowzugeordnet werden. Sie können ETL-Definitionen erstellen, die Daten Tabellen ServiceNow zuordnen und gleichzeitig die Einschränkungen für Fremdschlüssel und eindeutige Schlüssel beibehalten. Übersicht über den Importprozess mit einer ETL-Definition.

    ETL-Entitäten repräsentieren Eingabedaten und Zieltabellen

    ETL-Definitionen basieren auf Entitäten. Jeder -ETL-Definition, die Sie erstellen, müssen Entitäten zugeordnet sein. Entitäten repräsentieren Eingabedaten und Zieltabellen.
    • Eingabedaten sind die Daten, die in die Bereitstellungstabelle geladen wurden.
    • Zieltabellen sind die ServiceNow -Tabellen, in denen Ihre Daten enden sollen.
    Zuordnungen und Vorgänge basieren ebenfalls auf Entitäten. Daher ist es hilfreich, Entitäten frühzeitig zu erstellen, wenn Sie die Definition erstellen.

    Die folgende Abbildung zeigt ein Beispiel für eine ETL-Definition für Computer. Dieser Definition sind drei Entitäten zugeordnet. Die Entität „Importsatz“ stellt die Eingabedaten dar, die aus einer Excel-Datei in eine Bereitstellungstabelle geladen werden. Die Tabelle für die Entität „Importsatz“ ist auf „Keine“festgelegt. Computer und Datenträger sind die Zielentitäten. Sie stellen zwei ServiceNow -Tabellen mit den Namen „Computer“ [sn_etl_demo_computer] und „Datenträger“ [sn_etl_demo_disk] dar. Die Daten aus der Bereitstellungstabelle werden in die beiden Zieltabellen geladen. Eine ETL-Definition für Computer mit drei ETL-Entitäten für Computer, Datenträger und Importsatz.

    Eingabeentitäten

    Eingabeentitäten stellen die extrahierten Daten dar, die in die Bereitstellungstabelle geladen wurden. Eingabeentitäten verfügen über ETL-Entitätsfelder, um die Importsatz-Tabellenspalten oder für den Einzelspaltenmodus JSON-Schlüssel darzustellen. Sie können Entitätsfelder erstellen, indem Sie auf der Registerkarte ETL-Entitätsfelder Neu auswählen.

    Die folgende Abbildung zeigt die Entität „Importsatz“ aus der Definition „Computer ETL“. Die Entität „Importsatz“ stellt die Eingabedaten dar, die aus einer Excel-Datei in die Bereitstellungstabelle „Computer“ [sn_elt_demo_computers_stage] geladen werden. Die Importsatz-Entität verfügt für jede Spalte in der Bereitstellungstabelle über ein Entitätsfeld. Die Importsatz-Entität verfügt für jede Spalte in der Bereitstellungstabelle über ein Entitätsfeld.

    Zielentitäten

    Zielentitäten stellen die Zieltabellen in ServiceNowdar. Die folgende Abbildung zeigt die Zielentität „Datenträger“ aus der Computer-ETL-Definition. Disk stellt die Zieltabelle sn_etl_demo_disk dar. Verfügt über Entitätsfelder zur Darstellung von Tabellenspalten und temporären Werte zum Anwenden von Vorgängen.Die Zielentitäten „Computer“ und „Datenträger“ verfügen über Entitätsfelder, um Tabellenspalten und temporäre Werte für Vorgänge darzustellen.

    Jedes Entitätsfeld hat einen Namen, ein Referenz- oder Pfadfeld, ein Koaleszenzfeld und eine Koaleszenzaktion.

    Referenzfeld

    Spezialfeld, bei dem eine Zeile in einer Tabelle auf eine Zeile in einer zweiten Tabelle verweist, indem die sys_id der Zeile der zweiten Tabelle als Spaltenwert in der Zeile der ersten Tabelle gespeichert wird. Obwohl die Referenz als sys_id gespeichert ist, werden die Daten beim Importieren als Werte importiert. Für Referenzfelder ordnen Sie also die Werte der eindeutigen Felder der referenzierten Tabelle den importierten Daten zu. Letztendlich verwendet das System die Werte, um den zugehörigen Datensatz zu finden, die sys_id abzurufen und in der entsprechenden Spalte zu speichern.

    Beispielsweise enthält die Tabelle sn_etl_demo_disk in der zuvor erwähnten Entität „Datenträger“ einen Verweis auf den Computer, der das Referenzfeld Computerverwendet. Die importierten Daten enthalten jedoch nur die Computer-ID, mit der der Computer eindeutig identifiziert werden kann. In der Entität „Datenträger“ gibt das referenzierte Feld „pfad“ (computer.id) auch die Spalte der Tabelle „Computer“ an.

    Wenn für einen eindeutigen Schlüssel mehrere Felder vorhanden sind, sollten alle Feldwerte durch Hinzufügen mehrerer Felder angegeben werden. Beispiel: In der folgenden Abbildung verweist die Tabelle sn_etl_demo_worker auf die Tabelle sn_etl_demo_address. Die Tabelle „sn_etl_demo_address“ enthält drei Spalten (Nummer, Straße und Postleitzahl) als eindeutige Schlüssel. Daher verfügt die Entität „Mitarbeiter“ über drei Felder für eindeutige Schlüsselspalten. Referenzfelder können auch als Zusammenfügungsfelder verwendet werden. Die Entität „Mitarbeiter“ verfügt über drei Felder für eindeutige Schlüsselspalten.

    Zusammenfügungsfeld

    Gibt den eindeutigen Schlüssel für eine Zielentität an. Das System verwendet das Koaleszenzfeld, um zu bestimmen, ob ein vorhandener Datensatz aktualisiert oder ein neuer eingefügt werden soll. Wenn das Feld Koaleszenz auf „wahr“ festgelegt ist und das System einen vorhandenen Datensatz mit dem gleichen Koaleszenzfeldwert findet, aktualisiert es den vorhandenen Datensatz. In der zuvor gezeigten Tabelle sn_etl_demo_disk ist die Spalte „Seriennummer“ in der Entität „Datenträger“ für alle Datenträgereinträge eindeutig und wird daher als Koaleszenzfeld angegeben.

    Zwangsaktion
    Gibt für Referenzfelder an, was getan werden soll, wenn in der referenzierten Tabelle keine Zeile mit dem eindeutigen Schlüsselwert vorhanden ist. Die Zwangsaktion hat die folgenden Optionen.
    • Erstellen Sie eine neue Zeile in der referenzierten Tabelle, und weisen Sie sie der Zielzeile zu.
    • Ignorieren Sie den Referenzfeldwert. Die Referenzspalte wird als leer gespeichert.
    • Referenzfeldwertablehnen. Es wird nicht in die Zieltabelle eingefügt oder aktualisiert.

    RTE-Entitätsvorgänge (Robust Transform Engine) ändern Daten

    Entitätsvorgänge ändern Eingabedaten, bevor sie in einer Zieltabelle gespeichert werden. Die folgende Abbildung zeigt ein Beispiel für einen Verkettungsvorgang. In der ETL-Definition für Computer enthalten die importierten Daten sowohl einen Typ als auch eine Version. Die Zieltabelle erfordert jedoch einen Wert, der eine Kombination aus Typ und Version ist. Daher verwendet die Entität „Computer“ einen Verkettungsvorgang, um Typ und Version zu verketten. Entitätsvorgänge können nur für Entitätsfelder ausgeführt werden. In diesem Beispiel werden zwei temporäre Felder erstellt, um die Importsatzwerte zu kopieren. Ein RTE-Entitätsverkettungsvorgang für die Entität „Computer“.

    RTE-Entitätszuordnungen geben Feldzuordnungen an

    Nachdem Sie die Eingabe- und Zielentitäten mit ihren Entitätsfeldern und -vorgängen erstellt haben, erstellen Sie eine RTE-Entitätszuordnung für jede Zielentität. RTE-Entitätszuordnungen geben an, wie Felder in der Eingabeentität Feldern in den Zielentitäten zugeordnet werden. In der ETL-Definition für Computer gibt es zwei RTE-Entitätszuordnungen. Eines (siehe folgende Abbildung) ordnet Eingabedaten den Feldern Computerentität zu. Die andere ordnet Eingabedaten den Entitätsfeldern Datenträger zu. RTE-Entitätszuordnung, die angibt, wie Daten aus dem Importsatz der Entität „Computer“ zugeordnet werden.

    Geschachtelte Daten in ETL-Definitionen

    Bei JSON-Datenimporten müssen Sie möglicherweise Datensätze mit JSON-Arrays oder Datensätze importieren, die mehr als eine Zeile für dieselbe Tabelle importieren. ETL-Definitionen unterstützen diese Nutzlasten mit einer geringfügigen Änderung der Pfade. Die folgenden JSON-Daten enthalten ein Array für E-Mail-Informationen. Sie können diese Daten importieren, indem Sie den Pfad bzw. die Pfade in den Eingabe- oder Zielentitäten ändern (siehe Abbildung).
    {
          "id": "123",
          "name": "Jhon",
          "emails": [
            {
              "address": "jhon@servicenow.com",
              "type": "work"
            },
            {
              "address": "jhon@gmail.com",
              "type": "personal"
            }
          ]
        }
    
    Eingabeentitäten mit geschachtelten Daten

    Eingabeentitäten für geschachtelte Daten stellen auch die JSON-Eingabedaten dar. Wie Importe ohne geschachtelte Daten verfügen sie über Entitätsfelder, um die Werte darzustellen. Der einzige Unterschied besteht darin, dass Pfade mit Arrays mit einem Sternchen (*) angegeben werden. Die folgende Abbildung zeigt, wie die Pfade zu Adresse und Typ als emails[*].address und emails[*].type angegeben werden.ETL-Entität für geschachtelte Eingabedaten, die die Verwendung eines Sternchens zum Angeben eines Werts in einem Array zeigt.

    Zielentitäten mit geschachtelten Daten

    Zielentitäten mit verschachtelten Daten entsprechen auch den Zielentitäten in einem normalen Import, außer dass der Pfad mit einem Sternchen (*) endet. Das Sternchen weist das System an, die Entität als Array zu verarbeiten. In der Entität „E-Mail“ wird der Zielpfad als „email[*]“ angegeben. Zusammenfügungsfelder, Referenzfelder und Koaleszenzaktionen funktionieren genauso wie bei normalen Importen.ETL-Entität für geschachtelte Eingabedaten, die die Verwendung eines Sternchens zum Angeben eines Arrays zeigt.

    RTE-Entitätszuordnungen mit geschachtelten Daten

    RTE-Entitätszuordnungen für geschachtelte Daten sind wie normale Zuordnungen. Jedes Feld aus der Hierarchie kann der Entität zugewiesen werden.