{"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\/fr\/blog\/administrirovanie\/kogda-u-vas-sberovskie-masshtaby-ispolzovanie-ab-initio-pri-rabote-s-hive-i-greenplum","title":{"rendered":"Lorsque vous avez des ambitions \u00e0 l'\u00e9chelle de Sberbank. Utilisation d'Ab Initio avec Hive et GreenPlum","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Il y a quelque temps, nous avons d\u00fb choisir un outil ETL pour travailler avec Big Data. La solution pr\u00e9c\u00e9demment utilis\u00e9e, Informatica BDM, ne nous satisfaisait pas en raison de ses fonctionnalit\u00e9s limit\u00e9es. Son utilisation se limitait \u00e0 un cadre pour ex\u00e9cuter des commandes spark-submit. Il n'y avait pas beaucoup d'alternatives sur le march\u00e9 capables de g\u00e9rer le volume de donn\u00e9es que nous traitons chaque jour. En fin de compte, nous avons choisi Ab Initio. Lors des d\u00e9monstrations pilotes, le produit a montr\u00e9 une vitesse de traitement des donn\u00e9es tr\u00e8s \u00e9lev\u00e9e. Il y a peu d'informations sur Ab Initio en russe, c'est pourquoi nous avons d\u00e9cid\u00e9 de partager notre exp\u00e9rience sur Habr.<\/p>\n<p>Ab Initio offre de nombreuses transformations classiques et inhabituelles, dont le code peut \u00eatre \u00e9tendu \u00e0 l'aide de son propre langage PDL. Pour les petites entreprises, un outil aussi puissant pourrait \u00eatre excessif, et la plupart de ses capacit\u00e9s pourraient s'av\u00e9rer co\u00fbteuses et inutilis\u00e9es. Mais si vos \u00e9chelles se rapprochent de celles de Sberbank, Ab Initio pourrait vous int\u00e9resser. <\/p>\n<p>Il aide les entreprises \u00e0 acqu\u00e9rir des connaissances globales et \u00e0 d\u00e9velopper un \u00e9cosyst\u00e8me, tout en permettant aux d\u00e9veloppeurs d'am\u00e9liorer leurs comp\u00e9tences en ETL, d'approfondir leurs connaissances en shell, de ma\u00eetriser le langage PDL, et de fournir une vue visuelle des processus de chargement, simplifiant ainsi le d\u00e9veloppement gr\u00e2ce \u00e0 une abondance de composants fonctionnels.<\/p>\n<p>Dans ce post, je parlerai des fonctionnalit\u00e9s d'Ab Initio et fournirai des caract\u00e9ristiques comparatives de son fonctionnement avec Hive et GreenPlum.<\/p>\n<ul>\n<li>Description du cadre MDW et des travaux pour son ajustement \u00e0 GreenPlum<\/li>\n<li>Caract\u00e9ristiques comparatives de la performance d'Ab Initio avec Hive et GreenPlum<\/li>\n<li>Fonctionnement d'Ab Initio avec GreenPlum en mode Near Real Time<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nLa fonctionnalit\u00e9 de ce produit est tr\u00e8s vaste et n\u00e9cessite un certain temps pour \u00eatre ma\u00eetris\u00e9e. Cependant, avec les comp\u00e9tences ad\u00e9quates et les r\u00e9glages de performance appropri\u00e9s, les r\u00e9sultats du traitement des donn\u00e9es s'av\u00e8rent impressionnants. L'utilisation d'Ab Initio peut offrir un int\u00e9r\u00eat aux d\u00e9veloppeurs. C'est un nouveau regard sur le d\u00e9veloppement ETL, un hybride entre un environnement visuel et le d\u00e9veloppement de chargements dans un langage de type script.<\/p>\n<p>Les entreprises d\u00e9veloppent leurs \u00e9cosyst\u00e8mes et cet outil leur est plus utile que jamais. Avec Ab Initio, il est possible de capitaliser sur les connaissances acquises sur l'entreprise actuelle et d'utiliser ces connaissances pour \u00e9tendre les anciennes et en cr\u00e9er de nouvelles. Parmi les alternatives \u00e0 Ab Initio, on peut citer les environnements de d\u00e9veloppement visuels comme Informatica BDM et les environnements non visuels tels qu'Apache Spark.<\/p>\n<h3>Description d'Ab Initio<\/h3>\n<p>\nAb Initio, comme d'autres outils ETL, est un ensemble de produits.<\/p>\n<p><img decoding=\"async\" alt=\"Lorsque vous avez des ambitions \u00e0 l&#039;\u00e9chelle de Sberbank. Utilisation d&#039;Ab Initio avec Hive et GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/c467fe1e8455805075856967b577f8b7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAb Initio GDE (Graphical Development Environment) est un environnement pour d\u00e9veloppeurs o\u00f9 ils configurent les transformations de donn\u00e9es et les connectent par des flux de donn\u00e9es sous forme de fl\u00e8ches. Cet ensemble de transformations est appel\u00e9 un graphe :<\/p>\n<p><img decoding=\"async\" alt=\"Lorsque vous avez des ambitions \u00e0 l&#039;\u00e9chelle de Sberbank. Utilisation d&#039;Ab Initio avec Hive et GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/7b0c19a82ae8b461a9bd85117555e106.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLes connexions d'entr\u00e9e et de sortie des composants fonctionnels sont des ports et contiennent des champs calcul\u00e9s \u00e0 l'int\u00e9rieur des transformations. Plusieurs graphes, connect\u00e9s par des flux sous forme de fl\u00e8ches dans l'ordre de leur ex\u00e9cution, sont appel\u00e9s un plan.<\/p>\n<p>Il existe plusieurs centaines de composants fonctionnels, ce qui est beaucoup. Beaucoup d'entre eux sont sp\u00e9cialis\u00e9s. Les capacit\u00e9s des transformations classiques dans Ab Initio sont plus larges que dans d'autres outils ETL. Par exemple, la jointure a plusieurs sorties. En plus du r\u00e9sultat de la jointure des ensembles de donn\u00e9es, il est possible de ramener les enregistrements des ensembles de donn\u00e9es d'entr\u00e9e pour lesquels une jointure n'a pas pu \u00eatre effectu\u00e9e. Il est \u00e9galement possible d'obtenir des rejets, des erreurs et un journal des op\u00e9rations de transformation, qui peut \u00eatre lu dans ce m\u00eame graphe comme un fichier texte et trait\u00e9 par d'autres transformations :<\/p>\n<p><img decoding=\"async\" alt=\"Lorsque vous avez des ambitions \u00e0 l&#039;\u00e9chelle de Sberbank. Utilisation d&#039;Ab Initio avec Hive et GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/c7d70879daad364a3d4aa41a0a1b738d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOu, par exemple, on peut mat\u00e9rialiser le r\u00e9cepteur de donn\u00e9es sous forme de table et lire les donn\u00e9es de celle-ci dans le m\u00eame graphe.<\/p>\n<p>Il existe des transformations originales. Par exemple, la transformation Scan a une fonctionnalit\u00e9 similaire \u00e0 celle des fonctions analytiques. Certaines transformations portent des noms \u00e9vocateurs : Create Data, Read Excel, Normalize, Sort within Groups, Run Program, Run SQL, Join with DB, etc. Les graphes peuvent utiliser des param\u00e8tres d'ex\u00e9cution, y compris la possibilit\u00e9 de passer des param\u00e8tres depuis le syst\u00e8me d'exploitation ou vers le syst\u00e8me d'exploitation. Les fichiers contenant un ensemble pr\u00e9d\u00e9fini de param\u00e8tres \u00e0 transmettre au graphe sont appel\u00e9s ensemble de param\u00e8tres (psets).<\/p>\n<p>Comme il se doit, Ab Initio GDE dispose de son propre r\u00e9f\u00e9rentiel, appel\u00e9 EME (Enterprise Meta Environment). Les d\u00e9veloppeurs ont la possibilit\u00e9 de travailler avec des versions locales de code et d'effectuer un check-in de leurs d\u00e9veloppements dans le r\u00e9f\u00e9rentiel central.<\/p>\n<p>Il est possible, pendant ou apr\u00e8s l'ex\u00e9cution du graphique, de cliquer sur n'importe quelle liaison des transformations de flux et de voir les donn\u00e9es pass\u00e9es entre ces transformations :<\/p>\n<p><img decoding=\"async\" alt=\"Lorsque vous avez des ambitions \u00e0 l&#039;\u00e9chelle de Sberbank. Utilisation d&#039;Ab Initio avec Hive et GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/a674507b2cd25b980cb862bda2e10cbe.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl est \u00e9galement possible de cliquer sur n'importe quel flux et de consulter les d\u00e9tails de suivi \u2013 combien de parall\u00e8les ont fonctionn\u00e9, combien de lignes et d'octets ont \u00e9t\u00e9 charg\u00e9s dans lequel des parall\u00e8les :<\/p>\n<p><img decoding=\"async\" alt=\"Lorsque vous avez des ambitions \u00e0 l&#039;\u00e9chelle de Sberbank. Utilisation d&#039;Ab Initio avec Hive et GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/6188d17bebe756ee59e6956f9a40ec43.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl est possible de diviser l'ex\u00e9cution du graphique en phases et de marquer certaines transformations comme devant \u00eatre ex\u00e9cut\u00e9es en premier (dans la phase z\u00e9ro), les suivantes dans la premi\u00e8re phase, les suivantes dans la deuxi\u00e8me phase, etc.<\/p>\n<p>Pour chaque transformation, il est possible de choisir un layout (o\u00f9 elle sera ex\u00e9cut\u00e9e) : sans parall\u00e8les ou dans des flux parall\u00e8les, dont le nombre peut \u00eatre sp\u00e9cifi\u00e9. Les fichiers temporaires cr\u00e9\u00e9s par Ab Initio lors de l'ex\u00e9cution des transformations peuvent \u00eatre plac\u00e9s \u00e0 la fois dans le syst\u00e8me de fichiers <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/fr\/server\/dts-los-angeles\/\"   title=\"de serveurs\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3635\">de serveurs<\/a>, ainsi que dans HDFS.<\/p>\n<p>Dans chaque transformation bas\u00e9e sur le mod\u00e8le par d\u00e9faut, il est possible de cr\u00e9er son propre script en langage PDL, qui ressemble un peu \u00e0 un shell. <\/p>\n<p>\u00c0 l'aide du langage PDL, vous pouvez \u00e9tendre la fonctionnalit\u00e9 des transformations et, en particulier, g\u00e9n\u00e9rer dynamiquement (pendant l'ex\u00e9cution) des fragments de code arbitraires en fonction des param\u00e8tres d'ex\u00e9cution.<\/p>\n<p>De plus, Ab Initio a une bonne int\u00e9gration avec l'OS via le shell. En particulier, dans Sberbank, il utilise linux ksh. Il est possible d'\u00e9changer des variables avec le shell et de les utiliser comme param\u00e8tres de graphiques. Il est possible d'appeler l'ex\u00e9cution des graphiques Ab Initio depuis le shell et de g\u00e9rer Ab Initio.<\/p>\n<p>En plus d'Ab Initio GDE, plusieurs autres produits sont inclus dans la livraison. Il existe son propre syst\u00e8me Co&gt;Operation avec la pr\u00e9tention d'\u00eatre un syst\u00e8me d'exploitation. Il existe Control&gt;Center, o\u00f9 l'on peut programmer et surveiller les flux de chargement. Il existe des produits pour le d\u00e9veloppement \u00e0 un niveau plus \u00e9l\u00e9mentaire que celui permis par Ab Initio GDE.<\/p>\n<h3>Description du cadre MDW et des travaux pour son ajustement \u00e0 GreenPlum<\/h3>\n<p>\nAvec ses produits, le fournisseur livre le produit MDW (Metadata Driven Warehouse), qui est un configurateur de graphiques destin\u00e9 \u00e0 aider dans des t\u00e2ches typiques de remplissage des entrep\u00f4ts de donn\u00e9es ou des data vaults.<\/p>\n<p>Il contient des parseurs de m\u00e9tadonn\u00e9es sp\u00e9cifiques au projet et des g\u00e9n\u00e9rateurs de code pr\u00eats \u00e0 l'emploi.<\/p>\n<p><img decoding=\"async\" alt=\"Lorsque vous avez des ambitions \u00e0 l&#039;\u00e9chelle de Sberbank. Utilisation d&#039;Ab Initio avec Hive et GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/0842ecb9550f369875103ccb23cdf121.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u00c0 l'entr\u00e9e, MDW re\u00e7oit un mod\u00e8le de donn\u00e9es, un fichier de configuration pour le param\u00e9trage de la connexion \u00e0 la base de donn\u00e9es (Oracle, Teradata ou Hive) et d'autres param\u00e8tres. La partie sp\u00e9cifique au projet d\u00e9ploie par exemple le mod\u00e8le dans la base de donn\u00e9es. La partie standard du produit g\u00e9n\u00e8re des graphes et des fichiers de configuration associ\u00e9s lors du chargement des donn\u00e9es dans les tables du mod\u00e8le. Cela cr\u00e9e des graphes (et des psets) pour plusieurs modes de travail d'initialisation et d'incr\u00e9mentation pour la mise \u00e0 jour des entit\u00e9s.<\/p>\n<p>Dans les cas de Hive et de RDBMS, des graphes diff\u00e9rents sont g\u00e9n\u00e9r\u00e9s pour la mise \u00e0 jour initiale et incr\u00e9mentale des donn\u00e9es.<\/p>\n<p>Dans le cas de Hive, les donn\u00e9es re\u00e7ues de la delta sont combin\u00e9es par un Ab Initio Join avec les donn\u00e9es qui \u00e9taient dans la table avant la mise \u00e0 jour. Les chargeurs de donn\u00e9es dans MDW (tant dans Hive que dans RDBMS) ins\u00e8rent non seulement de nouvelles donn\u00e9es de la delta, mais \u00e9galement ferment les p\u00e9riodes de validit\u00e9 des donn\u00e9es, selon les cl\u00e9s primaires par lesquelles la delta a \u00e9t\u00e9 re\u00e7ue. De plus, il faut r\u00e9\u00e9crire la partie des donn\u00e9es qui n'a pas chang\u00e9. Mais cela est n\u00e9cessaire, car il n'y a pas d'op\u00e9rations de suppression ou de mise \u00e0 jour dans Hive.<\/p>\n<p><img decoding=\"async\" alt=\"Lorsque vous avez des ambitions \u00e0 l&#039;\u00e9chelle de Sberbank. Utilisation d&#039;Ab Initio avec Hive et GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/36b6dd7c4d45727ad7d7aa1183fdd5fd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDans le cas des RDBMS, les graphes pour la mise \u00e0 jour incr\u00e9mentale des donn\u00e9es semblent plus optimaux, car les RDBMS disposent de r\u00e9elles capacit\u00e9s de mise \u00e0 jour.<\/p>\n<p><img decoding=\"async\" alt=\"Lorsque vous avez des ambitions \u00e0 l&#039;\u00e9chelle de Sberbank. Utilisation d&#039;Ab Initio avec Hive et GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/b62ac222bed575a60b632b13e012f603.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa delta re\u00e7ue est charg\u00e9e dans une table interm\u00e9diaire de la base de donn\u00e9es. Apr\u00e8s cela, la delta est jointe avec les donn\u00e9es qui \u00e9taient dans la table avant la mise \u00e0 jour, \u00e0 l'aide d'une requ\u00eate SQL g\u00e9n\u00e9r\u00e9e. Ensuite, gr\u00e2ce \u00e0 des commandes SQL delete+insert, de nouvelles donn\u00e9es de la delta sont ins\u00e9r\u00e9es dans la table cible et les p\u00e9riodes de validit\u00e9 des donn\u00e9es sont ferm\u00e9es selon les cl\u00e9s primaires par lesquelles la delta a \u00e9t\u00e9 re\u00e7ue. <br \/>\nIl n'est pas n\u00e9cessaire de r\u00e9\u00e9crire les donn\u00e9es inchang\u00e9es.<\/p>\n<p>Ainsi, nous sommes arriv\u00e9s \u00e0 la conclusion que dans le cas de Hive, MDW doit opter pour la r\u00e9\u00e9criture de toute la table, car Hive ne dispose pas de fonction de mise \u00e0 jour. Rien de mieux que la r\u00e9\u00e9criture compl\u00e8te des donn\u00e9es lors de la mise \u00e0 jour n'a \u00e9t\u00e9 imagin\u00e9. En revanche, dans le cas des RDBMS, les cr\u00e9ateurs du produit ont jug\u00e9 n\u00e9cessaire de confier la connexion et la mise \u00e0 jour des tables \u00e0 l'utilisation de SQL.<\/p>\n<p>Pour le projet chez Sberbank, nous avons cr\u00e9\u00e9 une nouvelle impl\u00e9mentation r\u00e9utilisable du chargeur de base de donn\u00e9es pour GreenPlum. Cela a \u00e9t\u00e9 fait sur la base de la version g\u00e9n\u00e9r\u00e9e par MDW pour Teradata. C'est Teradata, et non Oracle, qui convenait le mieux, car elle est \u00e9galement un syst\u00e8me MPP. Les m\u00e9thodes de fonctionnement ainsi que la syntaxe de Teradata et GreenPlum se sont av\u00e9r\u00e9es proches.<\/p>\n<p>Les exemples critiques de diff\u00e9rences entre diff\u00e9rents SGBD pour MDW sont les suivants. Dans GreenPlum, contrairement \u00e0 Teradata, lors de la cr\u00e9ation de tables, il faut \u00e9crire la clause<\/p>\n<pre><code class=\"sql\">distributed by<\/code><\/pre>\n<p>\nDans Teradata, on \u00e9crit<\/p>\n<pre><code class=\"sql\">supprimer &lt;table&gt; tout<\/code><\/pre>\n<p>\n, et dans GreenPlum, on \u00e9crit<\/p>\n<pre><code class=\"sql\">supprimer de &lt;table&gt;<\/code><\/pre>\n<p>\nDans Oracle, \u00e0 des fins d'optimisation, on \u00e9crit<\/p>\n<pre><code class=\"sql\">delete from t where rowid in ()<\/code><\/pre>\n<p>\n, alors que dans Teradata et GreenPlum, on \u00e9crit<\/p>\n<pre><code class=\"sql\">delete from t where exists (select * from delta where delta.pk=t.pk)<\/code><\/pre>\n<p>\nNous notons \u00e9galement que pour le fonctionnement d'Ab Initio avec GreenPlum, il a fallu installer le client GreenPlum sur tous les n\u0153uds du cluster Ab Initio. Cela est d\u00fb au fait que nous nous sommes connect\u00e9s \u00e0 GreenPlum simultan\u00e9ment depuis tous les n\u0153uds de notre cluster. Pour que la lecture de GreenPlum soit parall\u00e8le et que chaque flux parall\u00e8le d'Ab Initio lise sa portion de donn\u00e9es de GreenPlum, il a fallu inclure dans la section \u00ab where \u00bb des requ\u00eates SQL une construction comprise par Ab Initio<\/p>\n<pre><code class=\"sql\">where ABLOCAL()<\/code><\/pre>\n<p>\net d\u00e9finir la valeur de cette construction en pr\u00e9cisant un param\u00e8tre de la transformation lisant depuis la base de donn\u00e9es<\/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, qui se compile en quelque chose comme<\/p>\n<pre><code class=\"sql\">mod(sk,10)=3<\/code><\/pre>\n<p>\n, c'est-\u00e0-dire qu'il faut indiquer \u00e0 GreenPlum un filtre explicite pour chaque partition. Pour d'autres bases de donn\u00e9es (Teradata, Oracle), Ab Initio peut effectuer ce parall\u00e9lisme automatiquement.<\/p>\n<h3>Caract\u00e9ristiques comparatives de la performance d'Ab Initio avec Hive et GreenPlum<\/h3>\n<p>\n\u00c0 Sberbank, une exp\u00e9rience a \u00e9t\u00e9 r\u00e9alis\u00e9e pour comparer les performances des graphes g\u00e9n\u00e9r\u00e9s par MDW appliqu\u00e9s \u00e0 Hive et \u00e0 GreenPlum. Dans le cadre de l'exp\u00e9rience, dans le cas de Hive, il y avait 5 n\u0153uds sur le m\u00eame cluster que celui d'Ab Initio, tandis que pour GreenPlum, il y avait 4 n\u0153uds sur un cluster s\u00e9par\u00e9. Cela signifie que Hive avait un certain avantage sur GreenPlum en termes de mat\u00e9riel.<\/p>\n<p>Deux paires de graphes ex\u00e9cutant la m\u00eame t\u00e2che de mise \u00e0 jour des donn\u00e9es dans Hive et dans GreenPlum ont \u00e9t\u00e9 examin\u00e9es. Les graphes g\u00e9n\u00e9r\u00e9s par le configurateur MDW ont \u00e9t\u00e9 lanc\u00e9s :<\/p>\n<ul>\n<li>chargement initial + chargement incr\u00e9mentiel de donn\u00e9es g\u00e9n\u00e9r\u00e9es al\u00e9atoirement dans la table Hive<\/li>\n<li>chargement initial + chargement incr\u00e9mentiel de donn\u00e9es g\u00e9n\u00e9r\u00e9es al\u00e9atoirement dans une table \u00e9quivalente de GreenPlum<\/li>\n<\/ul>\n<p>\nDans les deux cas (Hive et GreenPlum), nous avons lanc\u00e9 des chargements \u00e0 10 flux parall\u00e8les sur le m\u00eame cluster Ab Initio. Les donn\u00e9es interm\u00e9diaires pour les calculs Ab Initio ont \u00e9t\u00e9 enregistr\u00e9es dans HDFS (en termes d'Ab Initio, un MFS layout utilisant HDFS a \u00e9t\u00e9 utilis\u00e9). Une ligne de donn\u00e9es g\u00e9n\u00e9r\u00e9es al\u00e9atoirement occupait dans les deux cas 200 octets.<\/p>\n<p>Le r\u00e9sultat est le suivant :<\/p>\n<p><b>Hive :<\/b><\/p>\n<p><b>Chargement initial dans Hive<\/b><\/p>\n<p>Lignes ins\u00e9r\u00e9es<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Dur\u00e9e du chargement initial<br \/>\nen secondes<br \/>\n41<br \/>\n203<br \/>\n1 601<\/p>\n<p><b>Chargement incr\u00e9mental dans Hive<\/b><\/p>\n<p>Nombre de lignes pr\u00e9sentes dans<br \/>\nla table cible au d\u00e9but de l'exp\u00e9rience<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Nombre de lignes delta appliqu\u00e9es \u00e0<br \/>\nla table cible au cours de l'exp\u00e9rience<br \/>\n6 000 000<br \/>\n6 000 000<br \/>\n6 000 000<\/p>\n<p>Dur\u00e9e du chargement incr\u00e9mental<br \/>\nen secondes<br \/>\n88<br \/>\n299<br \/>\n<b>2 541<\/b><\/p>\n<p>\n<b>GreenPlum :<\/b><\/p>\n<p><b>Chargement initial dans GreenPlum<\/b><\/p>\n<p>Lignes ins\u00e9r\u00e9es<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Dur\u00e9e du chargement initial<br \/>\nen secondes<br \/>\n72<br \/>\n360<br \/>\n3 631<\/p>\n<p><b>Chargement incr\u00e9mental dans GreenPlum<\/b><\/p>\n<p>Nombre de lignes pr\u00e9sentes dans<br \/>\nla table cible au d\u00e9but de l'exp\u00e9rience<br \/>\n6 000 000<br \/>\n60 000 000<br \/>\n600 000 000<\/p>\n<p>Nombre de lignes delta appliqu\u00e9es \u00e0<br \/>\nla table cible au cours de l'exp\u00e9rience<br \/>\n6 000 000<br \/>\n6 000 000<br \/>\n6 000 000<\/p>\n<p>Dur\u00e9e du chargement incr\u00e9mental<br \/>\nen secondes<br \/>\n159<br \/>\n199<br \/>\n<b>321<\/b><\/p>\n<p>\nNous constatons que la vitesse du chargement initial tant dans Hive que dans GreenPlum d\u00e9pend lin\u00e9airement du volume de donn\u00e9es et en raison de mat\u00e9riaux informatiques sup\u00e9rieurs, elle est un peu plus rapide pour Hive que pour GreenPlum.<\/p>\n<p>Le chargement incr\u00e9mental dans Hive d\u00e9pend \u00e9galement lin\u00e9airement du volume des donn\u00e9es d\u00e9j\u00e0 charg\u00e9es dans la table cible et se fait assez lentement \u00e0 mesure que le volume augmente. Cela est d\u00fb \u00e0 la n\u00e9cessit\u00e9 de r\u00e9\u00e9crire enti\u00e8rement la table cible. Cela signifie qu'appliquer de petites modifications \u00e0 de grandes tables n'est pas une tr\u00e8s bonne option d'utilisation pour Hive.<\/p>\n<p>En revanche, le chargement incr\u00e9mental dans GreenPlum d\u00e9pend peu du volume des donn\u00e9es d\u00e9j\u00e0 pr\u00e9sentes dans la table cible et se fait assez rapidement. Cela a \u00e9t\u00e9 rendu possible gr\u00e2ce aux jointures SQL et \u00e0 l'architecture de GreenPlum, qui permet l'op\u00e9ration de suppression.<\/p>\n<p>Ainsi, GreenPlum int\u00e8gre le delta via la m\u00e9thode delete+insert, tandis qu'il n'y a pas d'op\u00e9rations de suppression ou de mise \u00e0 jour dans Hive, donc tout l'ensemble de donn\u00e9es devait \u00eatre r\u00e9\u00e9crit enti\u00e8rement lors de la mise \u00e0 jour incr\u00e9mentale. La comparaison des cellules en gras est particuli\u00e8rement r\u00e9v\u00e9latrice, car elle correspond aux cas d'utilisation les plus courants pour des chargements gourmands en ressources. Nous voyons que GreenPlum a remport\u00e9 ce test face \u00e0 Hive par un facteur de 8.<\/p>\n<h3>Fonctionnement d'Ab Initio avec GreenPlum en mode Near Real Time<\/h3>\n<p>\nDans cette exp\u00e9rience, nous allons tester la capacit\u00e9 d'Ab Initio \u00e0 mettre \u00e0 jour la table GreenPlum avec des lots de donn\u00e9es g\u00e9n\u00e9r\u00e9s al\u00e9atoirement dans un mode proche du temps r\u00e9el. Nous consid\u00e9rerons la table GreenPlum dev42_1_db_usl.TESTING_SUBJ_org_finval, sur laquelle nous allons travailler.<\/p>\n<p>Nous utiliserons trois graphes Ab Initio pour travailler avec elle :<\/p>\n<p>1) Graph Create_test_data.mp \u2013 cr\u00e9e 10 flux parall\u00e8les de fichiers de donn\u00e9es dans HDFS contenant 6 000 000 de lignes. Les donn\u00e9es sont al\u00e9atoires, leur structure est organis\u00e9e pour l'insertion dans notre table.<\/p>\n<p><img decoding=\"async\" alt=\"Lorsque vous avez des ambitions \u00e0 l&#039;\u00e9chelle de Sberbank. Utilisation d&#039;Ab Initio avec Hive et GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/8cac605c1c5931313bd016a48fb6384e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Lorsque vous avez des ambitions \u00e0 l&#039;\u00e9chelle de Sberbank. Utilisation d&#039;Ab Initio avec Hive et GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/b86988bf1722329bde60013ba025d600.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n2) Graph mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset \u2013 graphique MDW g\u00e9n\u00e9r\u00e9 pour l'insertion initiale de donn\u00e9es dans notre table en 10 flux parall\u00e8les (des donn\u00e9es de test g\u00e9n\u00e9r\u00e9es par le graphique (1) sont utilis\u00e9es).<\/p>\n<p><img decoding=\"async\" alt=\"Lorsque vous avez des ambitions \u00e0 l&#039;\u00e9chelle de Sberbank. Utilisation d&#039;Ab Initio avec Hive et GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/b4228a13c088c6b96abba35e9e58fe8e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n3) Graph mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset \u2013 graphique MDW g\u00e9n\u00e9r\u00e9 pour la mise \u00e0 jour incr\u00e9mentale de notre table en 10 flux parall\u00e8les utilisant un lot de donn\u00e9es fra\u00eeches r\u00e9cemment arriv\u00e9es (delta) g\u00e9n\u00e9r\u00e9es par le graphique (1).<\/p>\n<p><img decoding=\"async\" alt=\"Lorsque vous avez des ambitions \u00e0 l&#039;\u00e9chelle de Sberbank. Utilisation d&#039;Ab Initio avec Hive et GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/714a901616cf84e5a1fd7a764373e30f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEx\u00e9cutons le sc\u00e9nario ci-dessous en mode NRT :<\/p>\n<ul>\n<li>g\u00e9n\u00e9rer 6 000 000 de lignes de test<\/li>\n<li>effectuer un chargement initial en ins\u00e9rant 6 000 000 de lignes de test dans une table vide<\/li>\n<li>r\u00e9p\u00e9ter 5 fois le chargement incr\u00e9mental\n<ul>\n<li>g\u00e9n\u00e9rer 6 000 000 de lignes de test<\/li>\n<li>effectuer une insertion incr\u00e9mentale de 6 000 000 de lignes de test dans la table (les anciennes donn\u00e9es se voient attribuer un temps d'expiration valid_to_ts et des donn\u00e9es plus r\u00e9centes avec la m\u00eame cl\u00e9 primaire sont ins\u00e9r\u00e9es).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\nCe sc\u00e9nario \u00e9mule le mode de fonctionnement r\u00e9el d'un syst\u00e8me commercial \u2013 un volume suffisant de nouvelles donn\u00e9es appara\u00eet en temps r\u00e9el et est imm\u00e9diatement int\u00e9gr\u00e9 dans GreenPlum.<\/p>\n<p>Voyons maintenant le journal de l'ex\u00e9cution du sc\u00e9nario :<\/p>\n<p><i>D\u00e9marrer Create_test_data.input.pset \u00e0 2020-06-04 11:49:11<br \/>\nTerminer Create_test_data.input.pset \u00e0 2020-06-04 11:49:37<br \/>\nD\u00e9marrer mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset \u00e0 2020-06-04 11:49:37<br \/>\nTerminer mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset \u00e0 2020-06-04 11:50:42<br \/>\nD\u00e9marrer Create_test_data.input.pset \u00e0 2020-06-04 11:50:42<br \/>\nTerminer Create_test_data.input.pset \u00e0 2020-06-04 11:51:06<br \/>\nD\u00e9marrer mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset \u00e0 2020-06-04 11:51:06<br \/>\nTerminer mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset \u00e0 2020-06-04 11:53:41<br \/>\nD\u00e9marrer Create_test_data.input.pset \u00e0 2020-06-04 11:53:41<br \/>\nTerminer Create_test_data.input.pset \u00e0 2020-06-04 11:54:04<br \/>\nD\u00e9marrer mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset \u00e0 2020-06-04 11:54:04<br \/>\nTerminer mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset \u00e0 2020-06-04 11:56:51<br \/>\nD\u00e9marrer Create_test_data.input.pset \u00e0 2020-06-04 11:56:51<br \/>\nTerminer Create_test_data.input.pset \u00e0 2020-06-04 11:57:14<br \/>\nD\u00e9marrer mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset \u00e0 2020-06-04 11:57:14<br \/>\nTerminer mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset \u00e0 2020-06-04 11:59:55<br \/>\nD\u00e9marrer Create_test_data.input.pset \u00e0 2020-06-04 11:59:55<br \/>\nTerminer Create_test_data.input.pset \u00e0 2020-06-04 12:00:23<br \/>\nD\u00e9marrer mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset \u00e0 2020-06-04 12:00:23<br \/>\nTerminer mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset \u00e0 2020-06-04 12:03:23<br \/>\nD\u00e9marrer Create_test_data.input.pset \u00e0 2020-06-04 12:03:23<br \/>\nTerminer Create_test_data.input.pset \u00e0 2020-06-04 12:03:49<br \/>\nD\u00e9marrer mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset \u00e0 2020-06-04 12:03:49<br \/>\nTerminer mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset \u00e0 2020-06-04 12:06:46<\/i><\/p>\n<p>Voici le tableau obtenu :<\/p>\n<p>Graphique<br \/>\nHeure de d\u00e9marrage<br \/>\nTemps de fin<br \/>\nLongueur<\/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>\nNous voyons que 6 000 000 lignes d'incr\u00e9ment sont trait\u00e9es en 3 minutes, ce qui est assez rapide.<br \/>\nLes donn\u00e9es dans la table cible sont r\u00e9parties comme suit :<\/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=\"Lorsque vous avez des ambitions \u00e0 l&#039;\u00e9chelle de Sberbank. Utilisation d&#039;Ab Initio avec Hive et GreenPlum\" src=\"\/wp-content\/uploads\/2020\/07\/baefcfd8142f4ad6275333e3dcfccf94.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nOn peut voir la correspondance entre les donn\u00e9es ins\u00e9r\u00e9es et les moments de lancement des graphiques.<br \/>\nCela signifie qu'il est possible de lancer dans Ab Initio le chargement incr\u00e9mentiel des donn\u00e9es dans GreenPlum avec une tr\u00e8s haute fr\u00e9quence et d'observer une grande vitesse d'insertion de ces donn\u00e9es dans GreenPlum. Bien s\u00fbr, il ne sera pas possible de lancer toutes les secondes, car Ab Initio, comme tout outil ETL, n\u00e9cessite un certain temps 'd'\u00e9chauffement' au d\u00e9marrage.<\/p>\n<h2>Conclusion<\/h2>\n<p>\nActuellement, Ab Initio est utilis\u00e9 \u00e0 Sberbank pour construire une couche s\u00e9mantique unique de donn\u00e9es (ESS). Ce projet implique la cr\u00e9ation d'une version unique de l'\u00e9tat de diverses entit\u00e9s m\u00e9tier bancaires. Les informations proviennent de diverses sources, dont les r\u00e9pliques sont pr\u00e9par\u00e9es sur Hadoop. En fonction des besoins de l'entreprise, un mod\u00e8le de donn\u00e9es est pr\u00e9par\u00e9 et les transformations de donn\u00e9es sont d\u00e9crites. Ab Initio charge les informations dans l'ESS, et les donn\u00e9es charg\u00e9es non seulement repr\u00e9sentent un int\u00e9r\u00eat pour les affaires elles-m\u00eames, mais servent aussi de source pour la construction de vitrines de donn\u00e9es. La fonctionnalit\u00e9 du produit permet d'utiliser divers syst\u00e8mes comme r\u00e9cepteurs (Hive, Greenplum, Teradata, Oracle), ce qui donne la possibilit\u00e9 de pr\u00e9parer les donn\u00e9es pour l'entreprise dans les diff\u00e9rents formats requis sans trop d'efforts.<\/p>\n<p>Les capacit\u00e9s d'Ab Initio sont vastes, par exemple, le cadre MDW inclus permet de construire l'historique technique et commercial des donn\u00e9es 'pr\u00eats \u00e0 l'emploi'. Pour les d\u00e9veloppeurs, Ab Initio offre la possibilit\u00e9 de 'ne pas r\u00e9inventer la roue', mais d'utiliser de nombreux composants fonctionnels existants, qui sont en fait des biblioth\u00e8ques n\u00e9cessaires lors du travail avec les donn\u00e9es.<\/p>\n<blockquote><p>L'auteur est un expert de la communaut\u00e9 professionnelle de Sberbank SberProfi DWH\/BigData. La communaut\u00e9 professionnelle SberProfi DWH\/BigData est responsable du d\u00e9veloppement des comp\u00e9tences dans des domaines tels que l'\u00e9cosyst\u00e8me Hadoop, Teradata, Oracle DB, GreenPlum, ainsi que dans les outils BI tels que Qlik, SAP BO, Tableau, etc.<\/p><\/blockquote>\n<p>Source : <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 5.0.2 - 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.\" \/>\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\/fr\/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) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/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\udd47Quand vous avez des ambitions de grande envergure. Utilisation d'Ab Initio avec Hive et GreenPlum | ProHoster","description":"Il y a quelque temps, nous avons d\u00fb choisir un outil ETL pour travailler avec Big Data. La solution auparavant utilis\u00e9e, Informatica BDM, ne nous convenait pas en raison de ses fonctionnalit\u00e9s limit\u00e9es.","canonical_url":"https:\/\/prohoster.info\/fr\/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":"fr_FR","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.","og:url":"https:\/\/prohoster.info\/fr\/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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/87609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=87609"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/87609\/revisions"}],"predecessor-version":[{"id":162163,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/87609\/revisions\/162163"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/87610"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=87609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=87609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=87609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}