Toute opération sur de grandes données nécessite de puissantes capacités de calcul. Le simple transfert de données d'une base vers Hadoop peut prendre des semaines ou coûter autant qu'une aile d'avion. Vous ne voulez pas attendre et dépenser ? Équilibrez la charge sur différentes plateformes. L'une des méthodes consiste à utiliser l'optimisation par pushdown.
J'ai demandé au principal entraîneur en Russie pour le développement et l'administration des produits Informatica, Alexey Ananyev, de parler de la fonction d'optimisation par pushdown dans Informatica Big Data Management (BDM). Si vous avez déjà appris à travailler avec les produits Informatica, c'est probablement Alexey qui vous a enseigné les bases de PowerCenter et expliqué comment construire des mappings.
Alexey Ananyev, responsable de la formation chez DIS Group
Qu'est-ce que le pushdown ?
Beaucoup d'entre vous connaissent déjà Informatica Big Data Management (BDM). Ce produit peut intégrer de grandes données provenant de différentes sources, les déplacer entre divers systèmes, en assurer un accès facile, les profiler et bien plus encore.
Entre de bonnes mains, BDM peut faire des merveilles : les tâches seront exécutées rapidement et avec un minimum de ressources informatiques.
Vous souhaitez faire de même ? Apprenez à utiliser la fonction de pushdown dans BDM pour répartir la charge de calcul entre différentes plateformes. La technologie de pushdown permet de transformer un mapping en script et de choisir l'environnement dans lequel ce script sera exécuté. La possibilité de ce choix permet de combiner les forces de différentes plateformes et d'atteindre leur performance maximale.
Pour configurer l'environnement d'exécution du script, il faut choisir le type de pushdown. Le script peut être complètement exécuté sur Hadoop ou réparti partiellement entre la source et le récepteur. Il y a 4 types possibles de pushdown. Le mapping peut rester sous forme de script (native). Le mapping peut être exécuté principalement sur la source (source) ou entièrement sur la source (full). Le mapping peut également être transformé en script Hadoop (none).
Optimisation par pushdown
Les 4 types énumérés peuvent être combinés de différentes manières pour optimiser le pushdown en fonction des besoins spécifiques du système. Par exemple, il est souvent plus judicieux d'extraire des données de la base de données en utilisant ses propres capacités. Et de transformer les données avec Hadoop, afin de ne pas surcharger la base elle-même.
Considérons un cas où à la fois la source et le récepteur se trouvent dans la base de données, et où la plateforme d'exécution des transformations peut être choisie : selon les paramètres, il s'agira d'Informatica, d'un serveur de base de données ou de Hadoop. Cet exemple permettra de comprendre au mieux l'aspect technique de ce mécanisme. Bien sûr, dans la réalité, une telle situation ne se présente pas, mais elle convient parfaitement pour démontrer la fonctionnalité.
Prenons un mappage pour lire deux tables dans une base de données Oracle unique. Les résultats de la lecture seront écrits dans une table de cette même base. Le schéma du mappage sera le suivant :

Voici à quoi cela ressemble en tant que mappage sur Informatica BDM 10.2.1 :

Type pushdown – natif
Si nous choisissons le type pushdown natif, le mappage sera exécuté sur le serveur Informatica. Les données seront lues depuis le serveur Oracle, transférées sur le serveur Informatica, transformées là-bas et envoyées dans Hadoop. En d'autres termes, nous obtiendrons un processus ETL classique.
Type pushdown – source
En choisissant le type source, nous avons la possibilité de répartir notre processus entre serveur les bases de données (BD) et Hadoop. Lors de l'exécution du processus avec ce paramètre, des requêtes pour extraire des données des tables seront envoyées vers la base. Le reste sera effectué sous forme d'étapes sur Hadoop.
Le schéma d'exécution sera le suivant :

Ci-dessous se trouve un exemple de configuration de l'environnement d'exécution.

Dans ce cas, le mappage sera exécuté en deux étapes. Dans ses paramètres, nous verrons qu'il s'est transformé en un script qui sera envoyé à la source. De plus, la combinaison des tables et la transformation des données seront effectuées sous la forme d'une requête redéfinie à la source.
Sur l'image ci-dessous, nous voyons un mappage optimisé sur BDM, et à la source, une requête redéfinie.

Le rôle de Hadoop dans cette configuration sera de gérer le flux de données – de les orchestrer. Le résultat de la requête sera envoyé dans Hadoop. Après la lecture, le fichier de Hadoop sera enregistré dans le récepteur.
Type pushdown – complet
En choisissant le type complet, le mappage se transforme entièrement en requête vers la base de données. Et le résultat de la requête sera envoyé vers Hadoop. Le schéma de ce processus est présenté ci-dessous.

Un exemple de configuration est présenté ci-dessous.

En conséquence, nous obtiendrons un mappage optimisé similaire au précédent. La seule différence réside dans le fait que toute la logique est transférée au récepteur sous la forme de redéfinition de son insertion. Un exemple de mappage optimisé est présenté ci-dessous.

Ici, comme dans le cas précédent, Hadoop joue le rôle de chef d'orchestre. Mais ici, la lecture de la source se fait entièrement, et ensuite, au niveau du récepteur, la logique de traitement des données s'applique.
Type pushdown – null
Et le dernier cas – le type pushdown, dans le cadre duquel notre mappage se transformera en script sur Hadoop.
Le mappage optimisé va maintenant ressembler à ceci :

Ici, les données des fichiers sources seront d'abord lues sur Hadoop. Ensuite, ces deux fichiers seront fusionnés à l'aide de ses propres outils. Après cela, les données seront transformées et exportées vers la base de données.
En comprenant les principes de l'optimisation pushdown, il est possible d'organiser très efficacement de nombreux processus de travail avec de grandes données. Récemment, une grande entreprise a réussi à exporter depuis son entrepôt vers Hadoop de grandes données, collectées pendant plusieurs années, en seulement quelques semaines.
Source : habr.com
