Introduction à Sql Server Integration Services (SSIS)


précédentsommairesuivant

3. Présentation de l'exemple

Comme je vous l'ai dit plus haut, nous allons automatiser l'analyse des fichiers de log de IIS (seulement la partie serveur http, ce sera largement suffisant).

3-1. Structure d'un fichier de log de IIS

Voici un fichier extrait de fichier de log IIS, le tout début pour être exact.

Extrait d'un fichier de log IIS (les lignes sont coupées pour plus de visibilité)
Sélectionnez
#Software: Microsoft Internet Information Services 5.1
#Version: 1.0
#Date: 2007-05-27 07:38:39
#Fields: date time c-ip cs-username s-sitename s-computername s-ip s-port cs-method 
	cs-uri-stem cs-uri-query sc-status sc-win32-status sc-bytes cs-bytes time-taken 
	cs-version cs-host cs(User-Agent) cs(Cookie) cs(Referer) 
2007-05-27 07:38:39 127.0.0.1 - W3SVC1 DTCBPXP 127.0.0.1 80 GET /EspacePerso/~/images/baniereperso.png 
	- 404 3 4383 305 300 HTTP/1.1 localhost Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+.NET+CLR+1.1.4322;
	+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.30) - -
2007-05-27 07:40:26 127.0.0.1 - W3SVC1 DTCBPXP 127.0.0.1 80 DEBUG /EspacePerso/DebugAttach.aspx
	 - 401 0 351 406 3675 HTTP/1.1 localhost - - -

Ce petit exemple va nous servir à comprendre sa structure. Tout d'abord, vous remarquerez les 4 premières lignes qui sont un peu particulières. Elles sont ici à titre d'information.

La première ligne nous donne des informations sur la version de IIS que nous utilisons. Je suis sous Windows XP, j'ai donc IIS 5.1.

La deuxième ligne nous renseigne sur la version … de quoi je ne sais pas, mais de toute façon, elle ne nous intéresse pas ici.

La troisième ligne nous retourne la date et l'heure de création du fichier. Elle n'a pas une grande utilité pour le traitement qui nous intéresse.

La quatrième ligne, contrairement aux 3 précédentes, est une source d'information vitale pour le travail que nous allons réaliser. Elle contient en effet une description de la formation des lignes de log. Une ligne de log à proprement parler contient toutes les valeurs que nous souhaitons tracer séparées par des espaces. IIS nous offre la possibilité, via la console d'administration, de choisir les informations sur l'activité du serveur Web que nous souhaitons conserver.

Figure 7
Figure 7:Options du fichier de log de IIS

Comme vous pouvez le constater, ces informations sont très complètes. Dans notre exemple, elles seront toutes utilisées.

Revenons sur la 4ème ligne. Pourquoi cette ligne est-elle si importante ? Comme vous l'aurez sans doute compris, il est possible que le log de l'activité de IIS ne nous renvoie pas toujours les mêmes informations, selon les besoins de l'administrateur. Il est donc important de savoir ce que nous allons récupérer comme information.

Il faut savoir aussi que cette section de 4 lignes d'en-têtes peut se répéter plusieurs fois dans un même fichier (changements de configuration, redémarrage).

Donc, à la suite de ces 4 lignes, nous récupérons les lignes de données qui nous intéressent réellement. Dans ce didacticiel, je ferai comme si la structure du fichier de log n'était pas modifiable et qu'il n'y avait qu'une seule section d'en-tête par fichier afin de ne pas rentrer dans les détails. Afin aussi de ne pas compliquer trop les choses, nous utiliserons un fichier unique dont nous connaissons le nom à l'avance.

3-2. Tâches à réaliser par notre package

Notre package d'exemple ne sera pas très compliqué. Il effectuera les actions suivantes :
  • Copier le fichier de log dans un dossier temporaire
  • Lire le contenu du fichier
  • Effectuer quelques opérations de transformation sur les données récupérées
  • Ecrire ces données dans la base

3-3. Stockage

Pour stocker les informations de notre fichier de log, nous utiliserons une table SQL Server 2005 dont voici le script de création :

 
Sélectionnez
CREATE TABLE [dbo].[logiis](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[dateandtime] [datetime] NULL,
	[ipclient] [nvarchar](15) NULL,
	[username] [nvarchar](50) NULL,
	[sitename] [nvarchar](50) NULL,
	[computername] [nvarchar](50) NULL,
	[ipserver] [nvarchar](15) NULL,
	[portserver] [int] NULL,
	[cliservmethod] [nvarchar](5) NULL,
	[cliservuristem] [nvarchar](512) NULL,
	[cliservuriquery] [nvarchar](512) NULL,
	[servclistatus] [int] NULL,
	[servcliwinstatus] [int] NULL,
	[servclibytes] [int] NULL,
	[cliservbytes] [int] NULL,
	[timetaken] [int] NULL,
	[cliservversion] [nvarchar](50) NULL,
	[cliservhost] [nvarchar](512) NULL,
	[cliservuseragent] [nvarchar](512) NULL,
	[cliservcookie] [nvarchar](512) NULL,
	[cliservreferer] [nvarchar](512) NULL
) ON [PRIMARY]

précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2007 Olivier Delmotte. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.