第3課:處理市場購物籃採礦結構

在本課中,您將使用 INSERT INTO (DMX) 陳述句,以及 AdventureWorksDW2012 範例資料庫中的 vAssocSeqLineItems 和 vAssocSeqOrders 來處理您在 第一課:建立市場籃子採礦結構 與第二 課:將採礦模型加入市場籃子採礦結構中所建立的挖礦結構與挖礦模型。

當您處理採礦結構時,Analysis Services 會讀取源數據,並建置支援採礦模型的結構。 當您處理採礦模型時,採礦結構所定義的數據會透過您選擇的數據採礦演演算法傳遞。 演算法會搜尋趨勢和模式,然後將此資訊儲存在採礦模型中。 因此,採礦模型不包含實際的源數據,而是包含演算法所探索的資訊。 如需處理採礦模型的詳細資訊,請參閱處理需求和考慮(數據採礦)。

如果您變更結構欄或變更來源資料,您只需要重新處理採礦結構。 如果您將採礦模型新增至已處理的採礦結構,您可以使用 INSERT INTO MINING MODEL 語句,在現有數據上定型新的採礦模型。

由於 Market Basket 採礦結構包含巢狀數據表,因此您必須使用巢狀數據表結構定義要定型的採礦欄位,並使用 SHAPE 命令來定義從源數據表提取定型數據的查詢。

INSERT INTO 聲明

為了訓練市場籃子挖礦結構及其相關的挖礦模型,請使用 INSERT INTO (DMX) 陳述句。 語句中的程式代碼可以分成下列部分。

  • 識別採礦結構

  • 列出採礦結構中的數據行

  • 使用 SHAPE 定義訓練數據

以下是INSERT INTO語句的一般範例:

INSERT INTO MINING STRUCTURE [<mining structure name>]  
(  
   <mining structure columns>  
   [<nested table>]  
   ( SKIP, <skipped column> )  
)  
SHAPE {  
  OPENQUERY([<datasource>],'<SELECT statement>') }  
APPEND  
(   
  {OPENQUERY([<datasource>],'<nested SELECT statement>')  
}  
RELATE [<case key>] TO [<foreign key>]  
) AS [<nested table>]  

程式碼的第一行將識別您要訓練的挖掘結構:

INSERT INTO MINING STRUCTURE [<mining structure name>]  

程序代碼的下一行會指定採礦結構所定義的數據行。 您必須列出採礦結構中的每個數據行,而且每個數據行都必須對應至源查詢數據中包含的數據行。 您可以使用 SKIP 忽略源數據中存在但不存在於採礦結構中的資料行。 欲了解更多使用SKIP資訊,請參閱 INSERT INTO (DMX)。

(  
   <mining structure columns>  
   [<nested table>]  
   ( SKIP, <skipped column> )  
)  

程式代碼的最後幾行會定義將用來定型採礦結構的數據。 因為源數據包含在兩個數據表內,因此您將使用 SHAPE 來建立數據表的關聯。

SHAPE {  
  OPENQUERY([<datasource>],'<SELECT statement>') }  
APPEND  
(   
  {OPENQUERY([<datasource>],''<nested SELECT statement>'')  
}  
RELATE [<case key>] TO [<foreign key>]  
) AS [<nested table>]  

在這一課,您會使用 OPENQUERY 來定義源數據。 如需定義源數據查詢之其他方法的相關信息,請參閱 <源數據查詢>。

課程任務

您將在此課程中執行下列工作:

  • 處理購物籃採礦結構

處理購物籃採礦結構

利用 INTO 處理礦業結構INSERT

  1. 在 物件總管 中,以滑鼠右鍵點擊 Analysis Services 實例,指向 新增查詢,然後按一下 DMX。

    查詢編輯器隨即開啟,並包含新的空白查詢。

  2. 將 INTO 陳述句的通用範例 INSERT 複製到空白查詢中。

  3. 取代下列項目:

    [<mining structure>]  
    

    取代為:

    Market Basket  
    
  4. 取代下列項目:

    <mining structure columns>  
    [<nested table>]  
    ( SKIP, <skipped column> )  
    

    取代為:

    [OrderNumber],  
    [Products]   
    (SKIP, [Model])  
    

    在語句中, Products 是指SHAPE語句所定義的 Products 資料表。 SKIP 是用來忽略源數據中作為主鍵的 Model 資料行,但在資料挖掘結構中未被使用。

  5. 取代下列項目:

    SHAPE {  
      OPENQUERY([<datasource>],'<SELECT statement>') }  
    APPEND  
    (   
      {OPENQUERY([<datasource>],'<nested SELECT statement>')  
    }  
    RELATE [<case key>] TO [<foreign key>]  
    ) AS [<nested table>]  
    

    取代為:

    SHAPE {  
      OPENQUERY([Adventure Works DW],'SELECT OrderNumber  
                FROM vAssocSeqOrders ORDER BY OrderNumber')}  
    APPEND  
    (   
      {OPENQUERY([Adventure Works DW],'SELECT OrderNumber, Model FROM   
        dbo.vAssocSeqLineItems ORDER BY OrderNumber, Model')  
    }  
    RELATE OrderNumber to OrderNumber   
    ) AS [Products]  
    

    來源查詢會參考 AdventureWorksDW2012 範例項目中定義的 AdventureWorksDW2012 數據源。 它會使用此數據源來存取 vAssocSeqLineItems 和 vAssocSeqOrders 檢視。 這些檢視包含將用來定型採礦模型的源數據。 如果您尚未建立此專案或這些檢視,請參閱 基本數據採礦教學課程。

    在 命令中 SHAPE ,您將使用 OPENQUERY 來定義兩個查詢。 第一個查詢會定義父數據表,而第二個查詢會定義巢狀數據表。 這兩個數據表透過存在於兩個表格中的 OrderNumber 欄位互相關聯。

    完整語句現在應該如下所示:

    INSERT INTO MINING STRUCTURE [Market Basket]  
    (  
       [OrderNumber],[Products] (SKIP, [Model])  
    )  
    SHAPE {  
      OPENQUERY([Adventure Works DW],'SELECT OrderNumber  
                FROM vAssocSeqOrders ORDER BY OrderNumber')}  
    APPEND  
    (   
      {OPENQUERY([Adventure Works DW],'SELECT OrderNumber, Model FROM   
        dbo.vAssocSeqLineItems ORDER BY OrderNumber, Model')  
    }  
    RELATE OrderNumber to OrderNumber   
    ) AS [Products]  
    
  6. 在 [檔案] 功能表上,按一下 [另存新檔 DMXQuery1.dmx]。

  7. 在 [ 另存新檔 ] 對話框中,瀏覽至適當的資料夾,並將檔案 Process Market Basket.dmx命名為 。

  8. 在工具列上,按兩下 [ 執行] 按鈕。

查詢完成執行之後,您可以檢視找到的模式和專案集、檢視關聯,或依專案集、機率或重要性進行篩選。 若要檢視這項資訊,請在 SQL Server Management Studio 中,以滑鼠右鍵按兩下數據模型的名稱,然後按兩下 [ 瀏覽]。

在下一課,您將根據您新增至購物籃結構的採礦模型來建立數個預測。

下一課

第 4 課:執行購物籃預測