同步處理 Adventure Works DW 資料分割封裝範例
開發人員所面臨的常見問題是如何自動化在 Analysis Services Cube 內建立資料分割的工作。資料分割通常按維度 (例如時間) 進行切割。例如,在 Adventure Works DW 資料庫中,已建立從 2001 至 2004 四年的靜態銷售資料分割。然而,如果事實資料表開始在該資料範圍外累積資料,會發生什麼事情?如果 2005 及 2006 年的銷售資料到達,是應該由開發人員手動建立新資料分割,還是採取自動建立新資料分割的方法?
「同步處理 Adventure Works DW 資料分割封裝範例」是範例封裝,示範如何自動進行新資料分割的識別和建立。雖然該範例是專為 Adventure Works DW 物件而撰寫的,但可以很容易地擴充該範例使其得以在相似環境中使用。以 Itanium 為基礎的作業系統不支援這個範例。
重要事項: |
---|
範例只供教育目的之用。它們不能用於實際執行環境,而且從來沒有在實際執行環境中測試過。Microsoft 不提供對這些範例的技術支援。 |
需求
執行此範例封裝需要進行下列動作:
- 範例封裝及其使用的資料檔必須安裝在本機硬碟上。
- 必須已安裝並具有 AdventureWorks OLTP 資料庫上的管理權限。
- 如果只想從命令列執行範例封裝,則必須安裝 SQL Server 2005 Integration Services (SSIS)。
- 若要在「SSIS 設計師」中開啟封裝並執行範例封裝,則必須安裝 Business Intelligence Development Studio。
- 如果您要在 64 位元的電腦上執行範例封裝,必須將指令碼工作的 PreCompile 屬性設定為 True。若要使用偵錯工具來逐步執行該指令碼,請將屬性設定為 False。
- 如果關聯式資料庫和 Analysis Services 資料庫不在本機電腦上,或者它們已重新命名,則必須修改範例封裝中適當的連接,以指向正確的資料庫位置。您可以在「SSIS 設計師」中直接編輯封裝,或者編輯封裝組態。
- 若要在封裝中執行指令碼,必須參考「分析管理物件」。這需要資料夾 %windir%\Microsoft.net\framework\v2.0.xxxxx 包含 Microsoft.AnalysisServices.dll 的副本,且 Microsoft Visual Studio for Applications 專案包含對「分析管理物件」的參考。從中複製組件的預設位置是 C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.AnalysisServices.dll。
如需有關如何安裝範例的詳細資訊,請參閱《SQL Server 2005 線上叢書》中的<安裝範例 Integration Services 封裝>主題。若要取得最新版的範例,包括自 SQL Server 2005 原始發行版本以來所發佈的新範例,請參閱<SQL Server 2005 範例與範例資料庫 (2006 年 4 月)>(英文)。
範例封裝的位置
如果將範例安裝到預設安裝位置,則「同步處理 Adventure Works DW 資料分割」範例封裝將位於下列資料夾:C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\SyncAdvWorksPartitions Sample\SyncAdvWorksPartitions\
執行此範例封裝需要下列檔案。
檔案 | 描述 |
---|---|
Sync Partitions.dtsx |
範例封裝。 |
Get Partitions List.sql |
Transact-SQL 查詢,用於識別和傳回 RDBMS 的資料分割中繼資料。 此檔案包含執行 SQL 工作中使用之 SQL 查詢的副本,而且不需要執行封裝;不過,您可以輕鬆地使用這個文字檔檢視和編輯 SQL 陳述式。 |
執行範例
從命令列使用 dtexec 公用程式可以執行封裝,或者也可以在 Business Intelligence Development Studio 中執行封裝。
若要使用 dtexec 執行封裝
開啟 [命令提示字元] 視窗。
將目錄變更到 dtexec 的位置,即 C: Program Files\Microsoft SQL Server\90\DTS\Binn。
輸入以下命令:
dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\SyncAdvWorksPartitions Sample\SyncAdvPartitions\Sync Partitions.dtsx"
按 ENTER 鍵。
如需有關如何使用 dtexec 公用程式執行封裝的詳細資訊,請參閱《SQL Server 2005 線上叢書》中的<dtexec 公用程式>主題。
若要在 Business Intelligence Development Studio 中執行封裝
開啟 [Business Intelligence Development Studio]。
在 [檔案] 功能表上,指向 [開啟],然後按一下 [專案/方案]。
將 [檔案類型:] 選項設為 [Integration Services 專案檔案 (*.dtproj)],尋找 [SyncAdvWorksPartitions Sample] 資料夾,然後按兩下名為 Sync Partitions.dtproj 的檔案。
在 [方案總管] 中,以滑鼠右鍵按一下 [SSIS 封裝] 資料夾中的 Sync Partitions.dtsx,然後按一下 [執行封裝]。
如需有關如何在 Business Intelligence Development Studio 中執行封裝的詳細資訊,請參閱《SQL Server 2005 線上叢書》中的<執行封裝>主題。
範例中的元件
下表列出範例中所使用的工作、來源和目的地。
元素 | 用途 |
---|---|
執行 SQL 工作 |
執行 SQL 工作 Get Partition List 會根據事實資料表執行 Transact-SQL 查詢。該查詢可識別並傳回定義按時間切割之資料分割的中繼資料。結果資料列集會包含每個資料分割的資料列。 |
Foreach 迴圈工作 |
Foreach 迴圈工作 Foreach Partition 會逐一查看執行 SQL 工作中產生的每個資料列集。每次查看,都會將資料列集內容抽取到指令碼和 Analysis Services 執行 DDL 工作中都有使用的封裝變數中。 |
指令碼工作 |
在 Foreach 迴圈工作中,名為 Partition Already There? 的指令碼工作會使用「分析管理物件」(AMO),以識別對應的資料分割是否已存在於 Analysis Services 資料庫中。此尋找然後會用於設定 |
Analysis Services 執行 DDL 工作 |
如果必要,名為 Create Partition 的 Analysis Services 執行 DDL 工作會執行 |
Analysis Services 連接管理員 |
執行 DDL 工作會使用連接管理員 AS database,連接包含「網際網路銷售」、「網際網路訂單」和「客戶計數」量值群組中資料分割的 Analysis Services 資料庫。 |
OLE DB 連接管理員 |
執行 SQL 工作會使用連接管理員 RDBMS database,查詢包含事實資料表 FactInternetSales、FactResellerSales 和維度資料表 DimTime 的關聯式資料庫。 |
範例結果
因為在 Analysis Services 資料庫內已經存在資料分割,所以在執行封裝時,不會建立新的資料分割。
如果您要讓封裝在 Analysis Services 資料庫內建立新的資料分割,可以從 Adventure Works Cube 的下列量值群組中刪除資料分割:Internet Sales、Internet Orders、Reseller Sales、Reseller Orders 或 Customer Count。當執行封裝時,會重新建立已從量值群組中刪除的資料分割 (即使未進行任何彙總),之後便可以重新處理資料分割。
注意 若要在 Analysis Services Adventure Works DW 資料庫中刪除並重新建立物件,建議您在執行該範例封裝前,先備份目前的資料庫。