[PASS SUMMIT 2013] Automate your ETL infrastructure with SSIS and PowerShell

Speaker : Allen White – Practice Leader UpSearch

Niveau de la session : 200

1. Simple ETL Process :

* Pour gérer les modifications dans la source et les impacter dans la cible (DWH) : Change Data Capture, Change Tracking, Simple Triggers,

* Exemple d’incremental update (aka UPSERT) :

Source –> Correlate –> Destination (en cas de No Match)

–> Filter (en cas de Match) –> Updates stage

* Le merge en T-SQL n’est pas performant avec les gros volumes de données,

2. Basic BIML Introduction :

* BIML (Business Intelligence Markup Language) :

* Langage basé sur le projet « Vulcan » de Microsoft (à voir sur codeplex),

* BIML utilise le XML pour définir (construire) un package SSIS,

* Il faut installer « BIDS Helper » pour pouvoir faire du BIML directement dans le projet SSIS (clic droit sur le projet, « Add new BIML File »),

* Le développement en BIML est simplifié grâce à l’Intellisens,

* Une fois le code XML du package prêt, il suffit de faire clic droit sur le fichier .biml (disponible sous le dossier projet « Miscellaneous ») et de choisir l’option « Generate SSIS package »,

3. BIML script with PowerShell :

* PowerShell est un langage basé sur l’objet (Object Based Language),

* La création des packages SSIS via PowerShell repose sur le namespace .NET System.Xml.XMLTEXTWRITER,

* Démo : Passer par PowerShell pour créer le script XML du package SSIS qui lui même repose sur BIML (on fait du BIML via PowerShell pour générer un lot SSIS),

4. Conclusion :

Session intéressante qui permet de découvrir d’autres possibilités de créer un package SSIS (autre que via l’éditeur graphique et le drag and drop qui s’en suit). Elle nécessite, néanmoins, la connaissance des 2 langages BIML et PowerShell afin de tirer profit de la session et ne pas se contenter de suivre un code qui est assez long. L’intérêt de créer des packages via PowerShell ou BIML par rapport à la génération classique des lots (via simple clic droit et choix des composants via la toolbox) est un sujet à débattre. On parle d’automatiser et donc simplifier les développements mais je n’en sors pas totalement convaincu eu égard à la longueur du code et au fait de devoir TOUT coder dans le package (connexion, composants, etc.) ! A suivre…

Ismaïl Ben Lamine

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s