Exemple de package Synchronizing Adventure Works DW Partitions

L'un des problèmes courants auxquels font face les développeurs est l'automatisation du processus de création de partitions dans des cubes Analysis Services. Les partitions sont en général coupées par une dimension telle que le temps. Par exemple, dans les bases de données Adventure Works DW, des partitions de données de vente ont été créées statiquement pour les quatre années comprises entre 2001 et 2004. Par contre, que se passe-t-il si les tables de faits commencent à accumuler des données en dehors de cette plage de dates ? Si des données de vente pour 2005 et 2006 arrivent, le développeur doit-il créer de nouvelles partitions à la main ou existe-t-il un moyen d'automatiser la création de partitions ?

L'exemple de package Synchronizing Adventure Works DW Partitions est un exemple de package qui démontre comment automatiser l'identification et la création de partitions. Bien qu'il ait été écrit spécifiquement pour des objets Adventure Works DW, cet exemple peut facilement être étendu pour une utilisation dans des environnements similaires. Cet exemple n'est pas pris en charge sur des systèmes d'exploitation Itanium.

ms161545.note(fr-fr,SQL.90).gifImportant :
Les exemples sont fournis à titre éducatif uniquement. Ils ne sont pas destinés à être utilisés dans un environnement de production et n'ont pas été testés à cet usage. Microsoft ne fournit aucun support technique pour ces exemples.

Configuration requise

L'exécution de cet exemple nécessite les éléments suivants :

  • Les exemples de fichiers de données et de package qu'il utilise doivent être installés sur le lecteur de disque dur local.
  • Vous devez disposer d'une connexion et d'autorisations administratives sur la base de données OLTP AdventureWorks.
  • Si vous envisagez uniquement d'exécuter l'exemple de package à partir de la ligne de commande, vous devez installer SQL Server 2005 Integration Services (SSIS).
  • Si vous envisagez d'ouvrir le package dans le Concepteur SSIS et d'exécuter l'exemple de package, vous devez installer Business Intelligence Development Studio.
  • Si vous envisagez d'exécuter cet exemple de package sur un ordinateur 64 bits, vous devez affecter la valeur True à la propriété PreCompile de la tâche de script. Pour parcourir le script pas à pas à l'aide des outils de débogage, vous devez affecter la valeur False à cette propriété.
  • Si les bases de données relationnelles et Analysis Services ne se trouvent pas sur l'ordinateur local (ou si elles ont été renommées), vous devez modifier la connexion appropriée dans l'exemple de package de sorte qu'elle pointe vers l'emplacement de base de données correct. Vous pouvez modifier le package directement dans le Concepteur SSIS ou vous pouvez modifier la configuration du package.
  • Pour exécuter le script du package, les objets AMO (Analysis Management Objects) doivent être référencés. Pour cela, le dossier %windir%\Microsoft.net\framework\v2.0.xxxxx doit contenir une copie de Microsoft.AnalysisServices.dll et le projet Microsoft Visual Studio for Applications contenir une référence aux objets AMO. L'emplacement par défaut à partir duquel copier l'assembly est C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.AnalysisServices.dll.

Pour plus d'informations sur l'installation des exemples, consultez la rubrique « Installation des exemples de packages Integration Services » dans la documentation en ligne de SQL Server 2005. Pour vous procurer la dernière version des exemples, y compris les nouveaux exemples publiés depuis la version d'origine de SQL Server 2005, consultez Exemples et exemples de base de données SQL Server 2005 (avril 2006).

Emplacement de l'exemple de package

Si les exemples ont été installés à l'emplacement d'installation par défaut, l'exemple de package Synchronizing Adventure Works DW Partitions se trouve dans le dossier suivant : C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\SyncAdvWorksPartitions Sample\SyncAdvWorksPartitions\

Les fichiers suivants sont nécessaires à l'exécution de ce package.

Fichier Description

Sync Partitions.dtsx

Exemple de package.

Get Partitions List.sql

Requête Transact-SQL utilisée pour identifier et retourner les métadonnées de partition à partir du SGBDR.

Ce fichier contient une copie de la requête SQL utilisée dans la tâche d'exécution SQL et n'est pas obligatoire pour exécuter le package ; l'utilisation de ce fichier texte peut néanmoins faciliter l'affichage et la modification des instructions SQL.

Exécution de l'exemple

Le package peut être exécuté à partir de la ligne de commande à l'aide de l'utilitaire dtexec ou exécuté dans Business Intelligence Development Studio.

Pour exécuter le package avec dtexec

  1. Ouvrez une fenêtre d'invite de commandes.

  2. Accédez au répertoire C: Program Files\Microsoft SQL Server\90\DTS\Binn, l'emplacement dtexec.

  3. Tapez la commande suivante :

    dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\SyncAdvWorksPartitions Sample\SyncAdvPartitions\Sync Partitions.dtsx"
    
  4. Appuyez sur Entrée.

Pour plus d'informations sur l'exécution du package à l'aide de l'utilitaire dtexec, consultez la rubrique « Utilitaire dtexec » dans la documentation en ligne de SQL Server 2005.

Pour exécuter le package dans Business Intelligence Development Studio

  1. Ouvrez Business Intelligence Development Studio.

  2. Dans le menu Fichier, pointez sur Ouvrir, puis cliquez sur Projet/Solution.

  3. Dans la liste Types de fichiers :, sélectionnez Fichiers de projet Integration Services (*.dtproj) et, dans le dossier SyncAdvWorksPartitions Sample, double-cliquez sur le fichier nommé Sync Partitions.dtproj.

  4. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Sync Partitions.dtsx dans le dossier Packages SSIS, puis cliquez sur Exécuter le package.

Pour plus d'informations sur les modalités de l'exécution du package dans Business Intelligence Development Studio, consultez la rubrique « Exécution de packages » dans la documentation en ligne de SQL Server 2005.

Composants de l'exemple

Le tableau suivant répertorie les tâches, sources et destinations utilisées dans l'exemple.

Élément Fonction

Tâche d'exécution SQL

La tâche d'exécution SQL, Get Partition List, exécute une requête Transact-SQL sur les tables de faits. La requête identifie et retourne des métadonnées qui définissent les partitions coupées par temps. L'ensemble de lignes obtenu contient une ligne pour chaque partition.

Tâche de boucle ForEach

La tâche de boucle ForEach, Foreach Partition, itère chaque ensemble de lignes généré dans la tâche d'exécution SQL. À chaque itération, le contenu de l'ensemble de lignes est extrait dans des variables de package utilisées dans les tâches de script et DDL d'exécution Analysis Services.

Tâche de script

Dans la tâche de boucle Foreach, la tâche de script (nommée Partition Already There?) utilise des objets AMO (Analysis Management Objects) pour déterminer si une partition correspondante existe déjà dans la base de données Analysis Services. Ce résultat est ensuite utilisé pour définir la variable IsNotPresent. De plus, cette tâche remplit la variable XMLA_Script qui peut être utilisée pour créer une nouvelle partition dans la base de données Analysis Services.

Tâche DDL d'exécution Analysis Services

Si nécessaire, la tâche DDL d'exécution Analysis Services (nommée Create Partition) exécute le script XMLA stocké dans la variable XMLA_Script pour créer une partition dans la base de données Analysis Services. Cette tâche contient une contrainte de précédence conditionnelle qui empêche la tâche de s'exécuter, à moins que la variable IsNotPresent ait la valeur true.

Gestionnaire de connexions Analysis Services

Le gestionnaire de connexions, AS database, est utilisé par la tâche DDL d'exécution pour établir une connexion à la base de données Analysis Services qui contient des partitions dans les groupes de mesures Internet Sales, Internet Orders et Customer Count.

Gestionnaire de connexions OLE DB

Le gestionnaire de connexions, RDBMS database, est utilisé par la tâche d'exécution SQL pour interroger la base de données relationnelle qui contient les tables de faits FactInternetSales et FactResellerSales, ainsi que la table de dimension DimTime.

Résultats de l'exemple

Les partitions existant déjà dans la base de données Analysis Services, aucune nouvelle partition ne sera créée lors de l'exécution du package.

Si vous souhaitez voir le package créer des partitions dans la base de données Analysis Services, vous pouvez supprimer des partitions des groupes de mesures suivants du cube AdventureWorks : Internet Sales, Internet Orders, Reseller Sales, Reseller Orders ou Customer Count. Lors de l'exécution du package, les partitions que vous avez supprimées des groupes de mesures seront recréées (quoique sans agrégations), après quoi elles pourront être retraitées.

Remarque   Si vous allez supprimer, puis recréer des objets dans la base de données Analysis Services Adventure Works DW, nous vous recommandons d'effectuer une sauvegarde de la base de données actuelle avant d'exécuter l'exemple de package.