AWDataWarehouseRefresh 封裝範例

AWDataWarehouseRefresh 範例封裝說明了如何使用來自 AdventureWorks 資料庫的資料,在新 AdvWorksDWX 資料庫中建立並填入使用者資料表。會在執行數個 Transact-SQL 指令碼以建立資料表之後,執行數個「執行 SQL」工作以填入資料表。

ms160706.note(zh-tw,SQL.90).gif重要事項:
範例只供教育目的之用。它們不能用於實際執行環境,而且從來沒有在實際執行環境中測試過。Microsoft 不提供對這些範例的技術支援。

需求

執行此範例封裝需要進行下列動作:

  • 範例封裝及其使用的資料檔必須安裝在本機硬碟上。
  • 必須已安裝並具有 AdventureWorks OLTP 資料庫上的管理權限。
  • 如果只想從命令列執行範例封裝,則必須安裝 SQL Server 2005 Integration Services (SSIS)。
  • 若要在「SSIS 設計師」中開啟封裝並執行範例封裝,則必須安裝 Business Intelligence Development Studio。

執行此範例封裝需要下列檔案。

檔案 描述

AWDWRefresh.dtsx

範例封裝。

如需有關如何安裝範例的詳細資訊,請參閱《SQL Server 2005 線上叢書》中的<安裝範例 Integration Services 封裝>。若要取得最新版的範例,包括自 SQL Server 2005 原始發行版本以來所發佈的新範例,請參閱<SQL Server 2005 範例與範例資料庫 (2006 年 4 月)>(英文)。

範例封裝的位置

如果範例已安裝在預設位置,則 AWDataWarehouseRefresh 範例封裝和資料檔會位於下列資料夾中:

C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\AWDataWarehouseRefresh\

ms160706.note(zh-tw,SQL.90).gif附註:
如果您變更了專案的安裝位置,則必須修改封裝中的 BasePathDataFilePath 變數。

執行範例

從命令列使用 dtexec 公用程式可以執行封裝,或者也可以在 Business Intelligence Development Studio 中執行封裝。

若要使用 dtexec 執行封裝

  1. 開啟 [命令提示字元] 視窗。

  2. 使用**「變更目錄」**命令 (cd),將目錄變更為 C:\Program Files\Microsoft SQL Server\90\DTS\Binn,即 dtexec 的位置。

  3. 輸入以下命令:

    dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\AWDataWarehouseRefresh\AWDataWarehouseRefresh\AWDWRefresh.dtsx"
    
  4. ENTER 鍵。

如需有關如何使用 dtexec 公用程式執行封裝的詳細資訊,請參閱《SQL Server 2005 線上叢書》中的<dtexec 公用程式>主題。

若要在 Business Intelligence Development Studio 中執行封裝

  1. 開啟 [Business Intelligence Development Studio]。

  2. [檔案] 功能表上,指向 [開啟],然後按一下 [專案/方案]

  3. 設定 [檔案類型:][Integration Services 專案檔案 (*.dtproj)],找到 AWDataWarehouseRefresh 資料夾,然後按兩下名為 AWDataWarehouseRefresh.dtproj 的檔案。

  4. [方案總管] 中,以滑鼠右鍵按一下 [SSIS 封裝] 資料夾中的 AWDWRefresh.dtsx,然後再按 [執行封裝]

範例中的元件

下表列出該範例中所使用的工作、容器、資料來源與目的地,以及轉換。

您可以透過在 [控制流程] 索引標籤上選取任何物件,然後按 Shift+TAB 逐一向前讀取物件的方式,瀏覽封裝中的物件。您也可以按一下位於 [控制流程] 設計介面右下角之四個方向的定位器箭號,然後透過封裝定位檢視視窗,這樣就能看見封裝的大圖片。

由於此封裝表示實際執行資料庫的範例,因此邏輯群組中會收集許多物件和容器。您可以摺疊群組,這樣可輕鬆地檢視整個封裝,或展開群組,以便更好地查看特定群組中的項目。封裝中的工作和容器依其群組列於此處。

資料庫和資料表群組

Database and tables 群組包含「時序」容器、「Foreach 迴圈」容器和「執行 SQL」工作。這些容器進而包含這個資料表中列出的工作。

元素 用途

時序容器

Prepare New Database「時序」容器,包含三個可建立新的資料庫並設定資料庫選項的「執行 SQL」工作。順序是跟在「Foreach 迴圈」容器和另一個「執行 SQL」工作之後。

執行 SQL 工作

Drop database「執行 SQL」工作,會刪除 AdvWorksDWX 的任何現有執行個體。

執行 SQL 工作

Create database「執行 SQL」工作,會建立新的資料庫 AdvWorksDWX

執行 SQL 工作

Set database options「執行 SQL」工作,會執行 ALTER DATABASE 陳述式。

Foreach 迴圈容器

Create tables「Foreach 迴圈」容器包含「執行 SQL」工作,該工作會從符合檔案篩選條件 CreateTable-*.sql 的檔案中執行 SQL 陳述式。

執行 SQL 工作

透過從「Foreach 迴圈」中指定的檔案中執行 SQL 陳述式,在 AdvWorksDWX 資料庫中建立資料表。

執行 SQL 工作

Create udfMinimumDate function「執行 SQL」工作,會以直接輸入 SQL 陳述式的方式建立使用者自訂函數。

暫存資料表群組

Temporary Tables 群組包含兩個「Foreach 迴圈」,每個都包含可以透過檔案中之 SQL 陳述式執行迴圈的「執行 SQL 工作」。包含檔案的資料夾位置是由檔案連接管理員所定義。

元素 用途

Foreach 迴圈容器

Drop temp tables「Foreach 迴圈」包含「執行 SQL」工作,該工作會從符合檔案篩選條件 DropTempTable-*.sql 的檔案中執行 SQL 陳述式。

執行 SQL 工作

透過從「Foreach 迴圈」中指定的檔案中執行 SQL 陳述式,在 AdventureWorks 資料庫中卸除暫存資料表。

Foreach 迴圈容器

Create temp tables「Foreach 迴圈」包含「執行 SQL」工作,該工作會從符合檔案篩選條件 CreateTempTable-*.sql 的檔案中執行 SQL 陳述式。

執行 SQL 工作

透過從「Foreach 迴圈」中指定的檔案中執行 SQL 陳述式,在 AdventureWorks 資料庫中建立暫存資料表。

載入暫存資料表群組

Load temporary tables 群組包含七個「大量插入」工作,該工作會將 .csv 檔案中的資料載入至 AdventureWorks 資料庫中的暫存資料表。

元素 用途

大量插入工作

Bulk Insert tempProductSubcategory-ForeignNames「大量插入」工作會將資料插入至暫存資料表。

大量插入工作

Bulk Insert tempProduct-ForeignNames「大量插入」工作會將資料插入至暫存資料表。

大量插入工作

Bulk Insert tempStore-MinPayment「大量插入」工作會將資料插入至暫存資料表。

大量插入工作

Bulk Insert tempProductCategory-ForeignNames「大量插入」工作會將資料插入至暫存資料表。

大量插入工作

Bulk Insert tempCustomer-YearlyIncome「大量插入」工作會將資料插入至暫存資料表。

大量插入工作

Bulk Insert tempIndividual-ForeignData「大量插入」工作會將資料插入至暫存資料表。

大量插入工作

Bulk Insert tempSpecialOffer-ForeignData「大量插入」工作會將資料插入至暫存資料表。

建立索引鍵和索引群組

Create Keys and Indexes 群組包含四個由優先順序條件約束連接的「執行 SQL」工作,還包含「Foreach 迴圈」容器。

元素 用途

執行 SQL 工作

Add Primary Keys「執行 SQL」工作,會在 AdvWorksDWX 中的新資料表上建立主索引鍵。

執行 SQL 工作

Add Indexes「執行 SQL」工作,會對 AdvWorksDWX 中的新資料表進行索引。

執行 SQL 工作

Add Foreign Key Constraints「執行 SQL」工作,會將條件約束加入至 AdvWorksDWX 中的新資料表。

執行 SQL 工作

Drop udfMinimumDate function「執行 SQL」工作,會從 AdvWorksDWX 中刪除使用者自訂功能。

Foreach 迴圈容器

Drop temp tables 1「Foreach 迴圈」容器包含「執行 SQL」工作,該工作會從符合檔案篩選條件 DropTempTable-*.sql 的檔案中執行 SQL 陳述式。

執行 SQL 工作

透過從「Foreach 迴圈」中指定的檔案中執行 SQL 陳述式,從 AdventureWorks 資料庫中刪除暫存資料表。

取消群組工作

封裝還包含 25 個不屬於任何群組的工作,但會執行在其他群組中工作之間移動資料的作業。

元素 用途

大量插入工作

Bulk Insert FactFinance「大量插入」工作,會從 .csv 檔案將資料載入 AdvWorksDWX 中的事實資料表。

大量插入工作

Bulk Insert DimAccount「大量插入」工作,會從 .csv 檔案將資料載入 AdvWorksDWX 中的維度資料表。

大量插入工作

Bulk Insert AdventureWorksDWBuildVersion「大量插入」工作,會更新 AdvWorksDWX 中資料倉儲的版本資訊。

資料流程工作

Data Flow Task - DimPromotion「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會針對 AdventureWorks 執行查詢以識別促銷,並將結果寫入 AdvWorkDWX 中的維度資料表。

大量插入工作

Bulk Insert DimOrganization「大量插入」工作,會從 .csv 檔案將資料載入 AdvWorksDWX 中的維度資料表。

資料流程工作

Data Flow Task - DimSalesReason「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會針對 AdventureWorks 執行查詢以查閱銷售原因,並將結果寫入 AdvWorkDWX 中的維度資料表。

資料流程工作

Data Flow Task - DimReseller「資料流程」工作,包含 OLE DB 來源、「資料轉換」和 SQL Server 目的地。資料流程會針對 AdventureWorks 執行複雜查詢 (包括條件陳述式和查閱),並將結果寫入 AdvWorksDWX 中的維度資料表。

資料流程工作

Data Flow Task - DimEmployee「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會在「人力資源」資料表上執行查閱、指派銷售人員識別碼,並將結果寫入 AdvWorksDWX 中的維度資料表。

資料流程工作

Data Flow Task - DimCurrency「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會從目前資料表中擷取資料、變更資料行名稱,並將資料寫入 AdvWorksDWX 中的維度資料表。

大量插入工作

Bulk Insert DimScenario「大量插入」工作,會從 .csv 檔案將資料載入 AdvWorksDWX 中的維度資料表。

大量插入工作

Bulk Insert - DimTime「大量插入」工作,會從 .csv 檔案將資料載入 AdvWorksDWX 中的維度資料表。

資料流程工作

Data Flow Task - FactSalesQuota「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會擷取銷售人員的配額,並更新 AdvWorksDXW 中的事實資料表。

資料流程工作

Data Flow Task - FactCurrencyRate「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會使用 SQL 陳述式擷取並轉換貨幣資訊,然後更新 AdvWorksDXW 中的事實資料表。

資料流程工作

Data Flow Task - DimProduct「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會使用 SQL 陳述式對暫存資料表中的資料執行複雜處理,然後更新 AdvWorksDWX 中的維度資料表。

資料流程工作

Data Flow Task - DimProductCategory「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會將外國產品類別對應到英文類別名稱,並更新 AdvWorksDWX 中的維度資料表。

資料流程工作

Data Flow Task - DimProductsSubcategory「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會從參考資料表中擷取產品子類別的翻譯,然後更新 AdvWorksDWX 中的維度資料表。

資料流程工作

Data Flow Task - DimGeography「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會在參考資料表中查閱地址,然後將結果寫入 AdvWorkDWX 中的維度資料表。

資料流程工作

Data Flow Task - DimCustomer「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程接受多個輸入 (來自 DimGeography 以及兩個暫存資料表的資料),並擷取資料以更新 AdvWorksDWX 中的維度資料表。

資料流程工作

Data Flow Task - FactInternetSalesReason「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會從 AdventureWorks 中擷取資料,並更新 AdvWorksDWX 中的事實資料表。

資料流程工作

Data Flow Task - DimSalesTerritory 1「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會查閱區域的區域碼,並將結果寫入 AdvWorksDWX 中的維度資料表。

資料流程工作

Data Flow Task - DimSalesTerritory 2「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會將國家 (地區) 對應加入至上一個資料流程中處理的資料。

資料流程工作

Data Flow Task - DimDepartmentGroup「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會將所有群組的名稱變更為「公司」,並將值寫入 AdvWorksDWX 中的維度資料表。

資料流程工作

Data Flow Task - DimDepartmentGroup 1「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會在人力資源資料表中查閱群組名稱,並更新 AdvWorksDWX 之維度資料表中的值。

資料流程工作

Data Flow Task - FactInternetSales「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會從其他工作接受多個輸入 (包括新建立的使用者自訂功能),並更新 AdvWorksDWX 中的事實資料表。

資料流程工作

Data Flow Task - FactResellerSales「資料流程」工作,包含 OLE DB 來源和 SQL Server 目的地。資料流程會從其他工作接受多個輸入 (包括新建立的使用者自訂功能),並更新 AdvWorksDWX 中的事實資料表。

範例結果

使用 dtexec 公用程式執行封裝之後,您應查看輸出,如下所示。

範例輸出:

Microsoft (R) SQL Server 執行封裝公用程式

9.00.xxxx 版 (適用於 32 位元)

Copyright (C) Microsoft Corp 1984-2005. All rights reserved.

開始:1:03:24 PM

進度: 2005-04-12 13:03:35.14

來源:執行 SQL 工作

執行查詢 "IF EXISTS (SELECT * FROM [sys].[tables] WHERE [nam":100% 完成

進度結束

進度: 2005-04-12 13:03:35.15

來源:執行 SQL 工作

執行查詢 "IF EXISTS (SELECT * FROM [sys].[tables] WHERE [nam":100% 完成

進度結束

進度:2005-04-12 13:05:43.77

來源:加入索引

執行查詢 "CREATE UNIQUE INDEX [AK_DimAccount_AccountCodeAlte":100% 完成

進度結束

進度: 2005-04-12 13:05:46.00

來源:加入外部索引鍵條件約束

執行查詢 "ALTER TABLE [dbo].[DimAccount] ADD

CONSTRAINT [F":100% 完成

進度結束

DTExec:封裝執行傳回 DTSER_SUCCESS (0)。

開始:1:03:24 PM

完成:1:05:46 PM

經過時間:141.969 秒