Condividi tramite


Elaborazione di oggetti (XMLA)

In Microsoft SQL Server SQL Server Analysis Services l'elaborazione è il passaggio o la serie di passaggi che trasformano i dati in informazioni per l'analisi aziendale. L'elaborazione varia a seconda del tipo di oggetto, ma rappresenta sempre una fase della trasformazione dei dati in informazioni.

Per elaborare un oggetto SQL Server Analysis Services, è possibile usare il comando Process. Il comando Process può elaborare gli oggetti seguenti in un'istanza di SQL Server Analysis Services:

  • Cubi

  • Database

  • Dimensioni

  • Gruppi di misure

  • Modelli di data mining

  • Strutture di data mining

  • Partizioni

Per controllare l'elaborazione di oggetti, il comando Process ha varie proprietà che possono essere impostate. Il comando Process ha proprietà che controllano la quantità di elaborazione eseguita, quali oggetti verranno elaborati, se usare associazioni fuori riga, come gestire gli errori e come gestire le tabelle di writeback.

Impostazione delle opzioni di elaborazione

La proprietà Type del comando Process specifica l'opzione di elaborazione da usare durante l'elaborazione dell'oggetto. Per altre informazioni sulle opzioni di elaborazione, vedere Opzioni di elaborazione e impostazioni (Analysis Services).

Nella tabella seguente sono elencate le costanti per la proprietà Type e i vari oggetti che possono essere elaborati usando ogni costante.

Valore del tipo Oggetti applicabili
ProcessFull Cubo, database, dimensione, gruppo di misure, modello di data mining, struttura di data mining, partizione
ProcessoAggiungi Dimensione, partizione
Processupdate Dimensione
ProcessIndexes Dimensione, cubo, gruppo di misure, partizione
ProcessData Dimensione, cubo, gruppo di misure, partizione
Processdefault Cubo, database, dimensione, gruppo di misure, modello di data mining, struttura di data mining, partizione
ProcessClear Cubo, database, dimensione, gruppo di misure, modello di data mining, struttura di data mining, partizione
ProcessStructure Cubo, struttura di data mining
ProcessClearStructureOnly Struttura di data mining
ProcessScriptCache Cubo

Per altre informazioni sull'elaborazione di oggetti SQL Server Analysis Services, vedere Elaborazione di un modello multidimensionale (Analysis Services).

Specifica degli oggetti da elaborare

La proprietà Object del comando Process contiene l'identificatore dell'oggetto da elaborare. È possibile specificare un solo oggetto in un comando Process , ma l'elaborazione di un oggetto elabora anche gli oggetti figlio. L'elaborazione di un gruppo di misure in un cubo, ad esempio, determina l'elaborazione di tutte le partizioni di tale gruppo, mentre l'elaborazione di un database determina l'elaborazione di tutti gli oggetti, quali cubi, dimensioni e strutture di data mining, contenuti nel database.

Se si imposta l'attributo ProcessAffectedObjects del comando Process su true, viene elaborato anche qualsiasi oggetto correlato interessato dall'elaborazione dell'oggetto specificato. Ad esempio, se una dimensione viene aggiornata in modo incrementale usando l'opzione di elaborazione ProcessUpdate nel comando Process, qualsiasi partizione le cui aggregazioni sono invalidate a causa dell'aggiunta o dell'eliminazione dei membri viene elaborata anche da SQL Server Analysis Services se ProcessAffectedObjects è impostato su true. In questo caso, un singolo comando Process può elaborare più oggetti in un'istanza di SQL Server Analysis Services, ma SQL Server Analysis Services determina quali oggetti oltre all'oggetto singolo specificato nel comando Process devono essere elaborati anche.

È tuttavia possibile elaborare più oggetti, ad esempio dimensioni, contemporaneamente usando più comandi Process all'interno di un comando Batch . Le operazioni batch forniscono un livello più fine di controllo per l'elaborazione seriale o parallela di oggetti in un'istanza di SQL Server Analysis Services rispetto all'uso dell'attributo ProcessAffectedObjects e consente di ottimizzare l'approccio di elaborazione per i database di SQL Server Analysis Services più grandi. Per altre informazioni sull'esecuzione di operazioni batch, vedere Esecuzione di operazioni batch (XMLA).

Specifica di associazioni out-of-line

Se il comando Process non è contenuto da un comando Batch, è possibile specificare facoltativamente associazioni fuori riga nelle proprietà Binding, DataSource e DataSourceView del comando Process per l'elaborazione degli oggetti. I binding out-of-line sono riferimenti a origini dati, viste origine dati e altri oggetti in cui l'associazione esiste solo durante l'esecuzione del comando Process e che esegue l'override di eventuali associazioni esistenti associate agli oggetti elaborati. Se non è specificata alcuna associazione out-of-line, vengono utilizzate le associazioni attualmente associate agli oggetti da elaborare.

Le associazioni out-of-line vengono utilizzate nelle seguenti situazioni:

  • Elaborazione incrementale di una partizione in cui è necessario specificare una tabella dei fatti alternativa o un filtro sulla tabella dei fatti esistente per garantire che le righe non vengono contate due volte.

  • Uso di un'attività flusso di dati in Microsoft SQL Server Integration Services per fornire dati durante l'elaborazione di una dimensione, un modello di data mining o una partizione.

Le associazioni out-of-line vengono descritte come parte del linguaggio ASSL (Analysis Services Scripting Language). Per altre informazioni sulle associazioni out-of-line in ASSL, vedere Origini dati e binding (MULTIDIMENSIONALE SSAS).

Aggiornamento incrementale di partizioni

Per eseguire l'aggiornamento incrementale di una partizione già elaborata, è necessario utilizzare un'associazione out-of-line poiché l'associazione specificata per la partizione fa riferimento a dati della tabella dei fatti già aggregati all'interno della partizione. Quando si aggiorna in modo incrementale una partizione già elaborata usando il comando Process, SQL Server Analysis Services esegue le azioni seguenti:

  • Creazione di una partizione temporanea con una struttura identica a quella della partizione da aggiornare in modo incrementale.

  • Elabora la partizione temporanea usando l'associazione out-of-line specificata nel comando Process .

  • Unione della partizione temporanea con la partizione esistente selezionata.

Per altre informazioni sull'unione di partizioni usando XML per l'analisi (XMLA), vedere Unione di partizioni (XMLA).

Gestione degli errori di elaborazione

La proprietà ErrorConfiguration del comando Process consente di specificare come gestire gli errori rilevati durante l'elaborazione di un oggetto. Ad esempio, durante l'elaborazione di una dimensione, SQL Server Analysis Services rileva un valore duplicato nella colonna chiave dell'attributo chiave. Poiché le chiavi dell'attributo devono essere univoche, SQL Server Analysis Services elimina i record duplicati. In base alla proprietà KeyDuplicate di ErrorConfiguration, SQL Server Analysis Services possibile:

  • Continuazione dell'elaborazione della dimensione poiché il messaggio viene ignorato.

  • Restituisce un messaggio che indica SQL Server Analysis Services rilevato una chiave duplicata e continuare l'elaborazione.

Esistono molte condizioni simili per cui ErrorConfiguration offre opzioni durante un comando Process .

Gestione di tabelle writeback

Se il comando Process rileva una partizione abilitata per la scrittura o un cubo o un gruppo di misure per tale partizione, che non è già completamente elaborato, una tabella di writeback potrebbe non esistere già per tale partizione. La proprietà WritebackTableCreation del comando Process determina se SQL Server Analysis Services deve creare una tabella writeback.

Esempi

Descrizione

Nell'esempio seguente viene completamente elaborato il database di SQL Server Analysis Services esempio Adventure Works 2012 multidimensionale 2012.

Codice

<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>  

Descrizione

Nell'esempio seguente viene elaborata in modo incrementale la Internet_Sales_2004 partizione nel gruppo di misure Internet Sales del cubo Adventure Works DW nell'esempio Adventure Works 2012 Multidimensionale 2012 SQL Server Analysis Services database. Il comando Process aggiunge aggregazioni per le date dell'ordine successive al 31 dicembre 2006 alla partizione usando un'associazione di query out-of-line nella proprietà Bindings del comando Process per recuperare le righe della tabella dei fatti da cui generare aggregazioni da cui aggiungere alla partizione.

Codice

<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>