当前位置:
文档之家› 构建基于FoodMart数据库的数据仓库建立与OLAP(实验一)
构建基于FoodMart数据库的数据仓库建立与OLAP(实验一)
• 这时会在BI Studio环境中打开用于设计SSIS的 各种工具和窗口,数据提取、转换和加载的操作 都在这个界面下进行。 • (2)选择【项目】→【SSIS导入和导出向导】 命令,这时会弹出SSIS导入和导出向导的欢迎界 面,单击【下一步】按钮。 • (3)在“选择数据源”窗口中的“数据源”下拉 列表框中选择Access数据源选项,如图2-4所示。 然后在路径选择中选择此项目文件夹中的 foodmart 2000.mdb文件。
建立foodmartsaleAS项目
• 打开“解决方案资源管理器”,可以看到 数据源、数据源视图、多维数据集、维度 和挖掘结构等8个文件夹对象,建立和管理 数据立方也是主要针对这8个对象进行的。 下面介绍创建数据立方的步骤
2.3.1 定义数据源
• 这是创建数据立方的第1步。在“解决方案 资源管理器”中的“数据源”文件夹上单 击鼠标右键,在弹出的快捷菜单中选择 【新建数据源】命令,如图2-11所示。
设置名称匹配
• 这时进入“选择表和视图”窗口,如图214所示。可以从选定的数据源提供的对象 列表中选择表和视图。这里主要的商务需 求是对销售数据进行分析,所以可以把相 关的数据表都选入数据源视图,对数据源 中与分析需求关联不大的要素也可以不选 入此分析视图,例如此处的region表可以 不用选入数据源视图。
• FoodMart数据库涉及到公司经营的各个 方面,包括产品、库存、人事、客户和销 售等。一个真正的商业智能应用应该对这 些业务需求进行全面地考虑。本章截取这 些需求中的销售部分构建商业智能
• 打开配套文件中附带的foodmart.mdf文件, 可以看到如图2-1所示的表
• 人事管理中的员工信息存储在employee表中 • 员工所属部门信息存储在department表中 • 职务信息则存储在position表中 • 库存管理业务中的仓库类型存储在 warehouse_class表中 • 具体的仓库存储在warehouse中。
基于FoodMart数据库的福马特 商业智能系统
构建基于FoodMart数据库的福马特商业智能系统。按 照学习理论,“大处着眼,小处着手”是快速学习的好方法, 它既能把握全局,又能掌握细节 内容安排上属于实践中的“务实”,理论上的“务虚”, 只着眼于操作过程而忽略其中的深奥理论,目的在于明确一 个商业智能应用的全貌
• 在图2-7的界面中,还可以对数据导入的目 标进行定制,可以对映射方式进行编辑, 甚至可以自己写“CREATE TABLE”语句作 为复制的目标表。这些改变都可以体现在 数据仓库的物理结构中。
• 这里不对映射及其目标进行变更,保持默认的状 态,使生成的数据仓库的物理模型完全符合前面 对数据仓库的逻辑模型的设计。 • (7)以上操作完成后,单击【下一步】按钮,系 统将会把前面的操作列表并要求用户确认,并提 示将会把包以“Package1.dtsx”作为文件名保存 在项目文件夹下面,而且不会立即执行。确认无 误后单击【完成】按钮。 • (8)在“解决方案资源管理器”中展开“SSIS 包”文件夹,在Package1.dtsx上单击鼠标右键, 在弹出的快捷菜单中选择【设为启动对象】命令, 如图2-8所示。
2.3 创建OLAP数据立方
• 设计好了结构良好的数据仓库,并且将需要分 析的业务数据装载到了数据仓库中之后,就为满 足商务决策的全方位需求打下了根基,以后的操 作都是基于这些拥有数据的数据仓库进行的。但 是,对数据的多维分析却并不是主要针对数据仓 库,而是针对从数据仓库中提取的子集,如数据 集市和多维数据集(也称为数据立方)。因此通 常还需要在具体分析数据之前创建数据立方。
• 以上操作完成后,单击【下一步】按钮, 为此数据源视图命名为Vfoodmartsale, 再单击【完成】按钮结束此向导
选择表和视图
• 同样也是由于数据源中的表没有设置主键的原因, 现在打开的数据源视图上的表都是独立的,相互 之间没有关系,还需要我们设置各个表的主键及 其关系才能成为可用的视图。 • 一般来说,事实表是没有主键的,而维度表都有 主键,且每一个维度表的主键都是事实表的外键, 因而,需要为每一个维度表设置主键,如图2-15 所示,在维度表中选择应该为主键的字段,然后 单击鼠标右键,在弹出的快捷菜单中选择【设置 逻辑主键】命令,即可设置维度表的主键。
• (9)单击工具条上的 运行按钮运行这个工 程,可以发现在SSIS设计界面的“控制流” 和“数据流”等选项卡内都有对象在活动, 这是系统正在把数据从foodmart 2000.mdb数据库中按照前面所确定的规 则装载入foodmartsaleDW数据仓库中。
• 新建的数据仓库中的表需要设置必要的主 键及外键,否则无法建立多维数据集 • SSIS的进一步使用请参照朱德利书第四章 • 案例见4.3
• 这里希望用雪花形结构来构建福马特商店 的销售数据仓库,逻辑结构设计图如图2-2 所示
销售数据仓库雪花形结构设计图
• 在数据仓库的逻辑结构中,数据表可以划 分为两类:一类是事实数据表(简称为 “事实表”),用来存储数据仓库中的实 际数据,如这里存储1998年销售数据的 sales_fact_1998表即为事实表; • 另一类是维度数据表(简称为“维度 表”),用来存储数据仓库中的维度数据, 如这里的关于时间、促销手段和产品等分 析要素的表均为维度表。
新建数据源
• 在弹出的“选择如何定义连接”窗口中选 择“基于现有连接或新连接创建数据源” 单选按钮,在“数据连接”列表框中选择 foodmartsaleDW数据源,如果没有此连 接,可以单击【新建】按钮,定义指向 foodmartsaleDW 数据仓库的连接。设置 完成后的页面如图2-12所示。由于向导下 面的操作是没有必要的,所以这里可以直 接单击【完成】按钮结束数据源向导。
2.1.2 设计数据仓库逻辑模型
• 福马特市场部的商务需求是要对1998年 进行的所有销售业务数据进行多角度分析, 以便市场分析人员能在查询数据库时获取 快速的响应,高层管理人员也能从总体上 把握影响本年度销售的因素。这需要利用 存储在公司业务数据库中的数据,建立数 据仓库,进而创建可用于分析的多维数据 结构。
2-7
• 这时会让用户选择源表和源视图,如图2-7 所示。按照前面对数据仓库的设计,这里 选择原始表中的time_by_day、 promotion、product、product_class、 customer、store和sales_fact_1998表 作为需要输入的表。
• 这里对原始表中需要导入到数据仓库的数据有很 强的可定制性,对这些已经选择的表中的字段还 可以进行筛选和改变,对不需要的字段进行去除 操作,这就是所谓的数据清洗。当然也可以选择 其他的表一起导入数据仓库中。可以看到,不一 定所有的业务数据库中的数据都必须体现在数据 仓库中,数据仓库中的数据也有可能是经过业务 数据库中的数据运算而得到的,这都取决于具体 商务活动的需求。
2.1.3 创建 foodmartsaleDW数据仓库
• 数据仓库也是一种数据库,其管理同样是 通过数据库管理系统(DBMS)来进行的。 因此数据仓库可以像普通数据库一样进行 创建、修改和删除。当数据仓库的逻辑结 构设计完后,就可以创建物理数据仓库了
• 这时可以在SQL Server Management •。 Studio中按照一般的建立数据库的方法建 立一个名为“foodmartsaleDW”的数据库, 然后把这里设计的表创建好,数据类型依 据原始数据库中的各个表和字段的数据类 型设置 • 但由于这里数据仓库的表结构与原始数据 库中的表结构基本一致,因此,创建 foodmartsaleDW数据仓库的物理结构过 程也可以在ETL阶段完成
定义数据连接
2.3.2 定义数据源视图
• 数据源提供与数据库的简单连接,但更 多高级功能,如缓存元数据、添加关系、 创建计算和设置逻辑键等还需要使用数据 源视图来完成。为了对多维数据集进行这 些高级操作,这一步定义数据源视图。
• 可以在“数据源视图”文件夹对象上单击鼠标右 键,在弹出的快捷菜单中选择【新建数据源视图】 命令,然后在弹出的“数据源视图向导”窗口中 选择foodmartsaleDW选项作为关系数据源,单 击【下一步】按钮。这时会弹出如图2-13所示的 “名称匹配”窗口,其原因是在前面SSIS的数据 装载操作中没有为数据仓库中的表设置主键及其 关系,SSAS试图在匹配的列上创建逻辑关系, 可以选择“与主键同名”单选按钮,单击【下一 步】按钮继续
•
FoodMart数据库是SQL Server以前版本所带 的示例数据库,它模拟了一家大型的食品连锁店 的经营业务所产生的数据。 • 其商业数据保存在一个数据库中,其中包括了 客户管理数据、销售数据、分销数据和库存数据 等。随着业务量的增加经营状况,而传统的报 表形式和数据处理方式已经不能满足这一要求, 因此在保留历史数据的基础上构建商业智能应用 已经迫在眉睫。下面就描述满足这一商务需求的 技术实现过程。
• 注意,在本例中设计的维度表和事实表与原始数 据中的表名及结构都一致,这主要是由原始数据 的特点和本章作为入门章节的定位决定的。在实 际设计的时候,通常需要根据需求情况重新建立 与原始数据不同的表结构。这主要是由于传统业 务的数据库是用来进行事务处理的(即OLTP), 而数据仓库则是用来进行分析处理的(即OLAP), 用途的不同决定了其结构的不同。这一点在以后 复杂的数据仓库设计中会通过示例体现出来。
•
如前所述,这里只着眼于销售方面的数据,因 而把与销售相关的表提炼出来进行分析。在 foodmart数据库中,销售业务的数据和时间、促 销手段、产品和店铺等都有关系,它们的关系体 现在表与表之间的逻辑关系上。 • 要从业务数据出发设计数据仓库的结构,必 须明确业务数据本身的结构,而业务数据的关系 一般是基于关系数据库设计的范式。数据仓库中 表的关系不受关系数据库设计范式的约束,但也 要遵循一定的结构规范,如星形结构和雪花形结 构即是这种类型的规范。同时这也是数据仓库逻 辑结构的两种类型。。