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.txt
plat 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 :
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.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.
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.
Cliquez sur Gestionnaire des connexions, puis sur Nouveau.
Dans la zone nom du gestionnaire de connexions, entrez un nom convivial pour la connexion. Pour cet exemple,
Example Load Flat File CM
.Cliquez sur Parcourir et sélectionnez le
ExampleLoad.txt
fichier à partir de l’ordinateur local.É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.
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.
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.
Cliquez sur OK pour enregistrer votre gestionnaire de connexions.
Cliquez sur OK pour quitter l’éditeur de source de fichier plat.
Spécifiez la destination du flux de données.
Faites glisser la destination PDW SQL Server de la boîte à outils vers le volet Flux de données.
Double-cliquez sur la zone que vous venez de créer pour charger l’éditeur de destination PDW SQL Server.
Cliquez sur la flèche vers le bas en regard de Gestionnaire des connexions.
Sélectionnez Créer une connexion.
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.
Utilisateur
user1
:Mot de passe :
password1
Base de données de destination :
LoadExampleDB
Sélectionnez la table de destination :
Orders
.Sélectionnez Ajouter comme mode de chargement, puis cliquez sur OK.
Spécifiez le flux de données de la source à la destination.
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.
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.
Enregistrez le package en cliquant sur Enregistrer dans le menu Fichier .
Exécutez le package sur votre ordinateur Integration Services.
Dans Integration Services Explorateur de solutions (colonne droite), cliquez avec le bouton
Package.dtsx
droit et sélectionnez Exécuter.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