zoukankan      html  css  js  c++  java
  • OLAP的多维数据分析

      联机分析处理(OLAP)的概念最早是由关系数据库之父E.F.Codd1993年提出的。当时,Codd认为联机事务处理(OLTP)已不能满足终端用户对数据库查询分析的需要,SQL对大数据库进行的简单查询也不能满足用户分析的需求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此Codd提出了多维数据库和多维分析的概念,OLAP
    一、OLAP的概念
      
    根据OLAP产品的实际应用情况和用户对OLAP产品的需求,人们提出了一种对OLAP更简单明确的定义,即共享多维信息的快速分析。
    (1)
    快速性
      
    用户对OLAP的快速反应能力有很高的要求。系统应能在5秒内对用户的大部分分析要求做出反应。如果终端用户在30秒内没有得到系统响应就会变得不耐烦,因而可能失去分析主线索,影响分析质量。

    (2)可分析性

    OLAP
    系统应能处理与应用有关的任何逻辑分析和统计分析。尽管系统需要事先编程 ,但并不意味着系统已定义好了所有的应用。用户无需编程就可以定义新的专门计算,将其作为分析的一部分,并以用户理想的方式给出报告。
    (3)
    多维性
      
    多维性是OLAP的关键属性。系统必须提供对数据分析的多维视图和分析,包括对层次维和多重层次维的完全支持。事实上,多维分析是分析企业数据最有效的方法,OLAP的灵魂。
    (4)
    信息性
      
    不论数据量有多大,也不管数据存储在何处,OLAP系统应能及时获得信息,并且管理大容量信息。这里有许多因素需要考虑,如数据的可复制性、可利用的磁盘空间、OLAP产品的性能及与数据仓库的结合度等。
    二、OLAP的多维数据概念
      
    多维结构是决策支持的支柱,也是OLAP的核心。OLAP展现在用户面前的是一幅幅多维视图。
    1.

      
    假定某某是个百货零售商,有一些因素会影响他的销售业务,如商品、时间、商店或流通渠道,更具体一点,如品牌、月份、地区等。对某一给定的商品,也许他想知道该商品在哪个商店和哪段时间的销售情况。对某一商店,也许他想知道哪个商品在哪段时间的销售情况。在某一时间,也许他想知道哪个商店哪种产品的销售情况。因此,他需要决策支持来帮助制定销售政策。这里,商店、时间和产品都是维。各个商店的集合是一维,时间的集合是一维,商品的集合是一维。维就是相同类数据的集合,也可以理解为变量。而每个商店、每段时间、每种商品都是某一维的一个成员。每个销售事实由一个特定的商店、特定的时间和特定的商品组成。
    维有自己固有的属性,如层次结构(对数据进行聚合分析时要用到)、排序(定义变量时要用到)、计算逻辑(是基于矩阵的算法,可有效地指定规则)。这些属性对进行决策支持是非常有用的。
    2.
    多维性
      
    人们很容易理解一个二维表(如通常的电子表格),对于三维立方体同样也容易理解。 OLAP通常将三维立方体的数据进行切片,显示三维的某一平面。如一个立方体有时间维、商品维、收入维,其图形很容易在屏幕上显示出来并进行切片。但是要加一维(如加入商店维),则图形很难想象,也不容易在屏幕上画出来。要突破三维的障碍,就必须理解逻辑维和物理维的差异。OLAP的多维分析视图就是冲破了物理的三维概念,采用了旋转、嵌套、切片、钻取和高维可视化技术,在屏幕上展示多维视图的结构,使用户直观地理解、分析数据,进行决策支持。
    三、OLAP的多维数据结构

    数据在多维空间中的分布总是稀疏的、不均匀的。在事件发生的位置,数据聚合在一起,其密度很大。因此,OLAP系统的开发者要设法解决多维数据空间的数据稀疏和数据聚合问题。事实上,有许多方法可以构造多维数据。

    1.
    超立方结构
      
    超立方结构(Hypercube)指用三维或更多的维数来描述一个对象,每个维彼此垂直。数据的测量值发生在维的交叉点上,数据空间的各个部分都有相同的维属性。这种结构可应用在多维数据库和面向关系数据库的OLAP系统中,其主要特点是简化终端用户的操作。
    超立方结构有一种变形,即收缩超立方结构。这种结构的数据密度更大,数据的维数更少,并可加入额外的分析维。

    2.
    多立方结构
      
    在多立方结构(Multicube),将大的数据结构分成多个多维结构。这些多维结构是大数据维数的子集,面向某一特定应用对维进行分割,即将超立方结构变为子立方结构。它具有很强的灵活性,提高了数据(特别是稀疏数据)的分析效率。
    3. 活动数据的存储
      
    用户对某个应用所提取的数据称为活动数据,它的存储有以下三种形式:
    (1)
    关系数据库

      
    如果数据来源于关系数据库,则活动数据被存储在关系数据库中。在大部分情况下, 数据以星型结构或雪花结构进行存储。
    (2)
    多维数据库

      
    在这种情况下,活动数据被存储在服务器上的多维数据库中,包括来自关系数据库和终端用户的数据。通常,数据库存储在硬盘上,但为了获得更高的性能,某些产品允许多维数据结构存储在RAM上。有些数据被提前计算,计算结果以数组形式进行存储。
    (3)
    基于客户的文件
      
    在这种情况下,可以提取相对少的数据放在客户机的文件上。这些数据可预先建立, Web文件。与服务器上的多维数据库一样,活动数据可放在磁盘或RAM上。这三种存储形式有不同的性能,其中关系数据库的处理速度大大低于其他两种。
    4.OLAP
    数据的处理方式

    OLAP
    有三种数据处理方法。事实上,多维数据计算不需要在数据存储位置上进行。
    (1)
    关系数据库

      
    即使活动的OLAP数据存储在关系数据库中,采用在关系数据库上完成复杂的多维计算也不是较好的选择。因为SQL的单语句并不具备完成多维计算的能力,要获得哪怕是最普通的多维计算功能也需要多重SQL。在许多情况下,一些OLAP工具用SQL做一些计算,然后将计算结果作为多维引擎输入。多维引擎在客户机或中层服务器上做大部分的计算工作 ,这样就可以利用RAM来存储数据,提高响应速度。
    (2)
    多维服务引擎
      
    大部分OLAP应用在多维服务引擎上完成多维计算,并且具有良好的性能。因为这种方式可以同时优化引擎和数据库,而服务器上充分的内存为有效地计算大量数组提供了保证。
    (3)
    客户机

    在客户机上进行计算,要求用户具备性能良好的PC,以此完成部分或大部分的多维计算。对于日益增多的瘦型客户机,OLAP产品将把基于客户机的处理移到新的Web应用服务器上。

    四、 OALP的多维数据分析
    1.
    切片和切块
      
    在多维数据结构中,按二维进行切片,按三维进行切块,可得到所需要的数据。如在" 城市、产品、时间"三维立方体中进行切块和切片,可得到各城市、各产品的销售情况
    2.
    钻取
      
    钻取包含向下钻取和向上钻取操作,
    钻取的深度与维所划分的层次相对应。

    3.
    旋转
      
    通过旋转可以得到不同视角的数据。

  • 相关阅读:
    容器跨主机网络通信学习笔记(以Flannel为例)
    Kubernetes控制器Job和CronJob
    记一次使用Flannel插件排错历程
    Kubernetes控制器Deployment
    Kubernetes如何通过StatefulSet支持有状态应用?
    react18 来了,我 get 到...
    gojs 实用高级用法
    vuecli3 vue2 保留 webpack 支持 vite 成功实践
    calibre 报错 This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. 解决
    unable to recognize "*.yaml": no matches for kind "RoleBinding" in version "rbac.authorization.k8s.io/v1beta1"
  • 原文地址:https://www.cnblogs.com/emmy/p/1969664.html
Copyright © 2011-2022 走看看