第 3 課:處理購物籃採礦結構
新增: 2005 年 12 月 5 日
在這一課,您將使用 INSERT INTO (DMX) 陳述式和 AdventureWorksDW 範例資料庫中的 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 columns> )
)
SHAPE {
OPENQUERY([<datasource>],'<SELECT statement>') }
APPEND
(
{OPENQUERY([<MyDataSource>],'<nested SELECT statement>')
}
RELATE [<case key>] TO [<foriegn key>]
) AS [<nested table>]
程式碼的第一行識別您將培訓的採礦結構:
INSERT INTO MINING STRUCTURE [<mining structure name>]
接下來幾行的程式碼指定採礦結構定義的資料行。您必須列出採礦結構的每一個資料行,且每一個資料行必須對應到來源查詢資料內包含的資料行。您可以使用 SKIP 來忽略存在於來源資料而不是採礦結構中的資料行。如需有關使用 SKIP 的詳細資訊,請參閱<INSERT INTO (DMX)>。
(
<mining structure columns>
[<nested table>]
( SKIP, <skipped columns> )
)
程式碼的最後幾行定義將用來培訓採礦結構的資料。因為來源資料包含在兩份資料表內,所以您將使用 SHAPE 使兩份資料表彼此相關。
SHAPE {
OPENQUERY([<datasource>],'<SELECT statement>') }
APPEND
(
{OPENQUERY([<datasource>],''<nested SELECT statement>'')
}
RELATE [<case key>] TO [<foriegn key>]
) AS [<nested table>]
在這一課,您使用 OPENQUERY 來定義來源資料。如需有關定義來源查詢之其他方法的資訊,請參閱 <source data query>。
課程工作
您將在這一課執行下列工作:
- 處理 Market Basket 採礦結構
處理 Market Basket 採礦結構
若要使用 INSERT INTO 處理採礦結構
在 [物件總管] 中,以滑鼠右鍵按一下 Analysis Services 的執行個體,指向 [新增查詢],然後按一下 [DMX]。
此時會開啟 [查詢編輯器] 且包含新的空白查詢。
將 INSERT INTO 陳述式的一般範例複製到空白查詢中。
取代下列項目:
[<mining structure>]
成為:
Market Basket
取代下列項目:
<mining structure columns> [<nested table>] ( SKIP, <skipped columns> )
成為:
[OrderNumber],[Products] (SKIP, [Model])
在此陳述式中,Products 是指 SHAPE 陳述式所定義的 Products 資料表。SKIP 用來忽略 Model 資料行,它以一個索引鍵存在於來源資料,但不是供採礦結構使用。
取代下列項目:
SHAPE { OPENQUERY([<datasource>],'<SELECT statement>') } APPEND ( {OPENQUERY([<datasource>],''<nested SELECT statement>'') } RELATE [<case key>] TO [<foriegn 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]
來源查詢參考 AdventureWorksDW 範例專案中所定義的 AdventureWorksDW 資料來源。它使用此資料來源來存取 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。
在工具列上按一下 [執行] 按鈕。
在下一課,您將依據您加入 Market Basket 結構中的採礦模型來建立幾個預測。