Comment convertir un fichier blg en csv pour l’intégrer en base rapidement ?

Voici comment transformer un fichier blg généré par PerfMon en CSV en vue de l’intégrer dans une table de base de données (et pourquoi pas faire un rapport à partir de là ? )

Pour convertir un fichier blg au format CSV, il suffit d’utiliser l’instruction relog en ligne de commandes :

>relog perfmon_log.blg -f CSV -o perfmon_log.csv

En quelques secondes un gros fichier blg peut être converti, retournant le nombre de lignes que contient le fichier CSV.

A partir de là, on peut procéder à son intégration en faisant un clic-droit sur la base de données dans laquelle on souhaite charger les données :

La fenêtre suivante s’ouvre alors :

Il suffit simplement de sélectionner Flat file source dans la liste déroulante Data source, puis de cliquer sur Browse :

Attention à filtrer sur l’extension csv, sinon le fichier n’apparaîtra pas ;)

Une fois le fichier sélectionné, faites attention à la page de codes : elle doit correspondre à la collation utilisée par votre base de données.
Dans la plupart des cas, la page de codes par défaut fonctionnera.
Dans mon cas, comme la collation de la base de données est Thai_CI_AS, j’ai choisi la page de codes 874.

Enfin, comme la première ligne de notre fichier de log PerfMon contient le nom des compteurs, il faut également cocher la case Colmun names in the first data row.

On peut maintenant cliquer sur le bouton Next :

Ici il s’agit de spécifier l’instance SQL Server (Server name) et la base de données dans laquelle on souhaite importer les données (Database).

La table prend alors le même nom que le fichier, par défaut.
Néanmoins on peut tout à fait parcourir et choisir une table de la base de données.

Une fois cela fait, on peut cliquer sur Next : la fenêtre suivante apparaît :

On peut alors choisir d’exécuter le package SSIS immédiatement, auquel cas il ne sera pas sauvegardé, ou bien choisir de l’enregistrer :

1. dans SQL Server (en fait dans la base de données système MSDB)
2. ou dans un fichier

C’est pratique puisque :

– Dans le premier cas, si nous devons réaliser un nouvel import, on n’aura plus qu’à se connecter avec SQL Server Management Studio à l’instance SSIS pour exécuter le package une nouvelle fois,

– Dans le second cas, il suffit simplement de double-cliquer sur le fichier (que l’on peut échanger avec ses collègues) pour exécuter le package

Dans mon cas, comme je n’aurai très probablement jamais plus besoin de réimporter des fichiers de log PerfMon ayant une liste de compteurs strictement identique, j’ai choisi Run Immediately seulement.

Dans tous les cas, on cliquera sur le bouton Next :

Le package s’exécute alors … quand l’opération est terminée, on obtient la fenêtre suivante :

Il suffit alors de cliquer sur Close pour voir la fenêtre se fermer, puis de faire un SELECT * FROM dbo.perfmon_log ;)

Dans le cas où il s’agit d’une opération qui devra être effectuée à répétition, on peut également sauvegarder le package, et le faire exécuter par un job de l’Agent SQL Server.
En plus de cela, on peut construire un rapport SQL Server Reporting Services (SSRS) sur la table recevant les lignes du fichier CSV.

Bon chargement de données PerfMon ;)

ElSüket ;)

Laisser un commentaire