免费下载!由 O’Reilly 出版的《NGINX 完全指南》中文版已正式上线 了解详情
写点什么

Apache Kylin 权威指南(四):核心概念

  • 2020-04-16
  • 本文字数:2405 字

    阅读完需:约 8 分钟

Apache Kylin权威指南(四):核心概念

编者按:本文节选自华章科技大数据技术丛书 《Apache Kylin 权威指南(第 2 版)》一书中的部分章节。

核心概念

在使用 Apache Kylin 之前,需要先了解一下 Apache Kylin 中的各种概念和术语,为后续章节的学习奠定基础。

数据仓库、OLAP 与 BI

数据仓库(Data Warehouse)是一种信息系统的资料储存理论,此理论强调的是利用某些特殊资料储存方式,让所包含的资料特别有利于分析处理,从而产生有价值的资讯并依此做决策。


利用数据仓库方式存放的资料,具有一旦存入,便不随时间变化而变动的特性,此外,存入的资料必定包含时间属性,通常,一个数据仓库会含有大量的历史性资料,并且它利用特定分析方式,从中发掘出特定的资讯。


OLAP(Online Analytical Process),即联机分析处理,它可以以多维度的方式分析数据,并且能弹性地提供上卷(Roll-up)、下钻(Drill-down)和透视分析(Pivot)等操作,是呈现集成性决策信息的方法,其主要功能在于方便大规模数据分析及统计计算,多用于决策支持系统、商务智能或数据仓库。与之相区别的是联机交易处理(OLTP),联机交易处理侧重于基本的、日常的事务处理,包括数据的增、删、改、查。


  • OLAP 需要以大量历史数据为基础,配合时间点的差异并对多维度及汇整型的信息进行复杂的分析。

  • OLAP 需要用户有主观的信息需求定义,因此系统效率较高。


OLAP 的概念,在实际应用中存在广义和狭义两种不同的理解。广义上的理解与字面意思相同,泛指一切不对数据进行更新的分析处理,但更多的情况下 OLAP 被理解为狭义上的含义,即与多维分析相关,是基于立方体(CUBE)计算而进行的分析。


BI(Business Intelligence),即商务智能,是指用现代数据仓库技术、在线分析技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。


如今,许多企业已经建立了自己的数据仓库,用于存放和管理不断增长的数据,这些数据中蕴含着丰富的商业价值,但只有使用分析工具对其进行大量筛选、计算和展示后,数据中蕴含的规律、价值和潜在信息才能被人们所发现与利用。分析人员结合这些信息进行商业决策和市场活动,从而为用户提供更好的服务,为企业创造更大的价值。

维度建模

维度建模用于决策制定,并侧重于业务如何表示和理解数据。基本的维度模型由维度和度量两类对象组成。维度建模尝试以逻辑、可理解的方式呈现数据,以使得数据的访问更加直观。维度设计的重点是简化数据和加快查询。


维度模型是数据仓库的核心。它经过精心设计和优化,可以为数据分析和商业智能(BI),检索并汇总大量的相关数据。在数据仓库中,数据修改仅定期发生,并且是一次性开销,而读取是经常发生的。对于一个数据检索效率比数据处理效率重要得多的数据结构而言,非标准化的维度模型是一个不错的解决方案。


在数据挖掘中有几种常见的多维数据模型,如星形模型(Star Schema)、雪花模型(Snowflake Schema)、事实星座模型(Fact Constellation)等。


星形模型中有一个事实表,以及零个或多个维度表,事实表与维度表通过主键外键相关联,维度表之间没有关联,就像很多星星围绕在一个恒星周围,故名为星形模型。


如果将星形模型中的某些维度表再做规范,抽取成更细的维度表,让维度表之间也进行关联,那么这种模型称为雪花模型。


事实星座模型是更为复杂的模型,其中包含多个事实表,而维度表是公用的,可以共享。

事实表和维度表

事实表(Fact Table)是指存储事实记录的表,如系统日志、销售记录等,并且是维度模型中的主表,代表着键和度量的集合。事实表的记录会不断地动态增长,所以它的体积通常远大于其他表,通常事实表占据数据仓库中 90%或更多的空间。


维度表(Dimension Table),也称维表或查找表(Lookup Table),是与事实表相对应的一种表。维度表的目的是将业务含义和上下文添加到数据仓库中的事实表和度量中。维度表是事实表的入口点,维度表实现了数据仓库的业务接口。它们基本上是事实表中的键引用的查找表。它保存了维度的属性值,可以与事实表做关联,相当于将事实表上经常出现的属性抽取、规范出来用一张表进行管理,常见的维度表有:日期表(存储日期对应的 周、月、季度等属性)、地点表(包含国家、省/州、城市等属性)等。使用维度表的好处如下:


  • 减小了事实表的大小;

  • 便于维度的管理和维护,增加、删除和修改维度的属性时,不必对事实表的大量记录进行改动;

  • 维度表可以为多个事实表同时使用,减少重复工作。

维度和度量

维度和度量是数据分析中的两个基本概念。


维度是人们观察数据的特定角度,是考虑问题时的一类属性。它通常是数据记录的一个特征,如时间、地点等。同时,维度具有层级概念,可能存在细节程度不同的描述方面,如日期、月份、季度、年等。


在数据仓库中,可以在数学上求和的事实属性称为度量。例如,可以对度量进行总计、平均、以百分比形式使用等。度量是维度模型的核心。通常,在单个查询中检索数千个或数百万个事实行,其中对结果集执行数学方程。


在一个 SQL 查询中,Group By 的属性通常就是维度,而其所计算的值则是度量,如在下面这个查询中,part_dt 和 lstg_site_id 是维度,sum(price)和 count(distinct seller_id)是度量。


select part_dt, lstg_site_id, sum(price) as total_selled, count(distinct seller_id)as sellers from kylin_sales group by part_dt, lstg_site_id
复制代码

Cube、Cuboid 和 Cube Segment

Cube(或称 Data Cube),即数据立方体,是一种常用于数据分析与索引的技术,它可以对原始数据建立多维度索引,大大加快数据的查询效率。


Cuboid 特指 Apache Kylin 中在某一种维度组合下所计算的数据。


Cube Segment 指针对源数据中的某一片段计算出来的 Cube 数据。通常,数据仓库中的数据数量会随时间的增长而增长,而 Cube Segment 也是按时间顺序构建的。


图书简介https://item.jd.com/12566389.html



相关阅读


Apache Kylin权威指南(一):背景历史和使命


Apache Kylin权威指南(二):工作原理


Apache Kylin权威指南(三):技术架构


2020-04-16 10:00945

评论

发布
暂无评论
发现更多内容

二、docker 镜像容器常用操作(让我们用docker 溜得飞起)

Java 程序员 后端

从0到1,阿里巴巴定制版的JVM高手实战清单!深度广度环环相扣

Java 程序员 后端

【Flutter 专题】22 图解 PopupMenu 那些事儿

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

五分钟搞懂spring-cloud-square,linux服务器开发需要的技术

Java 程序员 后端

五分钟!搞懂 MySQL主从复制原理,还不会算我输

Java 程序员 后端

什么是接口的幂等性,如何实现接口幂等性?,mongodb实战第二版下载

Java 程序员 后端

什么?我往Redis写的数据怎么没了?,java自学教程百度文库

Java 程序员 后端

Vue进阶(幺伍玖):动态样式设置

No Silver Bullet

Vue 样式设置 11月日更

今年面试大厂屡屡失败,一波三折最终入职拼多多java岗,我经历啥

Java 程序员 后端

今日头条一面:十道经典面试题解析(1),阿里巴巴java面试几轮

Java 程序员 后端

从 Java 到 Scala,再到 Kotlin,java面试知识点太多

Java 程序员 后端

从一道 LRU 算法题说到缓存淘汰策略,Java常用面试集合

Java 程序员 后端

从月薪 1000 到 2W+,文科生如何逆袭成为大厂程序员

Java 程序员 后端

什么会导致Java应用程序的CPU使用率飙升?,spring快速入门教程

Java 程序员 后端

京东4面(Java研发):事务隔离,java程序设计案例教程机械工业出版社

Java 程序员 后端

京东热-key-探测框架新版发布,单机-QPS-可达-35-万

Java 后端

001|看!Swift 与 C++ 的交互性

棒棒彬👻

swift 编程语言 CocoaPods 编译优化

从月薪10K不到,到面进阿里拿40K+offer,java类加载器原理

Java 程序员 后端

从源码的角度搞懂Java代理模式,那些面试中你最容易忽略的细节

Java 程序员 后端

云小课 | 使用ROMA API,API管理从此不用愁!

华为云开发者联盟

API 华为云 ROMA API全生命周期管理 ROMA API

五、redis配置信息以及常用命令,java语言程序设计基础篇第十一版pdf

Java 程序员 后端

架构实战营模块二作业

孙志强

架构实战营

五位阿里大牛联手撰写的《深入浅出Java多线程》

Java 程序员 后端

000|发刊词:与技术世界保持链接

棒棒彬👻

技术 知识分享

今日头条一面:十道经典面试题解析,我的腾讯Java面试经历分享

Java 程序员 后端

从国企到互联网,程序员六年四段经历,一份被很多 HR 刷掉的简历

Java 程序员 后端

产品经理必懂的技术那点事儿(中),mybatis基本工作原理

Java 程序员 后端

什么是服务网格?,P8级别的顶级“并发编程”宝典

Java 程序员 后端

从JVM锁到Redis分布式锁,对小白十分友好,java最新技术栈百度网盘

Java 程序员 后端

从外卖员到程序员,自学3年终于转行成功,三面

Java 程序员 后端

云服务器下centos7,nginx面试题

Java 程序员 后端

Apache Kylin权威指南(四):核心概念_架构_Apache Kylin核心团队_InfoQ精选文章