Verarbeitung von Threads
Der DTM ordnet Prozessspeicher für die Sitzung zu und teilt ihn in Puffer auf. Dies wird auch als Pufferspeicher bezeichnet. Der DTM nutzt mehrere Threads, um Daten in einer Sitzung zu verarbeiten. Der DTM-Haupt-Thread wird als Master-Thread bezeichnet.
Der Master-Thread erstellt und verwaltet andere Threads. Der Master-Thread für eine Sitzung kann Mapping-Threads, Threads vor bzw. nach der Sitzung, Reader-, Umwandlungs- und Writer-Threads erstellen.
Für jede Target-Ladereihenfolgengruppe in einem Mapping kann der Master-Thread mehrere Threads erstellen. Die Thread-Typen hängen von den Sitzungseigenschaften ein und den Umwandlungenn der Zuordnung ab. Die Anzahl der Threads hängt von den Partitionierungsinformationen für jede Target-Ladereihenfolgengruppe in der Zuordnung ab.
Die folgende Abbildung zeigt die Threads, die der Master Thread für eine einfache Zuordnung erstellt, die eine (1) Target-Ladereihenfolgengruppe enthält:
- 1Ein (1) Reader-Thread.
- 2Ein (1) Umwandlungs-Thread.
- 3Ein (1) Writer-Thread.
Das Mapping enthält eine einzelne Partition. In diesem Fall erzeugt der Master-Thread einen Reader, einen Umwandlungs- und einen Writer-Thread, um die Daten zu verarbeiten. Der Reader-Thread steuert, wie der PowerCenter Integration Service-Prozess die Quelldaten extrahiert und übergibt sie an den Quellqualifikator; der Umwandlungs-Thread steuert, wie der PowerCenter Integration Service-Prozess die Daten verarbeitet, und der Writer-Thread steuert, wie der PowerCenter Integration Service-Prozess Daten in das Target lädt.
Wenn die Pipeline nur eine Quelldefinition, einen Quellqualifikator und eine Target-Definition enthält, umgehen die Daten die Umwandlungs-Threads und gehen direkt von den Reader-Puffern zum Writer. Diese Art von Pipeline ist ein Pass-Through-Pipeline.
Die folgende Abbildung zeigt die Threads für eine Pass-Through-Pipeline mit einer Partition:
- 1Ein (1) Reader-Thread.
- 2Umgangener Umwandlungs-Thread.
- 3Ein (1) Writer-Thread.
Thread-Typen
Der Master-Thread erstellt verschiedene Arten von Threads für eine Sitzung. Die vom Master-Thread erstellten Thread-Typen hängen von den Eigenschaften vor und nach der Sitzung und den Umwandlungen in der Zuordnung ab.
Der Master-Thread kann die folgenden Thread-Typen erstellen:
- •Mapping-Threads
- •Vor- und Nach-Sitzungs-Threads
- •Reader-Threads
- •Umwandlungs-Threads
- •Writer-Threads
Mapping-Threads
Der Master-Thread erstellt einen Mapping-Threads für jede Sitzung. Der Mapping-Thread ruft Sitzungs- und Mapping-Informationen ab, erstellt die Zuordnung und führt nach der Sitzungsausführung eine Bereinigung durch.
Vor- und Nach-Sitzungs-Threads
Der Master-Thread erstellt einen Vor- und einen Nach-Sitzungs-Thread zur Ausführung der Vor- und Nach-Sitzungs-Operationen.
Reader-Threads
Der Master-Thread erstellt Reader-Threads zum Extrahieren von Quelldaten. Die Anzahl der Reader-Threads hängt von den Partitionierungsinformationen für jede Pipeline. Die Zahl der Reader-Threads entspricht der Anzahl der Partitionen. Relationalen Quellen verwenden relationale Reader-Threads, und Dateiquellen verwenden Datei-Reader-Threads.
Der PowerCenter Integration Service erstellt eine SQL-Anweisung für jeden Reader-Thread, um Daten aus einer relationalen Quelle zu extrahieren. Bei Dateiquellen kann der PowerCenter Integration Service mehrere Threads erstellen, um eine einzige Quelle zu lesen.
Umwandlungs-Threads
Der Master-Thread erstellt einen oder mehrere Umwandlungs-Threads für jede Partition. Umwandlungs-Threads verarbeiten Daten entsprechend der Umwandlungslogik in der Zuordnung.
Der Master-Thread erstellt Umwandlungs-Threads, um Daten, die vom Reader-Thread in Puffer empfangen werden, zu konvertieren, die Daten von Umwandlung zu Umwandlung weiterzuschieben und ggf. Speicher-Caches zu erstellen. Die Anzahl der Umwandlungs-Threads hängt von den Partitionierungsinformationen für jede Pipeline ab.
Umwandlungs-Threads speichern umgewandelte Daten in einem Puffer, der für den späteren Zugriff durch den Writer-Thread aus dem Speicher-Pool gezogen werden.
Wenn die Pipeline eine Rang-, Joiner-, Aggregator-, Sorter- oder im Cache gespeicherte Lookup-Umwandlung enthält, nutzt der Umwandlungs-Threads Cache-Speicher, bis er die konfigurierten Grenzen der Cache-Größe Grenzen erreicht. Wenn der Umwandlungs-Threads mehr Platz benötigt, lagert er in lokalen Cache-Dateien aus, um zusätzliche Daten zu halten.
Wenn der PowerCenter Integration Service im ASCII-Modus läuft, gibt der Umwandlungs-Threads die Zeichendaten in einzelnen Bytes weiter. Wenn der PowerCenter Integration Service im Unicode-Modus läuft, nutzt der Umwandlungs-Threads Double-Bytes, um die Zeichendaten weiterzugeben.
Writer-Threads
Der Writer-Thread erstellt Writer-Threads zum Laden von Targetdaten. Die Anzahl der Writer-Threads hängt von den Partitionierungsinformationen für jede Pipeline ab. Wenn die Pipeline eine Partition enthält, erstellt der Master-Thread einen Writer-Thread. Wenn sie mehrere Partitionen enthält, erstellt der Master-Thread mehrere Writer-Threads.
Jeder Writer-Thread erstellt Verbindungen zu den Targetdatenbanken, um Daten zu laden. Wenn das Target eine Datei ist, erstellt jeder Writer-Thread eine separate Datei. Sie können die Sitzung so konfigurieren, dass diese Dateien zusammengeführt werden.
Wenn das Target relational ist, nimmt der Writer-Thread Daten aus Puffern und überträgt Sie in Sitzungstargets. Beim Laden von Targets schreib der Writer Daten gemäß dem in der Sitzungseigenschaften festgelegten Commit-Intervall fest. Sie können eine Sitzung so konfigurieren, dass Daten festgeschrieben werden auf der Basis der Anzahl gelesener Quellzeilen, der Anzahl in das Target geschriebener Zeilen oder der Anzahl der Zeilen, die durch eine Umwandlung laufen, die Transaktionen generiert, wie z. B. eine Transaktionssteuerungsumwandlung.
Pipeline-Partitionierung
Bei der Ausführung von Sitzungen kann der PowerCenter Integration Service-Prozess hohe Leistung durch die Aufteilung der Pipeline und die parallele Ausführung von Extrahierung, Umwandlung und Laden für jede Partition erzielen. Um dies zu erreichen, verwenden Sie die folgende Sitzung und PowerCenter Integration Service-Konfiguration:
- •Konfigurieren der Sitzung mit mehreren Partitionen.
- •Installieren Sie den PowerCenter Integration Service auf einem Rechner mit mehreren CPUs.
Bei den meisten Umwandlungen in der Pipeline können Sie den Typ der Partition konfigurieren. Der PowerCenter Integration Service kann Daten mit der Ringverteilung, Hash, Schlüsselbereich, Datenbankpartitionierung oder Pass-Through-Partitionierung partitionieren.
Sie können auch eine Sitzung für dynamische Partitionierung konfigurieren, damit der PowerCenter Integration Service die Partitionierung zur Laufzeit aktiviert. Wenn Sie die dynamische Partitionierung aktivieren, skaliert der PowerCenter Integration Service die Anzahl der Sitzungspartitionen anhand von solchen Faktoren wie den Quell-Datenbank-Partitionen oder der Anzahl der Knoten in einem Gitter.
Für relationale Quellen erstellt der PowerCenter Integration Service mehrere Datenbankverbindungen zu einer einzigen Quelle und extrahiert einen separaten Datenbereich für jede Verbindung.
Der PowerCenter Integration Service transformiert die Partitionen gleichzeitig, und übergibt nach Bedarf Daten zwischen den Partitionen, um Operationen wie Aggregation durchzuführen. Wenn der PowerCenter Integration Service relationale Daten lädt, erstellt er mehrere Datenbankverbindungen zum Target und lädt Datenpartitionen gleichzeitig. Wenn der PowerCenter Integration Service Daten an Datei-Targets lädt, erstellt er für jede Partition eine separate Datei. Sie können wählen, die Targetdateien zusammenzuführen.