> Tech > Transférer des données de l’iSeries vers SQL Server 2005

Transférer des données de l’iSeries vers SQL Server 2005

Tech - Par iTPro - Publié le 24 juin 2010
email

Grâce à ces améliorations, SSIS est un bien meilleur outil ETL d’entreprise, mais au prix d’une plus grande complexité. Créer des packages SSIS à l’aide du SSIS Designer est une tâche complexe qui n’entre pas dans le cadre de cet article. Le flux de contrôle amélioré permet de créer des

Transférer des données de l’iSeries vers SQL Server 2005

packages qui utilisent des variables ainsi que des constructions en boucle et une logique complexe. Autrement dit, le concepteur évolue dans un environnement de développement entièrement graphique.

Heureusement, on peut transférer des données entre l’iSeries et SQL Server sans être un expert en SSIS Designer. Outre le SSIS Designer, Microsoft a fourni un Import and Export Wizard qui permet de tirer parti de la puissance de SSIS sans souffrir de sa complexité. Malheureusement, le Import and Export Wizard est bien caché et vous ne le trouverez pas sur le menu Start. En fait, le meilleur moyen de démarrer le Import and Export Wizard consiste à exécuter la commande DTSWIZARD sur l’invite de commande ou à partir du menu Start|Run.

Dans la boîte de dialogue Welcome, cliquez sur le bouton Next : le Import and Export Wizard affiche la boîte de dialogue que l’on voit figure 2. Là, sélectionnez les données source à transférer. La liste déroulante des sources de données permet de choisir le provider OLE DB ou les providers .NET Framework à utiliser pour se connecter à la source de données. Lors de sa première utilisation, cette liste déroulante propose trois providers iSeries :

• IBMDA400 – le provider IBM OLE DB standard
• IBMDARLA – un nouveau provider d’accès au niveau enregistrement
• IBMDASQL – un nouveau provider SQL seulement avec un support pour les packages et le contrôle d’engagement

Comme SSIS est un outil basé sur SQL, j’ai choisi le provider IBMDASQL, comme vous pouvez le voir à la figure 2. Ensuite, pour fournir l’information de connexion dont le provider OLE DB a besoin pour se connecter à l’iSeries, cliquez sur le bouton Properties pour obtenir la boîte de dialogue Data Link qu’illustre la figure 3.

Dans cette boîte de dialogue, définissez les propriétés dont le provider IBM OLE DB a besoin pour se connecter à l’iSeries. Dans la boîte Data Source, entrez le nom ou l’adresse IP de l’iSeries auquel vous voulez vous connecter. Dans la figure 3, vous voyez que j’ai entré le système iSeries nommé Carlsbad.

Ensuite, il faut fournir l’information d’authentification. Dans l’idéal, si votre ID et mot de passe de login Windows sont les mêmes que ceux de votre iSeries, vous pouvez choisir l’option de sécurité Use Windows NT Integrated. Dans le cas contraire, vous devez fournir l’information de sign-on iSeries requise. Ensuite, cliquez sur l’onglet All pour définir la propriété Default Collection. La collection par défaut fournit une bibliothèque par défaut à utiliser pour les requêtes SQL qui emploient des noms de tables non qualifiés. Figure 4, vous voyez que j’ai donné à la collection par défaut le nom de bibliothèque MIKEO.

Un clic sur le bouton OK sauvegarde l’information de connexion OLE DB, ferme la boîte de dialogue Data Link, et vous ramène à Import and Export Wizard. Un clic sur le bouton Next dans le wizard entraîne la connexion de celui-ci à l’iSeries et affiche la boîte de dialogue que montre la figure 5. Là, sélectionnez la destination cible des données : dans ce cas, le système SQL Server local. La liste déroulante Destination vous permet de sélectionner le provider OLE DB ou le provider .NET Framework à utiliser pour la connexion à la source de données cible. Figure 5, on voit que j’ai sélectionné le SQL Native Client, un nouveau provider .NET très performant que Microsoft a ajouté à SQL Server 2005. Vous pourriez bien sûr sélectionner le provider Microsoft OLE DB pour SQL Server, mais le SQL Native Client utilise le protocole TDS (Tabular Data Stream) natif de SQL Server et ne possède pas l’overhead OLE DB qui permet à OLE DB d’être neutre vis-à-vis de la base de données.

Toujours dans cette boîte de dialogue, il faut choisir le type d’authentification. Comme le transfert SSIS de cet exemple aura lieu directement sur le système SQL Server, j’ai choisi l’authentification Windows pour la connexion à SQL Server. Près du bas de l’écran, on voit que la destination de données est une base de données nommée Test, que j’ai créée précédemment sur le SQL Server. Un clic sur le bouton Next nous fournit la boîte de dialogue de la figure 6. Là, on choisit le genre de transfert à effectuer. SSIS peut transférer un fichier entier ou les résultats d’une instruction SQL, c’est-à-dire que l’on peut procéder à une sélection d’enregistrements très poussée avant d’effectuer le transfert. Par exemple, on peut utiliser SQL pour joindre des fichiers multiples sur l’iSeries ainsi que sélectionner des sous-ensembles de colonnes et de lignes disponibles. Dans cet exemple, vous pouvez voir que j’ai sélectionné l’option Copy data from one or more tables or views, laquelle copie essentiellement tout le contenu d’un fichier de l’iSeries sur le système SQL Server.

Un clic sur le bouton Next amène la boîte de dialogue de la figure 7. On y voit la liste des tables disponibles à partir de la base de données source. Ces tables sont déterminées par les bibliothèques spécifiées dans la propriété Default Collection que nous avons établie précédemment dans ce processus – sur l’onglet All de la boîte Data Link Properties (figure 4). Dans cet exemple, tous les fichiers pour la bibliothèque iSeries nommée MIKEO sont inclus dans la liste. Pour sélectionner un fichier à transférer, cliquez sur la case qui se trouve à gauche du nom de fichier. Vous pouvez sélectionner un ou plusieurs fichiers. Dans la figure 7, on voit que j’ai sélectionné le fichier TCUSTCDT dans la bibliothèque MIKEO.

L’un des éléments importants de cette figure est la syntaxe qu’utilise le provider OLE DB pour le nommage d’objets. Tous les noms de fichiers iSeries sont identifiés par une syntaxe de nommage en trois parties qui identifient : le nom du système pour la première, la bibliothèque iSeries pour la deuxième, et le nom du fichier pour la troisième. Dans le même esprit, le nom de la cible du transfert est lui aussi divisé en trois parties. Dans la figure 7, la destination de la table est la base de données SQL Server nommée Test et le nom de la table sera MIKEO.TCUSTCDT.

Cela conclut le travail nécessaire pour créer le package SSIS et pour transférer un fichier de l’iSeries à SQL Server. Cependant, vos besoins particuliers peuvent nécessiter quelques étapes facultatives en plus. S’il s’agit d’un package que vous voulez exécuter de façon répétitive, si la table cible existe déjà, et si vous voulez simplement remplacer son contenu, vous pouvez cliquer sur le bouton Edit pour afficher la boîte de dialogue Column Mapping de la figure 8.

Là, vous pouvez sélectionner Drop and re-create destination table pour ordonner à SSIS de supprimer les éventuels objets qu’il rencontrera et les remplacer par le fichier provenant du nouveau transfert. La boîte de dialogue Column Mappings permet aussi de personnaliser les noms de table et de colonne transférées ainsi que changer les types de données. Les paramètres par défaut du provider IBM OLE DB sélectionnent de manière satisfaisante les bons types et noms de données, mais parfois il faudra modifier la destination face à une situation particulière. Cliquez sur OK pour revenir à la boîte de dialogue de la figure 7. Une fois choisis les fichiers à transférer, cliquez sur le bouton Next pour afficher les boîtes de dialogue supplémentaires qui vous permettent de sauvegarder, si nécessaire, votre package SSIS. Quand vous sauvegardez le package SSIS, vous obtenez une boîte de dialogue Protection Level qui permet de contrôler le mode de sécurisation de l’information d’authentification dans le package. Vous avez le choix entre ne pas sauvegarder l’information et crypter l’information d’après le nom de l’utilisateur ou d’un mot de passe. Les packages SSIS peuvent être sauvegardés dans un système de fichiers ou dans la base de données SQL Server. La boîte de dialogue suivante permet de choisir entre l’exécution immédiate du package ou une simple sauvegarde. Si vous optez pour l’exécution immédiate, une boîte de dialogue récapitulative vous permet de vérifier l’option du package SSIS. A ce stade, vous pouvez cliquer sur le bouton Back et reculer au travers des écrans du wizard, en procédant aux modifications nécessaires, ou bien cliquer sur le bouton Next pour exécuter le transfert, auquel cas vous obtiendrez la boîte de dialogue de la figure 9.

Dans la colonne Action, on voit quelles étapes du transfert ont été effectuées et leur état. Une coche verte indique la réussite, un drapeau jaune indique des avertissements, un drapeau rouge signale des erreurs. Dans la figure 9, on voit que les 12 lignes du fichier TCUSTCDT ont été transférées correctement de l’iSeries vers SQL Server 2005.

Il n’en faut pas plus pour transférer des données de l’iSeries à SQL Server 2005. Le provider iSeries Access OLE DB assume toute la conversion de données et traite les valeurs de données normales sans problème. Toutefois, des difficultés risquent de surgir lorsque les deux systèmes ne prennent pas en charge les mêmes types de données. Par exemple, il se peut que les deux systèmes ne gèrent pas la date-heure de la même manière. Dans de tels cas, vous devez soit omettre les colonnes comportant des incompatibilités de types de données, soit utiliser une transformation de données SSIS pour manipuler les données au moment de leur transfert.

Téléchargez gratuitement cette ressource

IBMi et Cloud : Table ronde Digitale

IBMi et Cloud : Table ronde Digitale

Comment faire évoluer son patrimoine IBMi en le rendant Cloud compatible ? Comment capitaliser sur des bases saines pour un avenir serein ? Faites le point et partagez l'expertise Hardis Group et IBM aux côtés de Florence Devambez, DSI d'Albingia.

Tech - Par iTPro - Publié le 24 juin 2010