Apache Kylin原理学习之Cube的创建与Build

Kylin原理解析 1 概述       Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark智商的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据。       注:OLAP(Online Analytical Process),联机分析处理或在线分析。       最初由eBay开发并贡献至开发社区,它能在亚 阅读详情

原文地址:http://lxw1234.com/archives/2016/05/655.htm
Cube是一种典型的多维数据分析技术,一个Cube可以有多个事实表,多个维表构成。如果您还不了解这些概念,建议您搜索下数据仓库、OLAP、Cube、星型模型、事实表、维度表等等。比如一个简单例子,分析网站流量的Cube,包含一个事实表和四个维度表:
事实表可能有以下字段:
天、来源ID、浏览器ID、操作系统ID、PV、PageNumber等等;
其中,小时、来源ID、浏览器ID、操作系统ID 为维度;
PV、PageNumber为指标;
一般事实表中的维度都采用外键ID的形式,一来可以节省存储,也可以很好的适用于其他分析工具;
维度表包括:
时间维表:年、月、日,其中天为最细粒度,也为该表主键;
访问来源维表:来源ID、来源名称;
浏览器维表:浏览器ID、浏览器名称、etc.
操作系统维表:操作系统ID、操作系统名称、etc.
事实表中的维度,分别与这四张维度表,通过主外键的方式关联。
Kylin中的Cube亦是这种模型。

创建Cube

之前的文章《分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例》介绍过在Kylin中定义数据模型和Cube。

Build Cube

定义好Cube之后,Apache Kylin通过MapReduce,将存储在Hive中的事实表和维度表,转换成Cube,存储在HBase中,以实现快速分析查询,整个过程如下图所示:

kylin

STEP1. 根据Cube定义的事实表和维度,在Hive中生成一张中间表;

Create Intermediate Flat Hive Table;

STEP2. 使用MapReduce,从事实表中抽取维度的Distinct值,并以字典树的方式压缩编码,同时也对所有维度表进行压缩编码,生成维度字典;

Extract Fact Table Distinct Columns

Build Dimension Dictionary

STEP3. 计算和统计所有的维度组合,并保存,其中,每一种维度组合,称为一个Cuboid,后面会详细介绍。

Save Cuboid Statistics

STEP4. 创建HBase Table;

Create HTable

STEP5. 利用step1中间表的数据,使用MapReduce,生成每一种维度组合(Cuboid)的数据;

Build Base Cuboid Data;

Build N-Dimension Cuboid Data : 7-Dimension;

Build N-Dimension Cuboid Data : 6-Dimension;

。。。。。。

Build N-Dimension Cuboid Data : 2-Dimension;

Build Cube;

STEP6. 将Cuboid数据转换成HFile,并导入到HBase Table中:

Convert Cuboid Data to HFile;

Load HFile to HBase Table;

STEP7. 更新Cube信息,清理中间表:

Update Cube Info;

Garbage Collection;

整个Build过程结束。

关于维度组合Cuboid

Kylin中Cube的Build过程,其实是将所有的维度组合事先计算,存储于HBase中,以空间换时间,HTable对应的RowKey,就是各种维度组合,指标存在Column中,这样,将不同维度组合查询SQL,转换成基于RowKey的范围扫描,然后对指标进行汇总计算。

理论上来说,一个N维的Cube,便有2的N次方种维度组合,参考网上的一个例子,一个Cube包含time, item, location, supplier四个维度,那么组合(Cuboid)便有16种:

kylin

一个Cube中,当维度数量N超过一定数量后,空间以及计算消耗将会非常大,Kylin在定义Cube时候,可以将维度拆分成多个聚合组(Aggregation Groups),只在组内计算Cube,聚合组内查询效率高,跨组查询效率较差,所以需要根据业务场景,将常用的维度组合定义到一个聚合组中,提高查询性能,这也是Kylin中查询性能优化的一个重要方面。

后续将继续学习Kylin的原理及优化。

Kylin Cube构建引擎原理及核心源码解析 本文主要介绍了Apache Kylin是如何将Hive表中的数据转化为HBase的KV结构,并简单介绍了Kylin的SQL查询是如何转化为HBase的Scan操作。 Apache Kylin 是什么 Apache Kylin是一个开源的、基于Hadoop生态系统的OLAP引擎(OLAP查询引擎、OLAP多维分析引擎),能够通过SQL接口对十亿、甚至百亿行的超大数据集实现秒级的多维分析查询。 ... 阅读详情

相关推荐

Kylin 使用RESTful API进行cube的增量更新

一、生成鉴权文件,之后每一步都需要使用cookfile.txtcurl -c cookfile.txt -X POST \ -H "Authorization:Basic QURNSU46S1lMSU4=" \ -H "Content-Type: application/json" \ http://hostname:7070/kylin/api/user/authenticationADMIN:K

polaris_1的博客 5594

Kylin构建Cube过程详解

1 前言 在使用Kylin的时候,最重要的一步就是创建cube的模型定义,即指定度量和维度以及一些附加信息,然后对cube进行build,当然我们也可以根据原始表中的某一个string字段(这个字段的格式必须是日期格式,表示日期的含义)设定分区字段,这样一个cube就可以进行多次build,每一次的build会生成一个segment,每一个segment对应着一个时间区间的cube,这些segment的时间区间是连续并且不重合的,对于拥有多个segment的cube可以执行merge,相当于将一个...

深蓝旭的博客 1472

Kylin优化实战(二):cube构建过程

根据cube在build的顺序,进行优化 #1 Step Name: Create Intermediate Flat Hive Table 第一步是根据我们自定义的cube模型来生成原始数据,直接使用hive -e执行sql语句,中间设置了大量的hive 的配置项,数据格式默认为SEQUENCEFILE。 #2 Step Name: Redistribute Flat Hive Table...

xiaozhaoshigedasb的博客 1259

Apache Kylin Build cube 过程详解、遇到的问题与解决过程、优化思路

Apache Kylin的cube的构建过程所做的操作;构建过程中出现过的问题和解决过程;构建过程每一步的优化思路。

终回首的博客 1639

遥感影像分割实战:LoveDA数据集从下载到训练全流程指南(附避坑技巧)

本文以LoveDA数据集为例,提供了一份详尽的遥感影像语义分割实战指南。内容涵盖从数据下载、理解与预处理,到环境配置、模型选择与训练,再到性能调优与部署的全流程,并重点分享了多个关键环节的避坑技巧,旨在帮助开发者和研究者高效上手并解决实际问题。

cherry的博客 930

matlab tolx,Nelder-Mead算法matlab

Nelder-Mead算法适合变量数不是很多的方程求极值.原理:Nelder-Mead法是利用多面体来逐步逼近最佳点x*.设函数变量为n维,则在n维空间里多面体有(n+1)个顶点.设x1,x2,...,xn+1为多面体的顶点,且满足:f(x1)<=f(x2)<=...<=f(xn+1)Nelder-Mead法试着将多面体中最差的顶点xn+1(也就是函数的最大点)以新的最佳点替代,...

weixin_36485298的博客 1480

求解答贴:KYLIN CUBE BUILD问题

kylin有2个cube,在Extract Fact Table Distinct Columns 这一步 一个能正常运行,看到加载的信息是这个 Initialized a new KylinConfig from getInstanceFromEnv : 254918854 另外一个不能正常执行,加载的环境信息是这个 Initialized a new KylinConfig from getInstanceFromEnv : 748975217 有操作修改过失败cube的相关维度信息 ...

junjun56的专栏 290

STM32_USB复合设备开发实战:基于CubeMX插件简化HID与CDC集成

本文详细介绍了如何使用STM32CubeMX插件简化USB复合设备开发,特别是HID与CDC的集成。通过自动处理多设备描述符融合和端点资源分配,该插件显著降低了开发复杂度,帮助工程师快速实现键盘、鼠标和虚拟串口等复合功能,提升STM32 USB开发效率。

palm99的专栏 754

Apache Kylin Buid Cube详细流程

Build Cube流程主要分为四个阶段: 根据用户的cube信息计算出多个cuboid文件根据cuboid文件生成htable更新cube信息回收临时文件 1.流程一:作业整体描述 把构建Cube的来源表总行数写到指定的HDFS文件中 2.流程二:生成中间临时数据 这一步的操作是根据Cube设计中的定义生成原始数据,这里会新创建一个Hive外部表,然后再根据Cube中定义的

RangeYan 1558

基于Python的全卷积网络(FCN)实现路径损耗预测

本文提出一种基于全卷积网络(FCN)的无线信道路径损耗预测方法。通过合成数据生成模块构建包含房间布局和发射点坐标的训练数据集,采用双分支FCN架构融合空间特征与坐标信息,引入空间注意力机制增强关键区域提取。实验表明,该方法相比传统模型能更准确地预测复杂环境下的路径损耗,平均绝对误差降低约35%。系统支持端到端训练,可扩展融合多模态数据,为5G网络规划等应用提供高效预测工具。

huanghm88的专栏 580

扫地机器人行业 企业篇-产业总部地理分布

中国扫地机器人产业呈现区域集聚特征,广东省以13家企业领跑全国,其中深圳独占9家(如大疆、云鲸智能等),佛山、广州、东莞各有分布。江苏省6家企业主要集中在苏州(科沃斯、追觅科技等)。北京聚集了石头科技、小米等4家品牌。浙江、山东、湖南等地也有代表性企业分布。国际品牌方面,美国iRobot、韩国三星/LG、日本松下等均在各自国家设立总部,而戴森、飞利浦等欧洲品牌则将中国运营中心设在上海或苏州。值得注意的是,部分品牌如由利、宝家丽虽为外资起源,但主要运营实体已落户中国。

智能硬件研发,欢迎交流 364

Kylin系列-Apache Kylin原理学习之Cube的创建与Build

Cube是一种典型的多维数据分析技术,一个Cube可以有多个事实表,多个维表构成。如果您还不了解这些概念,建议您搜索下数据仓库、OLAP、Cube、星型模型、事实表、维度表等等。比如一个简单例子,分析网站流量的Cube,包含一个事实表和四个维度表: 事实表可能有以下字段: 天、来源ID、浏览器ID、操作系统ID、PV、PageNumber等等; 其中,小时、来源ID、浏览器ID、操作系统ID

weixin_41279060的博客 996

MEMS传感器技术深度解析:从原理到未来趋势的全面指南(智能驾驶赛道有戏)

在智能汽车每秒产生1GB数据的今天,在可穿戴设备厚度突破1毫米的极限挑战下,MEMS(微机电系统)传感器正以的三大核心优势,重塑着人类感知世界的方式。作为从业10年的MEMS工程师,我见证了这个领域从实验室走向量产的完整历程——从2005年汽车安全气囊中笨重的压阻式加速度计,到2025年智能手机中集成5种传感器的SoC芯片,MEMS技术正在书写传感器行业的摩尔定律新篇章。本文将带您穿透技术迷雾,深入解析MEMS传感器的技术密码,涵盖,并附独家整理的与。文末更提供,助您把握万亿级市场机遇。

优快云-新能源汽车研发测试专业博主 2301

java如何建Cube类,Apache Kylin原理学习之Cube的创建与Build

Cube是一种典型的多维数据分析技术,一个Cube可以有多个事实表,多个维表构成。如果您还不了解这些概念,建议您搜索下数据仓库、OLAP、Cube、星型模型、事实表、维度表等等。比如一个简单例子,分析网站流量的Cube,包含一个事实表和四个维度表:事实表可能有以下字段:天、来源ID、浏览器ID、操作系统ID、PV、PageNumber等等;其中,小时、来源ID、浏览器ID、操作系统ID 为维度;P...

weixin_39681161的博客 597

【数据集】ERA5(欧洲中期天气预报中心)再分析数据介绍及下载

简介EAR5数据集及下载步骤

WW、forever的博客 1万+

Maestro 薛定谔软件简单分子对接案例

#参考:Maestro 薛定谔软件使用:Maestro 薛定谔对接:sid=287811。

weixin_42357472的博客 1万+

第一个“国产“Apache顶级项目——Kylin,了解一下!

前言         说到Apache顶级开源项目,大家首先会想到什么???         不熟悉Apache软件基金会的朋友也不用担心,大家可以去Apache官网,下拉到最下边的页面,查看Apache有哪些开源项目。         相信各位朋友在项目清单中肯定会看

大数据梦想家 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Apache kylin 入门学习(3) build cube

内容待补充

养猪少年日记的博客 513

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

kylin build过程详解

目录 1. 计算cuboid文件 1.1 生成原始数据(Create Intermediate Flat Hive Table) 1.2 创建事实表distinct column文件(Extract Fact Table Distinct Columns) 1.3 创建维度词典(Build Dimension Dictionary) 1.4 计算生成BaseCuboid文件(Build ...

resemble的博客 3492

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

4.Apache Kylin build cube 第7步 #7 Step Name: Build Base Cuboid 报错 BufferOverflow

一、问题 build cube,时间是从20210114000000到20210115000000 #7 Step Name: Build Base Cuboid 在第7步报错:BufferOverflow! Please use one higher cardinality column for dimension column when build RAW cube! Kylin 版本: apache-kylin-3.0.0-bin-cdh60 报错日志: 2021-01-22 10:20:33,55

终回首的博客 1273

Kylin框架基本介绍

Apache Kylin 是什么? Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。 Apache Kylin框架介绍 Apache kylin 能提供低延迟(sub-second latency)的秘诀就是预计算,即针对一个星...

汉子一枚 2350

快速学习-Kylin Cube构建优化

第5章 Cube构建优化 从之前章节的介绍可以知道,在没有采取任何优化措施的情况下,Kylin会对每一种维度的组合进行预计算,每种维度的组合的预计算结果被称为Cuboid。假设有4个维度,我们最终会有24 =16个Cuboid需要计算。 但在现实情况中,用户的维度数量一般远远大于4个。假设用户有10 个维度,那么没有经过任何优化的Cube就会存在210 =1024个Cuboid;而如果用户有20个...

逍遥云恋 606

深入剖析Apache Kylin中的Cube构建过程

Apache Kylin允许用户通过定义数据模型和Cube维度来创建多维数据立方体。Cube是Kylin中数据的预计算表示,它通过预先聚合数据,使得复杂的分析查询能够快速执行。

liuxin33445566的博客 865

kylin build原理

BUILD操作 总体流程图   Build操作是构建一个cube指定时间区间的数据,由于kylin基于预计算的方式提供数据查询,构建操作是指将原始数据(存储在Hadoop中,通过Hive获取)转换成目标数据(存储在Hbase中)的过程。主要的步骤可以按照顺序分为四个阶段: 1、根据用户的cube信息计算出多个cuboid文件; ...

haohaizi的博客 352

Kylin - 框架介绍

1. Apache Kylin 是什么? Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。 2. Apache Kylin框架介绍 Apache kylin 能提供低延迟(sub-second latency)的秘诀就是预计...

tianyeshiye 2万+

【Kylin】Kylin入门解析(二)

(图片来源于网络,侵删) 一、可视化 可以与Kylin结合使用的可视化工具很多,例如: ODBC:与Tableau、Excel、PowerBI等工具集成 JDBC:与Saiku、BIRT等Java工具集成 RestAPI:与JavaScript、Web网页集成 Kylin开发团队还贡献了Zepplin的插件,也可以使用Zepplin来访问Kylin服务 【1】JDBC 1)新建项目并导入依赖 <dependencies> <dependency> .

Together 2999
上一篇: 分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例
下一篇: kylin与superset集成实现数据可视化
Ronney-Hua
博客等级 码龄10年 48粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值