<?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>Blog Homsys &#187; chargement en bloc</title>
	<atom:link href="http://blog.homsys.com/tag/chargement-en-bloc/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.homsys.com</link>
	<description>Business Intelligence</description>
	<lastBuildDate>Fri, 10 Feb 2012 16:31:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Utilisation de la tâche de chargement en bloc sous SSIS</title>
		<link>http://blog.homsys.com/trucs-astuces/utilisation-de-la-tache-de-chargement-en-bloc-sous-ssis</link>
		<comments>http://blog.homsys.com/trucs-astuces/utilisation-de-la-tache-de-chargement-en-bloc-sous-ssis#comments</comments>
		<pubDate>Mon, 05 Oct 2009 17:21:00 +0000</pubDate>
		<dc:creator>Alexis Sacksteder</dc:creator>
				<category><![CDATA[Trucs & astuces]]></category>
		<category><![CDATA[bulk insert]]></category>
		<category><![CDATA[chargement en bloc]]></category>
		<category><![CDATA[SSIS]]></category>

		<guid isPermaLink="false">http://blog.homsys.com/?p=43</guid>
		<description><![CDATA[La tâche SSIS (Microsoft SQL Server Integration Services) de chargement en bloc est utile pour charger un fichier plat dans une table d’une base de données dans les 2 cas suivants:

Le chargement d’un fichier volumineux
Le chargement d’un fichier à champs fixes contenant un nombre de colonnes important (ce qui permet un gain de temps non [...]]]></description>
			<content:encoded><![CDATA[<p>La tâche SSIS (Microsoft SQL Server Integration Services) de chargement en bloc est utile pour charger un fichier plat dans une table d’une base de données dans les 2 cas suivants:</p>
<ul>
<li>Le chargement d’un fichier volumineux</li>
<li>Le chargement d’un fichier à champs fixes contenant un nombre de colonnes important (ce qui permet un gain de temps non négligeable en phase de développement)</li>
</ul>
<p style="text-align: center"><img class="aligncenter" style="border-bottom: 0px;border-left: 0px;float: none;margin-left: auto;border-top: 0px;margin-right: auto;border-right: 0px" src="http://blog.homsys.com/wordpress/wp-content/uploads/2009/10/clip_image002_thumb.jpg" border="0" alt="clip_image002" width="153" height="56" /></p>
<p align="center"><span style="color: #808080">Tâche d’insertion en bloc</span></p>
<ul> Son utilisation n’étant pas toujours triviale, voici une description des différentes étapes à suivre :</p>
<p><a href="http://blog.homsys.com/wordpress/wp-content/uploads/2009/10/clip_image002.jpg"></a></p>
<li>1) Création d’une connexion vers le fichier texte à charger</li>
<li>2) Utilisation de la tâche d’insertion en bloc (présente dans le flux de contrôle)</li>
<li>3) Paramétrage de l’onglet Connexion de la tâche d’insertion en bloc</li>
<li>4) Paramétrage de l’onglet Options de la tâche d’insertion en bloc</li>
</ul>
<h5><span style="color: #004080"><span style="text-decoration: underline">Etape 3</span></span><a name="_Toc242270943"><span style="color: #004080"><span style="text-decoration: underline">) Paramétrage de l’onglet Connexion de la tâche d’insertion en bloc</span></span></a><span style="text-decoration: underline">:</span></h5>
<p><a href="http://blog.homsys.com/wordpress/wp-content/uploads/2009/10/clip_image004.jpg"></a></p>
<p style="text-align: center" align="center"><a href="http://blog.homsys.com/wordpress/wp-content/uploads/2009/10/image.png"><img class="aligncenter" style="border-bottom: 0px;border-left: 0px;float: none;margin-left: auto;border-top: 0px;margin-right: auto;border-right: 0px" src="http://blog.homsys.com/wordpress/wp-content/uploads/2009/10/image_thumb.png" border="0" alt="image" width="244" height="237" /></a> <span style="color: #808080">Tâche d’insertion en bloc – Onglet Connexion</span></p>
<ul>
<li><strong><span style="text-decoration: underline">Connexion :</span></strong> Choisir la connexion vers la base de données dans laquelle les données seront chargées.</li>
<li><strong><span style="text-decoration: underline">DestinationTable :</span></strong> Choisir le nom de la table dans laquelle les données seront insérées. La table devra contenir l’ensemble des colonnes présentes dans le fichier.</li>
<li><strong><span style="text-decoration: underline">File :</span></strong> Connexion vers le fichier plat source.</li>
<li><strong><span style="text-decoration: underline">Format :</span></strong> Spécifier la valeur <em>Utiliser un fichier</em> pour charger un fichier dont le format est décrit dans un fichier de format .<em>fmt. </em>Pour les fichiers au format délimité sélectionner le format <em>Spécifier.</em></li>
</ul>
<p>Options pour les fichiers au format champs fixes :</p>
<ul>
<li><strong><span style="text-decoration: underline">FormatFile </span></strong>: Définir le chemin d’accès vers le fichier .fmt décrivant le format du fichier.</li>
</ul>
<p>Options pour les fichiers au format délimité :</p>
<ul>
<li><strong><span style="text-decoration: underline">RowDelimiter :</span></strong> Définir les caractères séparateurs de lignes (en général {CR}{LF} en environnement windows).</li>
<li><strong><span style="text-decoration: underline">ColumnDelimiter  :</span></strong> Définir les caractères séparateurs de colonnes</li>
</ul>
<p><a href="http://blog.homsys.com/wordpress/wp-content/uploads/2009/10/clip_image0025.jpg"><img style="border-bottom: 0px;border-left: 0px;margin-left: 0px;border-top: 0px;margin-right: 0px;border-right: 0px" src="http://blog.homsys.com/wordpress/wp-content/uploads/2009/10/clip_image0025_thumb.jpg" border="0" alt="clip_image002[5]" hspace="12" width="43" height="43" align="left" /></a>Le chemin utilisé vers le fichier de format dans la propriété <em>FormatFile</em> doit être au format UNC (Universal Naming Convention): <a href="//\\NomServeur\Partage">\\NomServeur\Partage</a>.</p>
<h5><a name="_Toc242270944"><span style="text-decoration: underline">Etape 4) Paramétrage de l’onglet Option de la tâche d’insertion en bloc</span></a></h5>
<p style="text-align: center"><a href="http://blog.homsys.com/wordpress/wp-content/uploads/2009/10/clip_image006.jpg"><img class="aligncenter" style="border-bottom: 0px;border-left: 0px;float: none;margin-left: auto;border-top: 0px;margin-right: auto;border-right: 0px" src="http://blog.homsys.com/wordpress/wp-content/uploads/2009/10/clip_image006_thumb.jpg" border="0" alt="clip_image006" width="244" height="236" /></a></p>
<p align="center"><span style="color: #808080">Tâche d’insertion en bloc – Onglet Options</span></p>
<ul>
<li><strong><span style="text-decoration: underline">Options :</span></strong> Décocher les différents contrôles.</li>
<li><strong><span style="text-decoration: underline">SortedDate :</span></strong> Laisser la valeur non renseignée par défaut.</li>
<li><strong><span style="text-decoration: underline">MaxErrors :</span></strong> Laisser la valeur 0</li>
<li><strong><span style="text-decoration: underline">CadePage :</span></strong> Spécifier la valeur <em>RAW</em></li>
<li><strong><span style="text-decoration: underline">DataFileType :</span></strong> Spécifier la valeur <em>char</em></li>
<li><strong><span style="text-decoration: underline">BatchSize :</span></strong> Laisser la valeur 0</li>
<li><strong><span style="text-decoration: underline">LastRow :</span></strong> Laisser la valeur 0</li>
<li><strong><span style="text-decoration: underline">FirstRow :</span></strong> Laisser la valeur 1 (sauf si le fichier contient un en-tête qui ne doit pas être chargé)</li>
</ul>
<p><a name="_Toc242270944"><span style="text-decoration: underline">Exemple de fichier .fmt:</span></a></p>
<p>Le fichier .<em>fmt</em> permet de décrire le format du fichier à charger. Il liste les colonnes contenues dans le fichier ainsi que leurs caractéristiques. Sa construction est en général rapide à partir d’un document excel décrivant les colonnes du fichier (pour ceux qui le souhaitent, j’ai un exemple de fichier permettant la génération automatique de fichier fmt à partir de formules excel).</p>
<p>Voici un exemple de fichier .fmt  simple :</p>
<blockquote><p>10.0</p>
<p>2</p>
<p>1 SQLCHAR 0 3 &laquo;&nbsp;&nbsp;&raquo;       1 CH1 French_CI_AS</p>
<p>2 SQLCHAR 0 5 &laquo;&nbsp;\r\n&nbsp;&raquo; 2 CH2 French_CI_AS</p></blockquote>
<ul>
<li>La première ligne correspond à la version SQL Server utilisée (10.0 pour la version 2008, 9.0 pour la version 2005, 8.0 pour la version 2000 et 7.0 pour la version SQL 7…)</li>
<li>La deuxième ligne précise le nombre de colonnes présentes dans le fichier</li>
<li>Les lignes suivantes décrivent chaque colonne du fichier en précisant : la position de la colonne, SQLCHAR, 0, le nombre de caractères de la colonne, le numéro de la colonne, le nom de la colonne, la collation (FRENCH_CI_CI_AS).</li>
</ul>
<p><a href="http://blog.homsys.com/wordpress/wp-content/uploads/2009/10/clip_image0026.jpg"><img style="border-bottom: 0px;border-left: 0px;margin-left: 0px;border-top: 0px;margin-right: 0px;border-right: 0px" src="http://blog.homsys.com/wordpress/wp-content/uploads/2009/10/clip_image0026_thumb.jpg" border="0" alt="clip_image002[6]" hspace="12" width="43" height="43" align="left" /></a>La dernière ligne du fichier doit être un retour à la ligne.</p>
<p>L<a href="http://blog.homsys.com/wordpress/wp-content/uploads/2009/10/clip_image001.gif"><img style="border-bottom: 0px;border-left: 0px;margin-left: 0px;border-top: 0px;margin-right: 0px;border-right: 0px" src="http://blog.homsys.com/wordpress/wp-content/uploads/2009/10/clip_image001_thumb.gif" border="0" alt="clip_image001" width="26" height="31" align="left" /></a>a génération du fichier fmt peut être également effectuée automatiquement à partir de la table cible en utilisant la commande bcp.</p>
<p><a name="_Toc242270944"><span style="text-decoration: underline">Générer un fichier .fmt à partir de la commande bcp:</span></a></p>
<p>Ouvrir une fenêtre d’Invite de commande et exécuter la commande suivante :</p>
<blockquote><p>bcp <em>NomBaseDeDonnées.Schéma.NomTable</em> format nul -c -f</p>
<p>CHGT_BLOC.fmt -T -S <em>NomServeur\NomInstance</em></p></blockquote>
<p style="text-align: center" align="center"><a href="http://blog.homsys.com/wordpress/wp-content/uploads/2009/10/image1.png"><img class="aligncenter" style="border-bottom: 0px;border-left: 0px;float: none;margin-left: auto;border-top: 0px;margin-right: auto;border-right: 0px" src="http://blog.homsys.com/wordpress/wp-content/uploads/2009/10/image_thumb1.png" border="0" alt="image" width="244" height="48" /></a> <span style="color: #808080">Exemple d’utilisation de la commande BCP</span></p>
<p><a name="_Toc242270944"><span style="text-decoration: underline">Conclusion:</span></a></p>
<p>Ce composant a l’avantage d’être performant. Il a par contre l’inconvénient d’être difficile à auditer en cas d’erreur. En effet, si le fichier source ne respecte pas strictement le format décrit, le fichier sera rejeté en bloc sans possibilité d’identifier la ligne ou la colonne ayant généré une erreur. Il n’est pas possible également de placer une visionneuse sur les données pour suivre le chargement.</p>
<p>Ce composant n’est donc à utiliser que sur des fichiers dont la structure est connue et bien maîtrisée. Pour des fichiers non volumineux et contenant un nombre de colonnes raisonnables, on préférera utiliser le chargement classique via des sources OLE DB.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.homsys.com/trucs-astuces/utilisation-de-la-tache-de-chargement-en-bloc-sous-ssis/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

