Freigeben über


Verarbeiten von Objekten (XMLA)

Die Verarbeitung in Microsoft SQL Server SQL Server Analysis Services ist der Schritt oder die Reihe von Schritten, die Daten in Informationen zur Geschäftsanalyse umwandeln. Die Verarbeitung ist je nach Objekttyp unterschiedlich, aber immer Teil einer Umwandlung von Daten in Informationen.

Um ein SQL Server Analysis Services-Objekt zu verarbeiten, können Sie den Befehl "Prozess" verwenden. Der Befehl "Prozess" kann die folgenden Objekte in einer SQL Server Analysis Services Instanz verarbeiten:

  • Cubes

  • Datenbanken

  • Dimensionen

  • Measuregruppen

  • Miningmodelle

  • Miningstrukturen

  • Partitionen

Um die Verarbeitung von Objekten zu steuern, 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 ausgeführt wird, welche Objekte verarbeitet werden, ob Nicht-Line-Bindungen verwendet werden sollen, wie Fehler behandelt werden und wie Schreibbacktabellen verwaltet werden.

Angeben von Verarbeitungsoptionen

Die Type-Eigenschaft des Process-Befehls 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 mithilfe jeder Konstanten verarbeitet werden können.

Typwert Anwendbare Objekte
ProcessFull Cube, Datenbank, Dimension, Measuregruppe, Miningmodell, Miningstruktur, Partition
ProcessAdd Dimension, Partition
ProcessUpdate Dimension
ProcessIndexes Dimension, Cube, Measuregruppe, Partition
ProcessData Dimension, Cube, Measuregruppe, Partition
ProcessDefault Cube, Datenbank, Dimension, Measuregruppe, Miningmodell, Miningstruktur, Partition
ProcessClear Cube, Datenbank, Dimension, Measuregruppe, Miningmodell, Miningstruktur, Partition
Prozessstruktur Cube, Miningstruktur
ProcessClearStructureOnly Miningstruktur
ProcessScriptCache Cube

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

Angeben zu verarbeitender Objekte

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

Wenn Sie das ProcessAffectedObjects-Attribut des Process-Befehls auf true festlegen, wird auch jedes verwandte Objekt verarbeitet, das durch die Verarbeitung des angegebenen Objekts betroffen ist. Wenn beispielsweise eine Dimension mithilfe der ProcessUpdate-Verarbeitungsoption im Befehl "Prozessupdate" inkrementell aktualisiert wird, werden alle Partitionen, deren Aggregationen aufgrund von Elementen, die hinzugefügt oder gelöscht werden, durch 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 auch verarbeitet werden müssen.

Sie können jedoch mehrere Objekte wie Dimensionen gleichzeitig verarbeiten, indem Sie mehrere Prozessbefehle innerhalb eines Batchbefehls 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, Ihren 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 von einem Batchbefehl enthalten ist, können Sie optional in den Eigenschaften "Bindings", "DataSource" und "DataSourceView" des Zu verarbeitenden Objekts optional zeilenübergreifende Bindungen angeben. 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 alle vorhandenen Bindungen außer Kraft setzen, die mit den verarbeiteten Objekten verknüpft sind. Wenn keine Out-of-Line-Bindungen angegeben sind, werden die Bindungen verwendet, die aktuell dem zu verarbeitenden Objekt zugeordnet sind.

Out-of-Line-Bindungen werden in den folgenden Situationen verwendet:

  • Inkrementelle Verarbeitung einer Partition, bei der eine alternative Faktentabelle oder ein Filter auf der vorhandenen Faktentabelle angegeben sein muss, um sicherzustellen, dass die 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 Update von Partitionen

Das inkrementelle Update einer bereits verarbeiteten Partition erfordert in der Regel eine Out-of-Line-Bindung, da die für die Partition angegebene Bindung auf Faktentabellendaten verweist, die bereits in der Partition aggregiert wurden. Wenn Sie mithilfe des Befehls "Prozess" eine bereits verarbeitete Partition inkrementell aktualisieren, führt SQL Server Analysis Services die folgenden Aktionen aus:

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

  • Verarbeitet die temporäre Partition mithilfe 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 Process-Befehls können Sie angeben, wie Fehler beim Verarbeiten eines Objekts behandelt werden. Bei der Verarbeitung einer Dimension tritt SQL Server Analysis Services beispielsweise auf einen duplizierten Wert in der Schlüsselspalte des Schlüsselattributes. Da Attributschlüssel eindeutig sein müssen, verwerfen SQL Server Analysis Services die doppelten Datensätze. Basierend auf der KeyDuplicate-Eigenschaft von ErrorConfiguration könnte SQL Server Analysis Services:

  • den Fehler ignorieren und die Verarbeitung der Dimension fortsetzen;

  • Gibt eine Nachricht zurück, die angibt, 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ückschreibetabellen

Wenn der Befehl "Prozess " auf eine schreibfähige Partition oder eine Würfel- oder Maßgruppe für eine solche Partition tritt, die noch nicht vollständig verarbeitet ist, ist eine Schreibbacktabelle möglicherweise nicht bereits für diese Partition vorhanden. Die WritebackTableCreation-Eigenschaft des Process-Befehls bestimmt, ob SQL Server Analysis Services eine Schreibbacktabelle erstellen soll.

Beispiele

BESCHREIBUNG

Im folgenden Beispiel wird das Adventure Works DW Multidimensional 2012-Beispiel SQL Server Analysis Services Datenbank 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>  

BESCHREIBUNG

Im folgenden Beispiel wird die Internet_Sales_2004 Partition in der Gruppe "Internet Sales" des Adventure Works DW-Cubes im Beispiel "Adventure Works DW Multidimensional 2012" SQL Server Analysis Services Datenbank verarbeitet. Der Befehl "Prozess " fügt Aggregationen für Bestelltermine später als 31. Dezember 2006 zur Partition hinzu, indem eine out-of-line-Abfragebindung in der Eigenschaft " Bindings " des Befehls "Process " 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>