Le fractionnement conditionnel ou l’art de l’aiguillage …

septembre 18, 2009 19:20 by Franck

Dans tout projet d’intégration de données, les données partent d’une source, cette source pouvant par exemple être la base de données de votre ERP, un fichier Excel, ou bien un fichier XML, pour se retrouver éventuellement dans une base de destination, la plupart du temps, dans un projet de Business Intelligence, dans le datawarehouse.

A ce titre, SSIS intègre de nombreux outils de transformation du flux de données qui vont vous permettre de filtrer, d’enrichir, ou de façon plus générique, de traiter vos données. Parmi ces outils figurent celui de « fractionnement conditionnel ».

Pour illustrer les fonctionnalités de celui-ci, vous verrez comment il est aisé de réserver à des écritures comptables un traitement particulier selon qu’il s’agit d’une écriture de vente ou d’achat.

Les étapes suivantes décrivent un à un les composants qui illustrent cet exemple.

Etape 1 : Lecture des données

Cet exemple s’appuie sur une base de données ACCESS qui stocke les données du logiciel comptable, bien évidemment, il s’agit de connaître la structure des données pour savoir où collecter l’information.

 

 

Les propriétés du composant font état notamment de la requête SQL qui permet de ne sélectionner que les colonnes qui nous intéressent (Numéro de compte, Code Journal, Date d’écriture, Libellé, Débit et Crédit), et de ne prendre en compte que les écritures d’achat et de vente (seulement celui dont le premier chiffre du numéro de compte est 6 ou 7).

 

 

Etape 2 : Fractionnement Conditionnel

Cette étape est le cœur du sujet abordé dans ce billet, l’objectif de ce composant est de prendre en entrée un flux de lignes d’écritures, et de générer deux flux en sortie, le premier contenant les achats (écritures dont le numéro de compte commence par 6), le second contenant les ventes (numéro de compte qui commence par 7).

 

En sortie de cet élément, existent donc autant de flux de que conditions fixées dans la fenêtre de propriétés du fractionnement conditionnel. L’exemple montre ici que les flux d’enregistrements vont suivre des routes désormais totalement différentes, écriture dans un fichier texte.

Ceci étant, dans notre exemple, les flux des écritures d’achat et vente suivent des routes différentes mais il peut être concevable qu’après différents traitements spécifiques (par exemple  recherche dans une table annexe du nom du fournisseur pour les achats), ces flux aient besoin de se retrouver à nouveau dans un même flux pour bénéficier ainsi des mêmes opérations.

Cette fonctionnalité (Union) est intégrée à SSIS et fera l’objet d’un billet spécifique, avec bien sûr un exemple concret …

 


Actuellement noté 3.3 par 3 personne(s)

  • Currently 3,333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Un petit tour au pays merveilleux de SSIS ...

novembre 18, 2008 19:12 by Franck

cet article se veut le premier d'une série consacrée à SQL Server 2005 et particulièrement la plateforme Integration Services. Ce billet est basé sur SQL Server 2005, mais bien évidemment, SQL Server 2008 reste au rendez-vous.

Juste pour mémoire, Integration Services inclus un outil graphique de construction de packages qui vont avoir pour vocation de mener des opérations d'intégration et de transformation de données. Le sujet du jour s'intéresse à un élément de transformation du flux de données qu'est "l'extraction de terme".

Si on travaille par exemple sur une application de gestion d'incidents, l'équipe support va saisir au fur et à mesure de ses interventions, des informations non structurées concernant les incidents. Le manager de cette équipe, va être intéressé dans ses attributions, par les éléments qui reviennent le plus souvent dans ces incidents (les produits, les modules, les personnes, etc ...). Pour aider notre manager dans son travail d'analyse, SSIS dispose d'un outil adapté, le fameux "extracteur de termes".

Sur différents critères, l'extracteur de terme va fournir une liste de termes, de phrases, avec pour chacun, un score d'occurence. Le manager pourra par exemple ainsi savoir que le terme "Microsoft Office" apparaît en tête de liste des termes les plus utilisés par les opérateurs du support.

alors comment ça marche ?

Pour l'exemple, utilisons simplement une table qui contient un champ "description" dans lequel les opérateurs ont saisi de manière non structurée les informations de support.

Notre package SSIS est très simple, il ressemble à ceci :

Le package est bien sûr composé d'une source de données, dont le flux va se déverser dans notre fameux "extracteur de termes". A noter au passage la conversion de données, due au fait que notre extracteur ne fonctionne qu'avec des types de données DT_WSTR ou DT_NTEXT.

Le paramétrage de l'extracteur de terme est relativement simple, il suffit de cocher le champ sur lequel va fonctionner l'extracteur. On peut par ailleurs enrichir notre extracteur en spécifiant dans l'onglet "exclusion" les termes qui devront être ignorés, ceux-ci étant positionné dans une autre source de données (base SQL, Excel, etc).

le flux est ensuite déversé dans notre exemple dans un fichier texte, mais on peut imaginer d'enchaîner des traitements beaucoup plus complexes de réaction par rapport à des niveaux n'occurence critique ou autre.

 

Pour plus de détails sur cet outil, n'oubliez pas MSDN : http://msdn.microsoft.com/en-us/library/ms141809(SQL.90).aspx

 


Actuellement noté 5.0 par 1 personne(s)

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5