SQL Server 2005数据挖掘与商业智能完全解决方案
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 设计和使用ETL

数据仓库的设计可以说是数据分析和商业智能的最基础的工作。良好的数据仓库结构设计是以后工作能顺利进行的保证。而数据仓库中的数据则一般要经过“提取-转换-加载”的过程从原始业务数据中获取,这就是ETL过程。

这里的任务就是要把数据从foodmart.mdb数据库中装载到foodmartsaleDW数据仓库中。需要使用到SQL Server Integration Services服务,即SSIS,其操作步骤如下。

(1)打开Business Intelligence Development Studio,选择【文件】→【新建】→【项目】命令,弹出“新建项目”对话框,展开“商业智能项目”,在“模板”窗格中,单击“Integration Services项目”,把项目命名为“foodmartsale ETL”,如图2-3所示。

图2-3 创建“foodmartsale ETL”项目

这时会在BI Studio环境中打开用于设计SSIS的各种工具和窗口,数据提取、转换和加载的操作都在这个界面下进行。

(2)选择【项目】→【SSIS导入和导出向导】命令,这时会弹出SSIS导入和导出向导的欢迎界面,单击【下一步】按钮。

(3)在“选择数据源”窗口中的“数据源”下拉列表框中选择Access数据源选项,如图2-4所示。然后在路径选择中选择此项目文件夹中的foodmart 2000.mdb文件。

图2-4 选择foodmart 2000.mdb数据源

(4)在随即弹出的窗口中选择数据的导出目标,这里选择“SQL Native Client”,如图2-5所示。设置好服务器及其登录信息后,选择foodmartsaleDW数据仓库作为目标数据库,如果在以前的步骤中没有创建此数据库,可以在此窗口中单击【新建】按钮,在弹出的“创建数据库”窗口中创建此数据库,单击【下一步】按钮继续。

图2-5 选择数据仓库目标

(5)此时将弹出如图2-6所示的窗口,通过这个窗口可以选择需要复制的是数据源的多个表和视图,还是自定义的查询,这里选择“复制一个或多个表或视图的数据”单选按钮;单击【下一步】按钮继续。

图2-6 指定复制类型

(6)这时会让用户选择源表和源视图,如图2-7所示。按照前面对数据仓库的设计,这里选择原始表中的time_by_day、promotion、product、product_class、customer、store和sales_fact_1998表作为需要输入的表。这里对原始表中需要导入到数据仓库的数据有很强的可定制性,对这些已经选择的表中的字段还可以进行筛选和改变,对不需要的字段进行去除操作,这就是所谓的数据清洗。当然也可以选择其他的表一起导入数据仓库中。可以看到,不一定所有的业务数据库中的数据都必须体现在数据仓库中,数据仓库中的数据也有可能是经过业务数据库中的数据运算而得到的,这都取决于具体商务活动的需求。

在图2-7的界面中,还可以对数据导入的目标进行定制,可以对映射方式进行编辑,甚至可以自己写“CREATE TABLE”语句作为复制的目标表。这些改变都可以体现在数据仓库的物理结构中。

图2-7 选择源表和源视图并定制映射方式

这里不对映射及其目标进行变更,保持默认的状态,使生成的数据仓库的物理模型完全符合前面对数据仓库的逻辑模型的设计。

(7)以上操作完成后,单击【下一步】按钮,系统将会把前面的操作列表并要求用户确认,并提示将会把包以“Package1.dtsx”作为文件名保存在项目文件夹下面,而且不会立即执行。确认无误后单击【完成】按钮。

(8)在“解决方案资源管理器”中展开“SSIS包”文件夹,在Package1.dtsx上单击鼠标右键,在弹出的快捷菜单中选择【设为启动对象】命令,如图2-8所示。

图2-8 设置Package1.dtsx为启动对象

(9)单击工具条上的 按钮运行这个工程,可以发现在SSIS设计界面的“控制流”和“数据流”等选项卡内都有对象在活动,这是系统正在把数据从foodmart 2000.mdb数据库中按照前面所确定的规则装载入foodmartsaleDW数据仓库中。

(10)数据装载过程完成后,切换到SQL Server Management Studio,展开foodmartsaleDW数据仓库可以发现,已经按照设计要求建立好了数据仓库,并且仓库中已经存储了业务数据,如图2-9所示。

图2-9 完成数据装载后的foodmartsaleDW数据仓库