Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans Microsoft SQL Server Analysis Services, le traitement est l’étape ou la série d’étapes qui transforment les données en informations pour l’analyse métier. Le traitement est différent selon le type d’objet, mais le traitement fait toujours partie de la transformation des données en informations.
Pour traiter un objet Analysis Services, vous pouvez utiliser la commande Process . La Process commande peut traiter les objets suivants sur une instance Analysis Services :
Cubes
Bases de données
Taille
Groupes de mesures
Modèles d’exploration de données
Structures d’exploration de données
Cloisons
Pour contrôler le traitement des objets, la Process commande a différentes propriétés qui peuvent être définies. La Process commande a des propriétés qui contrôlent : la quantité de traitement effectuée, les objets qui seront traités, s’il faut utiliser des liaisons hors ligne, comment gérer les erreurs et comment gérer les tables d’écriture différée.
Spécification des options de traitement
La propriété Type de la Process commande spécifie l’option de traitement à utiliser lors du traitement de l’objet. Pour plus d’informations sur les options de traitement, consultez Options de traitement et paramètres (Analysis Services).
Le tableau suivant répertorie les constantes de la Type propriété et les différents objets qui peuvent être traités à l’aide de chaque constante.
valeur Type |
Objets applicables |
|---|---|
| ProcessFull | Cube, base de données, dimension, groupe de mesures, modèle d’exploration de données, structure d’exploration de données, partition |
| ProcessAdd | Dimension, partition |
| ProcessUpdate | Dimension |
| ProcessIndexes | Dimension, cube, groupe de mesures, partition |
| ProcessData | Dimension, cube, groupe de mesures, partition |
| ProcessDefault | Cube, base de données, dimension, groupe de mesures, modèle d’exploration de données, structure d’exploration de données, partition |
| ProcessClear | Cube, base de données, dimension, groupe de mesures, modèle d’exploration de données, structure d’exploration de données, partition |
| ProcessStructure | Cube, structure d’exploration de données |
| ProcessClearStructureOnly | Structure d’exploration de données |
| ProcessScriptCache | Cube |
Pour plus d’informations sur le traitement des objets Analysis Services, consultez Traitement d’objets de modèle multidimensionnel.
Spécification d’objets à traiter
La propriété Object de la Process commande contient l’identificateur d’objet de l’objet à traiter. Un seul objet peut être spécifié dans une Process commande, mais le traitement d’un objet traite également tous les objets enfants. Par exemple, le traitement d’un groupe de mesures dans un cube traite toutes les partitions de ce groupe de mesures, tout en traitant une base de données traite tous les objets, y compris les cubes, les dimensions et les structures d’exploration de données, qui sont contenus dans la base de données.
Si vous définissez l’attribut ProcessAffectedObjects de la Process commande sur true, tout objet associé affecté par le traitement de l’objet spécifié est également traité. Par exemple, si une dimension est mise à jour de façon incrémentielle à l’aide de l’option de traitement ProcessUpdate dans la Process commande, toute partition dont les agrégations sont invalidées en raison de l’ajout ou de la suppression des membres est également traitée par Analysis Services si ProcessAffectedObjects elle a la valeur true. Dans ce cas, une seule Process commande peut traiter plusieurs objets sur une instance Analysis Services, mais Analysis Services détermine quels objets en plus de l’objet unique spécifié dans la Process commande doivent également être traités.
Toutefois, vous pouvez traiter plusieurs objets, tels que des dimensions, en même temps à l’aide de plusieurs Process commandes au sein d’une Batch commande. Les opérations batch fournissent un niveau de contrôle plus précis pour le traitement série ou parallèle d’objets sur une instance Analysis Services que l’utilisation de l’attribut ProcessAffectedObjects , et vous permettent de paramétrer votre approche de traitement pour les bases de données Analysis Services plus volumineuses. Pour plus d’informations sur l’exécution d’opérations par lots, consultez Exécution d’opérations de traitement par lots (XMLA).
Spécification de liaisons hors ligne
Si la Process commande n’est pas contenue par une Batch commande, vous pouvez éventuellement spécifier des liaisons hors ligne dans les propriétés Bindings, DataSource et DataSourceView de la Process commande à traiter. Les liaisons hors ligne sont des références à des sources de données, à des vues de source de données et à d’autres objets dans lesquels la liaison existe uniquement pendant l’exécution de la Process commande, et qui remplacent les liaisons existantes associées aux objets en cours de traitement. Si les liaisons hors ligne ne sont pas spécifiées, les liaisons actuellement associées aux objets à traiter sont utilisées.
Les liaisons hors ligne sont utilisées dans les circonstances suivantes :
Le traitement incrémentiel d’une partition, dans laquelle une autre table de faits ou un filtre sur la table de faits existante doit être spécifié pour vous assurer que les lignes ne sont pas comptées deux fois.
Utilisation d’une tâche de flux de données dans Microsoft SQL Server Integration Services pour fournir des données lors du traitement d’une dimension, d’un modèle d’exploration de données ou d’une partition.
Les liaisons hors ligne sont décrites dans le cadre du langage de script Analysis Services (ASSL). Pour plus d’informations sur les liaisons hors ligne dans ASSL, consultez Sources de données et liaisons (multidimensionnelles SSAS).
Mise à jour incrémentielle des partitions
La mise à jour incrémentielle d’une partition déjà traitée nécessite généralement une liaison hors ligne, car la liaison spécifiée pour la partition fait référence aux données de table de faits déjà agrégées dans la partition. Lors de la mise à jour incrémentielle d’une partition déjà traitée à l’aide de la Process commande, Analysis Services effectue les actions suivantes :
Crée une partition temporaire avec une structure identique à celle de la partition à mettre à jour de manière incrémentielle.
Traite la partition temporaire, à l’aide de la liaison hors ligne spécifiée dans la
Processcommande.Fusionne la partition temporaire avec la partition sélectionnée existante.
Pour plus d’informations sur la fusion de partitions à l’aide de XML for Analysis (XMLA), consultez Fusion de partitions (XMLA).
Gestion des erreurs de traitement
La propriété ErrorConfiguration de la Process commande vous permet de spécifier comment gérer les erreurs rencontrées lors du traitement d’un objet. Par exemple, lors du traitement d’une dimension, Analysis Services rencontre une valeur en double dans la colonne clé de l’attribut clé. Étant donné que les clés d’attribut doivent être uniques, Analysis Services ignore les enregistrements dupliqués. En fonction de la propriété KeyDuplicate de ErrorConfiguration, Analysis Services peut :
Ignorez l’erreur et continuez à traiter la dimension.
Retourne un message indiquant que Analysis Services a rencontré une clé en double et continue le traitement.
Il existe de nombreuses conditions similaires pour lesquelles ErrorConfiguration des options sont disponibles lors d’une Process commande.
Gestion des tables d’écriture différée
Si la Process commande rencontre une partition activée en écriture ou un cube ou un groupe de mesures pour une telle partition, qui n’est pas déjà entièrement traitée, une table d’écriture différée n’existe peut-être pas déjà pour cette partition. La propriété WritebackTableCreation de la Process commande détermine si Analysis Services doit créer une table d’écriture différée.
Exemples
Descriptif
L’exemple suivant traite entièrement l’exemple de base de données Adventure Works DW Multidimensional 2012 Analysis Services.
Code
<Process xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
Descriptif
L’exemple suivant traite de manière incrémentielle la partition Internet_Sales_2004 dans le groupe de mesures Internet Sales du cube Adventure Works DW dans l’exemple de base de données Analysis Services d’Adventure Works 2012. La Process commande ajoute des agrégations pour les dates de commande antérieures au 31 décembre 2006 à la partition à l’aide d’une liaison de requête hors ligne dans la Bindings propriété de la commande pour récupérer les lignes de table Process de faits à partir desquelles générer des agrégations à ajouter à la partition.
Code
<Process ProcessAffectedObjects="true" xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
<CubeID>Adventure Works DW</CubeID>
<MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>
<PartitionID>Internet_Sales_2006</PartitionID>
</Object>
<Bindings>
<Binding>
<DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>
<CubeID>Adventure Works DW</CubeID>
<MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>
<PartitionID>Internet_Sales_2006</PartitionID>
<Source xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="QueryBinding">
<DataSourceID>Adventure Works DW</DataSourceID>
<QueryDefinition>
SELECT
[dbo].[FactInternetSales].[ProductKey],
[dbo].[FactInternetSales].[OrderDateKey],
[dbo].[FactInternetSales].[DueDateKey],
[dbo].[FactInternetSales].[ShipDateKey],
[dbo].[FactInternetSales].[CustomerKey],
[dbo].[FactInternetSales].[PromotionKey],
[dbo].[FactInternetSales].[CurrencyKey],
[dbo].[FactInternetSales].[SalesTerritoryKey],
[dbo].[FactInternetSales].[SalesOrderNumber],
[dbo].[FactInternetSales].[SalesOrderLineNumber],
[dbo].[FactInternetSales].[RevisionNumber],
[dbo].[FactInternetSales].[OrderQuantity],
[dbo].[FactInternetSales].[UnitPrice],
[dbo].[FactInternetSales].[ExtendedAmount],
[dbo].[FactInternetSales].[UnitPriceDiscountPct],
[dbo].[FactInternetSales].[DiscountAmount],
[dbo].[FactInternetSales].[ProductStandardCost],
[dbo].[FactInternetSales].[TotalProductCost],
[dbo].[FactInternetSales].[SalesAmount],
[dbo].[FactInternetSales].[TaxAmt],
[dbo].[FactInternetSales].[Freight],
[dbo].[FactInternetSales].[CarrierTrackingNumber],
[dbo].[FactInternetSales].[CustomerPONumber]
FROM [dbo].[FactInternetSales]
WHERE OrderDateKey > '1280'
</QueryDefinition>
</Source>
</Binding>
</Bindings>
<Type>ProcessAdd</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>