[PASS Summit 2013] Designing an SSIS Framework using SQL Server 2012

Speaker : Andy Leonard – Chief Servant Officer, Linchpin People

Niveau de la session : 400

A Framework defined :

* Un Framework est une collection de design patterns qui permet de gérer les exécutions, la journalisation des événements et les différentes configurations,

Démo : Framework SSIS

– Objectif visé : Exécuter un ensemble de packages via un package master. Le parcours / exécution des packages présents dans le projet SSIS se fera via :

$ un « ForEach Loop Container » : avec un foreach ADO enumerator pour parcourir la liste des packages présente dans une table de configuration,

$ un « Execute Package Task » : pour exécuter le package retourné par la variable PackagePath,

Bonne pratique : passer par un connecteur ADO.NET (au lieur de Ole DB) dans Execute SQL Task lorsqu’on cherche à exécuter une procédure stockée,

Conclusion :

Session intéressante qui présente la démarche de travail du speaker dans ses différents projets implémentés auprès de grands groupes. La méthodologie suivie n’est peut être pas la meilleure (table de configuration avec la liste des packages) ni la plus performante mais l’automatisation de l’exécution se trouve ainsi simplifiée.

Ismaïl Ben Lamine

[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

[PASS SUMMIT 2013] Putting Quality Back Into Youy Data Analysis – an introduction to DQS

Speaker : Michael P. Antonovich – Asst Dir Web Applications Orange County Public Schools

Niveau de la session : 200

Session de base : Objectif est de faire un tour d’horizon sur les fonctionnalités et principes de base de DQS et comprendre comment ça marche et à quoi ça sert concrètement.

Agenda :

  • Why clean Data Matters
  • What is DQS
  • Create your first knowledge base domain manually
  • User knowledge discovery to add domains
  • Use a knowledgebase to cleanse data
  • Questions

 Clean data Matters because :

Bad data à distorts analysis results, bad decision, loss revenue, loss of credibility, loss of customer satisfaction, compliance issues, …

(bref si les analyses décisionnelles sont mauvaises c’est parce que les données le sont aussi : donc nettoyer les quand vous pouvez)

Causes de la mauvaise qualité des données :

  • Users entry errors
  • Data transmissions errors
  • Invalid data dictionary definitions
  • Fusion de données de plusieurs sources (data rules different)
  • Absence de validation dans les appli sources
  • Formats ou style de données multiples
  • Etc.

DQS : 2 produits

  • DQS Server
  • DQS Client

Run DQS de : DQS client app, mds, via SSIS lot (du coup avec SSIS on peut adapter l’utilisation de DQS aux besoins : exemple utilisation de plusieurs dictionnaires de données à la suite pour nettoyer les données)

La session ne parle par la suite que de la partie DQS Client.

DQS client : les étapes

  • Une base de connaissance
  • Data cleansing (utilise une base de connaissance, data scrubing)
  • Matching (identifier les doublons ou pas : pour réduire les erreurs dues aux différences)

Processus associé à DQS :

Construire et maintenir une base de connaissance, créer une projet de qualité des données (pour gestion création/maintenance des données), administrer (gestion des droits, etc.)

Objectifs de la qualité des données :

  • C’est quoi un domaine

Démo : creation db, domain (leading values, normalize string), utilisation de donnees de reference, domain values,

(Ne pas oublier de publier les changements pour les rendre accessibles à tous dans la bd)

Démo : Utilisation de knowledge discovery pour remplir des domains plutôt que de le faire à la main (ex : source Excel), indication des synonymes et des valeurs de référence (leading values), domain rules (en gros tous les onglets de domain mamnagement)

  • Data Cleansing : appliquer une kb a des données :

Créer d’abord un data quality projet

Mapper les colonnes de la source de données et celles du domain (celles de la base de connaissance), visualiser les données (stats et lignes de détail)

On peut exporter les données alors corrigées

  • Matching : indication des causes habituelles des doublons, dépend

Matching rules : prerequisite (si ce n’est pas pareil c’est différent !) , similarité, dépend d’un poids associé aux règles de matching (poids minimum pour matcher), pour le matching : travailler d’abord sur un échantillon réduit des données pour adapter l’algorithme avant de l’appliquer à toutes les données

Demo : création d’une règle de matching (le score de matching ne peut être défini en dessous de 70%), explication des overlaping clusters (1 enregistrement est dans plus d’un groupe), … export final des données

Conclusion :

Ma première session au PASS sur un DQS que je n’ai pas eu encore eu l’occasion de mettre en œuvre sur un projet client.

Bonne session de vulgarisation (niveau très faible pour gagner quelques minutes si vous n’avez jamais ouvert le produit ou il y a longtemps comme moi), tout est dans le titre : introduction (à DQS) après c’est toujours mieux quand on pratique (n’est-ce pas ?)

Pascal Rouzé

[PASS SUMMIT 2013] SSIS Roadmap

Speaker : Matt Masson et Wee Hyong Tok (travaillent tous les 2 dans la team SSIS)

Niveau de la session : 300

SQL Server 2014 : Pas de nouveautés SSIS (pour le moment mais éventuellement à venir…) car dans la version « twenty fourteen » c’est plus l’amélioration du moteur qui a été privilégiée.

1. New and Upcoming :

* SSIS Reporting Pack (par Jamie Thomson) : ensemble de rapports sur les logs SSIS 2012 Catalog (Dashboards, overviews, detailed execution reports). Ces rapports permettent également de voir ce qui bloque / ralentit les packages SSIS,

* DQS extensions (OH22 Data) :

  • DQS Matching (basée sur la Policy définie au niveau de DQS KB),
  • Domain Import values & Publish (pour automatiser et simplifier la création des valeurs dans la Knowledge Base).

* Démo :

  • Dédoublonnage réalisé via le Fuzzy Grouping (existant dans SSIS) et le DQS Matching (à tester pour voir les perfs),
  • Domain Import : Source MDS (Excel) –> SSIS –> DQS,

* SQLCAT va sortir des composants Azure (Azure Sharding Destination, Azure BLOB Source and Destination),

2. SQL Server 2014 :

* Focus on the engine and hybrid SQL Server :

  • In-Memory OLTP,
  • Enhanced In-Memory ColumnStore,
  • Nouveaux scénarios hybrides pour Windows Azure,

* OData source : nouvelle source de données qui sera rajouté dans SSIS 2014 et probablement SSIS 2012,

* L’installation de SQL Server 2014 CTP2 n’inclut pas l’installation de SSDT. Il faut le télécharger séparément sur le Microsoft Download Center. Microsoft cherche à séparer le serveur (SQL) des outils…

* SQL Server 2012 intègre nativement SSDT qui repose sur Visual Studio 2010 mais est compatible avec Visual Studio 2012 en téléchargement séparé,

* SQL Server 2014 CTP2 propose SSDT (Visual Studio 2012) en téléchargement séparé,

* SQL Server 2014 proposera SSDT (Visual Studio 2013) en téléchargement séparé,

* Complex Data Feeds : pour exposer les packages SSIS en tant que vues SQL et permettre ainsi, notamment, de lancer l’exécution d’un lot à la demande (SSIS Data Streaming Destination) –> A approfondir…

3. Conclusion :

Session légère et intéressante (notamment les démos) où nous avons plus vu SSIS via ses extensions (point d’intérêt pour DQS Matching qui manquait jusqu’à présent et l’extension relative à la création automatique des valeurs de la knowledge base via un import Excel notamment) et sa relation avec le cloud Azure que le vrai futur de SSIS (en terme de nouveautés) comme annoncé dans le titre de la session…

Ismail Ben Lamine

[SSIS] Déplacer et renommer un fichier grâce à la tache File System Task

Introduction

Dans ce tutoriel, nous allons voir un exemple d’utilisation du composant File System Task.
Vous pouvez utiliser cette tache pour les cas suivants :

  1. Copier un dossier ou un fichier d’un lieu à un autre
  2. Créer un dossier
  3. Supprimer un dossier ou un fichier
  4. Supprimer le contenu d’un dossier ( tous les fichiers et les dossiers)
  5. Déplacer un dossier ou un fichier
  6. Renommer un fichier

Nous ne verrons que les deux derniers cas, soit le cas 5 et le cas 6.

Lire la suite

Les Transactions dans SSIS 2012

A quoi servent les transactions ?

Les transactions sont des suites d’opérations (Insertion, Suppression, Mise à Jour…) qui font passer la base de données d’un état A (état initial avant les opérations) à un état B (après les opérations).
Dans le cas où une opération échoue, la transaction permet de revenir à l’état antérieur B, c’est-à-dire avant le démarrage de la transaction.
Toutes les modifications seraient dans ce cas annulées.

Dans l’exemple qui va suivre, nous allons voir comment mettre en place les transactions afin d’annuler des opérations opérées sur une base de données en cas d’échec.
Lire la suite

Intégration d’une source XML en SSIS

Contexte

Dans le cadre d’une mission, nous intégrons des données de facturation provenant d’un fournisseur externe , afin de les restituer dans nos cubes d’analyse. Ces informations transmises par fichiers XML sont intégrées dans une base de données SQL Server.

La structure du fichier d’échange XML n’est pas sous contrôle, celle-ci est imposée par l’émetteur : l’adaptation du consultant BI s’impose.

Voyons comment intégrer une source XML au travers « SQL Server Integration Services ».

L’influence de la structure du fichier

XML

Le XML « Extensible Markup Language » est un langage de balises lisible pour l’homme permettant de structurer de l’information en vue d’échange.

Voyons les composants XML de base constituant un arbre structuré

Nœud document Elément racine à tout XML. Il est le point de départ
Balise Une balise est un nom commode pour désigner les constructions entre deux chevrons <…> dans un fichier XML
Texte Un nœud texte n’ayant pas d’enfant. Il est toujours contenu dans une balise.
Attribut Un attribut est un nom et une valeur. Il est toujours porter par une balise. Sa valeur ne sera jamais nulle, mais vide <balise attribut= ‘’/>. L’attribut est unique sur une balise qui peut en avoir plusieurs. <balise attribut1=’valeur1’ attribut2=’valeur2’ …/>

Étudions dans un premier temps la structure de notre fichier XML.

Notre cas exemple

Structure du fichier
<?xml version="1.0" encoding="iso-8859-1"?>
<JD_GENERIQUE xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Definition>
    <PieceComptable>FARC130014</PieceComptable>
    <Redevance>RC</Redevance>
    <Activite>Act1</Activite>
    <SSActivite>ssAct1</SSActivite>
    <ServTransport>Train</ServTransport>
    <Date>10/12/2012</Date>
  </Definition>
  <TableauDetaille Search_Code="044101">
    <ENTETE>
      <ElementEnTete Nom="NM">044101</ElementEnTete>
      <ElementEnTete Nom="TYPCIRC">réelle</ElementEnTete>
      <ElementEnTete Nom="HD">00:10:00</ElementEnTete>
      <ElementEnTete Nom="DE">Cerbère</ElementEnTete>
      <ElementEnTete Nom="FE">Portbou</ElementEnTete>
      <ElementEnTete Nom="LT">0,9</ElementEnTete>
      <ElementEnTete Nom="MT">3,08</ElementEnTete>
    </ENTETE>
    <BODY>
      <LIGNE>
        <ElementDetail Nom="NL">994</ElementDetail>
        <ElementDetail Nom="SEGMTARIF">LC</ElementDetail>
        <ElementDetail Nom="LNG">0,0</ElementDetail>
        <ElementDetail Nom="TCT">FMC</ElementDetail>
        <ElementDetail Nom="PU">3,425</ElementDetail>
        <ElementDetail Nom="COEFTRAFIC">0,600</ElementDetail>
        <ElementDetail Nom="M">0,00</ElementDetail>
      </LIGNE>
      <LIGNE>
        <ElementDetail Nom="NL">995</ElementDetail>
        <ElementDetail Nom="SEGMTARIF">LC_FM</ElementDetail>
        <ElementDetail Nom="LNG">0,9</ElementDetail>
        <ElementDetail Nom="TCT">FMC</ElementDetail>
        <ElementDetail Nom="PU">3,425</ElementDetail>
        <ElementDetail Nom="COEFTRAFIC">1,000</ElementDetail>
        <ElementDetail Nom="M">3,08</ElementDetail>
      </LIGNE>
…
JD_GENERIQUE Balise racine du document
Definition Balise structurante, définissant le fichier dans sa globalité.
PieceComptable
RedevanceActivite
SSActivite
ServTransport
Date
Balises de données contenues dans la balise « Definition »
TableauDetaille Balise structurante, définissant des éléments de facturation
Entete Balise structurante, regroupant des éléments d’entête.
ElementEnTete Nom= »NM »
ElementEnTete Nom= »TYPCIRC »
ElementEnTete Nom= »HD »
ElementEnTete Nom= »DE »
ElementEnTete Nom= »FE »
ElementEnTete Nom= »LT »
ElementEnTete Nom= »MT »
Balises de données avec attribut structurant
BODY Balise structurante, définissant le corps
LIGNE Balise structurante, définissant une ligne
ElementDetail Nom= »NL »
ElementDetail Nom= »SEGMTARIF »
ElementDetail Nom= »LNG »
ElementDetail Nom= »TCT »
ElementDetail Nom= »PU »
ElementDetail Nom= »COEFTRAFIC »
ElementDetail Nom= »M »
Balises de données avec attribut structurant

? Une facture est constituée d’une unique entête, de plusieurs tableaux de facturation. Ces derniers sont composés d’une entête de tableau et de plusieurs lignes de détails.

Traitement des valeurs

Le traitement d’un fichier XML revient à remettre à plat les données qui ont été hiérarchisées. La difficulté vient de l’aisance à y arriver.

Le traitement d’un nœud comme celui « Definition » est relativement simple. La mise en colonne de l’information est triviale avec les outils SSIS

XML Noeud definition

Le traitement d’un nœud « Entete » ou « Ligne » demandera plus de manipulation pour préparer les données à l’intégration.

image003

Dans un but d’intégration des données, nous remarquerons qu’il y a de nombreux attributs de balise présent et ceux à plusieurs reprise dans les balises « ElementEntete » et « ElementDetail ». Ces derniers ont une valeur fonctionnelle réelle. L’information aurait pu être résumée comme suit pour notre exemple :

image007 image005

Le format du fichier XML nous étant imposé en l’état, aucun changement de la source n’est possible.

Comment traiter ces balises XML avec attributs fonctionnels ? Nous aborderons une façon de faire sans qu’elle soit unique dans la section suivante. Celle-ci traite de l’utilisation des tâches SSIS mise à disposition dans BIDS.

Traitement par SSIS sous BIDS SQL Server 2008 R2

Source XML

Comme son nom l’indique, la tâche Source XML permet d’utiliser les données stockées dans des fichiers XML dans le flux de données. Si le XML provient d’un fichier, il suffit de spécifier le chemin d’accès ou obtenir le chemin du fichier grâce à une variable au moment de l’exécution. Il est également possible de spécifier le chemin d’accès d’un XSD qui définit la structure de notre XML. Le XSD peut ce générer à partir du fichier XML renseigné.

Création d’un composent « XML Source ». Nous renseignons le document source avec la localisation. La génération d’un fichier XSD est obligatoire pour la structure.

image009

Sur la seconde page du composent « Columns », nous retrouvons les structures de données qui ont été importées.

image011

Pour garantir la hiérarchie du fichier XML d’entrée, le composant génère une multitude de structures imbriquées. Plusieurs sorties sont disponibles et un identifiant unique ID apparait pour garantir l’arborescence.

image015

image013

SSIS rajoute une clé de substitution à chaque élément enfant. Un identifiant ParentID est ajouté au parent, un ChildID à l’enfant et un ChildParentID pour désigner la liaison entre le parent et l’enfant. Les données sont aplaties dans une forme tabulaire en sortie du composant.

En fonction de la complexité de l’arborescence du fichier XML, nous pouvons vite imaginer la difficulté de gérer cette solution.

Il reste à achever le traitement de transformation une fois les sources de sortie du composent identifiées. Rappelez-vous les attributs de balise comme ElementEntete ou ElementDetail ! Comment prendre en compte le nom du champ contenu dans l’attribut et la valeur réelle dans le texte de la balise ? Et bien, on va pivoter le tout.

Pivot

Cette tâche de transformation de tableau croisé dynamique permet à un ensemble de données normalisées en ligne d’être modifier en données moins normalisées, mais plus compacte. Ceci grâce au croisement dynamique des données du flux.

A partir d’une représentation tabulaire d’un niveau (balise XML). La ligne d’entête est à extraire de la chaine.

XML source extrait

image017

Représentation tabulaire de sortie souhaitée

ENTETE_ID NM TYPCIRC HD DE FE LT MT
3 044101 Réelle 00:10:00 Cerbèce Portbou 0,9 3,08

En sortie du composant XML Source, la structure générée est la suivante :

image018

Les éléments attribut de balise XML sont récupérés sous le champ « Nom » et la valeur sous « text » (voir image ci-dessus).

En utilisant le composant de tâche Pivot, nous obtenons la représentation tabulaire de sortie souhaitée (voir ci-dessus le tableau). En effet, nous allons faire une transformation de pivot avec la valeur « Texte », en colonne « Nom » et en ligne l’identifiant de l’entête.

Pivot_Key Nom
Set Key ENTETE_ID
Pivot_Value Text

Mise en place de la tâche pivot.

1 – Positionner sur l’onglet des propriétés d’entrées et sortie. Etendre jusqu’au « Input Columns » est renseigné le paramètre « PivotUsage » des champs comme suit :

    • LIGNE_ID : PivotUsage à 1
    • Nom : PivotUsage à 2
    • Text : PivotUsage à 3

image020

PivotUsage 0 La valeur n’est pas pivotée, elle passe en sortie du traitement
1 La valeur fait partie de la clé d’ensemble qui identifie une ou plusieurs rangées dans le cadre d’une série. Toutes les lignes d’entrée avec la clé même ensemble sont combinées en une seule ligne de sortie.
2 La colonne est une colonne pivot. Au moins une colonne est créée à partir de chaque valeur de colonne.
3 Les valeurs de cette colonne sont mises en colonnes qui sont créées à la suite du pivotement.

2 – Configuration des champs de sortie. Cette partie est la plus manuelle

a. Etendre « Pivot Default Output » jusqu’au « Output Columns ».
b. Cliquer sur « Add Columns » pour obtenir 8 colonnes
c. Sélectionner la première colonne

i. Renommer la « LIGNE_ID »
ii. Changer la propriété « SourceColumn » pour qu’il corresponde avec la propriété « LineageID » du champ LIGNE_ID présent dans les « Input Columns ». Ici 85 dans notre exemple.

d. Sur le reste des colonnes

i. Renommer les champs avec les libellés contenus dans la colonne « Nom »
ii. Changer pour tous la propriété « SourceColumn » pour qu’il corresponde avec la propriété « LineageID » du champ Text présent dans les « Input Columns ». On renseigne ici l’alimentation de la future colonne de sortie lors du process.
iii.La propriété « PivotKeyValue » qui permet le dispache des données doit-être renseigner. Les valeurs possibles proviennent de la colonne d’entrée « Nom ». Exemple pour la sortie NM, PivotKeyValue = NM

image022

Sortie du composant Pivot

image024

Merge Join

Ce composant de rapprochement des données est utilisé pour reconstruire dans un dataset les valeurs qui seront par la suite stockées.

Nous n’allons pas revenir sur un composant simple. Il s’agit ici d’utiliser les identifiants ID générés automatiquement par la mise à plat du fichier XML.

Conclusion

Dans cet article, Intregration Services peut être utilisé pour sortir des données d’attribut des balises d’un fichier XML. Le composant source XML effectue un travail amont de tabularisation des données qui est simple d’exploiter. Le pivotement des données est clé dans l’exemple pris. N’oubliez pas que le traitement du fichier se réalise en mémoire vis-à-vis des volumétries.

Migration SQL Server 2008 vers 2012

1 : Objectif

Ce document a pour but de définir un mode opératoire pour la migration de SQL Server 2008 vers SQL Server 2012.

Il vise à décrire les étapes à suivre pour la restauration de la base de données, la migration et le déploiement d’une solution SSIS.

2 : Restauration de la base de données

Pour la restauration de la base de données je vous invite à suivre les étapes suivantes :

Etape 1 : Connectez-vous à votre instance SQL Server 2012 via SQL Management Studio.

Image 1 Tutorial Migration SQL Server 2008 vers 2012

Etape 2 : Faites clics  droits sur Bases de données  -> Restaurer la base de données… .

Image 2 Tutorial Migration SQL Server 2008 vers 2012

Etape 3 : A partir de l’unité choisissez la source de données que vous souhaitez restaurer en ajoutant le chemin d’accès du fichier .bak (Dans mon exemple je restaure « MCNEXT_Tests.bak »

Image 3 Tutorial Migration SQL Server 2008 vers 2012

Etape 4 : Après avoir ajouté le fichier « .bak » sélectionnez la base de destination.

Image 4 Tutorial Migration SQL Server 2008 vers 2012

Sélectionner la Base de données ajouté.

Etape 5 : Cliquez sur « ok » pour lancer la restauration.

Etape 6 : Afin de visualiser la base de données cliquez sur Actualisez

3 : Migration des packages  SSIS

Pour la migration d’un package SSIS je vous invite à suivre les étapes suivantes :

Etape 1: Nouveau projet

-> Choisissez ‘Integration Services Project’

Image 5 Tutorial Migration SQL Server 2008 vers 2012

Etape 2 : Sélectionnez la solution SSIS à importer

Image 6 Tutorial Migration SQL Server 2008 vers 2012

Etape 3 : Assistant de conversion

Image 7 Tutorial Migration SQL Server 2008 vers 2012

-> Cliquez sur le bouton Suivant

Etape 4 :  

Image 8 Tutorial Migration SQL Server 2008 vers 2012

-> Cliquez sur le bouton Terminer

Etape 5 : Assistant de mise à niveau de Package SSIS

Image 9 Tutorial Migration SQL Server 2008 vers 2012

-> Cliquez sur le bouton Suivant

Etape 6 :

Image 10 Tutorial Migration SQL Server 2008 vers 2012

-> Sélectionnez le package

Etape 7 :

Image 11 Tutorial Migration SQL Server 2008 vers 2012

-> Sélectionnez : « Update connection strings to use new provider names » et « Continue upgrade process when a package upgrade fails

Etape 8 : Fin de l’assistant

Image 12 Tutorial Migration SQL Server 2008 vers 2012

-> Cliquez sur le bouton Terminer

Etape 9 :

Image 13 Tutorial Migration SQL Server 2008 vers 2012

-> Cliquez sur le bouton Fermer

Etape 10 :

Image 14 Tutorial Migration SQL Server 2008 vers 2012

4 : La conversion en modèle de déploiement de projet

Si vous avez créé le projet sous SQL Server 2012, le projet utilise le modèle de déploiement du projet par défaut sinon dans le cas d’une migration il faut le convertir en modèle de déploiement de projet.

Pour cela je vous invite à suivre les étapes suivantes :

Etape 1 : Faites clics  droits sur la solution SSIS  -> Convertir le projet en modèle de déploiement… .       1

Etape 2 : Assistant Conversion de projet Integration Services

2

-> Cliquez sur le bouton Suivant

 Etape 3 : Définir les options sur la page Sélectionner les package

3

-> Sélectionnez le package

Etape 4 : Définir les options sur la page Spécifier les propriétés du projet

4

-> Indiquez le nom du projet.

-> Sélectionnez le niveau de protection des packages

-> Tapez une description facultative du projet

Etape 5 : Définir les options sur la page Mettre à jour la tâche d’exécution de package

5

-> Cliquez sur le bouton Suivant

Etape 6 : Définir les options sur la page Sélectionner les configurations

6

-> Ajoutez les configurations de package que vous souhaitez remplacer à l’aide de paramètres

7

-> Sélectionnez les configurations de package que vous souhaitez remplacer par des paramètres.

-> Sélectionnez « Remove configurations from all packages after conversion » afin de Supprimer les configurations de tous les packages après la conversion

Etape 7 : Définir les options sur la page Créer des paramètres

8

->Sélectionnez le package.

->Indiquez le nom du paramètre.

->Sélectionnez l’étendue du paramètre, package ou projet.

Etape 8 : Définir les options sur la page Configurer les paramètres

9

->Indiquez le chemin d’accès aux sources de données

Etape 9 :

10

->Cliquez sur le bouton Suivant

Etape 10 : La page Effectuer la conversion indique l’état de la conversion du projet

11

->Cliquez sur le bouton Ferme

5 : Déploiement

Le déploiement est une chose qui a pas mal changé dans SQL Server 2012, un nouveau dossier est apparu dans management studio : « Integration Services Catalogs ».

Ce dossier sera l’endroit où les packages seront déployés et l’endroit où les variables d’environnement seront créées.

12

Avant de pouvoir déployer des projets sur le serveur Integration Services, celui-ci doit contenir le catalogue SSISDB. Le programme d’installation de SQL Server 2012 ne crée pas automatiquement le catalogue vous devez le créer manuellement

Pour cela je vous invite à suivre les étapes suivantes :

Etape 1 : Créer un catalog

13

->Faites clics  droits sur Integration Services Catalogs  -> Créer un Catalog… .

14

->Saisissez un mot de passe

15

Les objets stockés dans le catalogue SSISDB sont les projets, les packages, les paramètres, les environnements et l’historique opérationnel.

Etape 2 : Déployer

16

->Faites clics droits sur la solution SSIS  -> Déployer… .

Etape 3 : Assistant Déploiement d’Integration Services

17

->Cliquez sur le bouton Suivant

Etape 4 : Sélectionner une source

18

->Sélectionnez Fichier de déploiement de projet

->Entrez le chemin d’accès du fichier .ispac

Etape 5 :

19

->Entrez le nom du serveur.

->Sélectionnez la destination du projet.

Etape 6 :

20

->Cliquez sur déployer

Etape 7 : Fin de l’assistant

21

->Cliquez sur Fermer pour quitter l’assistant

La solution SSIS est installée dans le Management Studio

22

L’autre nouveauté de SSIS dans SQL Server 2012 c’est la gestion des environnements, il vous suffit maintenant de créer un environnement dans SSIS pour chaque environnement physique (Dev, Prod…) et d’y attribuer les valeurs correspondantes.

Pour cela je vous invite à suivre les étapes suivantes :

Etape 8 : Faites clics  droits sur le dossier Environnement  -> Créer Environnement… .

0

Etape 9 :

24

->Tapez un nom pour l’environnement

Etape 10 : Faites clics  droits sur Environnement  -> Propriétés… .

25

Etape 11: Dans la page « Variables »

 26

->Choisissez un nom de la variable.

->Sélectionnez le Type de la variable

->Entrez la Valeur de la variable d’environnement.

Etape 12: Dans la page « Permissions »: Vous pouvez accorder ou refusez des autorisations pour les rôles et les utilisateurs.

27

->Cliquez sur ok pour enregistrer les propriétés de l’environnement.

Etape 13 : Dans l’Explorateur d’objets, faites clics  droits sur la solution  -> Configurer… .

28

Etape 14: Dans la page « Références »: procédez comme suit pour ajouter une variable:

29

->Cliquez sur Ajouter pour ajouter un environnement

->Cliquez sur  ok pour enregistrer la référence dans l’environnement.

Etape 15:

Dans l’onglet « Connection Managers » de la page « Paramètre » : Vous pouvez mapper la variable d’environnement à une propriété du gestionnaire de connexions.

30

->cliquez sur le bouton Parcourir en regard du champ Valeur.

->Sélectionnez variable d’environnement.

->Choisissez la variable d’environnement que vous avez créée.

->Cliquez deux fois sur ok pour enregistrer vos modifications.

Etape 16: Faites clics  droits sur le package  -> Exécute… .

31

    32

->Sélectionnez l’environnement.

->Cliquez sur ok pour lancer l’exécution.

Tutorial rédigé par Laila TABII