共用方式為


處理對象(XMLA)

Microsoft SQL Server Analysis Services 中,處理是將數據轉換成商務分析資訊的步驟或一系列步驟。 處理會根據對象的類型而有所不同,但處理一律是將數據轉換成資訊的一部分。

若要處理 Analysis Services 物件,您可以使用 Process 命令。 此指令 Process 可以在 Analysis Services 實例上處理下列物件:

  • 立方體

  • 資料庫

  • 尺寸

  • 量值群組

  • 採礦模型

  • 採礦結構

  • 分區

若要控制對象的處理, Process 命令具有可設定的各種屬性。 命令 Process 具有可控制的屬性:將執行多少處理、要處理哪些物件、是否要使用離線系結、如何處理錯誤,以及如何管理回寫數據表。

指定處理選項

命令的 ProcessType 屬性會指定處理物件時要使用的處理選項。 如需處理選項的詳細資訊,請參閱處理選項和設定(Analysis Services)。

下表列出 屬性的 Type 常數,以及可使用每個常數處理的各種物件。

Type 適用的物件
ProcessFull Cube, 資料庫, 維度, 量值群組, 採礦模型, 採礦結構, 分割區
ProcessAdd 維度、數據分割
ProcessUpdate 尺寸
ProcessIndexes 維度、Cube、量值群組、數據分割
ProcessData 維度、Cube、量值群組、數據分割
ProcessDefault Cube, 資料庫, 維度, 量值群組, 採礦模型, 採礦結構, 分割區
ProcessClear Cube, 資料庫, 維度, 量值群組, 採礦模型, 採礦結構, 分割區
ProcessStructure Cube,採礦結構
ProcessClearStructureOnly 採礦結構
ProcessScriptCache 立方體

如需處理 Analysis Services 對象的詳細資訊,請參閱 多維度模型對象處理

指定要處理的物件

命令的 ProcessObject 屬性包含要處理之物件的物件識別碼。 命令中只能指定一個 Process 物件,但處理物件也會處理任何子物件。 例如,在 Cube 中處理量值群組會處理該量值群組的所有分割區,同時處理資料庫會處理資料庫所包含的所有物件,包括 Cube、維度和採礦結構。

如果您將 ProcessAffectedObjects 命令的 Process 屬性設定為 true,也會處理受處理指定物件影響的任何相關物件。 例如,如果使用 命令中的 ProcessProcessUpdate 處理選項累加更新維度,則如果 Analysis Services 將加入或刪除成員而使匯總失效的任何分割區,如果 ProcessAffectedObjects 設定為 true,也會由 Analysis Services 處理。 在此情況下,單 Process 一命令可以在 Analysis Services 實例上處理多個物件,但 Analysis Services 會決定除了命令中指定的 Process 單一物件之外,哪些對象也必須處理。

不過,您可以使用命令內的Batch多個Process命令,同時處理多個物件,例如維度。 批次作業比使用 ProcessAffectedObjects 屬性更精細地控制 Analysis Services 實例上物件的序列或平行處理,並可讓您微調大型 Analysis Services 資料庫的處理方法。 如需執行批次作業的詳細資訊,請參閱 執行批次作業 (XMLA)

指定跨行系結

如果命令未包含Batch命令,您可以選擇性地在命令的 ProcessBindingsDataSource 和 DataSourceView 屬性中指定行外系結,以便處理物件。Process 離線系結是數據源、數據源檢視和其他對象的參考,其中系結只存在於命令執行 Process 期間,而且會覆寫與所處理對象相關聯的任何現有系結。 如果未指定離線系結,則會使用目前與要處理之物件相關聯的系結。

下列情況下會使用離線系結:

  • 以累加方式處理分割區,其中必須指定現有事實數據表的替代事實數據表或篩選條件,以確保不會計算數據列兩次。

  • 在 Microsoft SQL Server Integration Services 中使用數據流工作,在處理維度、採礦模型或數據分割時提供數據。

內嵌系結會描述為 Analysis Services 腳本語言 (ASSL) 的一部分。 如需 ASSL 中離線系結的詳細資訊,請參閱數據源和系結(SSAS 多維度)。

以累加方式更新數據分割

以累加方式更新已處理的數據分割通常需要離線系結,因為為分割區指定的系結參考已匯總在數據分割內的事實數據表數據。 使用 Process 命令以累加方式更新已處理的數據分割時,Analysis Services 會執行下列動作:

  • 建立暫存分割區,其結構與要累加更新之分割區的結構相同。

  • 使用命令中指定的 Process 離線系結來處理暫存分割區。

  • 將暫存分割區與現有的選取分割區合併。

如需使用 XML for Analysis 合併分割區的詳細資訊(XMLA),請參閱合併分割區 (XMLA)。

處理錯誤

命令的 ProcessErrorConfiguration 屬性可讓您指定如何處理處理物件時遇到的錯誤。 例如,在處理維度時,Analysis Services 在索引鍵屬性的索引鍵數據行中遇到重複的值。 因為屬性索引鍵必須是唯一的,Analysis Services 會捨棄重複的記錄。 根據 的 ErrorConfigurationKeyDuplicate 属性,Analysis Services 可以:

  • 忽略錯誤並繼續處理維度。

  • 傳回訊息,指出 Analysis Services 遇到重複的索引鍵並繼續處理。

有許多類似的條件可在 ErrorConfiguration 命令期間 Process 提供選項。

管理回寫數據表

Process如果命令遇到已啟用寫入的數據分割,或這類數據分割的 Cube 或量值群組,表示尚未完全處理,則該分割區可能還沒有回寫數據表。 命令的 ProcessWritebackTableCreation 屬性會決定 Analysis Services 是否應該建立回寫數據表。

範例

說明

下列範例會完整處理 Adventure Works DW 多維度 2012 範例 Analysis Services 資料庫。

程式碼

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

說明

下列範例會以累加方式處理 Adventure Works DW Cube 在 Adventure Works DW 多維度 2012 範例 Analysis Services 資料庫中的 Internet Sales 量值群組中Internet_Sales_2004分割區。 Process此命令會在 2006 年 12 月 31 日之後新增訂單日期的匯總至數據分割,方法是在 命令的 Process 屬性中使用Bindings行外查詢系結,擷取要從中產生匯總以新增至數據分割的事實數據表數據列。

程式碼

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