Freigeben über


Verarbeiten von Objekten (XMLA)

In Microsoft SQL Server Analysis Services ist das Verarbeiten der Schritt oder eine Reihe von Schritten, die Daten in Informationen für die Geschäftsanalyse verwandeln. Die Verarbeitung unterscheidet sich je nach Objekttyp, aber die Verarbeitung ist immer Teil der Datenverarbeitung in Informationen.

Zum Verarbeiten eines SQL Server Analysis Services-Objekts können Sie den Befehl "Prozess " verwenden. Der Befehl "Prozess " kann die folgenden Objekte in einer SQL Server Analysis Services-Instanz verarbeiten:

  • Würfel

  • Datenbanken

  • Maße

  • Maßgruppen

  • Miningmodelle

  • Bergbaustrukturen

  • Partitionen

Zum Steuern der Verarbeitung von Objekten verfügt der Befehl "Prozess " über verschiedene Eigenschaften, die festgelegt werden können. Der Befehl "Prozess " verfügt über Eigenschaften, die steuern: Wie viel Verarbeitung erfolgt, welche Objekte verarbeitet werden, ob out-of-line-Bindungen verwendet werden sollen, wie Fehler behandelt werden, und wie Sie Rückschreibtabellen verwalten.

Angeben von Verarbeitungsoptionen

Die Type-Eigenschaft des Befehls "Prozess " gibt die Verarbeitungsoption an, die beim Verarbeiten des Objekts verwendet werden soll. Weitere Informationen zu Verarbeitungsoptionen finden Sie unter "Verarbeitungsoptionen und -einstellungen (Analysis Services)".

In der folgenden Tabelle sind die Konstanten für die Type-Eigenschaft und die verschiedenen Objekte aufgeführt, die mit jeder Konstante verarbeitet werden können.

Typwert Anwendbare Objekte
ProcessFull Cube, datenbank, Dimension, Maßgruppe, Miningmodell, Miningstruktur, Partition
ProcessAdd Dimension, Partition
ProcessUpdate Abmessung
ProcessIndexes Dimension, Cube, Maßgruppe, Partition
ProcessData Dimension, Cube, Maßgruppe, Partition
ProcessDefault Cube, Datenbank, Dimension, Measuregruppe, Miningmodell, Miningstruktur, Partition
ProcessClear Cube, Datenbank, Dimension, Maßgruppe, Mining-Modell, Mining-Struktur, Partition
Prozessstruktur Cube- und Bergbaustruktur
ProcessClearStructureOnly Bergbaustruktur
ProcessScriptCache Cube

Weitere Informationen zum Verarbeiten von SQL Server Analysis Services-Objekten finden Sie unter Verarbeiten eines mehrdimensionalen Modells (Analysis Services).

Angeben der zu verarbeitenden Objekte

Die Objekteigenschaft des Befehls "Prozess " enthält den Objektbezeichner des zu verarbeitenden Objekts. Nur ein Objekt kann in einem Prozessbefehl angegeben werden, die Verarbeitung eines Objekts verarbeitet jedoch auch alle untergeordneten Objekte. Beispielsweise wird durch das Verarbeiten einer Measuregruppe in einem Cube alle Partitionen für diese Measuregruppe verarbeitet, wobei das Verarbeiten einer Datenbank alle Objekte verarbeitet, einschließlich Cubes, Dimensionen und Miningstrukturen, die in der Datenbank enthalten sind.

Wenn Sie das ProcessAffectedObjects-Attribut des Befehls "Process " auf "true" festlegen, werden alle verwandten Objekte, die durch die Verarbeitung des angegebenen Objekts betroffen sind, ebenfalls verarbeitet. Wenn beispielsweise eine Dimension mithilfe der ProcessUpdate-Verarbeitungsoption im Prozessbefehl inkrementell aktualisiert wird, werden alle Partitionen, deren Aggregationen aufgrund von hinzugefügten oder gelöschten Elementen ungültig sind, auch von SQL Server Analysis Services verarbeitet, wenn ProcessAffectedObjects auf "true" festgelegt ist. In diesem Fall kann ein einzelner Prozessbefehl mehrere Objekte in einer SQL Server Analysis Services-Instanz verarbeiten, aber SQL Server Analysis Services bestimmt, welche Objekte neben dem im Prozessbefehl angegebenen einzelnen Objekt ebenfalls verarbeitet werden müssen.

Sie können jedoch mehrere Objekte wie Dimensionen gleichzeitig verarbeiten, indem Sie mehrere Prozessbefehle in einem Batchbefehl verwenden. Batchvorgänge bieten eine feinere Steuerungsebene für die serielle oder parallele Verarbeitung von Objekten in einer SQL Server Analysis Services-Instanz als die Verwendung des ProcessAffectedObjects-Attributs und ermöglichen Es Ihnen, den Verarbeitungsansatz für größere SQL Server Analysis Services-Datenbanken zu optimieren. Weitere Informationen zum Ausführen von Batchvorgängen finden Sie unter Ausführen von Batchvorgängen (XMLA).

Angeben von Out-of-Line-Bindungen

Wenn der Befehl "Prozess " nicht in einem Batchbefehl enthalten ist, können Sie optional out-of-line-Bindungen in den Eigenschaften "Bindings", "DataSource" und "DataSourceView " des Befehls "Process " angeben, damit die Zu verarbeitenden Objekte verarbeitet werden. Out-of-Line-Bindungen sind Verweise auf Datenquellen, Datenquellenansichten und andere Objekte, in denen die Bindung nur während der Ausführung des Befehls "Prozess " vorhanden ist und die vorhandene Bindungen außer Kraft setzen, die den verarbeiteten Objekten zugeordnet sind. Wenn out-of-line-Bindungen nicht angegeben sind, werden die Bindungen verwendet, die derzeit den zu verarbeitenden Objekten zugeordnet sind.

Out-of-Line-Bindungen werden unter folgenden Umständen verwendet:

  • Inkrementelle Verarbeitung einer Partition, bei der eine alternative Faktentabelle oder ein Filter für die vorhandene Faktentabelle angegeben werden muss, um sicherzustellen, dass Zeilen nicht zweimal gezählt werden.

  • Verwenden einer Datenflussaufgabe in Microsoft SQL Server Integration Services zum Bereitstellen von Daten während der Verarbeitung einer Dimension, eines Miningmodells oder einer Partition.

Out-of-Line-Bindungen werden als Teil der Analysis Services Scripting Language (ASSL) beschrieben. Weitere Informationen zu out-of-line-Bindungen in ASSL finden Sie unter Datenquellen und Bindungen (SSAS Multidimensional).

Inkrementelles Aktualisieren von Partitionen

Für die inkrementelle Aktualisierung einer bereits verarbeiteten Partition ist in der Regel eine ausgelagerte Bindung erforderlich, da die Bindung, die für die Partition angegeben ist, Bezug auf bereits innerhalb der Partition aggregierte Faktentabellendaten nimmt. Wenn eine bereits verarbeitete Partition mithilfe des Befehls "Prozess " inkrementell aktualisiert wird, führt SQL Server Analysis Services die folgenden Aktionen aus:

  • Erstellt eine temporäre Partition mit einer Struktur, die mit der der Partition identisch ist, die inkrementell aktualisiert werden soll.

  • Verarbeitet die temporäre Partition unter Verwendung der im Befehl "Prozess " angegebenen out-of-line-Bindung.

  • Führt die temporäre Partition mit der vorhandenen ausgewählten Partition zusammen.

Weitere Informationen zum Zusammenführen von Partitionen mit XML for Analysis (XMLA) finden Sie unter Zusammenführen von Partitionen (XMLA).

Behandeln von Verarbeitungsfehlern

Mit der ErrorConfiguration-Eigenschaft des Befehls "Prozess " können Sie angeben, wie Fehler beim Verarbeiten eines Objekts behandelt werden. Bei der Verarbeitung einer Dimension trifft SQL Server Analysis Services beispielsweise auf einen doppelten Wert in der Schlüsselspalte des Schlüsselattributes. Da Attributschlüssel eindeutig sein müssen, verwirft SQL Server Analysis Services die doppelten Datensätze. Basierend auf der KeyDuplicate-Eigenschaft von ErrorConfiguration könnte SQL Server Analysis Services:

  • Ignorieren Sie den Fehler, und fahren Sie mit der Verarbeitung der Dimension fort.

  • Gibt eine Meldung zurück, die besagt, dass SQL Server Analysis Services einen doppelten Schlüssel gefunden hat und die Verarbeitung fortgesetzt wird.

Es gibt viele ähnliche Bedingungen, für die ErrorConfiguration Optionen während eines Prozessbefehls bereitstellt.

Verwalten von Rückschreibtabellen

Wenn der Befehl "Prozess " auf eine schreibfähige Partition oder eine Cube- oder Measuregruppe für eine solche Partition stößt, die noch nicht vollständig verarbeitet wurde, ist für diese Partition möglicherweise noch keine Rückschreibtabelle vorhanden. Die WritebackTableCreation-Eigenschaft des Befehls "Process " bestimmt, ob SQL Server Analysis Services eine Rückschreibtabelle erstellen soll.

Examples

Description

Im folgenden Beispiel wird die SQL Server Analysis Services-Beispieldatenbank "Adventure Works DW Multidimensional 2012" vollständig verarbeitet.

Code

<Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">  
  <Object>  
    <DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>  
  </Object>  
  <Type>ProcessFull</Type>  
  <WriteBackTableCreation>UseExisting</WriteBackTableCreation>  
</Process>  

Description

Im folgenden Beispiel wird die Internet_Sales_2004-Partition in der Measuregruppe "Internet Sales" des Adventure Works DW-Cubes in der SQL Server Analysis Services Beispieldatenbank "Adventure Works DW Multidimensional 2012" schrittweise verarbeitet. Der Befehl "Prozess " fügt Aggregationen für Bestelldaten nach dem 31. Dezember 2006 zur Partition hinzu, indem eine out-of-line-Abfragebindung in der Eigenschaft "Bindings" des Befehls "Prozess " verwendet wird, um die Faktentabellenzeilen abzurufen, aus denen Aggregationen generiert werden, die der Partition hinzugefügt werden sollen.

Code

<Process ProcessAffectedObjects="true" xmlns="http://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>