Aller au contenu

Guide d’utilisation de GitHub avec Microsoft SSIS

8 septembre 2023

Evan Pearce

Utiliser GitHub avec Microsoft SSIS

À une époque, il était fréquent de gérer et de suivre manuellement les versions de code logiciel produites par les différents développeurs d’un projet. Cette approche pénible demandait de la minutie, les erreurs étaient fréquentes, et, très honnêtement, la plupart des développeurs s’en seraient bien passés. Il fallait faire quelque chose.

Les entreprises évoluent à grande vitesse, ce qui complique la production et la gestion du code, qui doivent suivre la cadence.

La solution

Les systèmes de gestion de versions ne sont pas parfaits, mais ils résolvent la plupart des problèmes en la matière. La plupart de ces systèmes permettent d’annuler des changements, d’ajouter de nouvelles fonctionnalités à un produit, de centraliser les différentes versions de code et de mettre en place un processus de déploiement continu.

Git est une solution populaire chez les programmeurs, car la plateforme combine à la fois développement en code source libre, fusion de branches et gestion de versions distribuée. Ces avantages s’appliquent-ils pour autant au domaine des données, notamment aux processus d’extraction, de transformation et de chargement (ETC), habituellement conçus sous la forme de routines codifiées qui doivent évoluer aussi rapidement que les exigences des projets? La réponse est OUI!

Gestion de versions et ETC

Le code régissant les processus d’ETC d’un pipeline d’analyse de données subit de nombreux changements au cours de son cycle de vie. En développement logiciel, ce code est d’une importance vitale.

Récemment, plusieurs fournisseurs de logiciels d’ETC se sont penchés sur le sujet et ont commencé à proposer des extensions de gestion de version, soit pour des outils externes, soit pour des systèmes propriétaires. Par exemple, Talend, DataStage et SSIS.

Il y a peu, nous avons travaillé sur le projet d’un client en utilisant la suite de développement Microsoft. Pour la gestion de versions, nous avons utilisé SSIS et GitHub. Les étapes décrites ci-dessous vous permettront de comprendre comment configurer SSIS avec GitHub pour gérer les versions de processus d’ETC de n’importe quel projet axé sur des données (guide compatible avec SSDT 2010 ou version ultérieure).

Installer Git Source Control Provider avec Visual Studio

1re étape : Dans « Tools », sélectionnez « Extension Manager ».

2e étape : Exécutez Visual Studio.

3e étape : Dans « Tools », sélectionnez « Extension Manager », cherchez « Git Source Control Provider » dans l’outil de recherche en ligne, et installez-le.

4e étape : Téléchargez Addin, puis déplacez-le dans le dossier « Add-ins », qui se trouve dans le dossier utilisateur de Visual Studio :

C:\Users\xxxxxxx\Documents\Visual Studio 2010

5e étape : Redémarrez Visual Studio.


 

Configurer l’extension Git

1re étape : Téléchargez l’extension Git et exécutez le fichier. Par défaut, l’extension sera installée dans C:\Program Files (x86)\GitExtensions.

2e étape : Allez dans Tools | Settings (Outils | Réglages) et configurez la liste au besoin.

3e étape : Entrez le nom et l’adresse courriel associés au référentiel GitHub que vous utiliserez pour la gestion de versions.

Cloner le référentiel

1re étape : Dans « Git Extension », cliquez sur « Clone repository » Remplissez les champs comme montré dans les étapes à côté.

Identifiants du référentiel

 

Dans la fenêtre GitHub qui s’affiche, entrez les identifiants GitHub de votre référentiel pour vous connecter.

2e étape : Une fois connecté, cliquez sur le bouton « Clone ».

Une fois le clonage terminé, vous pouvez ouvrir le projet dans Visual Studio en naviguant vers le dossier cloné localement et en faisant un double clic sur le fichier de solution Visual Studio (.sln).

Tout est maintenant prêt pour la gestion de versions de votre processus d’ETC dans Git. Vous pouvez désormais utiliser le menu déroulant ci-dessous dans Visual Studio pour accéder à différentes commandes Git.

Nous y reviendrons dans les étapes suivantes. Vous pouvez aussi exécuter directement des commandes Git au lieu d’utiliser le menu déroulant, mais nous ne présenterons pas ces commandes dans le présent tutoriel. L’environnement GitHub est configuré de manière à avoir une branche de base. Notre branche de développement et notre branche « demo-stats » sont des branches de fonctionnalité qui seront fusionnées dans la branche de base.

Exemple de tirage depuis la branche de base

(dans le cas présent, branche de base = environnement de développement)

1re étape : Ouvrez une copie locale du fichier de solution nommé « *.sln ».

2e étape : Une fois le fichier ouvert dans SSDT, allez dans « GitExt », puis sélectionnez « Pull ».

3e étape : Indiquez comme branche distante la version se trouvant sur le serveur GitHub, en vue de fusionner les changements dans votre copie locale.

Exemple de fusion de la branche de développement vers la branche de base

(environnement de développement local dans le cas présent)

1re étape : Passez sur la branche locale avec la commande checkout : par exemple, sur la branche de base.

2e étape : Fusionnez la branche « dev/demo-stats » (local) vers la branche de base

 

Un désavantage, une solution

 

Microsoft continue de travailler sur les conflits de fusion dans SSIS. Un fichier particulier de métadonnées de projet force l’utilisateur à fusionner manuellement des branches de temps à autre, un problème qui peut d’ailleurs se produire avec le type de branche que nous avons utilisé dans le présent tutoriel.

Des conflits de fusion peuvent survenir lorsque deux développeurs collaborent sur des progiciels (packages) dans SSDT au sein du même projet d’ETC. En l’occurrence, ces conflits émergent à cause du fichier « *.dtproj », qui se retrouve superposé entre les deux flux de travail. Il faudra donc les résoudre manuellement.

Si vous refusionnez du code, vous devrez vous assurer que le conflit indique le nom des progiciels créés et fusionnés dans la branche de base

(ex. : une liste de progiciels nommée « *.dtproj » qui doit contenir le nom de votre progiciel).

Voici un exemple de résolution rapide du problème affectant un fichier de métadonnées :

Progiciel dans les métadonnées

Chaque progiciel ajouté à cette liste devra également être entré dans les métadonnées de progiciel. Exemple :

Conclusion

Configurer un système de gestion de versions dans SSIS prend du temps, mais le jeu en vaut la chandelle. Malgré les problèmes associés au développement collaboratif décrits ci-dessus, SSIS permet d’annuler des changements récents appliqués à un processus d’ETC de manière facile et pratique, un avantage qui mérite d’être souligné, notamment lorsque surviennent des problèmes de données inattendus pendant les tests de validation utilisateur (UAT) ou la phase de production d’un nouveau processus d’ETC.

VOUS AVEZ UN PROJET ?