Impressions sur talend big data
Alors, un article de blog très conjectural, sans trop donner de fait, mais pour parler de talend big data comme complément de spark, ou l'inverse.
Présentation
Talend Big Data est un ETL qui contient des composants big data. Vous prenez des composants déjà écrits, et vous les reliez entre eux comme ça :
Comme Talend a déjà pensé à tout, vous pouvez personnaliser en fonction des environnements (notion de contexte) et vous pouvez écrire du Java dans des composants (tjava). Pour un composant JDBC, par exemple, vous précisez la requête et les méta données (les colonnes et les types) et vous avez un composant source qui va lire de la donnée. Voici un exemple coté GUI de ce qu'on va vous demander de mettre comme information pour lire une table en Hive (à commencer bien sûr par le nom de la table). Vous avez le contexte qui est une sorte de variable statique par job.
Comme vous avez des composants de transformation (des maps) et des composants d'écriture (par exemple dans un fichier). Développer devient donc essentiellement déplacer des cases sur une palette, personnaliser les éléments du composant (par exemple le path d'un composant tfileinput qui lit un fichier) et les relier avec des flêches. C'est ludique comme tout, et si mon client a fait ce choix, c'est pour deux raisons :
- c'est tellement simple à apprendre qu'une personne est opérationnelle en peu de temps
- la plupart de ses jobs sont des déplacements de données faibles en volumes, avec des transformations somme toute triviales (dégager des guillemets, petits calculs pas violents)
Donc, pour mon client, ça permet de se concentrer sur la valeur métier. Et ça, le métier aime. Pour le déployer, c'est un clic droit (ou gauche), deux éléments à cliquer, et vous avez un énorme zip qui contient du code java, les jars nécessaires à l'exécution, la configuration, etc. L'administration se fait via une TAC (Talend Administration Console) qui vous permet de voir le statut des jobs, éventuellement de les ordonnancer, et surtout de voir les logs ou erreurs. Attention à un aspect primordial et contre intuitif : un job talend utilise le cluster pour des traitements big data mais ne va pas lui même tourner sur le cluster. Il est lancé en tant que JVM indépendante, potentiellement sur une machine qui a accès au cluster mais qui n'est pas du cluster.
Avantages et inconvénients
Les avantages sont les suivants, à mon avis :
- vous développez à toute vitesse. Une nouvelle personne dans l'équipe rentre dans le code en deux temps trois mouvements, et elle est souvent séduite par la partie visuelle.
- les tarifs sont abordables, mais je ne peux pas m'étendre sur le sujet (confidentialité client)
- Les performances sont bonnes pour des petits jobs, ce qui est le cas de mon client
Les inconvénients sont :
- La mise en place de tests unitaires est particulièrement laborieuse : jobs à part ? Contexte à part ?
- Le code généré est celui qui va s'exécuter, donc pour faire le lien entre un composant et la ligne 17823 qui sort une null pointer exception, ce n'est pas facile. Le code généré est lisible avec de l'expérience, mais pas non plus agréable. En fait, c'est un peu ce qui rend pénible le debug.
- C'est lassant. C'est un vrai problème pour l'équipe qui connait un très fort turn over. Mais prendre des bacs + 5 expérimentés pour leur faire déplacer des cases et des flèches toute la journée, c'est du gâchis. Et avec la demande sur les profils expérimentés big data, les voilà tou-te-s parti-e-s se régaler à faire du spark ailleurs. Si vous voulez vendre une mission avec du talend, il faudra viser du très junior.
Talend vs Spark ?
Et en toute logique, se pose la question de savoir quoi préférer : Talend ou Spark ? Mon client et moi sommes d'accord pour dire : Spark avec parcimonie pour ne pas tuer le cluster sous le poids de jobs hyper gourmands, et les jobs les plus simples en talend. Spark et sa vitesse, mais qui a la mauvaise habitude de prendre une RAM absolument colossale, est utile pour les gros volumes. Par gros volumes, je veux dire ce qui ne rentre pas sur une seule VM, ce qui est le défaut majeur de talend pour le big data. Pour les petits jobs, Talend a l'avantage d'avoir sur le cluster une empreinte minime, ce qui est tout à son avantage.
-
Categories
-
Articles
- juillet 2018
- mai 2018
- mars 2018
- février 2018
- janvier 2018
- décembre 2017
- octobre 2017
- juin 2017
- mai 2017
- avril 2017
- mars 2017
- février 2017
- décembre 2016
- novembre 2016
- septembre 2016
- août 2016
- juillet 2016
- juin 2016
- avril 2016
- février 2016
- janvier 2016
- décembre 2015
- octobre 2015
- septembre 2015
- août 2015
- juin 2015
- mai 2015
- avril 2015
- mars 2015
- février 2015
- janvier 2015
- décembre 2014
- novembre 2014
- septembre 2014
- août 2014
- juillet 2014
- juin 2014
- mai 2014
- avril 2014
- mars 2014
- janvier 2014
- décembre 2013
- août 2013
- juillet 2013
- juin 2013
- mai 2013
- février 2013
- janvier 2013
- décembre 2012
- novembre 2012
- septembre 2012
- août 2012
- juillet 2012
- juin 2012
- mai 2012
- février 2012
- janvier 2012
- décembre 2011
- novembre 2011
-
Calendar
février 2019 L M M J V S D « Juil 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 -
Meta