Elaborazione di oggetti (XMLA)
In Microsoft 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 Analysis Services un oggetto, è possibile usare il comando Process. Il comando Process può elaborare gli oggetti seguenti in un'istanza: Analysis Services
Cubi
Database
Dimensioni
Gruppi di misure
Modelli di data mining
Strutture di data mining
Partizioni
Per controllare l'elaborazione degli oggetti, il comando Elabora dispone di varie proprietà che è possibile impostare. Il processo comando dispone di proprietà che controllano: la quantità di elaborazione verrà eseguita, quali oggetti verranno elaborati, se utilizzare associazioni out-of-line, come gestire gli errori e come gestire le tabelle 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 e impostazioni di elaborazione (Analysis Services).
Nella tabella seguente sono elencate le costanti per la proprietà Type e i vari oggetti che possono essere elaborati utilizzando ogni costante.
| Valore del tipo | Oggetti applicabili |
|---|---|
| ProcessFull | Cubo, database, dimensione, gruppo di misure, modello di data mining, struttura di data mining, partizione |
| ProcessAdd | Dimensione, partizione |
| Processupdate | Dimensione |
| Indici dei processi | 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 |
| ProcessoClear | 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 Analysis Services di oggetti, vedere Elaborazione di un modello multidimensionale (Analysis Services).
Specifica degli oggetti da elaborare
La proprietà Object del comando Process contiene l'identificatore di oggetto dell'oggetto da elaborare. In un comando Process è possibile specificare un solo oggetto, ma l'elaborazione di un oggetto elabora anche tutti 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 vengono invalidate a causa dell'aggiunta o dell'eliminazione di membri viene elaborata anche da se Analysis Services ProcessAffectedObjects è impostato su true. In questo caso, un singolo comando Process può elaborare più oggetti in un'istanza, ma determina quali oggetti oltre al singolo oggetto specificato nel Analysis Services comando Process devono essere Analysis Services elaborati.
Tuttavia, è possibile elaborare contemporaneamente più oggetti, ad esempio le dimensioni, usando più comandi Process all'interno di un comando Batch. Le operazioni batch offrono un livello di controllo più fine per l'elaborazione seriale o parallela di oggetti in un'istanza rispetto all'uso Analysis Services dell'attributo ProcessAffectedObjects e consentono di ottimizzare l'approccio di elaborazione per database di dimensioni Analysis Services maggiori. Per altre informazioni sull'esecuzione di operazioni batch, vedere Performing Batch Operations (XMLA).
Specifica di associazioni out-of-line
Se il comando Process non è contenuto in un comando Batch, è possibile specificare associazioni out-of-line nelle proprietà Bindings, DataSourcee 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 esiste solo durante l'esecuzione del comando Process e che eseguono 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.
Utilizzo di un'attività Flusso di dati in Microsoft SQL Server Integration Services per fornire dati durante l'elaborazione di una dimensione, di un modello di data mining o di 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 Data Sources and Bindings (SSAS Multidimensional).
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, 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 tramite XML for Analysis (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 in Analysis Services viene rilevato un valore duplicato nella colonna chiave dell'attributo chiave. Poiché le chiavi dell'attributo devono essere univoche, Analysis Services elimina i record duplicati. In base alla proprietà KeyDuplicate di ErrorConfiguration, Analysis Services potrebbe:
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.
Esistono molte condizioni simili per cui ErrorConfiguration fornisce opzioni durante un comando Process.
Gestione di tabelle writeback
Se il comando Elabora rileva una partizione abilitata per la scrittura o un cubo o un gruppo di misure per tale partizione, che non è già completamente elaborato, è possibile che non esista già una tabella writeback per tale partizione. La proprietà WritebackTableCreation del comando Process determina se deve creare una tabella Analysis Services writeback.
Esempi
Descrizione
Nell'esempio seguente viene elaborato completamente il database di esempio Adventure Works DW Multidimensional 2012 di Analysis Services.
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 partizione Internet_Sales_2004 nel gruppo di misure Internet Sales del cubo Adventure Works DW nel Adventure Works DW Multidimensional 2012 database di esempio Analysis Services . Il comando Process aggiunge aggregazioni per date di 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 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>