Apache Kylin 入门系列目录

  • Apache Kylin 入门 1 - 基本概念
  • Apache Kylin 入门 2 - 原理与架构
  • Apache Kylin 入门 3 - 安装配置参数详解
  • Apache Kylin 入门 4 - 构建 Model
  • Apache Kylin 入门 5 - 构建 Cube
  • Apache Kylin 入门 6 - 优化 Cube
  • 基于 ELKB 构建 Kylin 查询时间监控页面

Apache Kylin 简介

Apache Kylin 是一个开源的分布式分析引擎,提供 Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay Inc. 开发并贡献至开源社区,它能在亚秒内查询巨大的 Hive 表。

Apache Kylin 的特性:

  • 可扩展的超快 OLAP 引擎: Kylin 是为减少在 Hadoop/Spark 上百亿规模数据查询延迟而设计;
  • Hadoop ANSI SQL 接口: Kylin 为 Hadoop 提供标准 SQL 支持大部分查询功能;
  • 交互式查询能力: 通过 Kylin,用户可以与 Hadoop 数据进行亚秒级交互,在同样的数据集上提供比 Hive 更好的性能;
  • 多维立方体(MOLAP Cube): 用户能够在 Kylin 里为百亿以上数据集定义数据模型并构建立方体;
  • 与 BI 工具无缝整合: Kylin 提供与 BI 工具的整合能力,如 Tableau,PowerBI/Excel,MSTR,QlikSense,Hue 和 SuperSet

其他特性:

  • Job 管理与监控
  • 压缩与编码
  • 增量更新
  • 利用 HBase Coprocessor
  • 基于 HyperLogLog 的 Dinstinc Count 近似算法
  • 友好的 web 界面以管理,监控和使用立方体
  • 项目及表级别的访问控制安全
  • 支持 LDAP、SSO

数据仓库基本概念

数据仓库(Data Warehouse)

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

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

STAGE 层

STAGE 层作为数据缓冲层,主要负责采集不同类型的业务系统数据并保存一定期限内的相关业务数据,完成不同类型数据源的统一临时存储,同时避免 ETL 操作对业务系统性能造成影响,STAGE 层数据在数据结构、数据之间的逻辑关系上都与业务系统基本保持一致。

ODS 数据层

ODS(Operational Data Store)层数据来源于 STAGE 层,它的数据经过了对 STAGE 层数据的清洗,包括编码表去重、去空、垃圾数据过滤、数据类型规则化等。

另外 ODS 作为 DW 和 STAGE 层的桥梁,也可以实现指标一致性的管理,将不同系统不同部门相同指标的定义及指标数据按照业务规则取其一,保证不同源数据的数据一致性,也可以满足用户对明细数据的查询要求,直接从ODS层获取明细数据进行分析。

DWD 数据层

DWD(Data Warehouse Detail)层数据是将 ODS 层数据根据数据清洗规则,经过质量检查、数据清洗、转换、标准化后,形成符合质量要求的公共数据中心。

把 ODS 数据表结构改变成项目主题数据仓库的表结构,对 DWD 层的所有表添加了代理键,标准化了业务系统编码类型不统一的问题,建立了数据仓库维度表和事实表的关联体系,也为缓慢变化维的实现奠定了基础。

DWC 数据层

DWC(Data Warehouse Center)层主要管理固化报表的数据存储,数据主要来源于 DWD 层,根据前台所需数据建立物理模型,使用 ETL 抽取 DWD 层数据推送给 DWC 层,这样显著减少前台应用直接关联 DWD 层查询明细数据的成本,提高平台数据获取的速度。

DM 数据层

DM(Data Mart)层即数据集市,将指标与维度建立物理模型组成数据集市,这是 OLAP 的数据基础。该层实现了合并不同系统的数据源来满足面向主题的业务需求,它的建模是终端用户驱动的,也是由业务需求驱动的。按主题,维度及 KPI 指标对 DM 层进行模型设计、建模,DM 层数据是将 DWD 层数据进行进一步整合、转换、汇总、计算等 ETL 操作处理获取的。

Kylin 基本概念

事实表(Fact Table)

事实表(Fact Table)是指存储有事实记录的表,如系统日志、销售记录等;事实表的记录在不断地动态增长,所以它的体积通常远大于其他表。

维度表(Dimension Table)

维度表或维表,有时也称查找表(Lookup Table),是与事实表相对应的一种表。它保存了维度的属性值,可以跟事实表做关联;相当于将事实表上经常重复出现的属性抽取、规范出来用一张表进行管理。

维度表有以下几个优点:

  • 缩小了事实表的大小;
  • 便于维度的管理和维护,不必对事实表进行改动;
  • 维度表可以为多个事实表重用,以减少重复工作。

维度(Dimension)

维度是观察数据的角度,一般是一组离散的值;因此统计时可以把维度值相同的记录聚合在一起,然后进行聚合计算。

在 Kylin Cube 构建中,维度可以分为以下几种类型:

  • Mandatory:必需维度,查询中总是出现在 where 条件中的维度;如果一个维度被标记为 “Mandatory”,会认为所有的查询都会包含此维度,所有不含此维度的组合,在 Cube 构建时都会被剪枝(不计算);
  • Hierarchy:层级维度,如果多个维度之间有层级(或包含)的关系,通过设置为 “Hierarchy”,那些不满足层级的组合会被剪枝;如果A, B, C是层级,并且A>B>C,那么只需要计算组合A, AB, ABC; 其它组合如B, C, BC, AC将不做预计算;
  • Joint:联合维度,有些维度往往一起出现,或者它们的基数非常接近(有 1:1 映射关系),例如 “用户 ID”总是对应唯一的 “用户名”;
  • Derived:衍生维度:维度表的列值,可以从它的主键值衍生而来,那么通过将这些列定义为衍生维度,可以仅将主键加入到 Cube 的预计算来,而在运行时通过使用维度表的快照,衍生出非主键列的值,从而起到降维的效果。

度量(Measure)

度量是被聚合的统计值,也是聚合运算的结果,它一般是连续的值。

OLAP(Online Analytical Process)

OLAP(Online Analytical Process),联机分析处理,以多维度的方式分析数据,而且能够弹性地提供上卷(Roll-up)、下钻(Drill-down)和透视分析(Pivot)等操作,它是呈现集成性决策信息的方法,多用于决策支持系统、商务智能或数据仓库。其主要的功能在于方便大规模数据分析及统计计算,可对决策提供参考和支持。

与之相区别的是联机交易处理(OLTP),联机交易处理,更侧重于基本的、日常的事务处理,包括数据的增删改查。

星型模型

星型模型是一种多维的数据关系,它由一个事实表和一组维表组成。每个维表都有一个维作为主键,所有这些维的主键组合成事实表的主键。强调的是对维度进行预处理,将多个维度集合到一个事实表,形成一个宽表。

这也是我们在使用 Hive 时,经常会看到一些大宽表的原因,大宽表一般都是事实表,包含了维度关联的主键和一些度量信息,而维度表则是事实表里面维度的具体信息,使用时候一般通过 Join 来组合数据,相对来说对 OLAP 的分析比较方便。

雪花模型

当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。

雪花模型是对星型模型的扩展,它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的"层次"区域,这些被分解的表都连接到主维度表而不是事实表。

雪花模型更加符合数据库范式,减少数据冗余,但是在分析数据的时候,操作比较复杂,需要 Join 的表比较多所以其性能并不一定比星型模型高。

数据立方体(Data Cube)

数据立方体允许多维对数据建模和观察,它由维和事实定义,它是对多维模型的一个形象的说法。

从表方面看,数据立方体是三维的,但是多维模型不仅限于三维模型,可以组合更多的模型,比如四维、五维等等,比如我们根据时间、地域、产品和产品型号这四个维度,统计销售量等指标。

对于每一种维度的组合,将度量做聚合运算,然后将运算的结果保存为一个物化视图,称为 Cuboid。所有维度组合的 Cuboid 作为一个整体,被称为 Cube。所以简单来说,一个 Cube 就是许多按维度聚合的物化视图的集合。

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

Cuboid 示例:Cuboid[Time, Locatio] = select Time, Location, sum(GMV) as GMV from T group by Time, Location

Cube 构建常见概念

  • Table - 表, 是 Cube 的数据源;在创建 Cube 之前,需要从数据源(通常为 Hive)同步表的元数据,包含表名、列名、列属性等。
  • Data Model - 数据模型,定义了由若干张表的一个连接关系。支持星型模型的多维分析;在创建Cube之前,用户需定义这么一个数据模型。
  • Cube - 数据立方体,是一种多维分析的技术,通过预计算,将计算结果存储在某多个维度值所映射的空间中;在运行时通过对 Cube 的再处理而快速获取结果。
  • Partition - 分区,用户可以定义一个分区日期或时间列,随后对 Cub e的构建按此列的值范围而进行,从而将 Cube 分成多个 Segment。
  • Cube Segment - 每个 Cube Segment 是对特定时间范围的数据计算而成的 Cube,每个 Segment 对应一张 HBase 表。
  • Aggregation Group - 聚合组,每个聚合组是全部维度的一个子集;通过将很多个维度分组,并把常一起使用的维度放在一起,可以有效降低 Cube 的组合数。

Any Code,Code Any!

扫码关注『AnyCode』,编程路上,一起前行。

Apache Kylin 入门 1 - 基本概念相关推荐

  1. Apache Kylin新手入门指南

    Apache Kylin新手入门指南 文章目录 Apache Kylin新手入门指南 1 Apache Kylin是什么 2 为什么使用Apache Kylin 3 Apache Kylin的易用性如 ...

  2. 5000 字带你快速入门 Apache Kylin

    01 什么是 Kylin Apche Kylin 是 Hadoop 大数据平台上的一个开源 OLAP 引擎.它采用多维立方体(Cube)预计算技术,可以将某些场景下的大数据 SQL 查询速度提升到亚秒 ...

  3. Apache Kylin从入门到精通

    Kylin 文章目录 Kylin 一.概述 1.1 Kylin定义 1.2 Kylin架构 1.3 Kylin特点 1.4 Apache Kylin4 概述 为什么选择 Parquet 替换 HBas ...

  4. Apache Kylin(麒麟)入门介绍

    为什么需要Kylin? Hadoop帮助我们解决了海量数据的存储. 早期使用Hadoop的MapReduce计算模型,太慢了,只能做离线计算,无法做实时计算与迭代式计算. Spark应运而生,并带动了 ...

  5. 【转】使用Apache Kylin搭建企业级开源大数据分析平台

    http://www.thebigdata.cn/JieJueFangAn/30143.html 本篇文章整理自史少锋4月23日在『1024大数据技术峰会』上的分享实录:使用Apache Kylin搭 ...

  6. 一文读懂Apache Kylin(麒麟)

    "麒麟出没,必有祥瑞." -- 中国古谚语 Kylin思维导图 前言 随着移动互联网.物联网等技术的发展,近些年人类所积累的数据正在呈爆炸式的增长,大数据时代已经来临.但是海量数据 ...

  7. 一文读懂Apache Kylin

    感谢分享. http://www.jianshu.com/p/abd5e90ab051?utm_campaign=maleskine&utm_content=note&utm_medi ...

  8. Apache Kylin

    "麒麟出没,必有祥瑞." -- 中国古谚语 Kylin思维导图 前言 随着移动互联网.物联网等技术的发展,近些年人类所积累的数据正在呈爆炸式的增长,大数据时代已经来临.但是海量数据 ...

  9. 大数据面试通关手册 | Kylin入门/原理/调优/OLAP解决方案和行业典型应用

    Kylin入门/原理/调优/OLAP解决方案和行业典型应用一网打尽. 一:背景历史和使命 背景和历史 现今,大数据行业发展得如火如荼,新技术层出不穷,整个生态欣欣向荣.作为大数据领域最重要的技术的 A ...

  10. Apache Kylin | 麒麟出没,必有祥瑞

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! ...

最新文章

  1. 服务器架设笔记——编译Apache及其插件
  2. ANSYS2020R2与Solidworks2019进行关联,但2019安装完后打开出现无法获得下列许可SOLIDWORKS Standard.使用许可文件不支持此版本(-21,126,0)
  3. element走马灯自动_详细element-ui的走马灯carousel轻松实现自适应全屏banner详细过程...
  4. 联想将推出全新系列笔记本
  5. Win 08 子域的搭建(二):父子域和SharePoint Farm
  6. matlab更改矩阵的值,怎么修改矩阵中的某些元素 或者简单点说保留矩阵中的元素...
  7. 基本排序(C语言版)
  8. 数据可视化、模板框架、动态控件、可视化大屏、数据监管、监控平台、图表元件库、数据看板、驾驶舱、统计图表、园区、大屏展示、安防、智慧城市、旅游、健康、医疗卫生、交通、农业、政务、AI、食品、医院、安全
  9. 学生成绩abcde怎样划分_7月学考成绩出来啦!
  10. JAVA 8:Lambdas表达式初体验
  11. 关于对网络学习方法的一点见解
  12. mysql5.7应该导什么包_烘焙知识 | 不同的蛋糕,应该如何完美脱模?
  13. 关于 Java 的强制类型转换
  14. iphone尺寸_巨额罚款无法“阻挡”,iPhone 12真机现已开箱,一睹为快!|iphone|手机|包装盒...
  15. Origin作图点太密集处理方法
  16. 华为存储iscsi配置_使用华为存储配置ISCSI存储方法和iSCSI建立连接提示目标错误...
  17. Blender几个简单建模
  18. 号外:PPG商标被查封 轻工厂泡沫破灭
  19. 初创企业选择阿里云服务器与传统自建服务器的对比与选择
  20. 452. 用最少数量的箭引爆气球

热门文章

  1. #HTTP协议学习# (六)代理
  2. 转 OUI and OPatch Do Not Recognize JDK/JRE on Windows
  3. android实现应用程序仅仅有在第一次启动时显示引导界面
  4. dialogfield
  5. Python中执行系统命令常见的几种方法
  6. 风险投资,扼杀中国互联网创新的黑手
  7. 开发内功修炼CPU篇
  8. 设备树解析过程及platform设备注册
  9. WIN10下使用VS2017的MSVC编译FFMPEG3.4.2动态静态库
  10. Linux内核中的atoi,itoa等函数