• Saiku的基本使用介绍(三)


    Saiku的基本使用介绍(这里都是使用Admin用户登录系统)

    1、启动安装好的Saiku  ( ./start-saiku.sh ) ,浏览器使用访问系统 http://localhost:8080 ,然后使用 admin admin 登录系统

     2、 登录系统后,首先点击 A ,进入管理控制平台(添加数据源信息)

    2.1 根据需要连接的数据源信息中的数据(本文中连接Mysql数据库),编写对应的schame文件,(这里schame文件的配置了两个cube ,第一个是一张表一个cube配置,第二个是双表对应一个cube)

      <Dimension> 标签定义维度信息

      <Hierarchy> 标签 定义层次信息

      <Level>标签中定义具体的列信息 (对应数据库中的 字段名)

      <Measure> 标签定义度量信息 注意度量信息中指定的字段需为数据类型,需要进行运算

      <Schema> 标签定义当前文件在saiku中的数据源信息名称  

      <Cube> 标签定义数据信息(可以理解为用于展示数据的名称)

      <Table> 标签 定义数据库中的表名

      一个Schame文件中可以配置多个Cube,

      一个Cube 中可以配置多个Dimension ,多个Table,多个Measure

      一个Dimension中可以配置多个Level信息

      MDX的数据类型:String   Numeric Integer Boolean Time  Timestamp (在配置中使用datatype字段指定)

      report.xml 文件内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <Schema name="report">
     
    	<!-- 测试数据量 -->
    	<Cube name="测试数据量1w">
             
    	<Table name="rs_testdata" />  
    	<Dimension name="序号" foreignKey="ID" >
                <Hierarchy  hasAll="true" primaryKey="ID" allMemberName="序号" >
                  <Level name="序号" column="ID" uniqueMembers="true" />
                </Hierarchy>
            </Dimension> 
    		 <Dimension name="SEQ" foreignKey="ID" >
                <Hierarchy  hasAll="true" primaryKey="ID" allMemberName="SEQ" >
                  <Level name="SEQ" column="seq" uniqueMembers="true" />
                </Hierarchy>
            </Dimension> 
    		 <Dimension name="姓名" foreignKey="ID" >
                <Hierarchy  hasAll="true" primaryKey="ID" allMemberName="姓名" >
                  <Level name="姓名" column="name" uniqueMembers="true" />
                </Hierarchy>
            </Dimension> 
             
            <Measure name="序號" column="ID"  aggregator="sum" />
             
        </Cube>
         
    	
    	<!-- 匯總數據表 summaryKpi 	-->
    	<Cube name="SummaryKpi匯總數據">
    
    	<Table name="rs_kpisummary_data" />  
    	    <Dimension name="序號" foreignKey="ID" >
    		<Hierarchy  hasAll="true" primaryKey="ID" allMemberName="序號" >
    			 <Level name="序號" column="ID" uniqueMembers="true" />
    		</Hierarchy>
               </Dimension> 
    		
    		
    		
            <Dimension  name="維度" foreignKey="kpiKey"  ><!-- 这里的foreignKey指的是rs_kpisummary_data表中的kpiKey-->
                <Hierarchy hasAll="true" allMemberName="維度信息"  primaryKey="kpiKey" primaryKeyTable="rs_kpisummary_template"> <!--这里的primaryKey指的是rs_kpisummary_template表中的kpiKey-->
    				<Table name="rs_kpisummary_template" /> 
                    <Level name="部門"  table="rs_kpisummary_template" column="department" nameColumn="department"  uniqueMembers="false" ></Level>
                    <Level name="類別"  table="rs_kpisummary_template" column="kpiType" nameColumn="kpiType"  uniqueMembers="false" ></Level>
    				<Level name="序號"  table="rs_kpisummary_template" column="kpiSeqno" nameColumn="kpiSeqno"  uniqueMembers="false" ></Level>
    				<Level name="指標名稱"  table="rs_kpisummary_template" column="kpiName" nameColumn="kpiName"  uniqueMembers="false" ></Level>
    				<Level name="指標說明"  table="rs_kpisummary_template" column="kpiDesc" nameColumn="kpiDesc"  uniqueMembers="false" ></Level>
    				<Level name="備註"  table="rs_kpisummary_template" column="remarks" nameColumn="remarks"  uniqueMembers="false" ></Level>
    				<Level name="達標率"  table="rs_kpisummary_template" column="rate" nameColumn="rate"  uniqueMembers="false" ></Level>
    				<Level name="指標明細區分字段A"  table="rs_kpisummary_template" column="kpiKey" nameColumn="kpiKey"  uniqueMembers="false" ></Level>
    			</Hierarchy>
            </Dimension>
    
    		<Dimension name="統計日期" foreignKey="ID" >
                <Hierarchy  hasAll="true"  primaryKey="ID" allMemberName="統計日期" >
    		<Level name="統計日期" table="rs_kpisummary_data" column="countdate" type='Date' uniqueMembers="false" />
                </Hierarchy>
            </Dimension>
    
    		
    		<Measure name="周完成量" table="rs_kpisummary_data"  column="weekFinishNum"  datatype="Integer" aggregator="sum" />
    		<Measure name="周總量" table="rs_kpisummary_data" column="weekTotalNum" datatype="Integer" aggregator="sum" />
    		<Measure name="周KPI" table="rs_kpisummary_data" column="weekKPI" datatype="Numeric" aggregator="sum" />
    		<Measure name="月完成量" table="rs_kpisummary_data" column="monthFinishNum" datatype="Integer" aggregator="sum" />
    		<Measure name="月總量" table="rs_kpisummary_data" column="monthFinishNum"  datatype="Integer" aggregator="sum" />
    		<Measure name="月KPI" table="rs_kpisummary_data" column="monthKPI" datatype="Numeric" aggregator="sum" />
    	
             
        </Cube>
    	
    </Schema>
    

      

    2.2 将编写的report.xml文件上传到saiku,上传步骤 :

      1. 选中 add Schame 

      2. 选中刚刚编写的report.xml

      3. 点击上传(Upload)

    2.3 添加数据源信息:

      输入数据库相关信息,如果是第一次使用记得将对应的数据库驱动包放入 saiku的lib目录下 ( saiku-latestsaiku-server omcatwebappssaikuWEB-INFlib )

     3、 新建查询 ,开始使用saiku展示数据

      前面两个是saiku自带的元数据信息

      report: 就是我们配置的Schame中的数据信息

      report目录下的数据就是我们配置的Cube信息

     3.1 选中配置好的Cube   SummaryKpi匯總數據

    3.2 界面分析:简单的操作方法是通过拖拽指标信息以及维度信息实现数据的展示,请注意每个数据只能被拖到一个展示框哦!

    (比如:序号拖拽为列信息,就不能再把序号拖拽为行信息了,如果需要序号变为行则必须将列下方的序号删除 再次重新拖拽)

    3.3 以图表的形式展示数据效果如图:

    3.4 指标相关信息分析: 右击指标,效果如图:(可一 一点击进行试验)

      Columns | Measures :    先展示列数据,然后将指标信息在列数据后展示 (指标信息以列数据格式展示)

      Measures| Columns:    先展示指标信息数据,然后将列信息数据在指标数据后展示 (指标信息以列数据格式展示)

      Rows | Measures :    先展示行数据,然后将指标信息在行数据后展示 (指标信息以行数据格式展示)

      Columns | Rows:    先展示指标信息数据,然后将行数据信息在指标数据后展示 (指标信息以行数据格式展示)

      Reset Deafult: 回复为默认的数据展示形式 (Columns | Measures )

    3.5 查看当前数据的汇总计算数据信息:(点击右侧的图标,再点击一次会恢复到之前的Table数据)

     

    3.6 对数据进行筛选:(行数据 以及 列数据 中 的每一项数据都可以使用此方法进行筛选)

     3.6.1 筛选数据查询使用示例:

      1 输入查询关键字 : 保

      2 点击 Pre-Filter on Server 然后就会得到查询结果

    4. 数据筛选示例:

      1 选定数据添加到右侧 Used members

      2 (可选)  设置参数名 sectionParam

      3 点击OK

    数据筛选之后的效果:

     Parameter 参数使用效果:

    5 添加指标信息:

      1 点击指标右侧的添加

      2. 填写弹出框中的数据信息

      Name : 指标名称

      Formula : 对指标或者维度进行计算的 MDX表达式

    5.1 添加新指标示例: 

    此表达式的含义: 判断维度信息 部门 所对应的值中是包含 新業務 这三个字,如果包含 新指标中的 部门判断值则为 新單,如果不包含 部門判斷值則為 非新單。

    IIf(Logic_Expresssion,value1,value2) : 這是一個If判斷,如果前面的表达式为真,则取第一个值 value1,如果表达式的结果为false ,则取第二个值 value2.

    Instr(String1,String2) : 这个函数用来判断字符串的包含关系,String1表示比较的字符串,String2是被比较的字符串。(这里是判断String1中是否包含String2字符串,返回的是下标信息),结果大于0 表示包含,否则就表示不包含。

    IIf(Instr([維度].[維度].[部門].CurrentMember.Name,"新業務")>0,"新單","非新單")   

    ps: 记得 Dimension  选择 Measures

     

    添加新指标后的效果:

    以上就是saiku的基本操作啦,接下来更深层次的操作待后期研究,最后我们编辑好一个文件后要记得保存哦!

    6 保存数据文件

      1. 点击保存标

      2. 选中存储目录  datasources

      3. 输入保存的文件名  save

      4. 点击 save

     

    查看我们保存的数据信息:

    Saiku数据显示格式问题1:  null值显示控制

    默认显示为 #null

    可通过修改配置文件 mondrain.properties 文件,让列数据为空时显示需要的数据

    文件路径: saiku-server omcatwebappssaikuWEB-INFclassesmondrain.properties

    ## 注意这是部分配置信息
    
    ###############################################################################
    # Property that determines how a null member value is represented in the
    # result output.
    # AS 2000 shows this as empty value
    # AS 2005 shows this as "(null)" value
    #
    #mondrian.olap.NullMemberRepresentation=#null  

    修改之后的文件为:

    ## 注意这是部分配置信息
    
    ###############################################################################
    # Property that determines how a null member value is represented in the
    # result output.
    # AS 2000 shows this as empty value
    # AS 2005 shows this as "(null)" value
    #
    mondrian.olap.NullMemberRepresentation=  

    然后重新启动Saiku ,再查看数据就会发现所有为null的数据信息都会不显示任何内容。

  • 相关阅读:
    训练计划
    LA_3942 LA_4670 从字典树到AC自动机
    HDU 6180 Schedule
    HDU 6153 KMP
    HDU 2087 HDU 1867 KMP标准模板题
    Struts2学习8--文件上传(单个文件上传)
    SSH错误之--Error getting property descriptor: null at com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor.getProperty
    Struts2学习7---集合类型的类型转换
    工具-windows命令--查看端口占用情况,关闭端口
    Struts2学习6—OGNL (1)
  • 原文地址:https://www.cnblogs.com/DFX339/p/10316309.html
Copyright © 2020-2023  润新知