Elaborazione di oggetti (XMLA)

In MicrosoftSQL ServerAnalysis Services l'elaborazione è costituita dal passaggio o dai passaggi necessari per trasformare 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 di Analysis Services, è possibile utilizzare il comando Process. In un'istanza di Analysis Services il comando Process può elaborare gli oggetti seguenti:

  • Cubi

  • Database

  • Dimensioni

  • Gruppi di misure

  • Modelli di data mining

  • Strutture di data mining

  • Partizioni

Per controllare l'elaborazione di oggetti, al comando Process sono associate varie proprietà che possono essere impostate. Il comando Process dispone di proprietà che controllano la quantità dell'elaborazione e gli oggetti che verranno elaborati e indicano se utilizzare associazioni out-of-line nonché le modalità di gestione degli errori e delle tabelle writeback.

Impostazione delle opzioni di elaborazione

La proprietà Type del comando Process specifica l'opzione di elaborazione da utilizzare quando si elabora l'oggetto. Per ulteriori informazioni sulle opzioni di elaborazione, vedere Opzioni e impostazioni di elaborazione.

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

Valore della proprietà Type

Oggetti applicabili

ProcessFull

Cubo, database, dimensione, gruppo di misure, modello di data mining, struttura di data mining, partizione

ProcessAdd

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 ulteriori informazioni sull'elaborazione degli oggetti di Analysis Services, vedere Elaborazione di oggetti di Analysis Services.

Specifica degli oggetti da elaborare

La proprietà Object del comando Process contiene l'identificatore dell'oggetto da elaborare. In un comando Process è possibile specificare solo un oggetto, ma l'elaborazione di un oggetto determina anche l'elaborazione di qualsiasi oggetto 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 qualsiasi oggetto correlato interessato dall'elaborazione di quello specificato. Se ad esempio una dimensione viene aggiornata in modo incrementale tramite l'opzione di elaborazione ProcessUpdate nel comando Process, in Analysis Services viene elaborata anche qualsiasi partizione le cui le aggregazioni vengono invalidate a causa di membri aggiunti o eliminati se ProcessAffectedObjects è impostato su true. In questo caso, un unico comando Process può elaborare più oggetti in un'istanza di Analysis Services, ma in Analysis Services vengono determinati gli ulteriori oggetti da elaborare oltre all'oggetto specificato nel comando Process.

È possibile tuttavia elaborare più oggetti contemporaneamente, ad esempio dimensioni, tramite più comandi Process in un comando Batch. Le operazioni batch consentono di controllare a livello più dettagliato l'elaborazione in serie o parallela di oggetti in un'istanza di Analysis Services rispetto all'utilizzo dell'attributo ProcessAffectedObjects e consentono di ottimizzare l'approccio all'elaborazione per i database di Analysis Services di dimensioni maggiori. Per ulteriori informazioni sull'esecuzione di operazioni batch, vedere Esecuzione di operazioni batch (XMLA).

Specifica di associazioni out-of-line

Se il comando Process non è contenuto in un comando Batch, è possibile specificare associazioni out-of-line facoltative nelle proprietà Bindings, DataSource e DataSourceView del comando Process per gli oggetti da elaborare. Le associazioni out-of-line sono riferimenti a origini dati, viste origine dati e altri oggetti in cui l'associazione è presente solo durante l'esecuzione del comando Process. Tali associazioni sostituiscono qualsiasi associazione esistente associata 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.

  • Utilizzo di un'attività Flusso di dati in MicrosoftSQL ServerIntegration Services per specificare 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 ulteriori informazioni sulle associazioni out-of-line in ASSL, vedere Origini dati e associazioni (Analysis Services - Dati multidimensionali).

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. Se si esegue l'aggiornamento incrementale di una partizione già elaborata tramite il comando Process, in Analysis Services vengono effettuate le operazioni seguenti:

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

  • Elaborazione della partizione temporanea tramite l'associazione out-of-line specificata nel comando Process.

  • Unione della partizione temporanea con la partizione esistente selezionata.

Per ulteriori informazioni sull'unione di partizioni utilizzando XML for Analysis (XMLA), vedere Unione di partizioni (XMLA).

Gestione degli errori di elaborazione

La proprietà ErrorConfiguration del comando Process consente di specificare le modalità di gestione degli errori che si sono verificati durante l'elaborazione di un oggetto. Ad esempio durante l'elaborazione di una dimensione in Analysis Services viene rilevato un valore duplicato nella colonna chiave dell'attributo chiave. Poiché le chiavi dell'attributo devono essere univoche, i record duplicati vengono eliminati in Analysis Services. In base alla proprietà KeyDuplicate di ErrorConfiguration, in Analysis Services potrebbero essere effettuate le operazioni seguenti:

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

  • Restituzione di un messaggio che indica che in Analysis Services è stata rilevata una chiave duplicata e continuazione dell'elaborazione.

Le condizioni analoghe per cui ErrorConfiguration specifica opzioni durante un comando Process sono numerose.

Gestione di tabelle writeback

Se il comando Process rileva una partizione abilitata per la scrittura oppure un cubo o un gruppo di misure per tale partizione la cui elaborazione non è ancora stata completata, è possibile che per tale partizione non esista una tabella writeback. La proprietà WritebackTableCreation del comando Process determina se in Analysis Services è necessario creare una tabella writeback.

Esempi

Descrizione

Nell'esempio seguente viene elaborato completamente il database di esempio Adventure Works DW di Analysis Services.

Codice

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

Descrizione

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

Codice

<Process ProcessAffectedObjects="true" xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
  <Object>
    <DatabaseID>Adventure Works DW</DatabaseID>
    <CubeID>Adventure Works DW</CubeID>
    <MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>
    <PartitionID>Internet_Sales_2004</PartitionID>
  </Object>
  <Bindings>
    <Binding>
      <DatabaseID>Adventure Works DW</DatabaseID>
      <CubeID>Adventure Works DW</CubeID>
      <MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>
      <PartitionID>Internet_Sales_2004</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 &gt; '1280'
        </QueryDefinition>
      </Source>
    </Binding>
  </Bindings>
  <Type>ProcessAdd</Type>
  <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>