数据仓库与ETL的实现过程一、抽取维度表(一)抽取维度表DimEmp1、依次打开Satrt|Allprogram|MicrosoftSQLServer2008|MicrosoftSQLServer®BusinessIntelligenceDevelopmentStudio。2、依次打开File|New|Project,在打开的对话框中选择IntegrationServicesProject,命名为ToDW,保存位置为C:\DocumentsandSettings\Administrator\Desktop\课程\练习\第2课,然后点击OK。在SolutionExplorer中选中SSISPackages,单击右键选择新建SSIS包。选中新建的包,右键单击选择rename,然后输入Dim.dtsx。点击空白处显示如下提示框,点击Yes。3、双击新建的SSIS包,即Dim.dtsx。在左侧Toolbox面板中将ExecuteSQLTask拖到ControlFlow中,再双击打开,如下图:在General中的Name后输入:truncatetableEMPProduct。4、点击选中Connection然后点击向下的箭头,选择NewConnection出现如下对话框:在该对话框中选择New出现下图:○在Servername中输入Localhost○Logontotheserver中选择UseWindowsAuthentication○Connecttodatabase中选择Selectorenterordatabasename,在下拉菜单选择HealthDW。5、点击TestConnection,显示TestConnectionsucceeded对话框即:然后点击OK关闭此信息框。6、点击OK关闭ConnectionManger对话框。7、在Dataconnection中,选中LOCALHOST.HealthDW,然后点击OK关闭ConfigureOLEDBConnectionManager对话框。8、选中SQLStatement然后点击后面的省略号,在出现如下对话框:在对话框中输入以下语句:useHealthDWtruncatetableDimEmpdbcccheckident(DimEmp,reseed,1)truncatetableDimProductdbcccheckident(DimProduct,reseed,1)9、点击OK关闭EnterSQLQuery对话框。10、点击OK关闭ExcuteSQLTaskEditor对话框。11、在Toolbox面板中将DataFlowTask拖到ControlFlow窗体中,并拖动truncatetableEMPProduct下面的绿色箭头连接到DataFlowTask上。12、选中DataFlowTask后单击,将其重命名为DimEmp。13、双击DimEmp,然后在Toolbox面板中将ExcelSource拖到DataFlow窗体中。14、选中ExcelSource后单击,将其重命名为:店面——销售一组,并双击它出现如下图示:选择OLEDBconnectionmanager右边的New出现ExcelConnectionManager对话框,如下图所示:15、在Excelfilepath中点击Brower,浏览Excel数据源所在位置C:\DocumentsandSettings\Administrator\Desktop\课程\快速入门\第2课:数据仓库与ETL的实现过程\工程文件\ToDW\DataSource\Storesales.xlsx。出现如下图示:然后点击OK关闭ExcelConnectionManager对话框。16、在Dataaccessmode中选择SQLcommand;在SQLcommandtext中输入:selectdistinctEmployName,GroupNamefrom[sheet1$]whereEmployNameisnotnull,然后点击OK。17、在Toolbox面板中将DerivedColumn拖到DataFlow窗体中,选中DerivedColumn重命名为:DeptName。18、拖动店面——销售一组下面的绿色箭头到DeptName上。19、双击DeptName后,加入DeptName列,在expression中输入”店面”,然后点击OK。具体操作如下图所示:注意:加入店面销售二组、店面销售三组和其派生列操作步骤同上。20、在Toolbox中将OLEDBSource到DataFlow中,重命名为Pos。21、双击Pos出现下图:OLEDBconnectionmanager中选择New,出现configureOLEDBConnectionManager对话框,然后点击New出现ConnectionManager对话框,在Provider中选择NativeOLEDB\MicrosoftOffice12.0AccessDataBaseEngineOLEDBProvider。22、然后点击DataLinks,出现DataLinkProperties对话框。如下图所示:23、在DataSource中输入C:\DocumentsandSettings\Administrator\Desktop\课程\快速入门\第2课:数据仓库与ETL的实现过程\工程文件\ToDW\DataSource\Pos.accdb24、DataLinkProperties对话框中,选择TestConnection。25、点击TestConnection显示连接成功,然后点击OK关闭此对话框。26、点击OK关闭ConnectionManager对话框。27、点击OK关闭configureOLEDBConnectionManager对话框。28、在Dataaccessmode中选择SQLcommand;在SQLcommandtext中输入:selectdistinctEmployName,GroupNameFromSaleswhereEmployNameisnotnull。29、点击OK关闭对话框。30、在Toolbox面板中将DerivedColumn拖到DataFlow中,重命名为DeptName131、将Pos的绿箭头拖动到DeptName1上面,以连接这两个组件。32、双击DeptName1后加入DeptName列,在expression中输入”Pos”,具体操作如下图所示:然后点击OK。33、从Toolbox面板中将OLEDBSource拖到DataFlow中,将其命名为网售。双击打开。34、在OLEDBconnectionmanager下面点击New,出现configureOLEDBConnectionManager对话框,点击New出现ConnectionManager对话框。如下图所示:○在Provider中选择NativeOLEDB\SQLServerNativeClient10.0○servername中输入:localhost○选中Selectorenteradatabasename:然后在下拉菜单里选择:WangShouOri35、点击TestConnection显示连接成功信息对话框,然后点击OK关闭此对话框。36、点击OK关闭对话框。37、选中localhost.WangShouOri然后点击OK,在Dataaccessmode中选择SQLcommand,SQLcommandtext中输入以下代码:selectdistinctEmployName,GroupNamefrominternetsalewhereEmployNameisnotnull然后点击OK。38、从Toolbox面板中将DerivedColumn拖到DataFlow中,将其重命名为:DeptName2。39、将网售上面的绿箭头拖动到DeptName2上面。40、双击打开DeptName2,添加DeptName列,Expression中输入:“网售”,然后点击OK。41、从Toolbox面板中将UnionAll拖到DataFlow中,分别将三个DerivedColumn的绿箭头拖动UnionAll上。42、双击UnionAll查看,确保各UnionAllInput值准确对应,并且数据类型一致。43、从Toolbox面板中将Aggregate拖到DataFlow,将UnionAll上的绿箭头拖到Aggregate上。确保右侧属性框中的LocaleID为English(UnitedStates)。44、双击Aggregate,在Aggregation中选择EmployName,GroupName,DeptName,如下图所示:然后点击OK。45、从Toolbox面板中将OLEDBDestination拖到DataFlow中。将Aggregate的绿箭头拖到OLEDBDestination上。确保右侧属性框中的LocaleID为English(UnitedStates)。46、将OLEDBDestination重命名为DimEmp。47、双击DimEmp,在OLEDBconnectionmanager下拉菜单中选中LocalHost.HealthDW。48、在Dataaccessmode中选择Tableorview,在Nameofthetableortheview中选择[dbo].[DimEmp]。49、点击Mappings查看映射,然后点击OK。50、点击工具栏中绿色箭头,可以运行组件全部变成绿色,说明运行成功。然后停止运行,返回到设计模式。(二)抽取维度表DimProduct1、单击ControlFlow,拖动DataFlowTask到ControlFlow中将其重命名为DimProduct。2、双击DimProduct,然后拖动Excelsource到DataFlow中,将其重命名为店面——产品。3、双击店面——产品,在Dataaccessmode中选择SQLcommand。在SQLcommandtext中输入如下代码:selectdistinctProductName,ProductStyle,ProductClass,UnitPricefrom[sheet1$]whereProductNameisnotnull然后点击OK。4、拖动DataConversion到DataFlow中,连接店面——产品和DataConversion。双击DataConversion,选中UnitPrice,然后点击OK。注意:加入店面销售二组产品、店面销售三组产品和其数据转换操作步骤同上。5、拖动OLEDBSource到DataFlow中将其重命名为Pos——产品。6、双击Pos——产品,出现如下图示:○在OLEDBconnectionmanager下拉菜单中选择包含Pos.accdb的那个源。○在Dataaccessmode中选择:SQLcommand○在SQLcommandtext中输入如下代码:selectdistinctProductName,ProductStyle,ProductClass,UnitPricefromSaleswhereProductNameisnotnull然后点击OK。7、拖动DataConversion到DataFlow中,并连接Pos——产品和DataConversion。8、双击DataConversion1然后选中UnitPrice然后点击OK。9、拖动OLEDBSource到DataFlow中将其重命名为网售——产品10、双击网售——产品,显示如下图:○在OLEDBconnectionmanager下拉菜单中选中:localhost.WangShouOri○在Dataaccessmode中选择:SQLcommand○在SQLcommandtext中输入如下代码:selectdistinctProductName,ProductStyle,P