Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server 2017 :copie de données SQL Server de Linux vers Windows avec SSIS

Les services d'intégration SQL Server 2017 peuvent désormais s'exécuter sur Linux, ce qui signifie que vous pouvez migrer un package développé sur Windows et utiliser ODBC comme connecteur.

Pour tester cela, nous avons créé un package simple sous Windows qui copie les données entre une instance SQL Server locale et distante, puis exécute le package sur une machine Linux.

Le processus était simple, la seule chose à garder à l'esprit est que vous devez créer des sources de données ODBC avec les mêmes noms sur les machines Windows et Linux. Les étapes de création de notre package de test simple sont les suivantes :

  1. Dans SQL Server Management Studio, connectez-vous à l'instance SQL Server à partir de laquelle vous souhaitez copier des données.
  2. Créez une table de test simple :
    CREATE DATABASE ssis
    USE ssis
    CREATE TABLE Persons (
        PersonID int identity,
        LastName varchar(255),
        FirstName varchar(255),
        Address varchar(255),
        City varchar(255)
    );
    INSERT INTO Persons VALUES ('Erichsen', 'Tom', 'Skagen 21', 'Stavanger')
    
  3. Connectez-vous à l'instance vers laquelle vous souhaitez copier des données. Créez la table de test mais ne la remplissez pas.
  4. Sur la machine sur laquelle Visual Studio est installé, créez deux sources de données ODBC, une pour chaque instance SQL Server. Utilisez la version 32 bits de l'administrateur de source de données ODBC pour ce faire.
  5. Dans Visual Studio, créez un nouveau projet Integration Services.
  6. Faites glisser une tâche de flux de données de la boîte à outils vers l'onglet Flux de contrôle.
  7. Choisissez l'onglet Flux de données.
  8. Faites glisser une source ODBC de la boîte à outils vers l'onglet Flux de données, puis appuyez sur Retour.

    La destination ODBC se trouve dans la liste Autres sources.

  9. Sélectionnez la source ODBC, puis appuyez sur Retour.
  10. Dans la boîte de dialogue Source ODBC, choisissez Nouveau.
  11. Dans la boîte de dialogue Configurer le gestionnaire de connexions ODBC, choisissez Nouveau.
  12. Dans la boîte de dialogue Gestionnaire de connexion, choisissez la source de données ODBC qui se connecte à l'instance SQL Server source, puis utilisez le bouton OK pour revenir à la boîte de dialogue Source ODBC.
  13. Choisir des colonnes.
  14. Faites glisser une destination ODBC de la boîte à outils vers l'onglet Flux de données, puis appuyez sur Retour.

    La destination ODBC figure dans la liste Autres destinations.

  15. Sélectionnez la source ODBC. Faites glisser la flèche bleue vers la destination ODBC.
  16. Sélectionnez la destination ODBC, puis appuyez sur Retour.
  17. Dans la boîte de dialogue Destination ODBC, choisissez Nouveau.
  18. Dans la boîte de dialogue Configurer le gestionnaire de connexions ODBC, choisissez Nouveau.
  19. Dans la boîte de dialogue Gestionnaire de connexion, choisissez la source de données ODBC qui se connecte à l'instance SQL Server de destination, puis utilisez le bouton OK pour revenir à la boîte de dialogue Source ODBC.
  20. Dans le nom de la table ou de la liste des vues, choisissez Personnes.
  21. Choisissez Mappages.
  22. Supprimez le mappage entre les colonnes PersonID. Le PersonID est renseigné automatiquement.
  23. Installez, autorisez et testez la version Linux 64 bits du pilote ODBC SQL Server sur la machine sur laquelle le port Linux de SQL Server et SSIS est installé.
  24. Sur la machine Linux, créez deux sources de données ODBC SQL Server, avec les mêmes noms que les sources de données que vous avez créées sous Windows.

    Sous Linux, vous créez des sources de données ODBC en éditant un fichier texte, normalement stocké dans /etc/odbc.ini. Vous pouvez adapter l'exemple de source de données, SQLSERVER_SAMPLE , si vous le souhaitez, mais n'oubliez pas de les renommer.

  25. Copiez le package SSIS de la machine Windows vers la machine Linux.
  26. Pour exécuter le package :
    export PATH=/opt/ssis/bin:$PATH
    dtexec /F "MyPackage.dtsx"