Übersicht über ETL-Definitionen (Extract Transform Load).

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 5 Minuten Lesedauer
  • ETL-Definitionen extrahieren Daten aus einer Quelltabelle, transformieren die Daten wie gewünscht und laden die Daten in eine oder mehrere Zieltabellen. ETL-Definitionen unterstützen auch verschachtelte Datenstrukturen.

    ETL-Definitionen geben an, wie Daten zugeordnet werden

    Der Datenimport beginnt mit einer Datenquelle. Eine Datenquelle gibt den Typ der Daten an, die Sie extrahieren möchten, und ihren Speicherort. Nachdem die Daten extrahiert wurden, werden sie in eine Staging- oder Import Set-Tabelle 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, während die Einschränkungen für Fremdschlüssel und eindeutige Schlüssel beibehalten werden. Ü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 Tabellen ServiceNow, 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 Import Set-Entität stellt die Eingabedaten dar, die Daten, die aus einer Excel-Datei in eine Staging-Tabelle geladen werden. Die Tabelle für die Entität „Import Set“ ist auf Keinefestgelegt. 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 zur Darstellung der Import Set-Tabellenspalten oder, für einen Einzelspaltenmodus, JSON-Schlüssel. Sie können Entitätsfelder erstellen, indem Sie auf der Registerkarte ETL-Entitätsfelder auf Neu klicken.

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

    Zielentitäten

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

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

    Referenzfeld

    Spezielles Feld, in 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 Import 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 zugeordneten Datensatz zu finden, die sys_id abzurufen und in der entsprechenden Spalte zu speichern.

    Beispiel: In der zuvor erwähnten Datenträger-Entität verweist die Tabelle sn_etl_demo_disk auf den Computer mit dem Referenzfeld Computer. Die importierten Daten enthalten jedoch nur die Computer-ID, die zur eindeutigen Identifizierung des Computers verwendet werden kann. In der Entität „Datenträger“ gibt das referenzierte Feld „path“ (computer.id) auch die Spalte der Tabelle „Computer“ an.

    Wenn es mehr als ein Feld für einen eindeutigen Schlüssel gibt, sollten alle Feldwerte durch Hinzufügen mehrerer Felder angegeben werden. In der folgenden Abbildung verweist die Tabelle sn_etl_demo_worker beispielsweise 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 Worker über drei Felder für eindeutige Schlüsselspalten. Referenzfelder können auch als Zusammenfügungsfelder verwendet werden. Die Worker-Entität 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 Zusammenfügungsfeld, um zu bestimmen, ob ein vorhandener Datensatz aktualisiert oder ein neuer eingefügt werden soll. Wenn das Zusammenfügungsfeld auf „wahr“ festgelegt ist und das System einen vorhandenen Datensatz mit demselben Zusammenfügungsfeldwert findet, wird der vorhandene Datensatz aktualisiert. Für die zuvor gezeigte 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 Zusammenfügungsfeld angegeben.

    Zwangsaktion
    Gibt für Referenzfelder an, was zu tun ist, wenn eine Zeile mit dem eindeutigen Schlüsselwert in der referenzierten Tabelle nicht vorhanden ist. Die Aktion „Koersion“ verfügt über 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.
    • Lehnen Sie den Referenzfeldwert ab. Er wird nicht in die Zieltabelle eingefügt oder aktualisiert.

    Entitätsvorgänge der robusten Transformations-Engine (RTE) ä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 Import Set-Werte 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. Eine davon (siehe folgende Abbildung) ordnet Eingabedaten den Entitätsfeldern des Computers zu. Der andere ordnet Eingabedaten den Feldern der Datenträgerentität zu. RTE-Entitätszuordnung, die angibt, wie Daten aus dem Import Set der Computer-Entität zugeordnet werden.

    Verschachtelte 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 kleinen Änderung an den Pfaden. Die folgenden JSON-Daten verfügen über ein Array für E-Mail-Informationen. Sie können diese Daten importieren, indem Sie den Pfad oder die Pfade in den Eingabe- oder Zielentitäten ändern, wie in den nächsten beiden Bildern gezeigt.
    {
          "id": "123",
          "name": "Jhon",
          "emails": [
            {
              "address": "jhon@servicenow.com",
              "type": "work"
            },
            {
              "address": "jhon@gmail.com",
              "type": "personal"
            }
          ]
        }
    
    Eingabeentitäten mit verschachtelten Daten

    Eingabeentitäten für verschachtelte 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 address und type als emails[*].address und emails[*].type angegeben sind.ETL-Entität für verschachtelte Eingabedaten, die die Verwendung eines Sternchens zur Angabe eines Werts innerhalb eines Arrays zeigt.

    Zielentitäten mit geschachtelten Daten

    Zielentitäten mit verschachtelten Daten verhalten sich auch wie die 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 verschachtelte Eingabedaten, die die Verwendung eines Sternchens zur Angabe eines Arrays zeigt.

    RTE-Entitätszuordnungen mit verschachtelten Daten

    RTE-Entitätszuordnungen für verschachtelte Daten verhalten sich wie normale Zuordnungen. Der Entität kann ein beliebiges Feld aus der Hierarchie zugewiesen werden.