Partager via


Charger des données avec Integration Services dans Parallel Data Warehouse

Fournit des informations de référence et de déploiement pour le chargement de données dans SQL Server Parallel Data Warehouse à l’aide de packages SQL Server Integration Services (SSIS).

Concepts de base

Integration Services est le composant de SQL Server pour l’extraction, la transformation et le chargement (ETL) hautes performances des données, et est couramment utilisé pour remplir et mettre à jour un entrepôt de données.

L’adaptateur de destination PDW est un composant Integration Services qui vous permet de charger des données dans PDW à l’aide de packages dtsx Integration Services. Dans un flux de travail de package pour le système de plateforme Analytique (PDW), vous pouvez charger et fusionner des données à partir de plusieurs sources et charger des données vers plusieurs destinations. Les charges se produisent en parallèle, toutes les deux dans un package et entre plusieurs packages s'exécutant simultanément, avec un maximum de 10 charges s'exécutant en parallèle sur la même appliance.

Outre les tâches décrites dans cette rubrique, vous pouvez utiliser d’autres fonctionnalités d’Integration Services pour filtrer, transformer, analyser et nettoyer vos données avant de les charger dans l’entrepôt de données. Vous pouvez également améliorer le flux de travail du package en exécutant des instructions SQL, en exécutant des packages enfants ou en envoyant des messages électroniques.

Pour obtenir la documentation complète d’Integration Services, consultez SQL Server Integration Services.

Méthodes d’exécution d’un package Integration Services

Utilisez l’une de ces méthodes pour exécuter un package Integration Services.

Exécuter à partir de SQL Server 2008 R2 Business Intelligence Development Studio (BIDS)

Pour exécuter le package à partir de BIDS, cliquez avec le bouton droit sur votre package et choisissez Exécuter le package.

Par défaut, BIDS exécute des packages à l’aide de fichiers binaires 64 bits. Cela est déterminé par la propriété de package Run64BitRuntime . Pour définir cette propriété, accédez à Explorateur de solutions, cliquez avec le bouton droit sur votre projet et choisissez Propriétés. Dans les pages de propriétés Integration Services, accédez aux propriétés de configuration et sélectionnez Débogage. La propriété Run64BitRuntime s’affiche sous les options de débogage. Pour utiliser des runtimes 32 bits, définissez cette valeur sur False. Pour utiliser des runtimes 64 bits, définissez cette valeur sur True.

Exécuter à partir de SQL Server 2012 SQL Server Data Tools

Pour exécuter le package à partir de SQL Server Data Tools, cliquez avec le bouton droit sur votre package et choisissez Exécuter le package.

Exécuter à partir de PowerShell

Pour exécuter le package à partir de Windows PowerShell, utilisez l’utilitaire dtexec : dtexec /FILE <packagePath>

Par exemple, dtexec /FILE "C:\Users\User1\Desktop\Package.dtsx"

Exécuter à partir d’une invite de commandes Windows

Pour exécuter le package à partir d’une invite de commandes Windows, utilisez l’utilitaire dtexec : dtexec /FILE <packagePath>

Par exemple : dtexec /FILE "C:\Users\User1\Desktop\Package.dtsx"

Types de données

Lorsque vous utilisez Integration Services pour charger des données d’une source de données vers une base de données PDW SQL Server, les données sont d’abord mappées des données sources aux types de données Integration Services. Cela permet à des données provenant de plusieurs sources de données d'être mappées à un ensemble commun de types de données.

Ensuite, les données sont mappées à partir d’Integration Services à des types de données PDW SQL Server. Pour chaque type de données SQL Server PDW, le tableau suivant répertorie les types de données Integration Services qui peuvent être convertis en type de données PDW SQL Server.

Type de données PDW Types de données Integration Services mappés au type de données PDW
BIT DT_BOOL
BIGINT DT_I1, DT_I2, DT_I4, DT_I8, DT_UI1, DT_UI2, DT_UI4
CHAR DT_STR
DATE DT_DBDATE
DATETIME DT_DATE, DT_DBDATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2
DATETIME2 DT_DATE, DT_DBDATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2
DATETIMEOFFSET DT_WSTR
DECIMAL DT_DECIMAL, DT_I1, DT_I2, DT_I4, DT_I4, DT_I8, DT_NUMERIC, DT_UI1, DT_UI2, DT_UI4, DT_UI8
FLOAT DT_R4, DT_R8
INT DT_I1, DTI2, DT_I4, DT_UI1, DT_UI2
MONEY DT_CY
NCHAR DT_WSTR
NUMERIC DT_DECIMAL, DT_I1, DT_I2, DT_I4, DT_I8, DT_NUMERIC, DT_UI1, DT_UI2, DT_UI4, DT_UI8
NVARCHAR DT_WSTR, DT_STR
real DT_R4
SMALLDATETIME DT_DBTIMESTAMP2
SMALLINT DT_I1, DT_I2, DT_UI1
SMALLMONEY DT_R4
TIME DT_WSTR
TINYINT DT_I1
VARBINARY DT_BYTES
VARCHAR DT_STR

Prise en charge limitée de la précision du type de données

PDW génère une erreur de validation si vous mappez une colonne d’entrée DT_NUMERIC ou DT_DECIMAL qui contient une valeur avec une précision supérieure à 28.

Types de données non pris en charge

SQL Server PDW ne prend pas en charge les types de données Integration Services suivants :

  • DT_DBTIMESTAMPOFFSET

  • DT_DBTIME2

  • DT_GUID

  • DT_IMAGE

  • DT_NTEXT

  • DT_TEXT

Pour charger des colonnes qui contiennent des données de ces types dans SQL Server PDW, vous devez ajouter une transformation de conversion de données en amont dans le flux de données pour convertir les données en type de données compatible.

autorisations

Pour exécuter un package de chargement Integration Services, vous avez besoin des éléments suivants :

  • Autorisation LOAD sur la base de données.

  • Autorisations INSERT, UPDATE, DELETE applicables sur la table de destination.

  • Si une base de données intermédiaire est utilisée, l’autorisation CREATE sur la base de données intermédiaire. Il s’agit de la création d’une table temporaire.

  • Si aucune base de données intermédiaire n’est utilisée, l’autorisation CREATE sur la base de données de destination. Il s’agit de la création d’une table temporaire.

Remarques générales

Lorsqu’un package Integration Services a plusieurs destinations SQL Server PDW en cours d’exécution et qu’une des connexions est arrêtée, Integration Services cesse d’envoyer des données à toutes les destinations PDW SQL Server.

Limitations et restrictions

Pour un package Integration Services, le nombre de destinations PDW SQL Server pour la même source de données est limité par le nombre maximal de charges actives. La valeur maximale est préconfigurée et n’est pas configurable par l’utilisateur.

Chaque destination de package Integration Services pour la même source de données compte comme une charge lorsque le package est en cours d’exécution. Supposons, par exemple, que le nombre maximal de charges actives soit de 10. Le package ne s’exécute pas s’il tente d’ouvrir 11 destinations ou plus pour la même source de données.

Plusieurs packages peuvent s’exécuter simultanément tant que chaque package n’utilise pas plus que les charges actives maximales. Par exemple, si le nombre maximal de charges actives est de 10, vous pouvez exécuter simultanément deux packages qui utilisent chacun 10 destinations. Un package s'exécute pendant que l'autre attend dans la file d'attente des charges.

Si le nombre de chargements dans la file d’attente dépasse le nombre maximal de chargements en file d’attente, le package ne s’exécute pas. Par exemple, si le nombre maximal de charges est de 10 par appliance et que le nombre maximal de chargements en file d’attente est de 40 par appliance, vous pouvez exécuter simultanément cinq packages Integration Services qui ouvrent chacune 10 destinations. Si vous essayez d’exécuter un sixième package, il ne s’exécute pas.

Important

L’utilisation d’une source de données OLE DB dans SSIS avec l’adaptateur de destination PDW peut entraîner une altération des données si la table source contient des colonnes char et varchar avec des classements SQL. Nous vous recommandons d’utiliser une source ADO.NET si la table source contient des colonnes char ou varchar avec des classements SQL.

Comportement du verrouillage

Lors du chargement de données avec Integration Services, analytics Platform System (PDW) utilise des verrous au niveau des lignes pour mettre à jour les données dans la table de destination. Cela signifie que chaque ligne est verrouillée pour la lecture et l’écriture pendant sa mise à jour. Les lignes de la table de destination ne sont pas verrouillées pendant le chargement des données dans la table intermédiaire.

Exemples

R. Chargement simple à partir d’un fichier plat

La procédure pas à pas suivante illustre une simple charge de données à l’aide d’Integration Services pour charger des données de fichiers plats sur une appliance SQL Server PDW. Cet exemple suppose que Integration Services a déjà été installé sur l’ordinateur client et que la destination SQL Server PDW a été installée, comme décrit ci-dessus.

Dans cet exemple, nous allons charger dans la Orders table, qui a la DDL suivante. La Orders table fait partie de la LoadExampleDB base de données.

CREATE TABLE LoadExampleDB.dbo.Orders (  
   id INT,  
   city varchar(25),  
   lastUpdateDate DATE,  
   orderDate DATE)  
;  

Voici les données de chargement :

id        city           lastUpdateDate     orderdate  
--------- -------------- ------------------ ----------  
1         Seattle        2010-05-01         2010-01-01  
2         Denver         2002-06-25         1999-01-02  

En préparation de la charge, créez le fichier exampleLoad.txtplat contenant les données de chargement :

id,city,lastUpdateDate,orderDate  
1,Seattle,2010-05-01,2010-01-01  
2,Denver,2002-06-25,1999-01-02  

Tout d’abord, créez un package Integration Services en effectuant les étapes suivantes :

  1. Dans SQL Server Data Tools (SSDT), sélectionnez Fichier, Nouveau, puis Project. Sélectionnez Project Integration Services dans les options répertoriées. Nommez ce projet ExampleLoad, puis cliquez sur OK.

  2. Cliquez sur l’onglet Flux de contrôle, puis faites glisser la tâche de flux de données de la boîte à outils vers le volet Flux de contrôle.

  3. Cliquez sur l’onglet Flux de données, puis faites glisser la source de fichier plat de la boîte à outils vers le volet Flux de données. Double-cliquez sur la zone que vous venez de créer pour ouvrir l’éditeur de source de fichier plat.

  4. Cliquez sur Gestionnaire des connexions, puis sur Nouveau.

  5. Dans la zone nom du gestionnaire de connexions, entrez un nom convivial pour la connexion. Pour cet exemple, Example Load Flat File CM.

  6. Cliquez sur Parcourir et sélectionnez le ExampleLoad.txt fichier à partir de l’ordinateur local.

  7. Étant donné que le fichier plat contient une ligne avec des noms de colonnes, cliquez sur les noms des colonnes dans la première zone de ligne de données.

  8. Cliquez sur Colonnes dans la colonne de gauche et affichez un aperçu des données qui seront chargées pour vous assurer que les noms et données des colonnes ont été interprétés correctement.

  9. Cliquez sur Avancé dans la colonne de gauche. Cliquez sur chaque nom de colonne pour passer en revue le type de données associé aux données. Les modifications de type dans la zone de sorte que les types de données des données chargées soient compatibles avec les types de colonnes de destination.

  10. Cliquez sur OK pour enregistrer votre gestionnaire de connexions.

  11. Cliquez sur OK pour quitter l’éditeur de source de fichier plat.

Spécifiez la destination du flux de données.

  1. Faites glisser la destination PDW SQL Server de la boîte à outils vers le volet Flux de données.

  2. Double-cliquez sur la zone que vous venez de créer pour charger l’éditeur de destination PDW SQL Server.

  3. Cliquez sur la flèche vers le bas en regard de Gestionnaire des connexions.

  4. Sélectionnez Créer une connexion.

  5. Renseignez les informations du serveur, de l’utilisateur, du mot de passe et de la base de données de destination avec des informations spécifiques à votre appliance. (Les exemples sont présentés ci-dessous). Cliquez ensuite sur OK.

    Pour les connexions InfiniBand, nom du serveur : entrez <appliance-name-SQLCTL01,17001>.

    Pour les connexions Ethernet, nom du serveur : entrez l’adresse IP du cluster de nœuds de contrôle, virgule, port 17001. Par exemple, 10.192.63.134,17001.

    Utilisateuruser1 :

    Mot de passe :password1

    Base de données de destination :LoadExampleDB

  6. Sélectionnez la table de destination : Orders.

  7. Sélectionnez Ajouter comme mode de chargement, puis cliquez sur OK.

Spécifiez le flux de données de la source à la destination.

  1. Dans le volet Flux de données, faites glisser la flèche verte de la zone Source de fichier plat vers la zone De destination PDW SQL Server.

  2. Double-cliquez sur la zone De destination PDW SQL Server pour que vous voyiez à nouveau l’Éditeur de destination PDW SQL Server. Vous devez voir les noms des colonnes du fichier plat à gauche, sous Colonnes d’entrée non mappées. Vous devez voir les noms des colonnes de la table de destination à droite, sous Colonnes de destination non mappées. Mappez les colonnes en faisant glisser ou en double-cliquant sur les noms de colonnes correspondantes dans les colonnes d’entrée non mappées et les colonnes de destination non mappées vers la zone Colonnes mappées. Cliquez sur OK pour enregistrer vos paramètres.

  3. Enregistrez le package en cliquant sur Enregistrer dans le menu Fichier .

Exécutez le package sur votre ordinateur Integration Services.

  1. Dans Integration Services Explorateur de solutions (colonne droite), cliquez avec le bouton Package.dtsx droit et sélectionnez Exécuter.

  2. Le package s’exécute et la progression plus toutes les erreurs s’affichent dans le volet Progression . Utilisez un client SQL pour confirmer la charge ou surveiller la charge via la console d’administration PDW SQL Server.

Voir aussi

Créer une tâche de script qui utilise l’adaptateur de destination SSIS PDW
SQL Server Integration Services
Conception et implémentation de packages (Integration Services)
Tutoriel : Création d’un package de base à l’aide d’un Assistant
Prise en main (Integration Services)
Exemple de génération de package dynamique
Conception de vos packages SSIS pour le parallélisme (vidéo SQL Server)
Amélioration des charges incrémentielles avec la capture de données modifiées
Transformation de dimension à variation lente
Tâche d’insertion en bloc