Introduction▲
Très souvent, les fichiers XML sont utilisés à des fins de stockage de données de par leur portabilité au sein d'un système d'information et de la facilité de leurs utilisations. SSIS permet d'intégrer facilement le contenu de fichiers XML dans une base de données. Notre objectif est d'intégrer les données de notre fichier XML dans notre base de données via SSIS. Pour cela, nous nous baserons sur un exemple simple afin d'en comprendre les principales étapes.
Dans ce tutoriel, nous aborderons la création de projets BI avec SQL Server 2005, la création et configuration des sources de données ainsi que la création et configuration des destinations de données. De même, nous aborderons des opérations applicables à des fichiers XML, en particulier en amont d'un import de ceux-ci.
Dans un premier temps, nous présenterons notre exemple à savoir le fichier XML que nous allons intégrer ainsi que la destination de nos données à savoir la table proprement dite. Puis dans un second temps, nous verrons l'injection des données issues du XML dans notre base de données via SSIS. Enfin, nous allons découvrir les opérations de Merge et Diff pour différence de fichiers XML via une XML Task.
I. Présentation de notre exemple▲
Prérequis : d'un point de vue logiciel, vous devez disposer de Microsoft Visual Studio 2005 et Microsoft SQL Server 2005 au minimum (en dehors des versions Express qui ne prennent pas en charge SSIS). D'un point de vue connaissance, si vous n'êtes pas familiarisés avec SSIS, je vous conseille de lire ce tutoriel :
Présentation de SQL Server Intgération Services : SSIS, car nous ne reviendrons pas sur toutes les bases de l'outil.
Avant d'importer des données, il faut bien que notre fichier XML en contienne. Ci-dessous, notre petit exemple de produits que nous allons importer :
<produits>
<produit>
<libelle>
Brosse à dents</libelle>
<nb>
1</nb>
<prix>
2</prix>
</produit>
<produit>
<libelle>
lessive</libelle>
<nb>
2</nb>
<prix>
16</prix>
</produit>
<produit>
<libelle>
Mouchoirs</libelle>
<nb>
10</nb>
<prix>
3</prix>
</produit>
<produit>
<libelle>
bonbons</libelle>
<nb>
2</nb>
<prix>
5,99</prix>
</produit>
<produit>
<libelle>
fruits</libelle>
<nb>
5</nb>
<prix>
1</prix>
</produit>
</produits>
Ce sont donc ces données ci-dessus que nous allons importer. De même, avant d'importer, il faut que notre destination de données existe. En l'occurrence, ci-dessous le script SQL permettant de créer notre table. Bien évidemment, il faut que notre base de données existe.
USE
[ssis-xml]
GO
/****** Object: Table [dbo].[Produits] Script Date: 03/14/2009 18:21:46 ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER
ON
GO
CREATE
TABLE
[dbo]
.[Produits]
(
[Nom]
[nvarchar]
(
50
)
NULL
,
[quantite]
[int]
NULL
,
[Tarif]
[float]
NULL
)
ON
[PRIMARY]