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