您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 多维数据集的构建及其数据仓库OLAP
多维数据集的构建及其数据仓库OLAP071070012李骁数据仓库是决策支持系统和联机分析应用数据源的结构化数据环境,用以支持经营管理中的决策支持过程,数据模型是数据仓库研究的核心问题之一,由于传统数据模型不能有效地表示数据仓库的数据结构和语义,也难以有效地支持OLAP,因此,需要建立多维数据模型来支持分析。本报告创建了多维数据模型,定义了数据仓库的度量和维度结构,并以此为基础,进行了简单的OLAP操作并得到了相关结论。由于数据仓库操作面向的是大量的、各阶段的详细数据,直接创建是不现实的,这里直接采用了SQLServer自带的Foodmart2000数据源作为操作基础。数据仓库包含了4个层次的体系结构,分别是数据源、数据的存储和管理、OLAP服务器和前端工具。报告只深入到基于数据的存储和管理的简单OLAP服务分析,microsoft的Analysisserver在人性化方便做得很好,容易上手,基本不存在较大的操作问题。(一)建立用于OLAP的数据库及数据源连接本次作业是在系机房的windowsserver2003系统环境中完成的,建立数据源连接首先单击“开始”按钮,指向“设置”,单击“控制面板”,然后双击“管理工具”,再双击“数据源(ODBC)”。在弹出的“ODBC数据源管理器”中选定“系统DSN”选项卡,单击“添加”添加数据源,由于本人并没有好的数据源,因此直接采用系统数据库中的样本作为数据源对象。具体操作是在随后弹出的“ODBCMicrosoftAccess安装”中命名并找到样本数据库(windowsserver2003在D盘),点击“确定”即可在SQLServer2000中,右击数据库名,建立新数据库如下:建立好数据库后,在AnalysisManager树窗格中,右击“教程”数据库下的“数据源”文件夹,然后单击“新数据源”命令。在随后弹出的“数据链接属性”对话框中,单击“MicrosoftOLEDBProviderforODBCDrivers”。单击“下一步”(自动跳到“连接”选项卡),将数据源名称中选定“lixiao_DW”:单击“测试连接”以得到“测试连接成功”的对话框,说明连接成功。在消息框中单击“确定”按钮。单击“确定”按钮关闭“数据链接属性”对话框。这样,OLAP的准备工作就完成了。(二)构建多维数据集构建多维数据集是要构建一种数据的多维结构,多维数据集由维度和度量值的集合进行定义,因此在具体操作时应建立多种维度表,包括时间维度、客户维度、产品维度、机构维度等等。在之前,需向多维数据集添加度量值,度量值是要进行分析的数据库中的量化值。常用的度量值为销售、成本和预算数据。度量值根据多维数据集不同的维度类别进行分析。在之前建立的数据库中,右击“多维数据集”,选到“向导”,如下图:在“从数据源中选择事实数据表”中,选择合适的事实表,这个数据源中共有5个事实表,为简单起见,选定sales_fact_1997事实表作为分析对象:单击“浏览数据”按钮可以查看“sales_fact_1997”表中的数据,其中数据量相当大,关闭“浏览数据”窗口,然后单击“下一步”按钮。在弹出的向导中,选择类型为数值的后三项为数据集度量值:在下一步中就可以建立具体的维度了,前面已经提过需要建立时间维度、客户维度、产品维度、机构维度等等。首先单击“新建维度”命令。此操作将调用维度向导:选择OLAP较为常用的星型架构,之后选择“time_by_day”表(先建立时间维度):单击“下一步”按钮,选择“时间维度”:仔细观察“time_by_day”表可以发现,数据分得很细,每一天都有新事件,从分析角度来看,以月为计量单位较为合适,点击“下一步”后,选择时间级别到“月”即可,随后的操作按过程来,最后用“time”作为维度名,其维度级别依次为“年”、“季度”、“月”。时间维度创建好后,以相似的方法创建好关于该表的客户维度与商店维度,在操作上,在“选择维度表”步骤,单击“customer”,然后单击“下一步”按钮。定义维度的级别中按顺序双击“Country”、“State_Province”、“City”和“lname”列确定粒度。将其名称定义为“customer”。商店维度:选择“store”表作为维度表,其粒度级别按照“store_country”列、“store_state”列、“store_city”列和“store_name”列降次。以“store”作为维度名,并保持“与其它多维数据集共享此维度”复选框的选中状态。单击“完成”按钮。随后的产品维度表,由于产品表从多个联接的表内选择一列,所以这里采用雪花模型更为方便,product表和product_class表一起可以作为维度表,仔细阅读“选择维度级别”的可选项,“product_category”和“product_subcategory”层次较高,分别写在第一、二位,“brand_name”表作为第三粒度。将该维度命名为“product”。建立好数据集维度后,即可到下一步的操作了。(三)呈现多维数据集结果在上述操作完成后,点击下一步,电脑自动确定事实数据表行数,之后可呈现出多维数据集结果如下:其从数据上来分析,可有product、store、time等维度,如图,可根据不同的维度作直观分析:将与product有关的promotion表添加入多维数据集中,选定promotion_name双击,在弹出的“映射列”选项卡中点击确定创建之。在左方维度名中将其重命名为promotion。这样,多维数据集就完整地呈现了。完成数据集后退出该界面(保存设计,暂不使用),随后在analsysismanager界面的dw_sale数据集右击,点处理。使数据集正式处理,为OLAP操作作准备:完成处理后,点开dw_sale的“共享维度”,右击“customer”点“编辑”,如下图:在“架构”窗格中,将“gender”、“marital_status”、“education”、“yearly_income”、“num_children_at_home”和“member_card”列从“Customer”表拖动到“LName”的“成员属性”文件夹,随后点击保存。这样就定义好了成员属性。(四)基于dw_sale数据集的OLAP操作1.使用多维数据集浏览器查看多维数据集数据在AnalysisManager中找到dw_sale数据集右击,然后单击“浏览数据”命令。在弹出的选项卡(多维数据集浏览器)中即显示由多维数据集的一个维度和度量值组成的网格。在此界面中,根据拟定条件从上面四项粒度选项中筛选出所需要的数据。同时,根据提示,拖动或双击维度,可以查看其他条件下的不同数据集,或深化数据。2.“钻取”及“切片”操作的使用在浏览数据对话框中,可通过双击的形式对数据进行钻取,相比较上图,可以双击country对数据钻取得到下图:通过该图可以清晰地看到美国CA州的各个城市的销售水平。并在第一行列出了合计“159,167.84”的storesales。同时上述浏览器可以实现维度“切片”操作,例如选择promotion维度中的“DollarCutters”,“Measurelevel”总值随即发生变化:在所有customer中,storesales相比前者,仅有“1,678.88”的总量。3.维度组合与“旋转”操作的使用可以将维度从上方拖曳到数据显示区,实现维度间的纵横组合,也可使各种维度的顺序随意摆放,实现“旋转”操作,方法较为简单,以分析的目的性为主。SQLServer2000AnalysisServices的新版本可在任何粒度级别上提供对计算定义的完全支持。可以为一个维度的任何成员,以及任意单元的组合(小到单个单元)定义计算。由于需要为某个维度的任意成员在该维度的任意级别上定义计算,为自定义选定单元定义计算。可以根据自己的业务需要,对在何处定义计算(成员或单元)作出选择。对于某些计算,业务需要可能要求定义一个维度的某些成员,因而需要由计算公式进行取值。然后将此公式应用到在其坐标中包含此成员的每个单元中。某些高级计算要求只有多维数据集的特定单元或多维数据集的特定子多维数据集才能用自定义公式取值。在AnalysisManager树窗格中,在“lixiao_datawarehouse”数据库下,展开“共享维度”文件夹,右击“product”,然后单击“编辑”命令。于是可以对维度维度进行编辑,在“数据”选项卡上单击,显示维度树。展开该维度,并选择“CurrentYear'sBudget”成员。将启用“自定义成员公式”窗格。可点到“数据”选项卡对其进行编辑。(五)创建OLAP数据挖掘模型模型的建立是决策分析的基础,对于dw_sale数据源,先需要创建一个数据挖掘模型(这里用决策树模型),具体方法如下图,点到“新建挖掘模型”依次选定“决策树”、“customer”、“lname”及下一页的“memberCard”事例级别,点下一步,如下图:在“选择培训数据”步骤中,由于不需要在聚集级别上而只需要在单独的客户级别上确定客户模式,因此滚动到“Customer”维度,清除“Country”、“StateProvince”和“City”框,单击“下一步”按钮。在“创建维度和虚拟多维数据集(可选)”步骤中,在“维度名称”框中输入“customerpatterns”。然后在“虚拟多维数据集名称”框中输入“trainedcube”。单击“下一步”按钮。在“模型名称”字段中键入“Customerpatternsdiscovery”。确保选择了“保存并开始处理”。单击“完成”按钮。在AnalysisManager树窗格中右击“挖掘模型”文件夹,然后单击“新建挖掘模型”命令。打开挖掘模型向导。在“欢迎使用挖掘模型向导”步骤中,单击“下一步”按钮。在“选择源类型”步骤中,单击“关系数据”。单击“下一步”按钮。不作改动,一直点下一步,直到下界面,选定customer。点下一步。在“选择输入与可预测列”步骤中,将“marital_status”列、“yearly_income”列、“num_children_at_home”列、“total_children”列、“education”列、“member_card”列、“occupation”列、“houseowner”列和“num_cars_owned”列分别加入到可预测列和输入列中,点击下一步和完成,这样便得到了新的数据挖掘模型:在弹出的窗口中点下面的“内容”选项卡,出现Education特征决策树。在数据挖掘向导中,从关系表中选择几个列作为挖掘模型的输入与可预测列。这意味着这些列用于培训模型并且也是模型决定可能预测的目标。因此,关系挖掘模型为每个可预测的列生成一个决策树。每个决策树都是由节点定义,而节点又由其它列所决定。在Education决策树示例中可以看出,预见客户具有一定教育程度可能性的两个最重要的因素是:他或她的年收入(由决策树的第一层定义)及其职业(由决策树的第二层定义)。(六)OLAP分析操作及其结论在“内容选择区”窗格可以看到当前显示在“内容详情”窗格中的那部分树是放大的。将鼠标移动到“内容选择区”窗格上,然后单击不同的位置。可以看到决策树根据鼠标的位置放大了显示在“内容详情”窗格中的部分。单击此根可以刷新“内容详情”窗格。选定预测树为eduction,其树形如下:使用“内容选择区”窗格。可以看到决策树展开并超出了编辑器的右边界。若要访问这些不可见的节点,可以使所调查的分支中的某一节点成为当前决策树视图的新根。若要执行此操作,请双击所选节点。决策树使该节点成为当前视图的根并创建更多的空间以显示其所有的子代。从上图可见,eduction程度直接决定了员工的yearlyincome程度,受教育程度越高,其获得高收入的可能性更大,选定年收入为一万到三万的用户,在右方的特性栏中可以观察出,绝大部分都是partialhighschool的教育程度:而年收入在七万到九万的用户,其受教育程度分布就明显不
本文标题:多维数据集的构建及其数据仓库OLAP
链接地址:https://www.777doc.com/doc-4618037 .html