首页 > 编程知识 正文

大数据查询工具,大数据 挖掘工具

时间:2023-05-04 21:36:45 阅读:166120 作者:4671

官方网站:

http://kylin.apache.org/cn/

正式文档

http://kylin.apache.org/cn/docs/

下载到

3358 kylin.Apache.org/cn/download /

另一方面,Kylin简介1.Kylin概念Kylin是一种分布式数据仓库平台,可以将Hive的数据与Kylin同步进行数据分析,实现多维立方体的查询,也可以将最终结果保存在Hbase中。

Kylin提供Hadoop/Spark上的SQL查询接口和多维分析(OLAP )功能,以支持大数据并允许在亚秒内查询大Hive表其核心是预计计算,计算结果存在于HBase中。

作为大数据分析神器,站在巨人的肩膀上,也需要依靠HDFS、MapReduce/Spark、Hive/Kafka、HBase等服务。

2 .维度和度量维度:如果我们看事物的角度是统计维度,则从粗到细的粒度(例如,时间、年、月、日、时间、分钟、秒、毫秒、微秒、纳秒) )

度量:维聚合结果

3 .数据立方体实际上是维立方体。 这意味着你可以从不同的角度看问题。 例如,如果有abc,就值得按abc的三个角度进行统计。 ab、ac、bc、a、b、c、abc,这种方式的统计可以用Kylin实现。 Kylin中最大的特征是建立维模型,统计维结果。

4 .技术架构http://www.Sina.com/:获得Hadoop/hive的数据并同步到Kylin内部

http://www.Sina.com/:Kylin使用内部立方体模型进行多维统计

33558 www.Sina.com/:构建并保存在h base数据库上。 RowKey由多个维度连接而成,value是具体的值

33558www.Sina.com/:kylin加载Hive数据,建立模型,基于模型建立立方体(Cube )模型,运行立方体模型进行分析,并将分析结果输入Hbase数据库

4.Kylin有点Kylin的主要优势在于以下几个方面。

可扩展的超高速OLAP引擎: Kylin是一种Hadoop ANSI SQL接口,旨在减少Hadoop/Spark上百亿规模的数据查询延迟。 Kylin为Hadoop提供了标准的SQL,并支持大多数查询功能。 Kylin允许用户在亚秒级别与Hadoop数据进行交互。 在同一数据集上比Hive性能更好的多维数据集(MOLAP Cube )用户可以在Kylin中定义百亿多个数据集的数据模型,并无缝集成立方体和BI工具。 Kylin提供与BI工具(如Tableau、PowerBI/Excel、MSTR、QlikSense和QlikSense )的集成功能,包括压缩和编码; 增量更新; 利用HBase Coprocessor; 基于HyperLogLog的Dinstinc Count近似算法; 易于使用的web界面项目和表级访问控制安全支持同步LDAP、SSO和基本操作Hive表以管理、监视和使用多维数据集

创建模型

创建Cube

三、增量构建总量构建1.Cube,理解Cuboid与Segment的关系cube :维度立方体,代表一个任务,最大顶层

Cuboid :维立方体树,即其内部的维结构。 维度结构越少,执行速度越快,反而越慢

Segment表示一个块,块表示每次执行的结果,还可以看到Hbase的表

2 .总量构建Cube中存在唯一的Segment。 该Segment中没有分割时间的概念,也没有开始时间和结束时间

每次需要更新Cube数据时,总量构建不区分历史数据和新添加的数据。 这意味着在构建时导入和处理所有原始数据

3 .增量构建仅导入新Segment指定时间段的原始数据,并且仅预计算这部分原始数据

4 .比较

5.Cube碎片管理增量构建问题:天累计,增量构建的Cube中的Segment增加,需要单个查询引擎完成更多的运行时聚合,因此其Cube的查询性能要保持查询性能,请执行以下操作:

必须定期绑定某些Segment,或者根据Segment保留策略自动将不再查询的旧Segment管理Cube片段丢弃到Cube中。 生成Segment,它对应于HBase中的表。 增量构建的Cube每天都可能有新的增量。 这样的Cube最终可能包含数百个Segment,这可能会严重影响Kylin的性能。

从运行引擎的角度来说,是运行时的检查

询引擎需要聚合多个Segment的结果才能返回正确的查询结果从存储引擎的角度来说,大量的Segment会带来大量的文件,给存储空间的多个模块带来巨大的压力,例如Zookeeper、HDFS Namenode等 6.Cube优化 使用衍生维度
即使用维度表的主键(也就是事实表的外键)来代替维度表的非主键维度,这种方式牺牲一部分运行时间性能来节省Cube的空间占用目的。使用聚合组 强制维度(Mandatory)
若为强制维度,则该分组中每一个Cubiod都会包含这个维度,若该维度一定会出现在查询中,则应当将其设置为强制维度 设置成强制维度。这样该聚合组产生的cuboid都要有这个维度。聚合组里有a,b,c三个维度,将a设置成强制维度,则该聚合组会产生 a,ab,ac,abc 4种cuboid,而不会产生b , c , bc 这三个cuboid,减少了3个。 层级维度(Hierachy)
每一个层级中应包含2-n个维度,这n个维度会以()、(N1)、(N1,N2)、…、(N1, N2,…,Nn)这N+1种情况进行组合 聚合组有 a b c 三个维度 且设置成层级维度 a>b>c. 则该聚合组会产生 a, ab, abc 三个cuboid不会产生 b,c,bc,ac 这4个cuboid,减少了4个 联合维度(Joint)
每一个联合维度包括两个或者更多的维度,联合维度内的维度,要么不出现,要么必须一起出现。不同的联合之间不应当有共同的维度 聚合组有 a b c 三个维度,且设置 ab为联合维度,则该聚合组会产生 c,ab,abc 三个cuboid而不会产生 a,b ,ac,bc, 减少了4个 粒度优化
粒度优化对应的是提高Cube的并发度,其设置是在自定义属性中的。根据相对应的情况调高最少使用分区,降低最大使用分区,能够有效增加系统的并行度。 一共有三个属性可以提高并发度。kylin.hbase.region.cut(共使用几个分区)kylin.hbase.region.count.min(最少使用几个分区)kylin.hbase.region.count.max(最多使用几个分区) RowKey优化
和Hbase 的RowKey优化类似
在查询的过程中,被用作过滤条件的维度可能放在其他维度的前面
经常出现的维度应该放在前面
基数比较大的维度应该放在前面

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。