{"id":87609,"date":"2020-07-09T01:42:11","date_gmt":"2020-07-08T23:42:11","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum"},"modified":"2020-07-09T01:42:11","modified_gmt":"2020-07-08T23:42:11","slug":"kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum","title":{"rendered":"Wenn Sie im Ma\u00dfstab der Sberbank arbeiten. Verwendung von Ab Initio in Verbindung mit Hive und GreenPlum","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Vor einiger Zeit standen wir vor der Herausforderung, ein ETL-Tool f\u00fcr die Arbeit mit Big Data auszuw\u00e4hlen. Die zuvor verwendete L\u00f6sung Informatica BDM entsprach nicht unseren Anforderungen aufgrund ihrer begrenzten Funktionalit\u00e4t. Ihre Nutzung reduzierte sich auf ein Framework zur Ausf\u00fchrung von spark-submit-Befehlen. Auf dem Markt gab es nicht viele Alternativen, die prinzipiell dazu in der Lage waren, mit dem Datenvolumen zu arbeiten, das wir t\u00e4glich bearbeiten. Schlie\u00dflich haben wir uns f\u00fcr Ab Initio entschieden. Bei den Pilotdemonstrationen zeigte das Produkt eine sehr hohe Datenverarbeitungsgeschwindigkeit. Informationen \u00fcber Ab Initio in deutscher Sprache sind kaum verf\u00fcgbar, daher haben wir beschlossen, unsere Erfahrungen auf Hub zu teilen.<\/p>\n<p>Ab Initio verf\u00fcgt \u00fcber eine Vielzahl klassischer und au\u00dfergew\u00f6hnlicher Transformationen, deren Code durch die eigene Sprache PDL erweitert werden kann. F\u00fcr kleine Unternehmen k\u00f6nnte dieses m\u00e4chtige Werkzeug wahrscheinlich \u00fcberdimensioniert sein, und viele seiner Funktionen k\u00f6nnten teuer und ungenutzt bleiben. Wenn Ihr Ma\u00dfstab jedoch den Gr\u00f6\u00dfen der Sberbank nahekommt, k\u00f6nnte Ab Initio f\u00fcr Sie von Interesse sein. <\/p>\n<p>Es hilft Unternehmen weltweit, Wissen zu sammeln und ein \u00d6kosystem zu entwickeln, w\u00e4hrend es Entwicklern erm\u00f6glicht, ihre F\u00e4higkeiten in ETL zu verbessern, ihre Shell-Kenntnisse zu vertiefen und die M\u00f6glichkeit bietet, die PDL-Sprache zu erlernen. Es bietet au\u00dferdem eine visuelle Darstellung der Ladeprozesse und vereinfacht die Entwicklung durch eine F\u00fclle von funktionalen Komponenten.<\/p>\n<p>In diesem Beitrag werde ich die M\u00f6glichkeiten von Ab Initio beschreiben und vergleichende Leistungsmerkmale im Umgang mit Hive und GreenPlum darlegen.<\/p>\n<ul>\n<li>Beschreibung des MDW-Frameworks und der Arbeiten zu seiner Feinabstimmung f\u00fcr GreenPlum.<\/li>\n<li>Vergleichende Leistungsmerkmale von Ab Initio im Umgang mit Hive und GreenPlum.<\/li>\n<li>Ab Initio im Einsatz mit GreenPlum im Near Real Time-Modus.<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nDie Funktionalit\u00e4t dieses Produkts ist sehr umfangreich und erfordert einiges an Zeit f\u00fcr das Studium. Mit den richtigen F\u00e4higkeiten und optimalen Leistungsanpassungen k\u00f6nnen jedoch beeindruckende Verarbeitungsergebnisse erzielt werden. Die Verwendung von Ab Initio kann Entwicklern spannende Erfahrungen bieten. Es er\u00f6ffnet einen neuen Blick auf die ETL-Entwicklung, eine Hybridl\u00f6sung zwischen einer visuellen Umgebung und dem Schreiben von Ladeprozessen in einer script\u00e4hnlichen Sprache.<\/p>\n<p>Unternehmen entwickeln ihre \u00d6kosysteme, und dieses Werkzeug kommt ihnen mehr denn je gelegen. Mit Ab Initio k\u00f6nnen sie Wissen \u00fcber ihr aktuelles Gesch\u00e4ft ansammeln und dieses Wissen nutzen, um bestehende Gesch\u00e4fte zu erweitern und neue zu er\u00f6ffnen. Alternativen zu Ab Initio sind unter den visuellen Entwicklungsumgebungen Informatica BDM und unter den nicht-visuellen Umgebungen Apache Spark.<\/p>\n<h3>Beschreibung von Ab Initio<\/h3>\n<p>\nAb Initio ist, wie andere ETL-Tools, eine Sammlung von Produkten.<\/p>\n<p><img decoding=\"async\" alt=\"Wenn Sie im Ma\u00dfstab der Sberbank arbeiten. Verwendung von Ab Initio in Verbindung mit Hive und GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/c467fe1e8455805075856967b577f8b7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAb Initio GDE (Graphical Development Environment) ist eine Umgebung f\u00fcr Entwickler, in der sie Daten\u00fcbertragungen konfigurieren und diese in Form von Pfeilverbindungen verbinden. Ein solches Set von Transformationen wird als Graph bezeichnet:<\/p>\n<p><img decoding=\"async\" alt=\"Wenn Sie im Ma\u00dfstab der Sberbank arbeiten. Verwendung von Ab Initio in Verbindung mit Hive und GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/7b0c19a82ae8b461a9bd85117555e106.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDie Eingangs- und Ausgangsverbindungen der funktionalen Komponenten sind Ports und enthalten Felder, die innerhalb der Transformationen berechnet werden. Mehrere Graphen, die durch Pfeilverbindungen in der Reihenfolge ihrer Ausf\u00fchrung verbunden sind, werden als Plan bezeichnet.<\/p>\n<p>Es stehen mehrere Hundert funktionale Komponenten zur Verf\u00fcgung, was eine betr\u00e4chtliche Anzahl darstellt. Viele davon sind hochspezialisiert. Die M\u00f6glichkeiten der klassischen Transformationen in Ab Initio sind umfassender als in anderen ETL-Tools. Beispielsweise hat der Join mehrere Ausgaben. Neben dem Ergebnis des Join-Objekts k\u00f6nnen auch Eintr\u00e4ge der Eingangsdaten, deren Schl\u00fcssel nicht verkn\u00fcpft werden konnten, ausgegeben werden. Au\u00dferdem sind Rejects, Fehler und ein Protokoll der Transformation verf\u00fcgbar, das in der gleichen Graphik als Textdatei gelesen und von anderen Transformationen verarbeitet werden kann.<\/p>\n<p><img decoding=\"async\" alt=\"Wenn Sie im Ma\u00dfstab der Sberbank arbeiten. Verwendung von Ab Initio in Verbindung mit Hive und GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/c7d70879daad364a3d4aa41a0a1b738d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOder man kann beispielsweise einen Datenempf\u00e4nger in Form einer Tabelle materialisieren und in dieser Graphik Daten daraus lesen.<\/p>\n<p>Es gibt originelle Transformationen. Zum Beispiel fungiert die Transformation Scan \u00e4hnlich wie analytische Funktionen. Es gibt Transformationen mit beschreibenden Namen: Create Data, Read Excel, Normalize, Sort within Groups, Run Program, Run SQL, Join with DB usw. Die Graphen k\u00f6nnen w\u00e4hrend der Ausf\u00fchrung Parameter verwenden, darunter auch die M\u00f6glichkeit, Parameter aus dem Betriebssystem zu \u00fcbergeben oder in das Betriebssystem zu \u00fcbermitteln. Dateien mit einem vorbereiteten Satz von \u00fcbergebenen Parametern f\u00fcr die Graphik werden als Parameter Sets (psets) bezeichnet.<\/p>\n<p>Wie es sich geh\u00f6rt, verf\u00fcgt Ab Initio GDE \u00fcber ein eigenes Repository, das als EME (Enterprise Meta Environment) bekannt ist. Entwickler haben die M\u00f6glichkeit, mit lokalen Codeversionen zu arbeiten und ihre Entwicklungen im zentralen Repository einzuchecken.<\/p>\n<p>Es besteht die M\u00f6glichkeit, w\u00e4hrend oder nach der Ausf\u00fchrung des Graphen auf jeden verbindenden Transformationsfluss zu klicken und die Daten anzusehen, die zwischen diesen Transformationen \u00fcbertragen wurden:<\/p>\n<p><img decoding=\"async\" alt=\"Wenn Sie im Ma\u00dfstab der Sberbank arbeiten. Verwendung von Ab Initio in Verbindung mit Hive und GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/a674507b2cd25b980cb862bda2e10cbe.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZudem k\u00f6nnen Sie auf jeden Fluss klicken und die Tracking-Details einsehen \u2013 wie viele Parallelvorg\u00e4nge die Transformation ausgef\u00fchrt hat, wie viele Zeilen und Bytes in welcher der Parallelit\u00e4ten geladen wurden:<\/p>\n<p><img decoding=\"async\" alt=\"Wenn Sie im Ma\u00dfstab der Sberbank arbeiten. Verwendung von Ab Initio in Verbindung mit Hive und GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/6188d17bebe756ee59e6956f9a40ec43.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs ist m\u00f6glich, die Ausf\u00fchrung des Graphen in Phasen zu unterteilen und festzulegen, dass bestimmte Transformationen zuerst (in der Null-Phase) und die folgenden in der ersten Phase, dann in der zweiten Phase usw. ausgef\u00fchrt werden m\u00fcssen.<\/p>\n<p>F\u00fcr jede Transformation kann ein sogenannter Layout gew\u00e4hlt werden (wo sie ausgef\u00fchrt wird): ohne Parallelit\u00e4t oder in parallelen Fl\u00fcssen, deren Anzahl festgelegt werden kann. Dabei k\u00f6nnen tempor\u00e4re Dateien, die Ab Initio w\u00e4hrend der Ausf\u00fchrung der Transformationen erstellt, sowohl im Dateisystem <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/de\/server\/dts-los-angeles\/\"   title=\"\u0441\u0435\u0440\u0432\u0435\u0440\u0430\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3635\">\u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/a>als auch im HDFS abgelegt werden.<\/p>\n<p>In jeder Transformation basierend auf der Standardvorlage kann ein eigenes Skript in der PDL-Sprache erstellt werden, das ein wenig an Shell erinnert. <\/p>\n<p>Mit der PDL-Sprache k\u00f6nnen Sie die Funktionalit\u00e4t von Transformationen erweitern und insbesondere k\u00f6nnen Sie zur Laufzeit beliebige Codeausschnitte dynamisch generieren, abh\u00e4ngig von den Laufzeitparametern.<\/p>\n<p>Dar\u00fcber hinaus ist die Integration mit dem Betriebssystem \u00fcber die Shell in Ab Initio gut ausgebaut. Konkret wird im Sberbank Linux ksh verwendet. Es ist m\u00f6glich, Variablen mit der Shell auszutauschen und sie als Parameter f\u00fcr die Graphen zu verwenden. Sie k\u00f6nnen aus der Shell die Ausf\u00fchrung von Ab Initio-Graphen ansto\u00dfen und Ab Initio verwalten.<\/p>\n<p>Neben Ab Initio GDE umfasst die Lieferung viele andere Produkte. Es gibt ein eigenes Co&gt;Operation System, das den Anspruch erhebt, ein Betriebssystem zu sein. Es gibt das Control&gt;Center, in dem Sie Zeitpl\u00e4ne f\u00fcr die Ladefl\u00fcsse erstellen und diese \u00fcberwachen k\u00f6nnen. Es gibt Produkte f\u00fcr die Entwicklung auf einer primitiveren Ebene als das, was Ab Initio GDE erm\u00f6glicht.<\/p>\n<h3>Beschreibung des MDW-Frameworks und der Arbeiten zu seiner Feinabstimmung f\u00fcr GreenPlum.<\/h3>\n<p>\nZusammen mit seinen Produkten bietet der Anbieter das Produkt MDW (Metadata Driven Warehouse) an, einen Graph-Configurator, der entwickelt wurde, um bei typischen Aufgaben zur Bef\u00fcllung von Data Warehouses oder Data Vaults zu unterst\u00fctzen.<\/p>\n<p>Es enth\u00e4lt benutzerdefinierte (projektspezifische) Metadaten-Parser und vorkonfigurierte Code-Generatoren \u201eout of the box\u201c.<\/p>\n<p><img decoding=\"async\" alt=\"Wenn Sie im Ma\u00dfstab der Sberbank arbeiten. Verwendung von Ab Initio in Verbindung mit Hive und GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/0842ecb9550f369875103ccb23cdf121.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nMDW erh\u00e4lt als Eingabe ein Datenmodell, eine Konfigurationsdatei zur Einrichtung der Datenbankverbindung (Oracle, Teradata oder Hive) sowie einige weitere Einstellungen. Der projektspezifische Teil k\u00fcmmert sich beispielsweise um die Bereitstellung des Modells in der Datenbank. Der Standardteil des Produkts generiert Graphen und Konfigurationsdateien f\u00fcr die Datenladung in die Modelltabelle. Dabei werden Graphen (und psets) f\u00fcr verschiedene Modi der initialen und inkrementellen Aktualisierung von Entit\u00e4ten erstellt.<\/p>\n<p>In den F\u00e4llen von Hive und RDBMS werden unterschiedliche Graphen f\u00fcr die initiale und inkrementelle Datenaktualisierung generiert.<\/p>\n<p>Im Fall von Hive werden die eingegangenen Delta-Daten mithilfe des Ab Initio Join mit den Daten verbunden, die vor dem Update in der Tabelle vorhanden waren. Die Datenladeprozesse in MDW (sowohl in Hive als auch in RDBMS) f\u00fcgen nicht nur neue Daten aus dem Delta hinzu, sondern schlie\u00dfen auch die G\u00fcltigkeitszeitr\u00e4ume der Daten ab, f\u00fcr die das Delta eingegangen ist. Zudem muss der unver\u00e4nderte Teil der Daten neu geschrieben werden. Dies ist notwendig, da es in Hive keine Delete- oder Update-Operationen gibt.<\/p>\n<p><img decoding=\"async\" alt=\"Wenn Sie im Ma\u00dfstab der Sberbank arbeiten. Verwendung von Ab Initio in Verbindung mit Hive und GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/36b6dd7c4d45727ad7d7aa1183fdd5fd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIm Fall von RDBMS hingegen sieht die graphische Darstellung der inkrementellen Datenaktualisierung optimierter aus, da RDBMS \u00fcber echte Aktualisierungsm\u00f6glichkeiten verf\u00fcgen.<\/p>\n<p><img decoding=\"async\" alt=\"Wenn Sie im Ma\u00dfstab der Sberbank arbeiten. Verwendung von Ab Initio in Verbindung mit Hive und GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/b62ac222bed575a60b632b13e012f603.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas eingegangene Delta wird in eine Zwischentabelle in der Datenbank geladen. Anschlie\u00dfend erfolgt die Verbindung des Deltas mit den Daten, die vor dem Update in der Tabelle waren. Dies geschieht mittels SQL \u00fcber eine generierte SQL-Abfrage. Danach erfolgt durch die SQL-Befehle Delete+Insert die Einspeisung neuer Daten aus dem Delta in die Zieltabelle und das Schlie\u00dfen der G\u00fcltigkeitszeitr\u00e4ume der Daten, f\u00fcr die das Delta eingegangen ist. <br \/>\nEs ist nicht notwendig, die unver\u00e4nderten Daten neu zu schreiben.<\/p>\n<p>Somit sind wir zu dem Schluss gekommen, dass im Falle von Hive MDW die gesamte Tabelle neu geschrieben werden muss, da Hive keine Update-Funktion hat. Eine vollst\u00e4ndige Neukodierung der Daten ist beim Aktualisieren schlichtweg die beste L\u00f6sung. Bei RDBMS hingegen hielten es die Produktentwickler f\u00fcr notwendig, die Verbindung und Aktualisierung der Tabellen SQL zu \u00fcberlassen.<\/p>\n<p>F\u00fcr das Projekt bei Sberbank haben wir eine neue wiederverwendbare Implementierung des Datenbank-Loaders f\u00fcr GreenPlum entwickelt. Diese basiert auf der Version, die MDW f\u00fcr Teradata generiert. Teradata war daf\u00fcr besser geeignet und am n\u00e4chsten dran, da es ebenfalls ein MPP-System ist. Die Arbeitsweise sowie die Syntax von Teradata und GreenPlum erwiesen sich als \u00e4hnlich.<\/p>\n<p>Beispiele f\u00fcr kritische Unterschiede zwischen verschiedenen RDBMS, die f\u00fcr MDW relevant sind, sind wie folgt. In GreenPlum muss im Gegensatz zu Teradata beim Erstellen von Tabellen die Klausel<\/p>\n<pre><code class=\"sql\">distributed by<\/code><\/pre>\n<p>\nin Teradata verwendet man<\/p>\n<pre><code class=\"sql\">l&ouml;schen &lt;table&gt; all<\/code><\/pre>\n<p>\n, w\u00e4hrend in GreenPlum geschrieben wird<\/p>\n<pre><code class=\"sql\">l&ouml;schen von &lt;table&gt;<\/code><\/pre>\n<p>\n. In Oracle zur Optimierung schreibt man<\/p>\n<pre><code class=\"sql\">delete from t where rowid in ()<\/code><\/pre>\n<p>\n, w\u00e4hrend man in Teradata und GreenPlum schreibt<\/p>\n<pre><code class=\"sql\">delete from t where exists (select * from delta where delta.pk=t.pk)<\/code><\/pre>\n<p>\nAu\u00dferdem ist zu beachten, dass f\u00fcr den Betrieb von Ab Initio mit GreenPlum der GreenPlum-Client auf allen Knoten des Ab Initio-Clusters installiert werden musste. Dies ist erforderlich, da wir uns von allen Knoten unseres Clusters gleichzeitig mit GreenPlum verbunden haben. Um die parallele Leseoperation aus GreenPlum zu gew\u00e4hrleisten und sicherzustellen, dass jeder parallele Ab Initio-Thread seinen eigenen Datensatz aus GreenPlum liest, musste eine f\u00fcr Ab Initio verst\u00e4ndliche Konstruktion in den Abschnitt \u201ewhere\u201c der SQL-Abfragen eingebaut werden.<\/p>\n<pre><code class=\"sql\">where ABLOCAL()<\/code><\/pre>\n<p>\nund der Wert dieser Konstruktion musste angegeben werden, indem der lesenden Transformation aus der Datenbank der Parameter zugewiesen wurde<\/p>\n<pre><code class=\"sql\">ablocal_expr=\u00abstring_concat(&quot;mod(t.&quot;, string_filter_out(&quot;{$TABLE_KEY}&quot;,&quot;{}&quot;), &quot;,&quot;, (decimal(3))(number_of_partitions()),&quot;)=&quot;, (decimal(3))(this_partition()))\u00bb<\/code><\/pre>\n<p>\n, die in etwas wie<\/p>\n<pre><code class=\"sql\">mod(sk,10)=3<\/code><\/pre>\n<p>\nkompiliert, was bedeutet, dass f\u00fcr jede Partition ein expliziter Filter f\u00fcr GreenPlum angegeben werden muss. F\u00fcr andere Datenbanken (Teradata, Oracle) kann Ab Initio diese Parallelisierung automatisch durchf\u00fchren.<\/p>\n<h3>Vergleichende Leistungsmerkmale von Ab Initio im Umgang mit Hive und GreenPlum.<\/h3>\n<p>\nIm Sberbank wurde ein Experiment zur Vergleichsanalyse der Leistung generierter MDW-Diagramme in Bezug auf Hive und GreenPlum durchgef\u00fchrt. Im Rahmen des Experiments verf\u00fcgte Hive \u00fcber 5 Nodes im selben Cluster wie Ab Initio, w\u00e4hrend GreenPlum \u00fcber 4 Nodes in einem separaten Cluster verf\u00fcgte. Das bedeutet, dass Hive in Bezug auf die Hardware einen gewissen Vorteil gegen\u00fcber GreenPlum hatte.<\/p>\n<p>Es wurden zwei Paare von Diagrammen betrachtet, die dieselbe Aufgabe f\u00fcr das Datenupdate in Hive und GreenPlum ausf\u00fchren. Dabei wurden die Diagramme eingesetzt, die von dem MDW-Konfigurator generiert wurden:<\/p>\n<ul>\n<li>initiale Datenladung + inkrementelle Ladung zuf\u00e4llig generierter Daten in eine Hive-Tabelle<\/li>\n<li>initiale Datenladung + inkrementelle Ladung zuf\u00e4llig generierter Daten in eine entsprechende GreenPlum-Tabelle<\/li>\n<\/ul>\n<p>\nIn beiden F\u00e4llen (Hive und GreenPlum) wurden die Ladevorg\u00e4nge in 10 parallelen Str\u00f6men im selben Cluster von Ab Initio ausgef\u00fchrt. Die Zwischendaten f\u00fcr die Berechnungen wurden von Ab Initio in HDFS gespeichert (in Ab Initio-Begriffen wurde ein MFS-Layout unter Verwendung von HDFS genutzt). Eine Zeile zuf\u00e4llig generierter Daten belegte in beiden F\u00e4llen 200 Bytes.<\/p>\n<p>Das Ergebnis war folgendes:<\/p>\n<p><b>Hive:<\/b><\/p>\n<p><b>Initiale Datenladung in Hive<\/b><\/p>\n<p>Zeilen eingef\u00fcgt<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Dauer der Initialisierung<br \/>\nLadezeiten in Sekunden<br \/>\n41<br \/>\n203<br \/>\n1 601<\/p>\n<p><b>Inkrementelles Laden in Hive<\/b><\/p>\n<p>Anzahl der Zeilen, die zu Beginn des Experiments in<br \/>\nder Ziel-Tabelle vorhanden waren<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Anzahl der Delta-Zeilen, die w\u00e4hrend des Experiments auf<br \/>\ndie Ziel-Tabelle angewendet wurden<br \/>\n6 000 000<br \/>\n6 000 000<br \/>\n6 000 000<\/p>\n<p>Dauer des inkrementellen<br \/>\nLadezeiten in Sekunden<br \/>\n88<br \/>\n299<br \/>\n<b>2 541<\/b><\/p>\n<p>\n<b>GreenPlum:<\/b><\/p>\n<p><b>Initiales Laden in GreenPlum<\/b><\/p>\n<p>Zeilen eingef\u00fcgt<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Dauer der Initialisierung<br \/>\nLadezeiten in Sekunden<br \/>\n72<br \/>\n360<br \/>\n3 631<\/p>\n<p><b>Inkrementelles Laden in GreenPlum<\/b><\/p>\n<p>Anzahl der Zeilen, die zu Beginn des Experiments in<br \/>\nder Ziel-Tabelle vorhanden waren<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Anzahl der Delta-Zeilen, die w\u00e4hrend des Experiments auf<br \/>\ndie Ziel-Tabelle angewendet wurden<br \/>\n6 000 000<br \/>\n6 000 000<br \/>\n6 000 000<\/p>\n<p>Dauer des inkrementellen<br \/>\nLadezeiten in Sekunden<br \/>\n159<br \/>\n199<br \/>\n<b>321<\/b><\/p>\n<p>\nWir sehen, dass die Geschwindigkeit des initialen Ladevorgangs sowohl in Hive als auch in GreenPlum linear vom Datenvolumen abh\u00e4ngt und aufgrund besserer Hardware etwas schneller f\u00fcr Hive ist als f\u00fcr GreenPlum.<\/p>\n<p>Das inkrementelle Laden in Hive h\u00e4ngt ebenfalls linear vom Volumen der zuvor geladenen Daten in der Ziel-Tabelle ab und verl\u00e4uft mit steigendem Volumen relativ langsam. Dies liegt daran, dass die gesamte Ziel-Tabelle neu geschrieben werden muss. Das bedeutet, dass die Anwendung kleiner \u00c4nderungen auf gro\u00dfe Tabellen f\u00fcr Hive nicht besonders sinnvoll ist.<\/p>\n<p>Die inkrementelle Ladegeschwindigkeit in GreenPlum ist nur schwach vom Volumen der zuvor in der Zieltabelle geladenen Daten abh\u00e4ngig und verl\u00e4uft relativ schnell. Dies wurde durch SQL Joins und die Architektur von GreenPlum erm\u00f6glicht, die die L\u00f6schoperation unterst\u00fctzt.<\/p>\n<p>GreenPlum speist daher die Delta-Daten durch delete+insert ein, w\u00e4hrend es in Hive keine delete- oder update-Operationen gibt. Deshalb musste der gesamte Datensatz bei inkrementellen Updates vollst\u00e4ndig neu geschrieben werden. Besonders aussagekr\u00e4ftig ist der Vergleich der fett hervorgehobenen Zellen, da sie dem h\u00e4ufigsten Nutzungsszenario ressourcenintensiver Ladevorg\u00e4nge entsprechen. Wir sehen, dass GreenPlum in diesem Test in einem Verh\u00e4ltnis von 1 zu 8 gegen\u00fcber Hive gewonnen hat.<\/p>\n<h3>Ab Initio im Einsatz mit GreenPlum im Near Real Time-Modus.<\/h3>\n<p>\nIn diesem Experiment \u00fcberpr\u00fcfen wir die M\u00f6glichkeit von Ab Initio, die Tabelle GreenPlum mit zuf\u00e4llig generierten Datenportionen in einem nahezu Echtzeitmodus zu aktualisieren. Wir betrachten die Tabelle GreenPlum dev42_1_db_usl.TESTING_SUBJ_org_finval, mit der wir arbeiten werden.<\/p>\n<p>Wir werden drei Ab Initio-Diagramme f\u00fcr die Arbeit mit dieser Tabelle verwenden:<\/p>\n<p>1) Das Diagramm Create_test_data.mp \u2013 erstellt in 10 parallelen Str\u00f6men Dateien mit Daten in HDFS mit 6.000.000 Zeilen. Die Daten sind zuf\u00e4llig, ihre Struktur ist so organisiert, dass sie in unsere Tabelle eingef\u00fcgt werden k\u00f6nnen.<\/p>\n<p><img decoding=\"async\" alt=\"Wenn Sie im Ma\u00dfstab der Sberbank arbeiten. Verwendung von Ab Initio in Verbindung mit Hive und GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/8cac605c1c5931313bd016a48fb6384e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Wenn Sie im Ma\u00dfstab der Sberbank arbeiten. Verwendung von Ab Initio in Verbindung mit Hive und GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/b86988bf1722329bde60013ba025d600.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n2) Grafik mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset \u2013 generierte MDW-Grafik f\u00fcr das initiale Einf\u00fcgen von Daten in unsere Tabelle in 10 parallelen Streams (es werden Testdaten verwendet, die von der Grafik (1) generiert wurden)<\/p>\n<p><img decoding=\"async\" alt=\"Wenn Sie im Ma\u00dfstab der Sberbank arbeiten. Verwendung von Ab Initio in Verbindung mit Hive und GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/b4228a13c088c6b96abba35e9e58fe8e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n3) Grafik mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset \u2013 generierte MDW-Grafik f\u00fcr das inkrementelle Update unserer Tabelle in 10 parallelen Streams unter Verwendung einer neuen Chargen von eingegangenen Daten (Deltas), die von der Grafik (1) generiert wurden<\/p>\n<p><img decoding=\"async\" alt=\"Wenn Sie im Ma\u00dfstab der Sberbank arbeiten. Verwendung von Ab Initio in Verbindung mit Hive und GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/714a901616cf84e5a1fd7a764373e30f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWir f\u00fchren das untenstehende Szenario im NRT-Modus aus:<\/p>\n<ul>\n<li>6.000.000 Testzeilen generieren<\/li>\n<li>eine initiale Ladeoperation durchf\u00fchren, um 6.000.000 Testzeilen in eine leere Tabelle einzuf\u00fcgen<\/li>\n<li>5 Mal das inkrementelle Laden wiederholen\n<ul>\n<li>6.000.000 Testzeilen generieren<\/li>\n<li>eine inkrementelle Einf\u00fcgung von 6.000.000 Testzeilen in die Tabelle vornehmen (wobei alten Daten die G\u00fcltigkeit valid_to_ts entzogen und frischere Daten mit demselben Prim\u00e4rschl\u00fcssel eingef\u00fcgt werden)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\nEin solches Szenario emuliert den Echtzeitbetrieb eines bestimmten Gesch\u00e4ftssystems \u2013 in Echtzeit tritt eine erhebliche Menge neuer Daten auf, die sofort in GreenPlum eingebracht wird.<\/p>\n<p>Lassen Sie uns nun das Protokoll der Arbeit des Szenarios ansehen:<\/p>\n<p><i>Start Create_test_data.input.pset am 2020-06-04 11:49:11<br \/>\nFinish Create_test_data.input.pset am 2020-06-04 11:49:37<br \/>\nStart mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset am 2020-06-04 11:49:37<br \/>\nFinish mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset am 2020-06-04 11:50:42<br \/>\nStart Create_test_data.input.pset am 2020-06-04 11:50:42<br \/>\nFinish Create_test_data.input.pset am 2020-06-04 11:51:06<br \/>\nStart mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset am 2020-06-04 11:51:06<br \/>\nFinish mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset am 2020-06-04 11:53:41<br \/>\nStart Create_test_data.input.pset am 2020-06-04 11:53:41<br \/>\nFinish Create_test_data.input.pset am 2020-06-04 11:54:04<br \/>\nStart mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset am 2020-06-04 11:54:04<br \/>\nFinish mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset am 2020-06-04 11:56:51<br \/>\nStart Create_test_data.input.pset am 2020-06-04 11:56:51<br \/>\nFinish Create_test_data.input.pset am 2020-06-04 11:57:14<br \/>\nStart mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset am 2020-06-04 11:57:14<br \/>\nFinish mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset am 2020-06-04 11:59:55<br \/>\nStart Create_test_data.input.pset am 2020-06-04 11:59:55<br \/>\nFinish Create_test_data.input.pset am 2020-06-04 12:00:23<br \/>\nStart mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset am 2020-06-04 12:00:23<br \/>\nFinish mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset am 2020-06-04 12:03:23<br \/>\nStart Create_test_data.input.pset am 2020-06-04 12:03:23<br \/>\nFinish Create_test_data.input.pset am 2020-06-04 12:03:49<br \/>\nStart mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset am 2020-06-04 12:03:49<br \/>\nFinish mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset am 2020-06-04 12:06:46<\/i><\/p>\n<p>Das ergibt folgendes Bild:<\/p>\n<p>Grafik<br \/>\nStartzeit<br \/>\nEndzeit<br \/>\nDauer<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 11:49:11<br \/>\n04.06.2020 11:49:37<br \/>\n00:00:26<\/p>\n<p>mdw_load.day_one.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 11:49:37<br \/>\n04.06.2020 11:50:42<br \/>\n00:01:05<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 11:50:42<br \/>\n04.06.2020 11:51:06<br \/>\n00:00:24<\/p>\n<p>mdw_load.regular.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 11:51:06<br \/>\n04.06.2020 11:53:41<br \/>\n00:02:35<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 11:53:41<br \/>\n04.06.2020 11:54:04<br \/>\n00:00:23<\/p>\n<p>mdw_load.regular.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 11:54:04<br \/>\n04.06.2020 11:56:51<br \/>\n00:02:47<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 11:56:51<br \/>\n04.06.2020 11:57:14<br \/>\n00:00:23<\/p>\n<p>mdw_load.regular.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 11:57:14<br \/>\n04.06.2020 11:59:55<br \/>\n00:02:41<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 11:59:55<br \/>\n04.06.2020 12:00:23<br \/>\n00:00:28<\/p>\n<p>mdw_load.regular.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 12:00:23<br \/>\n04.06.2020 12:03:23<br \/>\n00:03:00<\/p>\n<p>Create_test_data.input.pset<br \/>\n04.06.2020 12:03:23<br \/>\n04.06.2020 12:03:49<br \/>\n00:00:26<\/p>\n<p>mdw_load.regular.current.<br \/>\ndev42_1_db_usl_testing_subj_org_finval.pset<br \/>\n04.06.2020 12:03:49<br \/>\n04.06.2020 12:06:46<br \/>\n00:02:57<\/p>\n<p>\nWir sehen, dass 6.000.000 inkrementeller Zeilen in 3 Minuten verarbeitet werden, was ziemlich schnell ist.<br \/>\nDie Daten in der Zieltabelle wurden wie folgt verteilt:<\/p>\n<pre><code class=\"sql\">select valid_from_ts, valid_to_ts, count(1), min(sk), max(sk) from dev42_1_db_usl.TESTING_SUBJ_org_finval group by valid_from_ts, valid_to_ts order by 1,2;<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"Wenn Sie im Ma\u00dfstab der Sberbank arbeiten. Verwendung von Ab Initio in Verbindung mit Hive und GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/baefcfd8142f4ad6275333e3dcfccf94.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nEs ist m\u00f6glich, die \u00dcbereinstimmung der eingef\u00fcgten Daten zum Zeitpunkt des Starts der Graphen zu erkennen.<br \/>\nDas bedeutet, dass die inkrementelle Datenladung in GreenPlum mit sehr hoher Frequenz in Ab Initio gestartet werden kann und wir eine hohe Geschwindigkeit beim Einf\u00fcgen dieser Daten in GreenPlum beobachten k\u00f6nnen. Nat\u00fcrlich wird es nicht m\u00f6glich sein, jede Sekunde zu starten, da Ab Initio, wie jedes ETL-Tool, beim Start Zeit zur \"Eingew\u00f6hnung\" ben\u00f6tigt.<\/p>\n<h2>Fazit<\/h2>\n<p>\nAktuell wird Ab Initio von Sberbank zur Erstellung einer einheitlichen semantischen Datenschicht (ESS) verwendet. Dieses Projekt zielt darauf ab, eine konsolidierte Version des Zustands verschiedener bankenspezifischer Gesch\u00e4ftsobjekte zu schaffen. Die Informationen stammen aus unterschiedlichen Quellen, deren Replikate auf Hadoop vorbereitet werden. Auf Basis der gesch\u00e4ftlichen Anforderungen wird ein Datenmodell erstellt und die Daten-Transformationen werden beschrieben. Ab Initio l\u00e4dt die Informationen in die ESS, und die geladenen Daten sind nicht nur von Interesse f\u00fcr das Gesch\u00e4ft selbst, sondern dienen auch als Quelle f\u00fcr die Erstellung von Datenvisualisierungen. Die Funktionalit\u00e4t des Produkts erm\u00f6glicht es, verschiedene Systeme (Hive, Greenplum, Teradata, Oracle) als Ziel zu nutzen, was es erm\u00f6glicht, die Daten ohne gro\u00dfen Aufwand in den ben\u00f6tigten Formaten f\u00fcr das Gesch\u00e4ft vorzubereiten.<\/p>\n<p>Die M\u00f6glichkeiten von Ab Initio sind vielf\u00e4ltig. Beispielsweise erm\u00f6glicht das integrierte MDW-Framework, Datenhistorien f\u00fcr technische und gesch\u00e4ftliche Zwecke \"out of the box\" zu erstellen. Entwicklern bietet Ab Initio die Chance, \"das Rad nicht neu zu erfinden\" und aus einer Vielzahl von verf\u00fcgbaren Funktionalit\u00e4ten zu sch\u00f6pfen, die im Wesentlichen als Bibliotheken zur Arbeit mit Daten dienen.<\/p>\n<blockquote><p>Autor \u2013 Experte der professionellen Gemeinschaft von Sberbank SberProfi DWH\/BigData. Die SberProfi DWH\/BigData-Gemeinschaft ist verantwortlich f\u00fcr die Entwicklung von Kompetenzen in Bereichen wie der Hadoop-\u00d6kosystem, Teradata, Oracle DB, GreenPlum sowie BI-Tools wie Qlik, SAP BO, Tableau und weitere.<\/p><\/blockquote>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/sberbank\/blog\/509936\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u044b\u0431\u043e\u0440\u0430 ETL-\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 BigData. \u0420\u0430\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0435\u0435\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Informatica BDM \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e \u043d\u0430\u0441 \u0438\u0437-\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0415\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0432\u0435\u043b\u043e\u0441\u044c \u043a \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0443 \u043f\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u043e\u043c\u0430\u043d\u0434 spark-submit. \u041d\u0430 \u0440\u044b\u043d\u043a\u0435 \u0438\u043c\u0435\u043b\u043e\u0441\u044c \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432, \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u0435\u043c \u043e\u0431\u044a\u0451\u043c\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":87610,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-87609","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u044b\u0431\u043e\u0440\u0430 ETL-\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 BigData. \u0420\u0430\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0435\u0435\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Informatica BDM \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e \u043d\u0430\u0441 \u0438\u0437-\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0415\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0432\u0435\u043b\u043e\u0441\u044c \u043a \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0443 \u043f\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u043e\u043c\u0430\u043d\u0434 spark-submit. \u041d\u0430 \u0440\u044b\u043d\u043a\u0435 \u0438\u043c\u0435\u043b\u043e\u0441\u044c \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432, \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u0435\u043c \u043e\u0431\u044a\u0451\u043c\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u043e\u0433\u0434\u0430 \u0443 \u0432\u0430\u0441 \u0441\u0431\u0435\u0440\u043e\u0432\u0441\u043a\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u044b. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Ab Initio \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Hive \u0438 GreenPlum | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u044b\u0431\u043e\u0440\u0430 ETL-\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 BigData. \u0420\u0430\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0435\u0435\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Informatica BDM \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e \u043d\u0430\u0441 \u0438\u0437-\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0415\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0432\u0435\u043b\u043e\u0441\u044c \u043a \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0443 \u043f\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u043e\u043c\u0430\u043d\u0434 spark-submit. \u041d\u0430 \u0440\u044b\u043d\u043a\u0435 \u0438\u043c\u0435\u043b\u043e\u0441\u044c \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432, \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u0435\u043c \u043e\u0431\u044a\u0451\u043c\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-08T23:42:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-08T23:42:11+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Wenn Sie im Ma\u00dfstab von Sberbank arbeiten. Nutzung von Ab Initio in Verbindung mit Hive und GreenPlum | ProHoster","description":"Vor einiger Zeit standen wir vor der Herausforderung, ein ETL-Tool f\u00fcr die Arbeit mit Big Data auszuw\u00e4hlen. Die zuvor verwendete L\u00f6sung Informatica BDM gefiel uns aufgrund ihrer eingeschr\u00e4nkten Funktionalit\u00e4t nicht. Ihr Einsatz beschr\u00e4nkte sich auf das Framework zum Ausf\u00fchren von Spark-Submit-Befehlen. Auf dem Markt gab es nicht viele Alternativen, die in der Lage waren, mit dem Datenvolumen umzugehen, das wir t\u00e4glich verarbeiten.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u043e\u0433\u0434\u0430 \u0443 \u0432\u0430\u0441 \u0441\u0431\u0435\u0440\u043e\u0432\u0441\u043a\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u044b. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Ab Initio \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 Hive \u0438 GreenPlum | ProHoster","og:description":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0432\u0441\u0442\u0430\u043b \u0432\u043e\u043f\u0440\u043e\u0441 \u0432\u044b\u0431\u043e\u0440\u0430 ETL-\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 BigData. \u0420\u0430\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0435\u0435\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Informatica BDM \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u043e \u043d\u0430\u0441 \u0438\u0437-\u0437\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0415\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0432\u0435\u043b\u043e\u0441\u044c \u043a \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0443 \u043f\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043a\u043e\u043c\u0430\u043d\u0434 spark-submit. \u041d\u0430 \u0440\u044b\u043d\u043a\u0435 \u0438\u043c\u0435\u043b\u043e\u0441\u044c \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432, \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0442\u0435\u043c \u043e\u0431\u044a\u0451\u043c\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-08T23:42:11+00:00","article:modified_time":"2020-07-08T23:42:11+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"87609","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:47:29","updated":"2026-02-22 15:29:30"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/87609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=87609"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/87609\/revisions"}],"predecessor-version":[{"id":162163,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/87609\/revisions\/162163"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/87610"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=87609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=87609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=87609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}