Lorsque vous avez une balance Sberbank. Utiliser Ab Initio avec Hive et GreenPlum

Il y a quelque temps, nous avons été confrontés à la question du choix d'un outil ETL pour travailler avec BigData. La solution Informatica BDM précédemment utilisée ne nous convenait pas en raison de fonctionnalités limitées. Son utilisation a été réduite à un framework pour exécuter des commandes spark-submit. Il n'y avait pas tellement d'analogues sur le marché qui, en principe, étaient capables de travailler avec le volume de données que nous traitons chaque jour. Au final, nous avons choisi Ab Initio. Lors des démonstrations pilotes, le produit a montré une vitesse de traitement trÚs élevée. Il n'y a presque pas d'informations sur Ab Initio en russe, nous avons donc décidé de parler de notre expérience sur Habré.



Ab Initio a de nombreuses transformations classiques et inhabituelles qui peuvent ĂȘtre Ă©tendues avec son propre PDL. Pour une petite entreprise, un outil aussi puissant est susceptible d'ĂȘtre redondant et la plupart de ses capacitĂ©s peuvent ĂȘtre coĂ»teuses et inutiles. Mais si votre Ă©chelle est proche de celle de Sberbank, alors Ab Initio peut vous intĂ©resser.



Il aide l'entreprise à accumuler globalement des connaissances et à développer l'écosystÚme, et le développeur - à pomper ses compétences en ETL, à extraire des connaissances dans le shell, offre la possibilité de maßtriser le langage PDL, donne une image visuelle des processus de chargement, simplifie le développement en raison de l'abondance de composants fonctionnels.



Dans cet article, je parlerai des capacités d'Ab Initio et donnerai des caractéristiques comparatives de son travail avec Hive et GreenPlum.



  • MDW GreenPlum
  • Ab Initio Hive GreenPlum
  • Ab Initio GreenPlum Near Real Time


La fonctionnalité de ce produit est trÚs large et prend beaucoup de temps à apprendre. Cependant, avec les compétences de travail appropriées et les bons paramÚtres de performance, les résultats du traitement des données sont assez impressionnants. Utiliser Ab Initio pour un développeur peut lui donner une expérience intéressante. Il s'agit d'une nouvelle approche du développement ETL, un hybride entre un environnement visuel et le développement de téléchargement dans un langage de type script.



Les entreprises dĂ©veloppent leurs Ă©cosystĂšmes et cet outil est plus que jamais utile. Avec l'aide d'Ab Initio, vous pouvez accumuler des connaissances sur votre entreprise actuelle et utiliser ces connaissances pour dĂ©velopper les anciennes et ouvrir de nouvelles entreprises. Des alternatives Ă  Ab Initio peuvent ĂȘtre appelĂ©es Ă  partir des environnements de dĂ©veloppement visuel Informatica BDM et des environnements non visuels - Apache Spark.



Description de Ab Initio



Ab Initio, comme d'autres outils ETL, est une suite de produits.







Ab Initio GDE (Graphical Development Environment) est un environnement pour un développeur dans lequel il met en place des transformations de données et les connecte à des flux de données sous forme de flÚches. Dans ce cas, un tel ensemble de transformations est appelé un graphe:







les connexions d'entrée et de sortie des composants fonctionnels sont des ports et contiennent des champs calculés dans les transformations. Plusieurs graphes reliés par des flux sous forme de flÚches dans l'ordre de leur exécution sont appelés un plan.



Il existe plusieurs centaines de composants fonctionnels, ce qui est beaucoup. Beaucoup d'entre eux sont hautement spĂ©cialisĂ©s. Ab Initio propose une gamme plus large de transformations classiques que les autres outils ETL. Par exemple, Join a plusieurs sorties. En plus du rĂ©sultat de la connexion des ensembles de donnĂ©es, vous pouvez accĂ©der Ă  la sortie des enregistrements des ensembles de donnĂ©es d'entrĂ©e, dont les clĂ©s n'ont pas pu ĂȘtre connectĂ©es. Vous pouvez Ă©galement obtenir des rejets, des erreurs et un journal de l'opĂ©ration de transformation, qui peuvent ĂȘtre lus dans la mĂȘme colonne qu'un fichier texte et traitĂ©s par d'autres transformations:







ou, par exemple, vous pouvez matĂ©rialiser le rĂ©cepteur de donnĂ©es sous la forme d'un tableau et en lire les donnĂ©es dans la mĂȘme colonne.



Il y a des transformations originales. Par exemple, la transformation Scan a les mĂȘmes fonctionnalitĂ©s que les fonctions analytiques. Il existe des transformations aux noms explicites: crĂ©er des donnĂ©es, lire Excel, normaliser, trier dans des groupes, exĂ©cuter un programme, exĂ©cuter SQL, joindre avec une base de donnĂ©es, etc. Les graphiques peuvent utiliser des paramĂštres d'exĂ©cution, y compris le transfert de paramĂštres du systĂšme d'exploitation ou vers le systĂšme d'exploitation ... Les fichiers avec un ensemble prĂȘt Ă  l'emploi de paramĂštres transmis au graphique sont appelĂ©s ensembles de paramĂštres (psets).



Comme prévu, Ab Initio GDE a son propre référentiel appelé EME (Enterprise Meta Environment). Les développeurs ont la possibilité de travailler avec des versions locales du code et d'enregistrer leurs développements dans le référentiel central.



Il est possible, pendant l'exécution ou aprÚs l'exécution du graphique, de cliquer sur n'importe quel flux reliant les transformations et de regarder les données qui sont passées entre ces transformations:







Il est également possible de cliquer sur n'importe quel flux et de voir les détails du suivi - dans combien de parallÚles la transformation a fonctionné, combien de lignes et d'octets dans lequel de les parallÚles sont chargés:







Il est possible de diviser l'exĂ©cution du graphe en phases et de marquer que certaines transformations doivent ĂȘtre effectuĂ©es en premier (en phase zĂ©ro), en suivant dans la premiĂšre phase, en suivant dans la deuxiĂšme phase, etc.



Pour chaque transformation, vous pouvez choisir la soi-disant mise en page (oĂč elle sera exĂ©cutĂ©e): sans parallĂšles ou en threads parallĂšles, dont le nombre peut ĂȘtre dĂ©fini. Dans le mĂȘme temps, les fichiers temporaires créés par Ab Initio lors du travail de transformations peuvent ĂȘtre placĂ©s Ă  la fois dans le systĂšme de fichiers du serveur et dans HDFS.



Dans chaque transformation, en fonction du modÚle par défaut, vous pouvez créer votre propre script dans le langage PDL, qui est un peu comme un shell.



Avec l'aide du langage PDL, vous pouvez étendre les fonctionnalités des transformations et, en particulier, générer dynamiquement (au moment de l'exécution) des fragments de code arbitraires en fonction des paramÚtres d'exécution.



De plus, Ab Initio a une intégration bien développée avec le systÚme d'exploitation via le shell. Plus précisément, Sberbank utilise linux ksh. Vous pouvez échanger des variables avec le shell et les utiliser comme paramÚtres de graphe. Vous pouvez appeler l'exécution des graphiques Ab Initio à partir du shell et administrer Ab Initio.



En plus d'Ab Initio GDE, la livraison comprend de nombreux autres produits. Il existe un systĂšme de coopĂ©ration qui prĂ©tend ĂȘtre appelĂ© systĂšme d'exploitation. Il y a Control> Center oĂč vous pouvez planifier et surveiller les flux de tĂ©lĂ©chargement. Il existe des produits pour faire du dĂ©veloppement Ă  un niveau plus primitif que ne le permet Ab Initio GDE.



Description du framework MDW et travail sur sa personnalisation pour GreenPlum



Avec ses produits, le fournisseur fournit le produit MDW (Metadata Driven Warehouse), qui est un configurateur de graphiques conçu pour aider aux tùches typiques de remplissage des entrepÎts de données ou des coffres de données.



Il contient des analyseurs de mĂ©tadonnĂ©es personnalisĂ©s (spĂ©cifiques au projet) et des gĂ©nĂ©rateurs de code prĂȘts Ă  l'emploi.





A l'entrée MDW reçoit un modÚle de données, un fichier de configuration pour établir une connexion à une base de données (Oracle, Teradata ou Hive) et quelques autres paramÚtres. La partie spécifique au projet, par exemple, déploie le modÚle dans la base de données. La partie encadrée du produit génÚre des graphiques et des fichiers de configuration pour eux lors du chargement des données dans les tables modÚles. Cela crée des graphiques (et des psets) pour plusieurs modes d'initialisation et un travail incrémentiel sur la mise à jour des entités.



Dans les cas Hive et RDBMS, différents graphiques d'initialisation et d'actualisation incrémentielle des données sont générés.



Dans le cas de Hive, les donnĂ©es delta entrantes sont jointes par Ab Initio Join aux donnĂ©es qui se trouvaient dans la table avant la mise Ă  jour. Les chargeurs de donnĂ©es dans MDW (Ă  la fois dans Hive et dans SGBDR) insĂšrent non seulement de nouvelles donnĂ©es du delta, mais clĂŽturent Ă©galement les pĂ©riodes de validitĂ© des donnĂ©es pour les clĂ©s primaires dont le delta a Ă©tĂ© reçu. De plus, vous devez réécrire la partie inchangĂ©e des donnĂ©es. Mais cela doit ĂȘtre fait, car Hive n'a pas d'opĂ©rations de suppression ou de mise Ă  jour.







Dans le cas du SGBDR, les graphiques de mise à jour incrémentielle des données semblent plus optimaux car les SGBDR ont de réelles capacités de mise à jour.







Le delta reçu est chargĂ© dans une table intermĂ©diaire de la base de donnĂ©es. AprĂšs cela, le delta est connectĂ© aux donnĂ©es qui Ă©taient dans la table avant la mise Ă  jour. Et cela se fait au moyen de SQL via la requĂȘte SQL gĂ©nĂ©rĂ©e. Ensuite, Ă  l'aide des commandes SQL delete + insert, de nouvelles donnĂ©es du delta sont insĂ©rĂ©es dans la table cible et les pĂ©riodes de pertinence des donnĂ©es sont fermĂ©es, selon les clĂ©s primaires dont le delta a Ă©tĂ© reçu.

Il n'est pas nécessaire de réécrire les données inchangées.



Ainsi, nous sommes arrivés à la conclusion que dans le cas de Hive, MDW devrait aller réécrire la table entiÚre, car Hive n'a pas de fonction de mise à jour. Et rien de mieux qu'une réécriture complÚte des données lorsque la mise à jour n'est pas inventée. Dans le cas du SGBDR, au contraire, les créateurs du produit ont jugé nécessaire de confier la connexion et la mise à jour des tables en utilisant SQL.



Pour un projet chez Sberbank, nous avons créé une nouvelle implémentation réutilisable du chargeur de base de données GreenPlum. Cela a été fait en fonction de la version générée par MDW pour Teradata. C'est Teradata, et non Oracle, qui est venu le mieux et le plus proche pour cela. est également un systÚme MPP. La façon de travailler, ainsi que la syntaxe de Teradata et GreenPlum, se sont avérées similaires.



Des exemples de différences critiques pour MDW entre différents SGBDR sont les suivants. Dans GreenPlum, contrairement à Teradata, lors de la création de tables, vous devez écrire une clause



distributed by


Teradata écrit



delete <table> all


, et dans GreenePlum ils écrivent



delete from <table>


Oracle écrit à des fins d'optimisation



delete from t where rowid in (< t  >)


, et Teradata et GreenPlum écrivent



delete from t where exists (select * from delta where delta.pk=t.pk)


Nous notons Ă©galement que pour qu'Ab Initio fonctionne avec GreenPlum, il Ă©tait nĂ©cessaire d'installer le client GreenPlum sur tous les nƓuds du cluster Ab Initio. En effet, nous nous sommes connectĂ©s simultanĂ©ment Ă  GreenPlum depuis tous les nƓuds de notre cluster. Et pour que la lecture depuis GreenPlum soit parallĂšle et que chaque thread Ab Initio parallĂšle lise sa propre portion de donnĂ©es depuis GreenPlum, il Ă©tait nĂ©cessaire de mettre une construction comprise par Ab Initio dans la section «oĂč» des requĂȘtes SQL



where ABLOCAL()


et déterminer la valeur de cette construction en spécifiant le paramÚtre lu dans la base de données de transformation



ablocal_expr=«string_concat("mod(t.", string_filter_out("{$TABLE_KEY}","{}"), ",", (decimal(3))(number_of_partitions()),")=", (decimal(3))(this_partition()))»


qui compile Ă  quelque chose comme



mod(sk,10)=3


, c'est à dire. vous devez indiquer à GreenPlum un filtre explicite pour chaque partition. Pour les autres bases de données (Teradata, Oracle), Ab Initio peut effectuer cette parallélisation automatiquement.



Caractéristiques de performances comparatives d'Ab Initio pour travailler avec Hive et GreenPlum



Une expĂ©rience a Ă©tĂ© menĂ©e Ă  la Sberbank pour comparer les performances des graphes gĂ©nĂ©rĂ©s par MDW par rapport Ă  Hive et par rapport Ă  GreenPlum. Dans le cadre de l'expĂ©rience, dans le cas de Hive, il y avait 5 nƓuds sur le mĂȘme cluster qu'Ab Initio, et dans le cas de GreenPlum, il y avait 4 nƓuds sur un cluster sĂ©parĂ©. Ceux. Hive avait un avantage matĂ©riel par rapport Ă  GreenPlum.



Nous avons examinĂ© deux paires de graphiques qui effectuent la mĂȘme tĂąche de mise Ă  jour des donnĂ©es dans Hive et GreenPlum. Les graphiques gĂ©nĂ©rĂ©s par le configurateur MDW ont Ă©tĂ© lancĂ©s:



  • initialisation de la charge + chargement incrĂ©mentiel de donnĂ©es gĂ©nĂ©rĂ©es alĂ©atoirement dans la table Hive
  • initialisation de la charge + chargement incrĂ©mentiel de donnĂ©es gĂ©nĂ©rĂ©es alĂ©atoirement dans la mĂȘme table GreenPlum


Dans les deux cas (Hive et GreenPlum) ont lancĂ© des tĂ©lĂ©chargements dans 10 threads parallĂšles sur le mĂȘme cluster Ab Initio. Ab Initio a enregistrĂ© des donnĂ©es intermĂ©diaires pour les calculs en HDFS (en termes d'Ab Initio, la mise en page MFS utilisant HDFS a Ă©tĂ© utilisĂ©e). Une ligne de donnĂ©es gĂ©nĂ©rĂ©es alĂ©atoirement occupait 200 octets dans les deux cas.



Le résultat est comme ceci:



Hive:

Initialisation du chargement dans Hive
Lignes insérées 6 000 000 60 000 000 600 000 000
Durée de l'initialisation de la

charge en secondes
41 203 1 601
Chargement incrémentiel dans Hive
Le nombre de lignes dans la

table cible au début de l'expérience
6 000 000 60 000 000 600 000 000
Nombre de lignes delta appliquées à la

table cible pendant le test
6 000 000 6 000 000 6 000 000
Durée de

téléchargement incrémentielle en secondes
88 299 2541


GreenPlum:

GreenPlum
6 000 000 60 000 000 600 000 000


72 360 3 631
GreenPlum
,

6 000 000 60 000 000 600 000 000
,

6 000 000 6 000 000 6 000 000


159 199 321


Nous voyons que la vitesse d'initialisation du téléchargement dans Hive et GreenPlum dépend linéairement de la quantité de données et, pour des raisons de meilleur matériel, elle est un peu plus rapide pour Hive que pour GreenPlum.



Le chargement incrémentiel dans Hive dépend également de maniÚre linéaire de la quantité de données précédemment chargées dans la table cible et est plutÎt lent à mesure que la quantité augmente. Cela est dû à la nécessité d'écraser complÚtement la table cible. Cela signifie que l'application de petites modifications à d'énormes tables n'est pas un bon cas d'utilisation pour Hive.



Le chargement incrémentiel dans GreenPlum dépend faiblement de la quantité de données précédemment chargées disponibles dans la table cible et est assez rapide. Cela s'est produit grùce aux jointures SQL et à l'architecture GreenPlum, qui permet l'opération de suppression.



Ainsi, GreenPlum injecte delta à l'aide de la méthode delete + insert, tandis que Hive n'a pas d'opérations de suppression ou de mise à jour, de sorte que l'ensemble du tableau de données a été forcé de réécrire l'ensemble du tableau de données lors d'une mise à jour incrémentielle. La plus indicative est la comparaison des cellules mises en évidence en gras, car elle correspond à la variante la plus fréquente du fonctionnement des téléchargements gourmands en ressources. On voit que GreenPlum a gagné 8 fois sur Hive dans ce test.



Ab Initio avec GreenPlum en temps quasi réel



Dans cette expérience, nous testerons la capacité d'Ab Initio à mettre à jour la table GreenPlum avec des morceaux de données générés aléatoirement en temps quasi réel. Prenons la table GreenPlum dev42_1_db_usl.TESTING_SUBJ_org_finval, avec laquelle nous allons travailler.



Nous utiliserons trois graphiques Ab Initio pour travailler avec lui:



1) Graphique Create_test_data.mp - crĂ©e des fichiers avec des donnĂ©es en HDFS pour 6 000 000 lignes dans 10 flux parallĂšles. Les donnĂ©es sont alĂ©atoires, leur structure est organisĂ©e pour ĂȘtre











insérée dans notre table 2) Graphique mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset - graphique MDW généré pour l'initialisation de l'insertion de données dans notre table en 10 threads parallÚles (les données de test générées par le graphique (1) sont utilisées)







3) Graphique mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset - Graphique généré par MDW pour la mise à jour incrémentielle de notre table dans 10 threads parallÚles en utilisant une partie de nouvelles données entrantes (delta) générées par le graphique (1)







Exécutons le script suivant en mode NRT:



  • gĂ©nĂ©rer 6 000 000 lignes de test
  • faire l'initialisation de la charge insĂ©rer 6 000 000 lignes de test dans une table vide
  • rĂ©pĂ©ter 5 fois le tĂ©lĂ©chargement incrĂ©mentiel



    • gĂ©nĂ©rer 6 000 000 lignes de test
    • faire une insertion incrĂ©mentielle de 6 000 000 lignes de test dans la table (dans ce cas, les anciennes donnĂ©es sont marquĂ©es de l'heure d'expiration valid_to_ts et des donnĂ©es plus rĂ©centes avec la mĂȘme clĂ© primaire sont insĂ©rĂ©es)


Un tel scénario émule le mode de fonctionnement réel d'un certain systÚme d'entreprise - une assez grande partie de nouvelles données apparaßt en temps réel et se déverse immédiatement dans GreenPlum.



Voyons maintenant le journal du script:



Démarrez Create_test_data.input.pset à 2020-06-04 11:49:11

Terminez Create_test_data.input.pset Ă  2020-06-04 11:49:37

Démarrez mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset à 2020-06-04 11:49:37

Terminer mdw_load.day_one.current.dev42_1_db_usl_testing_subj_org_finval.pset Ă  2020-06-04 11:50:42

Démarrer Create_test_data.input.pset à 2020-06-04 11:50:42

Terminer Create_test_data.input.pset Ă  2020-06-04 11:51:06

Démarrer mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset à 2020-06-04 11:51:06

Finish mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 11:53:41

Start Create_test_data.input.pset at 2020-06-04 11:53:41

Finish Create_test_data.input.pset at 2020-06-04 11:54:04

Start mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 11:54:04

Finish mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 11:56:51

Start Create_test_data.input.pset at 2020-06-04 11:56:51

Finish Create_test_data.input.pset at 2020-06-04 11:57:14

Start mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 11:57:14

Finish mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset at 2020-06-04 11:59:55

Commencez Create_test_data.input.pset Ă  2020-06-04 11:59:55

Terminez Create_test_data.input.pset Ă  2020-06-04 12:00:23

Démarrez mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset à 2020-06-04 12:00:23

Terminer mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset Ă  2020-06-04 12:03:23

Démarrer Create_test_data.input.pset à 2020-06-04 12:03:23

Terminer Create_test_data.input.pset Ă  2020-06-04 12:03:49

Début mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset à 2020-06-04 12:03:49

Terminer mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset Ă  2020-06-04 12:03:49 Terminer mdw_load.regular.current.dev42_1_db_usl_testing_subj_org_finval.pset Ă  2020-06-04 12:03:49 : 46 L'




image ressemble Ă  ceci:

Graphique Heure de début Heure de fin Longueur
Create_test_data.input.pset 06/04/2020 11:49:11 06/04/2020 11:49:37 00:00:26
mdw_load.day_one.current.

dev42_1_db_usl_testing_subj_org_finval.pset
06/04/2020 11:49:37 06/04/2020 11:50:42 00:01:05
Create_test_data.input.pset 06/04/2020 11:50:42 06/04/2020 11:51:06 00:00:24
mdw_load.regular.current.

dev42_1_db_usl_testing_subj_org_finval.pset
06/04/2020 11:51:06 06/04/2020 11:53:41 00:02:35
Create_test_data.input.pset 06/04/2020 11:53:41 06/04/2020 11:54:04 00:00:23
mdw_load.regular.current.

dev42_1_db_usl_testing_subj_org_finval.pset
06/04/2020 11:54:04 06/04/2020 11:56:51 00:02:47
Create_test_data.input.pset 06/04/2020 11:56:51 06/04/2020 11:57:14 00:00:23
mdw_load.regular.current.

dev42_1_db_usl_testing_subj_org_finval.pset
06/04/2020 11:57:14 04/06/2020 11:59:55 00:02:41
Create_test_data.input.pset 04/06/2020 11:59:55 06/04/2020 12:00:23 00:00:28
mdw_load.regular.current.

dev42_1_db_usl_testing_subj_org_finval.pset
06/04/2020 12:00:23 04.06.2020 12:03:23 00:03:00
Create_test_data.input.pset 04.06.2020 12:03:23 04.06.2020 12:03:49 00:00:26
mdw_load.regular.current.

dev42_1_db_usl_testing_subj_org_finval.pset
04.06.2020 12:03:49 04.06.2020 12:06:46 00:02:57


On voit que 6 000 000 de lignes incrémentielles sont traitées en 3 minutes, ce qui est assez rapide.

Les donnĂ©es de la table cible se sont avĂ©rĂ©es ĂȘtre rĂ©parties comme suit:

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;




Vous pouvez voir la correspondance des données insérées avec les moments du lancement du graphique.

Cela signifie que vous pouvez démarrer le chargement incrémentiel des données dans GreenPlum dans Ab Initio avec une fréquence trÚs élevée et observer une vitesse élevée d'insertion de ces données dans GreenPlum. Bien sûr, il ne sera pas possible de démarrer une fois par seconde, car Ab Initio, comme tout outil ETL, met du temps à «basculer» au démarrage.



Conclusion



DĂ©sormais, Ab Initio est utilisĂ© dans Sberbank pour construire la couche de donnĂ©es sĂ©mantique unifiĂ©e (ESS). Ce projet consiste Ă  construire une version unique de l'Ă©tat des diffĂ©rentes entitĂ©s bancaires. Les informations proviennent de diverses sources, dont des rĂ©pliques sont prĂ©parĂ©es sur Hadoop. En fonction des besoins de l'entreprise, un modĂšle de donnĂ©es est prĂ©parĂ© et les transformations de donnĂ©es sont dĂ©crites. Ab Initio tĂ©lĂ©charge des informations sur l'ECC et les donnĂ©es chargĂ©es ne prĂ©sentent pas seulement un intĂ©rĂȘt pour l'entreprise en soi, mais servent Ă©galement de source pour la crĂ©ation de data marts. Dans le mĂȘme temps, la fonctionnalitĂ© du produit vous permet d'utiliser divers systĂšmes (Hive, Greenplum, Teradata, Oracle) en tant que rĂ©cepteur, ce qui permet de prĂ©parer sans effort des donnĂ©es pour l'entreprise dans les diffĂ©rents formats dont elle a besoin.



Les capacitĂ©s d'Ab Initio sont larges, par exemple, le cadre MDW inclus permet de crĂ©er des donnĂ©es historiques techniques et commerciales prĂȘtes Ă  l'emploi. Pour les dĂ©veloppeurs, Ab Initio donne la possibilitĂ© de «ne pas rĂ©inventer la roue», mais d'utiliser de nombreux composants fonctionnels disponibles, qui sont en fait des bibliothĂšques nĂ©cessaires pour travailler avec des donnĂ©es.



L'auteur est un expert de la communauté professionnelle de Sberbank SberProfi DWH / BigData. La communauté professionnelle SberProfi DWH / BigData est responsable du développement des compétences dans des domaines tels que l'écosystÚme Hadoop, Teradata, Oracle DB, GreenPlum, ainsi que les outils BI Qlik, SAP BO, Tableau, etc.



All Articles