<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dans la tête de Doc Malkovich &#187; datastage</title>
	<atom:link href="https://blog.developpez.com/jmalkovich/pcategory/etl/datastage/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/jmalkovich</link>
	<description>Réflexions et humeurs sur la Business Intelligence</description>
	<lastBuildDate>Tue, 26 Aug 2014 11:54:41 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Retour d&#8217;expérience sur &#8230; Datastage</title>
		<link>https://blog.developpez.com/jmalkovich/p8862/etl/retour_d_experience_sur_datastage</link>
		<comments>https://blog.developpez.com/jmalkovich/p8862/etl/retour_d_experience_sur_datastage#comments</comments>
		<pubDate>Fri, 23 Apr 2010 12:38:03 +0000</pubDate>
		<dc:creator><![CDATA[doc malkovich]]></dc:creator>
				<category><![CDATA[datastage]]></category>
		<category><![CDATA[etl]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Datastage fait partie de la suite WebSphere d’IBM ( maintenant Infosphere ), il fait partie des principaux ETL adoptés chez les grands comptes. Il possède son propre moteur de traitement ( Engine-based ), ainsi que son propre référentiel. La version &#8230; <a href="https://blog.developpez.com/jmalkovich/p8862/etl/retour_d_experience_sur_datastage">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Datastage fait partie de la suite WebSphere d’IBM ( maintenant Infosphere ), il fait partie des principaux ETL adoptés chez les grands comptes. Il possède son propre moteur de traitement ( Engine-based ), ainsi que son propre référentiel.</p>
<p>La version max que je connais est la 7.5.2</p>
<p>Un exemple de job :<br />
<img src="http://blog.developpez.com/media/job4_0.gif" width="394" height="242" alt="Alimentation d'une table Oracle à partir d'une autre table Oracle en effectuant une jointure avec un fichier texte en référence" /><br />
<em>( Alimentation d&rsquo;une table Oracle à partir d&rsquo;une autre table Oracle en effectuant une jointure avec un fichier texte en référence )</em></p>
<p><strong>Les + :</strong></p>
<ul>
<li>graphiquement attractif &#8211; de jolis dessins en 3d</li>
<li>on voit le cheminement/flux de la donnée ( sources/cibles, les différents traitements : tri, agrégation )</li>
<li>pas besoin de connaitre le SGBD ( fonctions sql, procédures )</li>
<li>les fichiers hash pour dédoublonner en ne gardant que le dernier enregistrement</li>
<li>les variables dans les transformer pour comparer avec les valeurs de la ligne précédente</li>
</ul>
<p><strong>Les &#8211; :</strong></p>
<ul>
<li>boîte noire &#8211; on ne sait pas trop comment il fonctionne</li>
<li>un nouveau langage à apprendre même s&rsquo;il est estampillé basic &#8230;</li>
<li>les performances sont vite dégradées sur de grosses volumétries, car il fonctionne en mode curseur ( ligne par ligne )</li>
<li>analyse d&rsquo;impact peu poussée</li>
<li>limites du basic</li>
</ul>
<p>Le plus gros point faible pour moi concerne les performances. En effet on est vite amenés à tout coder en sql notamment pour les tris, les agrégations et les jointures. On se retrouve alors avec des jobs assez simples ( 3 stages : une source avec un sql complexe, un mapping et une cible )<br />
Pour l&rsquo;analyse d&rsquo;impact, le lien avec les métadonnées est perdu lors du développement. Par exemple, on importe la structure d&rsquo;une table T dans le référentiel, on crée un job et en source on prend la table T dont on importe la structure depuis le référentiel. Mais il n&rsquo;y a pas de lien entre le job et la métadonnée dans le référentiel, si on change la structure de T dans les métadonnées il n&rsquo;y a pas d&rsquo;alerte sur le job qu&rsquo;on a créé !!!<br />
L&rsquo;analyse d&rsquo;impact se fait alors principalement par mot clé, ce qui pose problème avec des mots clés bateau qu&rsquo;on retrouve partout !!!<br />
Pour le basic, d&rsquo;accord on est indépendant du SGBD mais on a un nouveau langage avec toutes ses subtilités.<br />
Par exemple, pour extraire une chaine :<br />
<code class="codecolorer text default"><span class="text">toto[4] &nbsp;= les 4 derniers caractère du champ toto</span></code></p>
<p>pour avoir la date système au format DD/MM/YYYY HH24:MI:SS d&rsquo;Oracle :<br />
<code class="codecolorer text default"><span class="text">OCONV(Date(),&quot;D-YMD[4,2,2]&quot;):&quot; &quot;:Oconv(time(), &quot;MTS&quot;)</span></code></p>
<p>D&rsquo;autre part, certaines fonctions/opérateurs très pratiques ne sont pas écrites comme le NVL, BETWEEN, IN &#8230;<br />
C&rsquo;est dommage, car certains aspects du BASIC Datastage sont séduisants, comme l&rsquo;utilisation indifférente des &nbsp;&raquo; ou des &lsquo; pour définir une chaîne de caractères<br />
( on peut écrire <code class="codecolorer text default"><span class="text">&quot;toto&quot;, 'toto', &quot;aujourd'hui&quot;</span></code> ou <code class="codecolorer text default"><span class="text">'des &quot;guillemets&quot;'</span></code> )</p>
<p><strong>Pbs courants :</strong></p>
<ul>
<li>obligation de trier les colonnes dans un stage Aggregate &#8230; sinon plantage &#8230;</li>
<li>pbs de mémoire lorsqu&rsquo;on utilise le stage de tri &#8230;<br />
  &#8211;> on trie et on somme en sql <img src="https://blog.developpez.com/jmalkovich/wp-includes/images/smilies/icon_sad.gif" alt=":-(" class="wp-smiley" /></li>
<li>le fichier hash dédoublonne sans prévenir &#8230;<br />
  &#8211;> alertes non remontées<br />
Par exemple, on récupère les noms à partir d&rsquo;un login, mais on a une évolution en source qui fait qu&rsquo;on peut avoir différents noms pour 1 login<br />
En utilisant le fichier hash, on récupère un des noms &#8230; mais pas forcément le bon &#8230; et ce n&rsquo;est pas remonté &#8230;<br />
En récupérant le nom via une requête, on aurait des doublons en entrée &#8211;> plantage<br />
  Il faut donc toujours mettre une contrainte d&rsquo;unicité en base sur les clés des fichiers hash pour éviter ce pb.</li>
<li>pas de remontée/warning des lignes non mises à jour<br />
  ex : un job traite une volumétrie de 100 000 lignes, mais aucune ligne n&rsquo;est mise à jour<br />
  &#8211;> il n&rsquo;y a aucune remontée, le job semble avoir maj les 100 000 lignes</li>
<li>pb ETL : il faut être vigilant qu&rsquo;on fonctionne en mode curseur<br />
  &#8211;> si on a un traitement qui met à jour les dossiers, et en entrée 10 fois le même dossier, on aura 10 mises à jour de la même ligne, sans remontée d&rsquo;alerte !!!</li>
</ul>
<p><strong>Pbs énervants :</strong></p>
<ul>
<li>renommage colonne en amont &#8211;> il faut tout changer en aval <img src="https://blog.developpez.com/jmalkovich/wp-includes/images/smilies/icon_sad.gif" alt=":-(" class="wp-smiley" /></li>
<li>les messages d&rsquo;erreur laconiques ( pb des phantom &#8230; ), où on passe des heures à débuguer ligne par ligne pour trouver ce qui ne va vraiment pas !<br />
&#8211;> notamment sur les routines, quand on a du null en argument &#8230;</li>
</ul>
<p><strong>Quelques conseils :</strong></p>
<ul>
<li>résister à l&rsquo;envie d&rsquo;écrire un seul &laquo;&nbsp;gros&nbsp;&raquo; job qui fait tout ( même si c&rsquo;est possible ). Il vaut mieux écrire des jobs &laquo;&nbsp;basiques&nbsp;&raquo;, avec le minimum de stages &#8211; c&rsquo;est plus simple à maintenir et à tester</li>
<li>éviter les stages tri et agrégat, ils amènenent souvent leurs lots d&rsquo;erreurs incompréhensibles</li>
<li>les stages folder et rowsplitter donnent envie quand on a plusieurs fichiers à traiter, mais ils ne sont vraiement pas pratiques à débuguer &#8211; pensez à votre prochain, rester aux stages simples de fichier &#8230;</li>
</ul>
<p><strong>En conclusion :</strong><br />
Au début on trouve l&rsquo;application géniale, c&rsquo;est quand même plus sympa que les tristounets scripts sql lancés en batch&#8230; Et on déchante assez vite devant les performances et les problèmes rencontrés &#8230; Du coup on simplifie les jobs au maximum et on met tous les traitements dans les sql &#8230; en se demandant si on n&rsquo;écrirait pas à la place des scripts sql qui seraient plus performants !!!</p>
<p>Pour moi Datastage fait partie des &laquo;&nbsp;anciennes&nbsp;&raquo; générations d&rsquo;ETL qui n&rsquo;ont pas vraiment su se renouveler.<br />
La montée en version n&rsquo;a pas apporté grand chose, à part un lifting graphique réussi.<br />
La version 8 ne me semble pas plus innovatrice, IBM répondant au problème de performance avec du parralélisme &#8230; De plus l&rsquo;offre devient plus floue, avec 2 versions de Datastage ( PX et Server ) dont celle correspondant à l&rsquo;ancienne qui n&rsquo;évolue plus !!!</p>
<p>Je lui préfère SunopsiS/ODI ou Talend pour les raisons que j&rsquo;expliquerais plus tard dans un autre article ..</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Enquête Gartner : Les utilisateurs jugent les éditeurs de BI et leurs plates-formes</title>
		<link>https://blog.developpez.com/jmalkovich/p8757/oracle/enquete_gartner_les_utilisateurs_jugent_</link>
		<comments>https://blog.developpez.com/jmalkovich/p8757/oracle/enquete_gartner_les_utilisateurs_jugent_#comments</comments>
		<pubDate>Thu, 25 Mar 2010 10:31:10 +0000</pubDate>
		<dc:creator><![CDATA[doc malkovich]]></dc:creator>
				<category><![CDATA[business objects]]></category>
		<category><![CDATA[datastage]]></category>
		<category><![CDATA[etl]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[talend]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Un article intéressant sur le site du grand bi : L&#8217;enquête Gartner incendie pour une fois les grands éditeurs comme SAP/BO, Oracle ou IBM sur les problèmes remontés par les utilisateurs &#8230; Certes, on pourra critiquer ces résultats en supposant &#8230; <a href="https://blog.developpez.com/jmalkovich/p8757/oracle/enquete_gartner_les_utilisateurs_jugent_">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Un article intéressant sur le site du grand bi :<br />
<a href="http://www.legrandbi.com/2010/03/enquete-gartner-les-utilisateurs-jugent-les-editeurs-de-bi-et-leurs-plates-formes/#more-3225"></p>
<p>L&rsquo;enquête Gartner incendie pour une fois les grands éditeurs comme SAP/BO, Oracle ou IBM sur les problèmes remontés par les utilisateurs &#8230;<br />
Certes, on pourra critiquer ces résultats en supposant que le nombre de problèmes est aussi fonction du nombre d&rsquo;utilisateurs &#8211; et comme peu de monde dans l&rsquo;entreprise utilisent les produits gagnants de l&rsquo;enquête &#8211; qui utilise Tableau Software ?<br />
Mais c&rsquo;est une avancée &#8230;<br />
</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conversion Datastage &#8211; Talend</title>
		<link>https://blog.developpez.com/jmalkovich/p8754/etl/conversion_datastage_talend</link>
		<comments>https://blog.developpez.com/jmalkovich/p8754/etl/conversion_datastage_talend#comments</comments>
		<pubDate>Wed, 24 Mar 2010 13:33:14 +0000</pubDate>
		<dc:creator><![CDATA[doc malkovich]]></dc:creator>
				<category><![CDATA[datastage]]></category>
		<category><![CDATA[etl]]></category>
		<category><![CDATA[talend]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[J&#8217;ai récemment étudié l&#8217;outil de conversion Datastage &#8211; Talend qu&#8217;on trouve sur Les jobs simples ( 1 source, 1 cible et 1 transformer entre 2 ) sont bien convertis, mais les jobs plus complexes nécessitent certaines modifications &#8230; Je n&#8217;ai &#8230; <a href="https://blog.developpez.com/jmalkovich/p8754/etl/conversion_datastage_talend">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>J&rsquo;ai récemment étudié l&rsquo;outil de conversion Datastage &#8211; Talend qu&rsquo;on trouve sur <a href="http://sourceforge.net/projects/etlconverter/files/"></p>
<p>Les jobs simples ( 1 source, 1 cible et 1 transformer entre 2 ) sont bien convertis, mais les jobs plus complexes nécessitent certaines modifications &#8230;<br />
Je n&rsquo;ai ni le temps, ni la place pour exposer tout ça ici, mais je planche là-dessus pour donner plus de détails + tard !<br />
</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
