SlideShare a Scribd company logo
1 of 91
How to Build Data Warehouse
                    • 如何构建数据仓库


                傅桔选 JasonFu | Master Candidate
                 Supervised by Professor Jian Chen
 School of Software Engineering, South China University of Technology
Outline



    1. 为什么要建数据仓库
    2. 数据仓库是什么
    3. 开发过程
    4. 开发实例
    5. Q&A



Jason Fu(SCUT)   1/90   2012-11-19
Outline



    1. 为什么要建数据仓库
    2. 数据仓库是什么
    3. 开发过程
    4. 开发实例
    5. Q&A



Jason Fu(SCUT)   2/90   2012-11-19
1. 为什么要建数据仓库




Jason Fu(SCUT)   3/90   2012-11-19
1. 为什么要建数据仓库


                 充分利用已有的历史业务数据,进行集中的分析和知识提取,
                 从中获取决策支持。


                 决策高层希望直接进行数据分析,而无需专业数据分析人员的
                 协助,这就要求系统提供丰富、灵活和易用的分析功能。


                 决策支持处理需要相对稳定的数据,而已有的事务型数据库总
                 是在动态变化。


                 已有的事务型数据库系统专注于各种业务处理,且数据分散,
                 无法为集中的数据分析提供良好的支持。


Jason Fu(SCUT)               4/90            2012-11-19
Outline



    1. 为什么要建数据仓库
    2. 数据仓库是什么
    3. 开发过程
    4. 开发实例
    5. Q&A



Jason Fu(SCUT)   5/90   2012-11-19
2. 数据仓库是什么




                        数据仓库本身并不“生产”任
                        何数据,同时自身也不需
                        要“消费”任何的数据,数据
                        来源于外部,并且开放给
                        外部应用。




Jason Fu(SCUT)   6/90             2012-11-19
2. 数据仓库是什么


       DEFINITION

      数据仓库(Data Warehouse)是一个面向主

       题的(Subject Oriented)、集成的

       (Integrated)、相对稳定的(Non-Volatile)、

       反映历史变化(Time Variant)的数据集合,

       用于支持管理决策(Decision Making Support)。

                                                   William H. Inmon
                                            "The Father of Data Warehousing"




Jason Fu(SCUT)                    7/90                                2012-11-19
2. 数据仓库是什么:特点


           面向主题

           集成的

           相对稳定的

           反映历史变化




Jason Fu(SCUT)       8/90   2012-11-19
2. 数据仓库是什么:特点

    面向主题

        操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分

         离,而数据仓库中的数据是按照一定的主题域进行组织的

        主题是与传统数据库的面向应用相对应的,是一个抽象概念,是在较高层

         次上将企业信息系统中的数据综合、归类并进行分析利用的抽象

        每一个主题对应一个宏观的分析领域

        e.g. :商品,销售,客户关系,…




Jason Fu(SCUT)                9/90          2012-11-19
2. 数据仓库是什么:特点


           面向主题

           集成的

           相对稳定的

           反映历史变化




Jason Fu(SCUT)       10/90   2012-11-19
2. 数据仓库是什么:特点

    集成的

        对原有分散的数据库数据进行抽取、清理

        系统加工、汇总和整理

        消除源数据中的不一致性

        确保数据仓库内的信息是关于整个企业的一致的全局信息




Jason Fu(SCUT)          11/90        2012-11-19
2. 数据仓库是什么:特点


           面向主题

           集成的

           相对稳定的

           反映历史变化




Jason Fu(SCUT)       12/90   2012-11-19
2. 数据仓库是什么:特点

    相对稳定的

        供企业决策分析之用,所涉及的数据操作主要是数据查询

        数据一旦进入数据仓库,一般情况下将被长期保留

        大量的查询操作,修改和删除操作很少

        定期的加载、刷新




Jason Fu(SCUT)          13/90        2012-11-19
2. 数据仓库是什么:特点


           面向主题

           集成的

           相对稳定的

           反映历史变化




Jason Fu(SCUT)       14/90   2012-11-19
2. 数据仓库是什么:特点

    反映历史变化

        包含历史信息,系统记录了企业从过去某一时间点(如开始应用数据

         仓库的时点)到目前的各个阶段的信息

        对企业的发展历程和未来趋势做出定量分析和预测




Jason Fu(SCUT)          15/90             2012-11-19
2. 数据仓库是什么

     DW VS. DB

       特性         DW               DB
       定位         数据分析             事务处理
       DB设计       星型模型,面向主题        E-R模型,面向应用
       数据         历史、具有时间跨度        当前、最新的
       汇总         汇总、一致的           原始、细节的
       视图         总体、多维的           详细、关系的
       存取         读(稳定)            读/写(易变)
       存放记录       记录集合             少量记录
       DB规模       TB               GB
       工作单位       复杂查询             短的、简单事务
       设计方法       数据驱动             需求驱动



Jason Fu(SCUT)             16/90                2012-11-19
Outline



    1. 为什么要建数据仓库
    2. 数据仓库是什么
    3. 开发过程
    4. 开发实例
    5. Q&A



Jason Fu(SCUT)   17/90   2012-11-19
3. 开发过程

      数据仓库是一个环境,而不是一件产品。


      数据仓库系统是一个信息提供平台,他从业务处理系统获得数据,主要以

       星型模型和雪花模型进行数据组织,并为用户提供各种手段从数据中获取

       信息和知识。


      从功能结构划分,数据仓库系统至少应该包含数据获取(Data

       Acquisition)、数据存储(Data Storage)、数据访问(Data Access)三

       个关键部分。




Jason Fu(SCUT)                 18/90                        2012-11-19
3. 开发过程

    数据仓库的基本架构




Jason Fu(SCUT)   19/90   2012-11-19
3. 开发过程

    开发策略

        自顶向下:实际应用比较困难。

        自底向上:用于一个数据集市或一个部门的数据仓库开发 ,容易获得成

         功。

        两种策略的联合使用:能够快速地完成数据仓库的开发与应用,而且还可以

         建立具有长远价值的数据仓库方案。




Jason Fu(SCUT)            20/90             2012-11-19
3. 开发过程

    开发策略:自顶向下




Jason Fu(SCUT)   21/90   2012-11-19
3. 开发过程

    开发策略:自底向上




Jason Fu(SCUT)   22/90   2012-11-19
3. 开发过程

    构建过程



                         构造/实施




                 需求/设计             使用/维护




                         新的需求


Jason Fu(SCUT)             23/90           2012-11-19
3. 开发过程

    设计原则

        以数据驱动为中心,数据驱动和需求驱动相结
         合。
        数据驱动:根据当前数据基础和质量等情况,进
         行数据源分析。

        需求驱动:根据业务方向性需求、业务问题等,
         确定系统范围和需求框架。




Jason Fu(SCUT)          24/90    2012-11-19
3. 开发过程

    数据仓库设计的三级数据模型




                 概念模型    逻辑模型         物理模型
          • “信息世界”中的信   • 一般采用关系模型   • 物理存储结构、存
            息结构                      储方法
          • 用E-R方法,以主
            题替代实体




Jason Fu(SCUT)              25/90                 2012-11-19
3. 开发过程

    数据仓库设计的三级数据模型




Jason Fu(SCUT)       26/90   2012-11-19
3. 开发过程

    开发基本流程

           概念模型设计

           技术准备工作

           逻辑模型设计

           物理模型设计

           数据仓库生成

           数据仓库运行与维护




Jason Fu(SCUT)          27/90   2012-11-19
3. 开发过程

    概念模型设        技术准备工     逻辑模型设           物理模型设   数据仓库生   数据仓库运
      计            作         计               计       成      行与维护




      概念模型设计的结果是在原有数据库的基础上建立了一个较为稳固的概念模型。

      数据仓库的概念模型设计,首先要对原有数据库系统加以分析理解。

   ① 界定系统边界
            要做的决策类型有哪些?
            决策者感兴趣的是什么问题?
            这些问题需要什么样的信息?
            要得到这些信息需要包含原有数据库系统的哪些部分的数据?
   ② 确定主要的主题域及其内容
            主题域的公共码;
            主题域之间的联系;
            充分代表主题的属性组。


Jason Fu(SCUT)                     28/90                     2012-11-19
3. 开发过程

    概念模型设        技术准备工   逻辑模型设           物理模型设   数据仓库生   数据仓库运
      计            作       计               计       成      行与维护




      工作:技术评估和技术环境准备。


      成果:技术评估报告、软硬件配置方案、系统(软、硬件)总体设计方
       案。




Jason Fu(SCUT)                   29/90                     2012-11-19
著名数据仓库产商




Jason Fu(SCUT)   30/90   2012-11-19
著名数据仓库产商




Jason Fu(SCUT)   31/90   2012-11-19
著名数据仓库产商




Jason Fu(SCUT)   32/90   2012-11-19
著名数据仓库产商




Jason Fu(SCUT)   33/90   2012-11-19
著名数据仓库产商




Jason Fu(SCUT)   34/90   2012-11-19
著名数据仓库产商




Jason Fu(SCUT)   35/90   2012-11-19
著名数据仓库产商




Jason Fu(SCUT)   36/90   2012-11-19
著名数据仓库产商




Jason Fu(SCUT)   37/90   2012-11-19
著名数据仓库产商




Jason Fu(SCUT)   38/90   2012-11-19
著名数据仓库产商




Jason Fu(SCUT)   39/90   2012-11-19
著名数据仓库产商




Jason Fu(SCUT)   40/90   2012-11-19
3. 开发过程

    概念模型设        技术准备工   逻辑模型设           物理模型设   数据仓库生   数据仓库运
      计            作       计               计       成      行与维护




         分析主题域,确定当前要加载的主题

         确定粒度层次划分

         确定数据分割策略

         关系模式定义

         记录系统的定义




Jason Fu(SCUT)                   41/90                     2012-11-19
3. 开发过程

    概念模型设        技术准备工   逻辑模型设           物理模型设   数据仓库生   数据仓库运
      计            作       计               计       成      行与维护




           存储结构

           确定索引策略

           确定数据存放位置

           确定存储分配




Jason Fu(SCUT)                   42/90                     2012-11-19
3. 开发过程

    概念模型设           技术准备工     逻辑模型设           物理模型设   数据仓库生   数据仓库运
      计               作         计               计       成      行与维护




         接口编程
                从面向应用和操作的环境生成完整的数据;
                数据类型的转换;
                数据的清洗;
                数据的集成;
                数据的增量更新。
         数据装入
                确定数据装入的次序;
                清除无效或错误数据;
                清除“老化”数据,即清除过期数据;
                数据粒度管理;
                数据刷新等。

Jason Fu(SCUT)                        43/90                     2012-11-19
3. 开发过程

    概念模型设        技术准备工   逻辑模型设           物理模型设   数据仓库生   数据仓库运
      计            作       计               计       成      行与维护




         建立数据分析应用

         理解需求,改善和完善系统

         维护数据仓库




Jason Fu(SCUT)                   44/90                     2012-11-19
Outline



    1. 为什么要建数据仓库
    2. 数据仓库是什么
    3. 开发过程
    4. 开发实例
    5. Q&A



Jason Fu(SCUT)   45/90   2012-11-19
4. 开发实例




            建筑节能数据仓库和数据分析系统




Jason Fu(SCUT)     46/90      2012-11-19
建筑节能数据仓库和数据分析系统



    需            求:   在现有的各种建筑节能监管系统的基础上,利用其产生的业务
                      数据,构建一个数据仓库,并基于该数据仓库构建联机分析处
                      理,提供多维分析、报表等功能,为节能决策提供支持。



    数据来源: 某高校节约型校园建筑节能监管平台




Jason Fu(SCUT)                 47/90              2012-11-19
建筑节能数据仓库和数据分析系统

     概念模型设
       计




    界定系统边界、确定主要的主题域及其内容。

                    Building_Day_Energydata_Collection
                    Building_Month_Energydata_Collection
                    Building_Year_Energydata_Collection
                    Standard_Type
                    Building_General_Info
                 


                 
                     Energy_UnitPrice
                     ………
                                                            能耗主题域


                     用户需求



Jason Fu(SCUT)                                48/90           2012-11-19
建筑节能数据仓库和数据分析系统

    概念模型设
      计




                       时间




                       能耗
                 建筑           能源
                       主题



                       地区



Jason Fu(SCUT)        49/90        2012-11-19
建筑节能数据仓库和数据分析系统

    概念模型设        技术准备工
      计            作




      实验项目

      学习目的

      资金

      数据集的大小

      实际的使用需求

      ……




Jason Fu(SCUT)           50/90   2012-11-19
建筑节能数据仓库和数据分析系统

     概念模型设       技术准备工   逻辑模型设
       计           作       计




    定义关系模式。
     数据仓库的模型设计采用了雪花模型。




     事实表只有一个,为能耗事实表,时间维、能耗维、建筑维和区域维是基本维,而建筑类型
     维和能源类型维是间接维。

Jason Fu(SCUT)                   51/90          2012-11-19
建筑节能数据仓库和数据分析系统

     概念模型设        技术准备工   逻辑模型设
       计            作       计




    各维度的粒度层次划分。


                 年        能
         时                源    能源类型       能   能源类型
                 季度
         间                类               源
         维       月        型   能源的子项类      维
         度                维               度   具体能源
                 日        度      型


                 国家       建   建筑大类型
         区                筑               建   建筑用途类型
                 省份           建筑分项类型
         域                类               筑
         维       市        型   建筑所属单位      维
         度                维               度   具体建筑
                 区/县      度   建筑用途分类



Jason Fu(SCUT)                    52/90                2012-11-19
建筑节能数据仓库和数据分析系统

     概念模型设       技术准备工   逻辑模型设
       计           作       计




    度量值设计                               度量指标
                                           能耗量
     度量值是所分析的多维数据集的中心值,
                                          能耗占比率
     它是最终用户浏览多维数据集时重点查看                  分项能耗占比率

     的数据,它是衡量业务成绩的指标。                    同期比较(差)
                                          年度总能耗
                                         有效数据月数量
                                          能耗月均值
                                         有效数据日数量
                                          能耗日均值
                                          最大日能耗
                                          最小日能耗


Jason Fu(SCUT)                   53/90             2012-11-19
建筑节能数据仓库和数据分析系统

     概念模型设       技术准备工   逻辑模型设           物理模型设
       计           作       计               计




    存储结构

     MySQL有两种表存储结构,MyISAM和InnoDB。在使用MySQL构建数据仓库时,

     我们选用的是MyISAM,因为MyISAM的读取的效率更高。


    索引策略

     对各个维度表以及事实表的主键加索引,并对事实表对于各维表的外键添加索

     引。




Jason Fu(SCUT)                   54/90              2012-11-19
建筑节能数据仓库和数据分析系统

     概念模型设       技术准备工   逻辑模型设           物理模型设
       计           作       计               计




    物理模型关系图




Jason Fu(SCUT)                   55/90           2012-11-19
建筑节能数据仓库和数据分析系统

    概念模型设        技术准备工   逻辑模型设           物理模型设
      计            作       计               计




                   维度                       维度表




                          维表主键
                 主题                               事实表
                           度量值




Jason Fu(SCUT)                   56/90                  2012-11-19
建筑节能数据仓库和数据分析系统

         概念模型设                       技术准备工                逻辑模型设                     物理模型设
           计                           作                    计                         计




        维度表的设计
         时间维表(TIME_DIM)                      能源类型维表(ENERGY_TYPE_DIM)                                   建筑维表(BUILDING_DIM)

 名称           类型           说明                名称                      类型         说明          名称                      类型        说明

 time_id      Number       维表主键              energy_type_id          Number     维表主键        building_id             Number    维表主键
                                             energy_type_name        Varchar    能源类型名称      building_type_id        Number    建筑类型维表外键
 date         DateTime     日期
                                             energy_type_subitem     Varchar    能耗类型子项      building_name           Varchar   建筑名称
 day          Char         月的第几日
                                                                                            building_all_area       Number    建筑总面积
 month        Char         年的第几月
                                                                                            building_storey_num     Number    建筑层数
 quarter      Char         年的第几季度                                                           human_capacity          Number    人口容量
 year         Number       年                                                                function                Varchar   使用功能



     区域维表(REGION_DIM)                               能源维表(ENERGY_DIM)                         建筑类型维表(BUILDING_TYPE_DIM)

  名称             类型            说明             名称                类型             说明           名称                           类型        说明
  region_id      Number        维表主键           energy_id         Number         维表主键         building_type_id             Number    维表主键
  country        Varchar       国家             energy_type_id    Number         能源类型维表外键     building_type_name           Varchar   建筑类型名称
  province       Varchar       省              energy_name       Varchar        能源名称         building_type_subitem        Varchar   建筑类型子项
  city           Varchar       城市             energy_unit       Varchar        能耗单位         department                   Varchar   具体单位部门
  county         Varchar       县区            energy_price      Double         能源单价         department_subitem_type      Varchar   建筑用途类型



Jason Fu(SCUT)                                                            57/90                                                    2012-11-19
建筑节能数据仓库和数据分析系统

     概念模型设       技术准备工              逻辑模型设              物理模型设
       计           作                  计                  计




    事实表的设计
                                  能耗事实表(ENERGY_FACT)

                 名称                       类型             说明
                 energy_fact_id           Number         事实表主键
                 time_id                  Number         时间维表外键
                 energy_id                Number         能源维表外键
                 region_id                Number         地区维表外键
                 building_id              Number         建筑维表外键
                 energy_cons              Double         能耗量
                 energy_cost              Double         能耗额
                 unit_area_energy_cons    Double         单位面积能耗量
                 unit_area_energy_cost    Double         单位面积能耗额
                 per_capita_energy_cons   Double         人均能耗量
                 per_capita_energy_cost   Double         人均能耗额

Jason Fu(SCUT)                                 58/90               2012-11-19
建筑节能数据仓库和数据分析系统

         概念模型设   技术准备工   逻辑模型设           物理模型设   数据仓库生
           计       作       计               计       成




        数据ETL



                                           SQL
                                    ETL                  数据仓库
         缺失值
         噪声数据
         不一致
         结构不符合分析的要求
         ……




Jason Fu(SCUT)                   59/90                      2012-11-19
建筑节能数据仓库和数据分析系统

     概念模型设       技术准备工     逻辑模型设           物理模型设   数据仓库生
       计           作         计               计       成




    使用Kettle ETL进行数据的ETL




                         构建建筑能耗数据转换的工作示例



Jason Fu(SCUT)                     60/90                   2012-11-19
建筑节能数据仓库和数据分析系统

     概念模型设       技术准备工   逻辑模型设           物理模型设   数据仓库生
       计           作       计               计       成




    数据库可视化操作工具+SQL脚本




                                                     SQL脚本




Jason Fu(SCUT)                   61/90                       2012-11-19
建筑节能数据仓库和数据分析系统

    概念模型设        技术准备工   逻辑模型设           物理模型设   数据仓库生   数据仓库运
      计            作       计               计       成      行与维护




                 使用Mondrian构建一个基于
                   Web的数据仓库系统




Jason Fu(SCUT)                   62/90                     2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统


          Mondrian是一个开源项目。一个用Java写成的OLAP引擎。它用MDX
           语言实现查询,从关系数据库(RDBMS)中读取数据。然后经过Java
           API以多维的方式对结果进行展示。


          Mondrian的使用方式同JDBC驱动类似。可以非常方便的与现有的Web
           项目集成。


          JPivot 是Mondrian的表现层TagLib,一直保持着良好的开发进度。


          Mondrian 为客户端提供一个用于查询的API。




Jason Fu(SCUT)                63/90                   2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统
                                           表现层




                 模式管
                  理器         多维层


        Mondrian的模式          集合层
        文件,它定义了
        关系数据到多维
        数据的映射。需
         要我们生成




                       存储层



Jason Fu(SCUT)                     64/90     2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统


       开发环境:
             操作系统:Windows 7

             Web服务器:Tomcat 6.0

             关系数据库:MySQL 5.1

             开发工具:MyEclipse 8.5




Jason Fu(SCUT)                     65/90   2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统



      到Mondrian官网下载Mondrian压缩包,最新稳定版为mondrian-3.3.0.14703。


      使用MyEclipse创建一个Java Web项目EnergyWarehouse。


      解压Mondrian压缩包,在lib目录下找到mondrian.war,将其拓展名改为zip,直接

       解压到mondrian文件夹,构建Mondrian Web项目所需的文件都在里面。




Jason Fu(SCUT)                  66/90                    2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统
       进入mondrian文件夹,选中jpivot、wcf二个文件夹及busy.jsp、error.jsp、testpage.jsp
        三个文件,将这些资源复制到Java Web项目的WebRoot目录下。




       注:jpivot、wcf这两个文件夹包含mondrian使用的图像和css文件。Busy.jsp显示等待页面、
       error.jsp显示出错页面、testpage.jsp这文件的用处将在后面介绍。

Jason Fu(SCUT)                       67/90                           2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统

        进入mondrian文件夹的WEB-INF文件夹,选中jpivot、lib、wcf这三个文件夹,将它们
         复制到Java Web项目的WEB-INF文件夹中。




        注:Jpivot、wcf这两个文件夹包含jpivot和wcf用于生成用户界面的配置文件(*.xml、*.xsl)及标签文
        件(*.tld)的定义。Lib文件夹包含的是mondrian所要用的java包。

Jason Fu(SCUT)                        68/90                            2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统



         配置Java Web项目的web.xml

                过滤器

                监听器

                标签库




Jason Fu(SCUT)                   69/90   2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统

     建立mondrian模式(schema)文件

          一个mondriann模式文件定义了一个多维数据库它包含一个逻辑模型(logical
           model)、一组数据立方(consisting of cubes)、层次(hierarchies)、和成员
           (members), 并映射到相应的物理模型上。

          配置一个模式就是配置一个关系数据结构到多维数据结构的映射。


     逻辑模型(logical model)是为了编写MDX查询语言而创建的,有如下概念:
          数据立方(cubes);

          维(dimensions);

          层次(hierarchies);

          级别(levels);

          成员(members).




Jason Fu(SCUT)                         70/90                        2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统



     建立mondrian模式(schema)文件

      在Java Web项目的WEB-INF下新建一个queries

      的文件夹,然后在该文件夹下创建一个名为

      energydb.xml的文件。




Jason Fu(SCUT)                 71/90    2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统




Jason Fu(SCUT)   72/90         2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统




Jason Fu(SCUT)   73/90         2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统

     MDX(多维表达式)


          在模式文件定义完成之后,我们就可以根据它来编写相应MDX查询语句了。


          MDX是一种语言,它可以表达在线分析处理(OLAP)数据库上的选择、计
           算和一些元数据定义等操作,并赋予用户自定义表现查询结果的能力。

          MDX 在很多方面与结构化查询语言 (SQL) 语法相似。




Jason Fu(SCUT)               74/90           2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统

     MDX(多维表达式)

         基本的 MDX SELECT 语句包含一个 SELECT 子句和一个 FROM 子句,以及一个
          可选的 WHERE 子句。

         SELECT 子句决定 MDX SELECT 语句的轴维度。本 MDX 查询示例中定义了两个
          轴维度。

         FROM 子句决定当析取数据以填充 MDX SELECT 语句的结果集时将使用哪个多
          维数据源。


      SELECT [<axis_specification> [, <axis_specification>...]]
      FROM [<cube_specification>]
      [WHERE [<slicer_specification>]]




Jason Fu(SCUT)                  75/90                       2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统

     创建MDX查询


         Mondrian创建MDX 查询,是通过创建一个jsp文件,该jsp使用jpivot的


          mondrianQuery标签来完成查询的。


         Jsp文件位于Java Web项目的/WEB-INF/queries文件夹下。


         该文件最后将被testpage.jsp使用。




Jason Fu(SCUT)                     76/90                2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统
     一个MDX查询文件             导入jpivot 标签



                          指定查询所使用的模式文件

用于执行MDX查询
 的jpivot标签                查询所使用的JDBC驱动


                              用于连接到数
 需要被执行
                              据的url,包含
 的MDX语
                              数据库的用户
   句
                               名及密码等




Jason Fu(SCUT)    77/90                   2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统




                                 模式(Schema)文
     最终Java Web项目效果             件和MDX查询文件均
                                    位于此
         编写完所需的其他的MDX查询文件。

         至此,完成项目的配置。




Jason Fu(SCUT)           78/90                 2012-11-19
使用Mondrian构建一个基于Web的数据仓库系统

     部署项目

           部署到Tomcat服务器。

           直接在MyEclipse中运行。

     访问

           http://localhost:8080/ EnergyWarehouse/




Jason Fu(SCUT)                                79/90   2012-11-19
建筑节能数据仓库和数据分析系统




Jason Fu(SCUT)   80/90   2012-11-19
建筑节能数据仓库和数据分析系统


  WITH MEMBER [Measures].[能耗占比率]
  AS
  'iif(
  ([Measures].[能耗量],[时间].CurrentMember.Parent) > 0,
  [Measures].[能耗量]
  /
  ([Measures].[能耗量], [时间].CurrentMember.Parent),
  NULL

  )',
  FORMAT_STRING='Percent'

  select {[Measures].[能耗量],
       [Measures].[能耗占比率]
      } ON columns,
  NON EMPTY {([地区].[所有地区],
          [建筑].[所有建筑],
          [能源].[所有能源],
          [时间].[所有时间])
        } ON rows
  from [Energys]




Jason Fu(SCUT)                                    81/90   2012-11-19
建筑节能数据仓库和数据分析系统


  select
  {[Measures].[能耗量]}
  ON columns,
  TopCount(
  {
  Descendants(
  [建筑].[所有建筑],
  4,
  LEAVES
  )
    },
  10,
  [Measures].[能耗量]
  )
  ON rows
  from [PerCapita]




Jason Fu(SCUT)         82/90   2012-11-19
建筑节能数据仓库和数据分析系统




Jason Fu(SCUT)   83/90   2012-11-19
建筑节能数据仓库和数据分析系统




                 系统演示


Jason Fu(SCUT)     84/90   2012-11-19
其他数据仓库系统



        中国电信上行短信数据仓库和数据分析系统


        省交通厅数据仓库系统




Jason Fu(SCUT)   85/90     2012-11-19
中国电信上行短信数据仓库和数据分析系统




                 系统演示
Jason Fu(SCUT)     86/90   2012-11-19
省交通厅数据仓库系统




                 系统演示
Jason Fu(SCUT)     87/90   2012-11-19
Outline



    1. 为什么要建数据仓库
    2. 数据仓库是什么
    3. 开发过程
    4. 开发实例
    5. Q&A



Jason Fu(SCUT)   88/90   2012-11-19
5. Q&A




Jason Fu(SCUT)   89/90   2012-11-19
Thank You!


Jason Fu(SCUT)        90/90   2012-11-19

More Related Content

What's hot

Greenplum技术
Greenplum技术Greenplum技术
Greenplum技术锐 张
 
管理資訊系統
管理資訊系統管理資訊系統
管理資訊系統brian401777
 
Business intelligent 概論 棅易
Business intelligent 概論 棅易Business intelligent 概論 棅易
Business intelligent 概論 棅易Lawrence Huang
 
database
databasedatabase
databases06283
 
資料倉儲與採礦技術 大葉大學-詹翔霖
資料倉儲與採礦技術 大葉大學-詹翔霖資料倉儲與採礦技術 大葉大學-詹翔霖
資料倉儲與採礦技術 大葉大學-詹翔霖文化大學
 
SSD在企业级数据库方面的应用
SSD在企业级数据库方面的应用SSD在企业级数据库方面的应用
SSD在企业级数据库方面的应用poerew
 
个人在中医药知识公工作基础
个人在中医药知识公工作基础个人在中医药知识公工作基础
个人在中医药知识公工作基础Tong Yu
 
Big data, big challenge- splunk 幫你解決 big data 議題帶來的挑戰
Big data, big challenge- splunk 幫你解決 big data 議題帶來的挑戰Big data, big challenge- splunk 幫你解決 big data 議題帶來的挑戰
Big data, big challenge- splunk 幫你解決 big data 議題帶來的挑戰Ching-Lin Tao
 
Trinity BDM - 橋接傳統與未來
Trinity BDM - 橋接傳統與未來Trinity BDM - 橋接傳統與未來
Trinity BDM - 橋接傳統與未來Etu Solution
 

What's hot (10)

Greenplum技术
Greenplum技术Greenplum技术
Greenplum技术
 
商業智慧
商業智慧商業智慧
商業智慧
 
管理資訊系統
管理資訊系統管理資訊系統
管理資訊系統
 
Business intelligent 概論 棅易
Business intelligent 概論 棅易Business intelligent 概論 棅易
Business intelligent 概論 棅易
 
database
databasedatabase
database
 
資料倉儲與採礦技術 大葉大學-詹翔霖
資料倉儲與採礦技術 大葉大學-詹翔霖資料倉儲與採礦技術 大葉大學-詹翔霖
資料倉儲與採礦技術 大葉大學-詹翔霖
 
SSD在企业级数据库方面的应用
SSD在企业级数据库方面的应用SSD在企业级数据库方面的应用
SSD在企业级数据库方面的应用
 
个人在中医药知识公工作基础
个人在中医药知识公工作基础个人在中医药知识公工作基础
个人在中医药知识公工作基础
 
Big data, big challenge- splunk 幫你解決 big data 議題帶來的挑戰
Big data, big challenge- splunk 幫你解決 big data 議題帶來的挑戰Big data, big challenge- splunk 幫你解決 big data 議題帶來的挑戰
Big data, big challenge- splunk 幫你解決 big data 議題帶來的挑戰
 
Trinity BDM - 橋接傳統與未來
Trinity BDM - 橋接傳統與未來Trinity BDM - 橋接傳統與未來
Trinity BDM - 橋接傳統與未來
 

Viewers also liked

Electronic Newsletters Can Increase Sales and Build Customer Base
Electronic Newsletters Can Increase Sales and Build Customer BaseElectronic Newsletters Can Increase Sales and Build Customer Base
Electronic Newsletters Can Increase Sales and Build Customer BaseGreg Muzzillo
 
ASI Annual Power Summit 2013
ASI Annual Power Summit 2013ASI Annual Power Summit 2013
ASI Annual Power Summit 2013Greg Muzzillo
 
Build-a-High-Performance-Customer-Developement-Engine-021516b
Build-a-High-Performance-Customer-Developement-Engine-021516bBuild-a-High-Performance-Customer-Developement-Engine-021516b
Build-a-High-Performance-Customer-Developement-Engine-021516btomflemingh2
 
Enlister baidu's recommender system for the biggest chinese q&a website
Enlister baidu's recommender system for the biggest chinese q&a websiteEnlister baidu's recommender system for the biggest chinese q&a website
Enlister baidu's recommender system for the biggest chinese q&a websitejasonfuoo
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQLjasonfuoo
 
Issues on food & energy
Issues on food & energyIssues on food & energy
Issues on food & energyUdi Pungut
 
Peta, atlas, dan globe
Peta, atlas, dan globePeta, atlas, dan globe
Peta, atlas, dan globevhyra_fendy
 
American born chinese (abc)
American born chinese (abc)American born chinese (abc)
American born chinese (abc)samshek
 
Ebitda palm oil
Ebitda palm oilEbitda palm oil
Ebitda palm oilUdi Pungut
 
Top reasons to join the international franchise association by greg muzzillo
Top reasons to join the international franchise association by greg muzzilloTop reasons to join the international franchise association by greg muzzillo
Top reasons to join the international franchise association by greg muzzilloGreg Muzzillo
 
Casting process
Casting processCasting process
Casting processLuis Linde
 
Quelle stratégies le marché de l'information professionnelle doit-il adopter ...
Quelle stratégies le marché de l'information professionnelle doit-il adopter ...Quelle stratégies le marché de l'information professionnelle doit-il adopter ...
Quelle stratégies le marché de l'information professionnelle doit-il adopter ...Caroline LIJKO
 
Communication innovante en bibliothèque - Blogs et pages Facebook
Communication innovante en bibliothèque - Blogs et pages FacebookCommunication innovante en bibliothèque - Blogs et pages Facebook
Communication innovante en bibliothèque - Blogs et pages FacebookMagalie Le Gall
 
Database vs Data Warehouse: A Comparative Review
Database vs Data Warehouse: A Comparative ReviewDatabase vs Data Warehouse: A Comparative Review
Database vs Data Warehouse: A Comparative ReviewHealth Catalyst
 
Clinical Data Repository vs. A Data Warehouse - Which Do You Need?
Clinical Data Repository vs. A Data Warehouse - Which Do You Need?Clinical Data Repository vs. A Data Warehouse - Which Do You Need?
Clinical Data Repository vs. A Data Warehouse - Which Do You Need?Health Catalyst
 

Viewers also liked (18)

Electronic Newsletters Can Increase Sales and Build Customer Base
Electronic Newsletters Can Increase Sales and Build Customer BaseElectronic Newsletters Can Increase Sales and Build Customer Base
Electronic Newsletters Can Increase Sales and Build Customer Base
 
ASI Annual Power Summit 2013
ASI Annual Power Summit 2013ASI Annual Power Summit 2013
ASI Annual Power Summit 2013
 
Build-a-High-Performance-Customer-Developement-Engine-021516b
Build-a-High-Performance-Customer-Developement-Engine-021516bBuild-a-High-Performance-Customer-Developement-Engine-021516b
Build-a-High-Performance-Customer-Developement-Engine-021516b
 
A eulogy to gill astarita
A eulogy to gill astarita A eulogy to gill astarita
A eulogy to gill astarita
 
Enlister baidu's recommender system for the biggest chinese q&a website
Enlister baidu's recommender system for the biggest chinese q&a websiteEnlister baidu's recommender system for the biggest chinese q&a website
Enlister baidu's recommender system for the biggest chinese q&a website
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
License Estate
License EstateLicense Estate
License Estate
 
Issues on food & energy
Issues on food & energyIssues on food & energy
Issues on food & energy
 
Peta, atlas, dan globe
Peta, atlas, dan globePeta, atlas, dan globe
Peta, atlas, dan globe
 
Speech for pifa awards 2013
Speech for pifa awards 2013Speech for pifa awards 2013
Speech for pifa awards 2013
 
American born chinese (abc)
American born chinese (abc)American born chinese (abc)
American born chinese (abc)
 
Ebitda palm oil
Ebitda palm oilEbitda palm oil
Ebitda palm oil
 
Top reasons to join the international franchise association by greg muzzillo
Top reasons to join the international franchise association by greg muzzilloTop reasons to join the international franchise association by greg muzzillo
Top reasons to join the international franchise association by greg muzzillo
 
Casting process
Casting processCasting process
Casting process
 
Quelle stratégies le marché de l'information professionnelle doit-il adopter ...
Quelle stratégies le marché de l'information professionnelle doit-il adopter ...Quelle stratégies le marché de l'information professionnelle doit-il adopter ...
Quelle stratégies le marché de l'information professionnelle doit-il adopter ...
 
Communication innovante en bibliothèque - Blogs et pages Facebook
Communication innovante en bibliothèque - Blogs et pages FacebookCommunication innovante en bibliothèque - Blogs et pages Facebook
Communication innovante en bibliothèque - Blogs et pages Facebook
 
Database vs Data Warehouse: A Comparative Review
Database vs Data Warehouse: A Comparative ReviewDatabase vs Data Warehouse: A Comparative Review
Database vs Data Warehouse: A Comparative Review
 
Clinical Data Repository vs. A Data Warehouse - Which Do You Need?
Clinical Data Repository vs. A Data Warehouse - Which Do You Need?Clinical Data Repository vs. A Data Warehouse - Which Do You Need?
Clinical Data Repository vs. A Data Warehouse - Which Do You Need?
 

Similar to How to build data warehouse

Top100summit ibm-董国兴-系统架构优化与技术规划
Top100summit ibm-董国兴-系统架构优化与技术规划 Top100summit ibm-董国兴-系统架构优化与技术规划
Top100summit ibm-董国兴-系统架构优化与技术规划 drewz lin
 
2016-12-15 NewSQL資料庫在IoT的應用 - iServDB
2016-12-15 NewSQL資料庫在IoT的應用 - iServDB2016-12-15 NewSQL資料庫在IoT的應用 - iServDB
2016-12-15 NewSQL資料庫在IoT的應用 - iServDBJosé Lin
 
《数据库发展研究报告-解读(2023年)》.pdf
《数据库发展研究报告-解读(2023年)》.pdf《数据库发展研究报告-解读(2023年)》.pdf
《数据库发展研究报告-解读(2023年)》.pdfmarkmind
 
Sbir 海量運算的雲端學習歷程與評量分析app開發0124簡報v2.01
Sbir 海量運算的雲端學習歷程與評量分析app開發0124簡報v2.01Sbir 海量運算的雲端學習歷程與評量分析app開發0124簡報v2.01
Sbir 海量運算的雲端學習歷程與評量分析app開發0124簡報v2.01Jackie Liu
 
Sybase Analytic Appliance
Sybase Analytic ApplianceSybase Analytic Appliance
Sybase Analytic Appliancefocusbi
 
逻辑数据编织 – 构建先进的现代企业数据架构
逻辑数据编织 – 构建先进的现代企业数据架构逻辑数据编织 – 构建先进的现代企业数据架构
逻辑数据编织 – 构建先进的现代企业数据架构Denodo
 
2014-10-17 探析台灣巨量資料產業供應鏈串聯現況
2014-10-17 探析台灣巨量資料產業供應鏈串聯現況2014-10-17 探析台灣巨量資料產業供應鏈串聯現況
2014-10-17 探析台灣巨量資料產業供應鏈串聯現況Jazz Yao-Tsung Wang
 
数据分析架构实例与安全的云挖掘
数据分析架构实例与安全的云挖掘数据分析架构实例与安全的云挖掘
数据分析架构实例与安全的云挖掘mysqlops
 
罗旭祥 基于数据挖掘的产品设计
罗旭祥 基于数据挖掘的产品设计罗旭祥 基于数据挖掘的产品设计
罗旭祥 基于数据挖掘的产品设计PMCamp
 
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林corlin chen
 
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)vanadies10
 
Modernising Data Architecture for Data Driven Insights (Chinese)
Modernising Data Architecture for Data Driven Insights (Chinese)Modernising Data Architecture for Data Driven Insights (Chinese)
Modernising Data Architecture for Data Driven Insights (Chinese)Denodo
 
逻辑数据编织如何完善IT架构,盘活数据资产
逻辑数据编织如何完善IT架构,盘活数据资产逻辑数据编织如何完善IT架构,盘活数据资产
逻辑数据编织如何完善IT架构,盘活数据资产Denodo
 
如何快速实现数据编织架构
如何快速实现数据编织架构如何快速实现数据编织架构
如何快速实现数据编织架构Denodo
 
Etu Data Lake
Etu Data LakeEtu Data Lake
Etu Data LakeJudy Wu
 
C A W D A J O P
C A W D A J O PC A W D A J O P
C A W D A J O P51 lecture
 
民间秘方
民间秘方民间秘方
民间秘方dynasty
 
自下而上的数据仓库构建方法
自下而上的数据仓库构建方法自下而上的数据仓库构建方法
自下而上的数据仓库构建方法tongxiaojun
 
Oracle db 12c 加速企业转型之十大功能
Oracle db 12c 加速企业转型之十大功能Oracle db 12c 加速企业转型之十大功能
Oracle db 12c 加速企业转型之十大功能Ethan M. Liu
 

Similar to How to build data warehouse (20)

Top100summit ibm-董国兴-系统架构优化与技术规划
Top100summit ibm-董国兴-系统架构优化与技术规划 Top100summit ibm-董国兴-系统架构优化与技术规划
Top100summit ibm-董国兴-系统架构优化与技术规划
 
2016-12-15 NewSQL資料庫在IoT的應用 - iServDB
2016-12-15 NewSQL資料庫在IoT的應用 - iServDB2016-12-15 NewSQL資料庫在IoT的應用 - iServDB
2016-12-15 NewSQL資料庫在IoT的應用 - iServDB
 
《数据库发展研究报告-解读(2023年)》.pdf
《数据库发展研究报告-解读(2023年)》.pdf《数据库发展研究报告-解读(2023年)》.pdf
《数据库发展研究报告-解读(2023年)》.pdf
 
Sbir 海量運算的雲端學習歷程與評量分析app開發0124簡報v2.01
Sbir 海量運算的雲端學習歷程與評量分析app開發0124簡報v2.01Sbir 海量運算的雲端學習歷程與評量分析app開發0124簡報v2.01
Sbir 海量運算的雲端學習歷程與評量分析app開發0124簡報v2.01
 
Sybase Analytic Appliance
Sybase Analytic ApplianceSybase Analytic Appliance
Sybase Analytic Appliance
 
逻辑数据编织 – 构建先进的现代企业数据架构
逻辑数据编织 – 构建先进的现代企业数据架构逻辑数据编织 – 构建先进的现代企业数据架构
逻辑数据编织 – 构建先进的现代企业数据架构
 
2014-10-17 探析台灣巨量資料產業供應鏈串聯現況
2014-10-17 探析台灣巨量資料產業供應鏈串聯現況2014-10-17 探析台灣巨量資料產業供應鏈串聯現況
2014-10-17 探析台灣巨量資料產業供應鏈串聯現況
 
数据分析架构实例与安全的云挖掘
数据分析架构实例与安全的云挖掘数据分析架构实例与安全的云挖掘
数据分析架构实例与安全的云挖掘
 
罗旭祥 基于数据挖掘的产品设计
罗旭祥 基于数据挖掘的产品设计罗旭祥 基于数据挖掘的产品设计
罗旭祥 基于数据挖掘的产品设计
 
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
 
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)
 
Modernising Data Architecture for Data Driven Insights (Chinese)
Modernising Data Architecture for Data Driven Insights (Chinese)Modernising Data Architecture for Data Driven Insights (Chinese)
Modernising Data Architecture for Data Driven Insights (Chinese)
 
Dmresearch
DmresearchDmresearch
Dmresearch
 
逻辑数据编织如何完善IT架构,盘活数据资产
逻辑数据编织如何完善IT架构,盘活数据资产逻辑数据编织如何完善IT架构,盘活数据资产
逻辑数据编织如何完善IT架构,盘活数据资产
 
如何快速实现数据编织架构
如何快速实现数据编织架构如何快速实现数据编织架构
如何快速实现数据编织架构
 
Etu Data Lake
Etu Data LakeEtu Data Lake
Etu Data Lake
 
C A W D A J O P
C A W D A J O PC A W D A J O P
C A W D A J O P
 
民间秘方
民间秘方民间秘方
民间秘方
 
自下而上的数据仓库构建方法
自下而上的数据仓库构建方法自下而上的数据仓库构建方法
自下而上的数据仓库构建方法
 
Oracle db 12c 加速企业转型之十大功能
Oracle db 12c 加速企业转型之十大功能Oracle db 12c 加速企业转型之十大功能
Oracle db 12c 加速企业转型之十大功能
 

How to build data warehouse

  • 1. How to Build Data Warehouse • 如何构建数据仓库 傅桔选 JasonFu | Master Candidate Supervised by Professor Jian Chen School of Software Engineering, South China University of Technology
  • 2. Outline 1. 为什么要建数据仓库 2. 数据仓库是什么 3. 开发过程 4. 开发实例 5. Q&A Jason Fu(SCUT) 1/90 2012-11-19
  • 3. Outline 1. 为什么要建数据仓库 2. 数据仓库是什么 3. 开发过程 4. 开发实例 5. Q&A Jason Fu(SCUT) 2/90 2012-11-19
  • 5. 1. 为什么要建数据仓库 充分利用已有的历史业务数据,进行集中的分析和知识提取, 从中获取决策支持。 决策高层希望直接进行数据分析,而无需专业数据分析人员的 协助,这就要求系统提供丰富、灵活和易用的分析功能。 决策支持处理需要相对稳定的数据,而已有的事务型数据库总 是在动态变化。 已有的事务型数据库系统专注于各种业务处理,且数据分散, 无法为集中的数据分析提供良好的支持。 Jason Fu(SCUT) 4/90 2012-11-19
  • 6. Outline 1. 为什么要建数据仓库 2. 数据仓库是什么 3. 开发过程 4. 开发实例 5. Q&A Jason Fu(SCUT) 5/90 2012-11-19
  • 7. 2. 数据仓库是什么 数据仓库本身并不“生产”任 何数据,同时自身也不需 要“消费”任何的数据,数据 来源于外部,并且开放给 外部应用。 Jason Fu(SCUT) 6/90 2012-11-19
  • 8. 2. 数据仓库是什么 DEFINITION  数据仓库(Data Warehouse)是一个面向主 题的(Subject Oriented)、集成的 (Integrated)、相对稳定的(Non-Volatile)、 反映历史变化(Time Variant)的数据集合, 用于支持管理决策(Decision Making Support)。 William H. Inmon "The Father of Data Warehousing" Jason Fu(SCUT) 7/90 2012-11-19
  • 9. 2. 数据仓库是什么:特点  面向主题  集成的  相对稳定的  反映历史变化 Jason Fu(SCUT) 8/90 2012-11-19
  • 10. 2. 数据仓库是什么:特点  面向主题  操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分 离,而数据仓库中的数据是按照一定的主题域进行组织的  主题是与传统数据库的面向应用相对应的,是一个抽象概念,是在较高层 次上将企业信息系统中的数据综合、归类并进行分析利用的抽象  每一个主题对应一个宏观的分析领域  e.g. :商品,销售,客户关系,… Jason Fu(SCUT) 9/90 2012-11-19
  • 11. 2. 数据仓库是什么:特点  面向主题  集成的  相对稳定的  反映历史变化 Jason Fu(SCUT) 10/90 2012-11-19
  • 12. 2. 数据仓库是什么:特点  集成的  对原有分散的数据库数据进行抽取、清理  系统加工、汇总和整理  消除源数据中的不一致性  确保数据仓库内的信息是关于整个企业的一致的全局信息 Jason Fu(SCUT) 11/90 2012-11-19
  • 13. 2. 数据仓库是什么:特点  面向主题  集成的  相对稳定的  反映历史变化 Jason Fu(SCUT) 12/90 2012-11-19
  • 14. 2. 数据仓库是什么:特点  相对稳定的  供企业决策分析之用,所涉及的数据操作主要是数据查询  数据一旦进入数据仓库,一般情况下将被长期保留  大量的查询操作,修改和删除操作很少  定期的加载、刷新 Jason Fu(SCUT) 13/90 2012-11-19
  • 15. 2. 数据仓库是什么:特点  面向主题  集成的  相对稳定的  反映历史变化 Jason Fu(SCUT) 14/90 2012-11-19
  • 16. 2. 数据仓库是什么:特点  反映历史变化  包含历史信息,系统记录了企业从过去某一时间点(如开始应用数据 仓库的时点)到目前的各个阶段的信息  对企业的发展历程和未来趋势做出定量分析和预测 Jason Fu(SCUT) 15/90 2012-11-19
  • 17. 2. 数据仓库是什么  DW VS. DB 特性 DW DB 定位 数据分析 事务处理 DB设计 星型模型,面向主题 E-R模型,面向应用 数据 历史、具有时间跨度 当前、最新的 汇总 汇总、一致的 原始、细节的 视图 总体、多维的 详细、关系的 存取 读(稳定) 读/写(易变) 存放记录 记录集合 少量记录 DB规模 TB GB 工作单位 复杂查询 短的、简单事务 设计方法 数据驱动 需求驱动 Jason Fu(SCUT) 16/90 2012-11-19
  • 18. Outline 1. 为什么要建数据仓库 2. 数据仓库是什么 3. 开发过程 4. 开发实例 5. Q&A Jason Fu(SCUT) 17/90 2012-11-19
  • 19. 3. 开发过程  数据仓库是一个环境,而不是一件产品。  数据仓库系统是一个信息提供平台,他从业务处理系统获得数据,主要以 星型模型和雪花模型进行数据组织,并为用户提供各种手段从数据中获取 信息和知识。  从功能结构划分,数据仓库系统至少应该包含数据获取(Data Acquisition)、数据存储(Data Storage)、数据访问(Data Access)三 个关键部分。 Jason Fu(SCUT) 18/90 2012-11-19
  • 20. 3. 开发过程  数据仓库的基本架构 Jason Fu(SCUT) 19/90 2012-11-19
  • 21. 3. 开发过程  开发策略  自顶向下:实际应用比较困难。  自底向上:用于一个数据集市或一个部门的数据仓库开发 ,容易获得成 功。  两种策略的联合使用:能够快速地完成数据仓库的开发与应用,而且还可以 建立具有长远价值的数据仓库方案。 Jason Fu(SCUT) 20/90 2012-11-19
  • 22. 3. 开发过程  开发策略:自顶向下 Jason Fu(SCUT) 21/90 2012-11-19
  • 23. 3. 开发过程  开发策略:自底向上 Jason Fu(SCUT) 22/90 2012-11-19
  • 24. 3. 开发过程  构建过程 构造/实施 需求/设计 使用/维护 新的需求 Jason Fu(SCUT) 23/90 2012-11-19
  • 25. 3. 开发过程  设计原则  以数据驱动为中心,数据驱动和需求驱动相结 合。  数据驱动:根据当前数据基础和质量等情况,进 行数据源分析。  需求驱动:根据业务方向性需求、业务问题等, 确定系统范围和需求框架。 Jason Fu(SCUT) 24/90 2012-11-19
  • 26. 3. 开发过程  数据仓库设计的三级数据模型 概念模型 逻辑模型 物理模型 • “信息世界”中的信 • 一般采用关系模型 • 物理存储结构、存 息结构 储方法 • 用E-R方法,以主 题替代实体 Jason Fu(SCUT) 25/90 2012-11-19
  • 27. 3. 开发过程  数据仓库设计的三级数据模型 Jason Fu(SCUT) 26/90 2012-11-19
  • 28. 3. 开发过程  开发基本流程  概念模型设计  技术准备工作  逻辑模型设计  物理模型设计  数据仓库生成  数据仓库运行与维护 Jason Fu(SCUT) 27/90 2012-11-19
  • 29. 3. 开发过程 概念模型设 技术准备工 逻辑模型设 物理模型设 数据仓库生 数据仓库运 计 作 计 计 成 行与维护  概念模型设计的结果是在原有数据库的基础上建立了一个较为稳固的概念模型。  数据仓库的概念模型设计,首先要对原有数据库系统加以分析理解。 ① 界定系统边界  要做的决策类型有哪些?  决策者感兴趣的是什么问题?  这些问题需要什么样的信息?  要得到这些信息需要包含原有数据库系统的哪些部分的数据? ② 确定主要的主题域及其内容  主题域的公共码;  主题域之间的联系;  充分代表主题的属性组。 Jason Fu(SCUT) 28/90 2012-11-19
  • 30. 3. 开发过程 概念模型设 技术准备工 逻辑模型设 物理模型设 数据仓库生 数据仓库运 计 作 计 计 成 行与维护  工作:技术评估和技术环境准备。  成果:技术评估报告、软硬件配置方案、系统(软、硬件)总体设计方 案。 Jason Fu(SCUT) 29/90 2012-11-19
  • 42. 3. 开发过程 概念模型设 技术准备工 逻辑模型设 物理模型设 数据仓库生 数据仓库运 计 作 计 计 成 行与维护  分析主题域,确定当前要加载的主题  确定粒度层次划分  确定数据分割策略  关系模式定义  记录系统的定义 Jason Fu(SCUT) 41/90 2012-11-19
  • 43. 3. 开发过程 概念模型设 技术准备工 逻辑模型设 物理模型设 数据仓库生 数据仓库运 计 作 计 计 成 行与维护  存储结构  确定索引策略  确定数据存放位置  确定存储分配 Jason Fu(SCUT) 42/90 2012-11-19
  • 44. 3. 开发过程 概念模型设 技术准备工 逻辑模型设 物理模型设 数据仓库生 数据仓库运 计 作 计 计 成 行与维护  接口编程  从面向应用和操作的环境生成完整的数据;  数据类型的转换;  数据的清洗;  数据的集成;  数据的增量更新。  数据装入  确定数据装入的次序;  清除无效或错误数据;  清除“老化”数据,即清除过期数据;  数据粒度管理;  数据刷新等。 Jason Fu(SCUT) 43/90 2012-11-19
  • 45. 3. 开发过程 概念模型设 技术准备工 逻辑模型设 物理模型设 数据仓库生 数据仓库运 计 作 计 计 成 行与维护  建立数据分析应用  理解需求,改善和完善系统  维护数据仓库 Jason Fu(SCUT) 44/90 2012-11-19
  • 46. Outline 1. 为什么要建数据仓库 2. 数据仓库是什么 3. 开发过程 4. 开发实例 5. Q&A Jason Fu(SCUT) 45/90 2012-11-19
  • 47. 4. 开发实例 建筑节能数据仓库和数据分析系统 Jason Fu(SCUT) 46/90 2012-11-19
  • 48. 建筑节能数据仓库和数据分析系统 需 求: 在现有的各种建筑节能监管系统的基础上,利用其产生的业务 数据,构建一个数据仓库,并基于该数据仓库构建联机分析处 理,提供多维分析、报表等功能,为节能决策提供支持。 数据来源: 某高校节约型校园建筑节能监管平台 Jason Fu(SCUT) 47/90 2012-11-19
  • 49. 建筑节能数据仓库和数据分析系统 概念模型设 计  界定系统边界、确定主要的主题域及其内容。  Building_Day_Energydata_Collection  Building_Month_Energydata_Collection  Building_Year_Energydata_Collection  Standard_Type  Building_General_Info   Energy_UnitPrice ……… 能耗主题域 用户需求 Jason Fu(SCUT) 48/90 2012-11-19
  • 50. 建筑节能数据仓库和数据分析系统 概念模型设 计 时间 能耗 建筑 能源 主题 地区 Jason Fu(SCUT) 49/90 2012-11-19
  • 51. 建筑节能数据仓库和数据分析系统 概念模型设 技术准备工 计 作  实验项目  学习目的  资金  数据集的大小  实际的使用需求  …… Jason Fu(SCUT) 50/90 2012-11-19
  • 52. 建筑节能数据仓库和数据分析系统 概念模型设 技术准备工 逻辑模型设 计 作 计  定义关系模式。 数据仓库的模型设计采用了雪花模型。 事实表只有一个,为能耗事实表,时间维、能耗维、建筑维和区域维是基本维,而建筑类型 维和能源类型维是间接维。 Jason Fu(SCUT) 51/90 2012-11-19
  • 53. 建筑节能数据仓库和数据分析系统 概念模型设 技术准备工 逻辑模型设 计 作 计  各维度的粒度层次划分。 年 能 时 源 能源类型 能 能源类型 季度 间 类 源 维 月 型 能源的子项类 维 度 维 度 具体能源 日 度 型 国家 建 建筑大类型 区 筑 建 建筑用途类型 省份 建筑分项类型 域 类 筑 维 市 型 建筑所属单位 维 度 维 度 具体建筑 区/县 度 建筑用途分类 Jason Fu(SCUT) 52/90 2012-11-19
  • 54. 建筑节能数据仓库和数据分析系统 概念模型设 技术准备工 逻辑模型设 计 作 计  度量值设计 度量指标 能耗量 度量值是所分析的多维数据集的中心值, 能耗占比率 它是最终用户浏览多维数据集时重点查看 分项能耗占比率 的数据,它是衡量业务成绩的指标。 同期比较(差) 年度总能耗 有效数据月数量 能耗月均值 有效数据日数量 能耗日均值 最大日能耗 最小日能耗 Jason Fu(SCUT) 53/90 2012-11-19
  • 55. 建筑节能数据仓库和数据分析系统 概念模型设 技术准备工 逻辑模型设 物理模型设 计 作 计 计  存储结构 MySQL有两种表存储结构,MyISAM和InnoDB。在使用MySQL构建数据仓库时, 我们选用的是MyISAM,因为MyISAM的读取的效率更高。  索引策略 对各个维度表以及事实表的主键加索引,并对事实表对于各维表的外键添加索 引。 Jason Fu(SCUT) 54/90 2012-11-19
  • 56. 建筑节能数据仓库和数据分析系统 概念模型设 技术准备工 逻辑模型设 物理模型设 计 作 计 计  物理模型关系图 Jason Fu(SCUT) 55/90 2012-11-19
  • 57. 建筑节能数据仓库和数据分析系统 概念模型设 技术准备工 逻辑模型设 物理模型设 计 作 计 计 维度 维度表 维表主键 主题 事实表 度量值 Jason Fu(SCUT) 56/90 2012-11-19
  • 58. 建筑节能数据仓库和数据分析系统 概念模型设 技术准备工 逻辑模型设 物理模型设 计 作 计 计  维度表的设计 时间维表(TIME_DIM) 能源类型维表(ENERGY_TYPE_DIM) 建筑维表(BUILDING_DIM) 名称 类型 说明 名称 类型 说明 名称 类型 说明 time_id Number 维表主键 energy_type_id Number 维表主键 building_id Number 维表主键 energy_type_name Varchar 能源类型名称 building_type_id Number 建筑类型维表外键 date DateTime 日期 energy_type_subitem Varchar 能耗类型子项 building_name Varchar 建筑名称 day Char 月的第几日 building_all_area Number 建筑总面积 month Char 年的第几月 building_storey_num Number 建筑层数 quarter Char 年的第几季度 human_capacity Number 人口容量 year Number 年 function Varchar 使用功能 区域维表(REGION_DIM) 能源维表(ENERGY_DIM) 建筑类型维表(BUILDING_TYPE_DIM) 名称 类型 说明 名称 类型 说明 名称 类型 说明 region_id Number 维表主键 energy_id Number 维表主键 building_type_id Number 维表主键 country Varchar 国家 energy_type_id Number 能源类型维表外键 building_type_name Varchar 建筑类型名称 province Varchar 省 energy_name Varchar 能源名称 building_type_subitem Varchar 建筑类型子项 city Varchar 城市 energy_unit Varchar 能耗单位 department Varchar 具体单位部门 county Varchar 县区 energy_price Double 能源单价 department_subitem_type Varchar 建筑用途类型 Jason Fu(SCUT) 57/90 2012-11-19
  • 59. 建筑节能数据仓库和数据分析系统 概念模型设 技术准备工 逻辑模型设 物理模型设 计 作 计 计  事实表的设计 能耗事实表(ENERGY_FACT) 名称 类型 说明 energy_fact_id Number 事实表主键 time_id Number 时间维表外键 energy_id Number 能源维表外键 region_id Number 地区维表外键 building_id Number 建筑维表外键 energy_cons Double 能耗量 energy_cost Double 能耗额 unit_area_energy_cons Double 单位面积能耗量 unit_area_energy_cost Double 单位面积能耗额 per_capita_energy_cons Double 人均能耗量 per_capita_energy_cost Double 人均能耗额 Jason Fu(SCUT) 58/90 2012-11-19
  • 60. 建筑节能数据仓库和数据分析系统 概念模型设 技术准备工 逻辑模型设 物理模型设 数据仓库生 计 作 计 计 成  数据ETL SQL ETL 数据仓库  缺失值  噪声数据  不一致  结构不符合分析的要求  …… Jason Fu(SCUT) 59/90 2012-11-19
  • 61. 建筑节能数据仓库和数据分析系统 概念模型设 技术准备工 逻辑模型设 物理模型设 数据仓库生 计 作 计 计 成  使用Kettle ETL进行数据的ETL 构建建筑能耗数据转换的工作示例 Jason Fu(SCUT) 60/90 2012-11-19
  • 62. 建筑节能数据仓库和数据分析系统 概念模型设 技术准备工 逻辑模型设 物理模型设 数据仓库生 计 作 计 计 成  数据库可视化操作工具+SQL脚本 SQL脚本 Jason Fu(SCUT) 61/90 2012-11-19
  • 63. 建筑节能数据仓库和数据分析系统 概念模型设 技术准备工 逻辑模型设 物理模型设 数据仓库生 数据仓库运 计 作 计 计 成 行与维护 使用Mondrian构建一个基于 Web的数据仓库系统 Jason Fu(SCUT) 62/90 2012-11-19
  • 64. 使用Mondrian构建一个基于Web的数据仓库系统  Mondrian是一个开源项目。一个用Java写成的OLAP引擎。它用MDX 语言实现查询,从关系数据库(RDBMS)中读取数据。然后经过Java API以多维的方式对结果进行展示。  Mondrian的使用方式同JDBC驱动类似。可以非常方便的与现有的Web 项目集成。  JPivot 是Mondrian的表现层TagLib,一直保持着良好的开发进度。  Mondrian 为客户端提供一个用于查询的API。 Jason Fu(SCUT) 63/90 2012-11-19
  • 65. 使用Mondrian构建一个基于Web的数据仓库系统 表现层 模式管 理器 多维层 Mondrian的模式 集合层 文件,它定义了 关系数据到多维 数据的映射。需 要我们生成 存储层 Jason Fu(SCUT) 64/90 2012-11-19
  • 66. 使用Mondrian构建一个基于Web的数据仓库系统  开发环境:  操作系统:Windows 7  Web服务器:Tomcat 6.0  关系数据库:MySQL 5.1  开发工具:MyEclipse 8.5 Jason Fu(SCUT) 65/90 2012-11-19
  • 67. 使用Mondrian构建一个基于Web的数据仓库系统  到Mondrian官网下载Mondrian压缩包,最新稳定版为mondrian-3.3.0.14703。  使用MyEclipse创建一个Java Web项目EnergyWarehouse。  解压Mondrian压缩包,在lib目录下找到mondrian.war,将其拓展名改为zip,直接 解压到mondrian文件夹,构建Mondrian Web项目所需的文件都在里面。 Jason Fu(SCUT) 66/90 2012-11-19
  • 68. 使用Mondrian构建一个基于Web的数据仓库系统  进入mondrian文件夹,选中jpivot、wcf二个文件夹及busy.jsp、error.jsp、testpage.jsp 三个文件,将这些资源复制到Java Web项目的WebRoot目录下。 注:jpivot、wcf这两个文件夹包含mondrian使用的图像和css文件。Busy.jsp显示等待页面、 error.jsp显示出错页面、testpage.jsp这文件的用处将在后面介绍。 Jason Fu(SCUT) 67/90 2012-11-19
  • 69. 使用Mondrian构建一个基于Web的数据仓库系统  进入mondrian文件夹的WEB-INF文件夹,选中jpivot、lib、wcf这三个文件夹,将它们 复制到Java Web项目的WEB-INF文件夹中。 注:Jpivot、wcf这两个文件夹包含jpivot和wcf用于生成用户界面的配置文件(*.xml、*.xsl)及标签文 件(*.tld)的定义。Lib文件夹包含的是mondrian所要用的java包。 Jason Fu(SCUT) 68/90 2012-11-19
  • 70. 使用Mondrian构建一个基于Web的数据仓库系统  配置Java Web项目的web.xml  过滤器  监听器  标签库 Jason Fu(SCUT) 69/90 2012-11-19
  • 71. 使用Mondrian构建一个基于Web的数据仓库系统  建立mondrian模式(schema)文件  一个mondriann模式文件定义了一个多维数据库它包含一个逻辑模型(logical model)、一组数据立方(consisting of cubes)、层次(hierarchies)、和成员 (members), 并映射到相应的物理模型上。  配置一个模式就是配置一个关系数据结构到多维数据结构的映射。  逻辑模型(logical model)是为了编写MDX查询语言而创建的,有如下概念:  数据立方(cubes);  维(dimensions);  层次(hierarchies);  级别(levels);  成员(members). Jason Fu(SCUT) 70/90 2012-11-19
  • 72. 使用Mondrian构建一个基于Web的数据仓库系统  建立mondrian模式(schema)文件 在Java Web项目的WEB-INF下新建一个queries 的文件夹,然后在该文件夹下创建一个名为 energydb.xml的文件。 Jason Fu(SCUT) 71/90 2012-11-19
  • 75. 使用Mondrian构建一个基于Web的数据仓库系统  MDX(多维表达式)  在模式文件定义完成之后,我们就可以根据它来编写相应MDX查询语句了。  MDX是一种语言,它可以表达在线分析处理(OLAP)数据库上的选择、计 算和一些元数据定义等操作,并赋予用户自定义表现查询结果的能力。  MDX 在很多方面与结构化查询语言 (SQL) 语法相似。 Jason Fu(SCUT) 74/90 2012-11-19
  • 76. 使用Mondrian构建一个基于Web的数据仓库系统  MDX(多维表达式)  基本的 MDX SELECT 语句包含一个 SELECT 子句和一个 FROM 子句,以及一个 可选的 WHERE 子句。  SELECT 子句决定 MDX SELECT 语句的轴维度。本 MDX 查询示例中定义了两个 轴维度。  FROM 子句决定当析取数据以填充 MDX SELECT 语句的结果集时将使用哪个多 维数据源。 SELECT [<axis_specification> [, <axis_specification>...]] FROM [<cube_specification>] [WHERE [<slicer_specification>]] Jason Fu(SCUT) 75/90 2012-11-19
  • 77. 使用Mondrian构建一个基于Web的数据仓库系统  创建MDX查询  Mondrian创建MDX 查询,是通过创建一个jsp文件,该jsp使用jpivot的 mondrianQuery标签来完成查询的。  Jsp文件位于Java Web项目的/WEB-INF/queries文件夹下。  该文件最后将被testpage.jsp使用。 Jason Fu(SCUT) 76/90 2012-11-19
  • 78. 使用Mondrian构建一个基于Web的数据仓库系统  一个MDX查询文件 导入jpivot 标签 指定查询所使用的模式文件 用于执行MDX查询 的jpivot标签 查询所使用的JDBC驱动 用于连接到数 需要被执行 据的url,包含 的MDX语 数据库的用户 句 名及密码等 Jason Fu(SCUT) 77/90 2012-11-19
  • 79. 使用Mondrian构建一个基于Web的数据仓库系统 模式(Schema)文  最终Java Web项目效果 件和MDX查询文件均 位于此  编写完所需的其他的MDX查询文件。  至此,完成项目的配置。 Jason Fu(SCUT) 78/90 2012-11-19
  • 80. 使用Mondrian构建一个基于Web的数据仓库系统  部署项目  部署到Tomcat服务器。  直接在MyEclipse中运行。  访问  http://localhost:8080/ EnergyWarehouse/ Jason Fu(SCUT) 79/90 2012-11-19
  • 82. 建筑节能数据仓库和数据分析系统 WITH MEMBER [Measures].[能耗占比率] AS 'iif( ([Measures].[能耗量],[时间].CurrentMember.Parent) > 0, [Measures].[能耗量] / ([Measures].[能耗量], [时间].CurrentMember.Parent), NULL )', FORMAT_STRING='Percent' select {[Measures].[能耗量], [Measures].[能耗占比率] } ON columns, NON EMPTY {([地区].[所有地区], [建筑].[所有建筑], [能源].[所有能源], [时间].[所有时间]) } ON rows from [Energys] Jason Fu(SCUT) 81/90 2012-11-19
  • 83. 建筑节能数据仓库和数据分析系统 select {[Measures].[能耗量]} ON columns, TopCount( { Descendants( [建筑].[所有建筑], 4, LEAVES ) }, 10, [Measures].[能耗量] ) ON rows from [PerCapita] Jason Fu(SCUT) 82/90 2012-11-19
  • 85. 建筑节能数据仓库和数据分析系统 系统演示 Jason Fu(SCUT) 84/90 2012-11-19
  • 86. 其他数据仓库系统  中国电信上行短信数据仓库和数据分析系统  省交通厅数据仓库系统 Jason Fu(SCUT) 85/90 2012-11-19
  • 87. 中国电信上行短信数据仓库和数据分析系统 系统演示 Jason Fu(SCUT) 86/90 2012-11-19
  • 88. 省交通厅数据仓库系统 系统演示 Jason Fu(SCUT) 87/90 2012-11-19
  • 89. Outline 1. 为什么要建数据仓库 2. 数据仓库是什么 3. 开发过程 4. 开发实例 5. Q&A Jason Fu(SCUT) 88/90 2012-11-19
  • 90. 5. Q&A Jason Fu(SCUT) 89/90 2012-11-19
  • 91. Thank You! Jason Fu(SCUT) 90/90 2012-11-19