在這一課,您將使用 AdventureWorksDW2012 範例資料庫中的 INSERT INTO (DMX) 語句和 vAssocSeqLineItems 和 vAssocSeqOrders 來處理您在第 1 課:建立購物籃採礦結構和第 2 課:將採礦模型新增至購物籃採礦結構。
當您處理採礦結構時,Analysis Services 會讀取源數據,並建置支援採礦模型的結構。 當您處理採礦模型時,採礦結構所定義的數據會透過您選擇的數據採礦演演算法傳遞。 演算法會搜尋趨勢和模式,然後將此資訊儲存在採礦模型中。 因此,採礦模型不包含實際的源數據,而是包含演算法所探索的資訊。 如需處理採礦模型的詳細資訊,請參閱處理需求和考慮(數據採礦)。
如果您變更結構欄或變更來源資料,您只需要重新處理採礦結構。 如果您將採礦模型新增至已處理的採礦結構,您可以使用 INSERT INTO MINING MODEL 語句,在現有數據上定型新的採礦模型。
由於 Market Basket 採礦結構包含巢狀數據表,因此您必須使用巢狀數據表結構定義要定型的採礦欄位,並使用 SHAPE 命令來定義從源數據表提取定型數據的查詢。
INSERT INTO 敘述
若要將 Market Basket 採礦結構及其相關聯的採礦模型定型,請使用 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 來定義源數據。 如需定義源數據查詢之其他方法的相關信息,請參閱 <源數據查詢>。
課程任務
您將在此課程中執行下列工作:
- 處理購物籃採礦結構
處理購物籃採礦結構
使用 INSERT INTO 來處理採礦結構
在 物件總管 中,以滑鼠右鍵點擊 Analysis Services 實例,指向 新增查詢,然後按一下 DMX。
查詢編輯器隨即開啟,並包含新的空白查詢。
將 INSERT INTO 語句的泛型範例複製到空白查詢中。
取代下列項目:
[<mining structure>]取代為:
Market Basket取代下列項目:
<mining structure columns> [<nested table>] ( SKIP, <skipped column> )取代為:
[OrderNumber], [Products] (SKIP, [Model])在語句中,
Products是指SHAPE語句所定義的 Products 資料表。SKIP是用來忽略源數據中作為主鍵的 Model 資料行,但在資料挖掘結構中未被使用。取代下列項目:
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]在 [檔案] 功能表上,按一下 [另存新檔 DMXQuery1.dmx]。
在 [ 另存新檔 ] 對話框中,瀏覽至適當的資料夾,並將檔案
Process Market Basket.dmx命名為 。在工具列上,按兩下 [ 執行] 按鈕。
查詢完成執行之後,您可以檢視找到的模式和專案集、檢視關聯,或依專案集、機率或重要性進行篩選。 若要檢視這項資訊,請在 SQL Server Management Studio 中,以滑鼠右鍵按兩下數據模型的名稱,然後按兩下 [ 瀏覽]。
在下一課,您將根據您新增至購物籃結構的採礦模型來建立數個預測。