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 un oggetto Analysis Services, è possibile usare il comando Process . Il Process
comando può elaborare gli oggetti seguenti in un'istanza di Analysis Services:
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 Process
comando specifica l'opzione di elaborazione da utilizzare 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 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 |
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 di Analysis Services, vedere Elaborazione oggetti del modello multidimensionale.
Specifica degli oggetti da elaborare
La proprietà Object del Process
comando 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. Ad esempio, se una dimensione viene aggiornata in modo incrementale tramite l'opzione di elaborazione ProcessUpdate nel Process
comando, qualsiasi partizione le cui aggregazioni vengono invalidate a causa dell'aggiunta o dell'eliminazione dei membri viene elaborata anche da Analysis Services se ProcessAffectedObjects
è impostata su true. In questo caso, un singolo Process
comando può elaborare più oggetti in un'istanza di Analysis Services, ma Analysis Services determina quali oggetti oltre al singolo oggetto specificato nel Process
comando devono essere elaborati.
È possibile tuttavia elaborare più oggetti contemporaneamente, ad esempio dimensioni, tramite più comandi Process
in un comando Batch
. Le operazioni batch forniscono un livello di controllo più accurato per l'elaborazione seriale o parallela di oggetti in un'istanza di Analysis Services rispetto all'uso dell'attributo e consentono di ottimizzare l'approccio ProcessAffectedObjects
di elaborazione per database di Analysis Services di dimensioni maggiori. Per altre informazioni sull'esecuzione di operazioni batch, vedere Esecuzione di operazioni batch (XMLA).
Specifica di associazioni out-of-line
Se il Process
comando non è contenuto in un Batch
comando, facoltativamente è possibile specificare associazioni out-of-line nelle proprietà Binding, DataSource e DataSourceView del Process
comando per l'elaborazione degli oggetti. 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 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 Origini dati e associazioni (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 tramite il Process
comando , Analysis Services esegue le azioni 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 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 consente di specificare come gestire gli errori rilevati durante l'elaborazione Process
di un oggetto. Ad esempio, durante l'elaborazione di una dimensione, Analysis Services rileva un valore duplicato nella colonna chiave dell'attributo chiave. Poiché le chiavi degli attributi devono essere univoche, Analysis Services elimina i record duplicati. In base alla proprietà KeyDuplicate di ErrorConfiguration
, Analysis Services può:
Continuazione dell'elaborazione della dimensione poiché il messaggio viene ignorato.
Restituisce un messaggio che indica che Analysis Services ha rilevato una chiave duplicata e continuare l'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 Process
comando determina se Analysis Services deve creare una tabella writeback.
Esempi
Descrizione
Nell'esempio seguente viene elaborato completamente il database di esempio Adventure Works DW 2012 Analysis Services di esempio.
Codice
<Process xmlns="https://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 database di esempio Adventure Works DW Multidimensional 2012 Analysis Services. Il Process
comando aggiunge aggregazioni per le date di ordine successive al 31 dicembre 2006 alla partizione usando un'associazione di query out-of-line nella Bindings
proprietà del Process
comando per recuperare le righe della tabella dei fatti da cui generare aggregazioni da aggiungere alla partizione.
Codice
<Process ProcessAffectedObjects="true" xmlns="https://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>