ETL-Definitionen (Extract Transform Load) – Übersicht
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.
ETL-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.
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.
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.
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.
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.
- 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.
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.
Geschachtelte Daten in ETL-Definitionen
{
"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.
- 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.
- 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.