Wie kann man sehr große Daten kostengünstig und schnell umziehen, exportieren und integrieren? Was ist Pushdown-Optimierung?

Jede Operation mit großen Daten erfordert große Rechenleistung. Das übliche Verschieben von Daten aus einer Datenbank auf Hadoop kann Wochen dauern oder so viel kosten wie ein Flugzeugflügel. Möchten Sie nicht warten und Geld ausgeben? Verteilen Sie die Last auf verschiedene Plattformen. Eine Möglichkeit ist die Pushdown-Optimierung.

Ich habe den führenden Trainer für die Entwicklung und Verwaltung von Informatica-Produkten in Russland, Alexey Ananyev, gebeten, die Funktion der Pushdown-Optimierung in Informatica Big Data Management (BDM) zu erläutern. Haben Sie einmal gelernt, mit Informatica-Produkten zu arbeiten? Wahrscheinlich hat Alexey Ihnen die Grundlagen von PowerCenter erklärt und wie man Mappings erstellt.

Alexey Ananyev, Leiter der Schulungsabteilung bei DIS Group

Was ist Pushdown?

Viele von Ihnen sind bereits mit Informatica Big Data Management (BDM) vertraut. Das Produkt kann große Daten aus verschiedenen Quellen integrieren, sie zwischen verschiedenen Systemen bewegen, einen einfachen Zugang dazu ermöglichen, sie profilieren und vieles mehr.
In den fähigen Händen kann BDM Wunder wirken: Aufgaben werden schnell und mit minimalen Rechenressourcen ausgeführt.

Möchten Sie das auch? Lernen Sie, die Pushdown-Funktion in BDM zu nutzen, um die Rechenlast zwischen verschiedenen Plattformen zu verteilen. Die Pushdown-Technologie ermöglicht es, ein Mapping in ein Skript zu verwandeln und die Umgebung auszuwählen, in der dieses Skript ausgeführt werden soll. Die Möglichkeit dieser Wahl erlaubt es, die Stärken verschiedener Plattformen zu kombinieren und ihre maximale Leistung zu erreichen.

Um die Ausführungsumgebung des Skripts einzurichten, müssen Sie den Pushdown-Typ auswählen. Das Skript kann vollständig auf Hadoop ausgeführt oder teilweise zwischen Quelle und Ziel verteilt werden. Es gibt 4 mögliche Pushdown-Typen. Das Mapping kann nicht in ein Skript umgewandelt werden (native). Das Mapping kann maximal an der Quelle (source) oder vollständig an der Quelle (full) ausgeführt werden. Außerdem kann das Mapping in ein Hadoop-Skript umgewandelt werden (none).

Pushdown-Optimierung

Die genannten 4 Typen können unterschiedlich kombiniert werden – um den Pushdown an die spezifischen Bedürfnisse des Systems anzupassen. Zum Beispiel ist es oft sinnvoller, Daten aus der Datenbank zu extrahieren, indem deren eigene Möglichkeiten genutzt werden, und die Daten dann mit den Ressourcen von Hadoop zu transformieren, um die Datenbank nicht zu überlasten.

Betrachten wir den Fall, in dem sowohl die Quelle als auch der Empfänger in der Datenbank sind und die Ausführungsplattform für die Transformationen gewählt werden kann: je nach Einstellung wird es Informatica, einen Datenbankserver oder Hadoop sein. Ein solches Beispiel wird es ermöglichen, die technische Seite des Funktionierens dieses Mechanismus besser zu verstehen. Selbstverständlich tritt ein solcher Fall in der realen Welt nicht auf, doch zur Demonstration der Funktionalität ist es ideal.

Nehmen wir das Mapping zum Lesen von zwei Tabellen in einer einzigen Oracle-Datenbank. Die Ergebnisse des Lesens sollen in eine Tabelle in dieser gleichen Datenbank geschrieben werden. Das Schema des Mappings wird folgendermaßen aussehen:

Wie kann man sehr große Daten kostengünstig und schnell umziehen, exportieren und integrieren? Was ist Pushdown-Optimierung?

In Form eines Mappings auf Informatica BDM 10.2.1 sieht das so aus:

Wie kann man sehr große Daten kostengünstig und schnell umziehen, exportieren und integrieren? Was ist Pushdown-Optimierung?

Pushdown-Typ – native

Wenn wir den Pushdown-Typ native wählen, wird das Mapping auf Informatica ausgeführt. Die Daten werden vom Oracle-Server gelesen, auf den Informatica-Server übertragen, dort transformiert und an Hadoop übergeben. Mit anderen Worten, wir erhalten einen typischen ETL-Prozess. Server Pushdown-Typ – source

Bei der Auswahl des Typs source haben wir die Möglichkeit, unseren Prozess zwischen

Datenbanken (DB) und Hadoop zu verteilen. Bei der Ausführung des Prozesses mit dieser Einstellung werden Abfragen zum Abrufen von Daten aus den Tabellen in die Datenbank gesendet. Der Rest wird in Form von Schritten in Hadoop ausgeführt. Server Das Ausführungsschema wird folgendermaßen aussehen:
Unten steht ein Beispiel für die Konfiguration der Ausführungsumgebung.

Wie kann man sehr große Daten kostengünstig und schnell umziehen, exportieren und integrieren? Was ist Pushdown-Optimierung?

In diesem Fall wird das Mapping in zwei Schritten ausgeführt. In seinen Einstellungen werden wir sehen, dass es sich in ein Skript verwandelt hat, das an die Quelle gesendet wird. Dabei erfolgt die Zusammenführung von Tabellen und die Datenumwandlung in Form einer überschriebenen Abfrage an der Quelle.

Wie kann man sehr große Daten kostengünstig und schnell umziehen, exportieren und integrieren? Was ist Pushdown-Optimierung?

In dem Bild unten sehen wir ein optimiertes Mapping auf BDM, und an der Quelle eine überschreibende Abfrage.
Die Rolle von Hadoop in dieser Konfiguration beschränkt sich auf das Datenflussmanagement – das Dirigieren derselben. Das Ergebnis der Abfrage wird an Hadoop gesendet. Nach Abschluss des Lesens wird die Datei aus Hadoop an den Empfänger geschrieben.

Wie kann man sehr große Daten kostengünstig und schnell umziehen, exportieren und integrieren? Was ist Pushdown-Optimierung?

Pushdown-Typ – full

Bei der Auswahl des Typs full verwandelt sich das Mapping vollständig in eine Abfrage an die DB. Das Ergebnis der Abfrage wird an Hadoop gesendet. Das Schema eines solchen Prozesses ist unten dargestellt.

Ein Beispiel für die Konfiguration ist unten dargestellt.

Wie kann man sehr große Daten kostengünstig und schnell umziehen, exportieren und integrieren? Was ist Pushdown-Optimierung?

Insgesamt werden wir ein optimiertes Mapping erhalten, das dem vorherigen ähnlich ist. Der einzige Unterschied besteht darin, dass die gesamte Logik in Form einer Überschreibung seiner Einfügung an den Empfänger übertragen wird. Ein Beispiel für das optimierte Mapping wird unten dargestellt.

Wie kann man sehr große Daten kostengünstig und schnell umziehen, exportieren und integrieren? Was ist Pushdown-Optimierung?

In der Folge erhalten wir ein optimiertes Mapping, das dem vorherigen ähnlich ist. Der einzige Unterschied besteht darin, dass die gesamte Logik auf den Empfänger in Form einer Überschreibung seiner Einfügung übertragen wird. Ein Beispiel für das optimierte Mapping ist unten dargestellt.

Wie kann man sehr große Daten kostengünstig und schnell umziehen, exportieren und integrieren? Was ist Pushdown-Optimierung?

Hier fungiert Hadoop, wie im vorhergehenden Fall, als Dirigent. Doch hier wird die Quelle vollständig gelesen, und dann wird auf der Ebene des Empfängers die Logik der Datenverarbeitung ausgeführt.

Pushdown-Typ – null

Und die letzte Möglichkeit – der Pushdown-Typ, im Rahmen dessen unsere Mapping-Logik in ein Hadoop-Skript umgewandelt wird.

Das optimierte Mapping wird jetzt so aussehen:

Wie kann man sehr große Daten kostengünstig und schnell umziehen, exportieren und integrieren? Was ist Pushdown-Optimierung?

Hier werden die Daten aus den Quelldateien zunächst auf Hadoop gelesen. Dann werden diese beiden Dateien mit denselben Mitteln kombiniert. Danach werden die Daten umgewandelt und in die Datenbank exportiert.

Wenn man die Prinzipien der Pushdown-Optimierung versteht, kann man viele Prozesse im Umgang mit großen Datenmengen sehr effektiv organisieren. So hat ein großes Unternehmen vor kurzem in nur wenigen Wochen große Daten aus dem Hadoop-Repository extrahiert, die es zuvor über mehrere Jahre gesammelt hatte.

Quelle: habr.com

60GB SSD 8Gb DDR4