IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Kylin简述 -> 正文阅读

[大数据]Kylin简述

一、Kylin简介

kylin是什么

Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。(OLAP(on line analytical processing)联机分析处理 是一种软件技术,应用于数据仓库分析处理。它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。从各方面观察信息,也就是从不同的维度分析数据,因此OLAP也成为多维分析。提供决策支持,多应用于数据仓库

Kylin的核心思想是预计算。

理论基础是:以空间换时间。即多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube并存储到HBase中,供查询时直接访问。

将数据源(比如Hive)中的数据按照指定的维度和指标,由计算引擎Mapreduce离线计算出所有可能的查询结果(即Cube)存储到HBase中。HBase中每行记录的Rowkey由各维度的值拼接而成,度量会保存在column family中。为了减少存储代价,这里会对维度和度量进行编码。查询阶段,利用HBase列存储的特性就可以保证Kylin有良好的快速响应和高并发。

数据仓库

数据仓库是商业智能的核心部分,主要是将不同数据源的数据整合到一起,通过多维分析为企业提供决策支持报表生成等。存入数据仓库的资料必定包含时间属性。

数据仓库和数据库主要区别:

数据库数据仓库

面向事务

存储在线的业务数据,对上层业务改变作出实时反映,遵循三范式设计。

面向分析

历史数据,主要为企业决策提供支持,数据可能存在大量冗余,但是利于多个维度查询,为决策者提供更多观察视角。

OLAP和OLTP

  • OLAP( Online Analytical Process ),联机分析处理,大量历史数据为基础,配合时间点的差异,以多维度的方式分析数据, 一般带有主观的查询需求,多应用在数据仓库。
  • OLTP( Online Transaction Process ),联机事务处理,侧重于数据库的增删查改等常用业务操作

维度和度量

  • 这两个是数据分析领域中两个常用的概念。维度简单来说就是你观察数据的角度,也就是记录数据的一个属性,例如时间、地点等。度量就是基于数据计算出来的考量值通常就是一个数据比如总销售额,不同的用户数量。我们就是从不同的维度来审查度量值,以便我们分析找出其中的变化规律。
  • 对应我们的SQL查询,group ?by的属性就是我们通常考量的维度,所计算出来的比如sum字段就是我们需要的度量。

Kylin的优势

Apache Kylin?的主要特点包括支持?SQL 接口、支持超大数据集、亚秒级响应、可伸缩性、高吞吐率、BI?工具集成等。

  • 标准SQL接口
    • Apache Kylin 以标准 SQL 作为对外服务的主要接口: Kylin 使用的查询模型是数据源中的关系模型表,一般而言,也就是指 Hive 表。终端用户只需要像原来查询Hive表一样编写 SQL ,就可以无缝地切 换到 Kylin ,几乎不需要额外的学习,甚至原本的 Hive 查询也因为与 SQL 同源,大多都无须修改就能直接在 Kylin 上运行。
  • 支持超大规模数据集
    • Apache Kylin 对大数据的支撑能力可能是目前所有技术中最为领先的。早在2015年 eBay 的生产环境中 Kylin 就能支持百亿记录的秒级查询,之后在移动的应用场景下又有了千亿记录秒级查询的案例。这些都是实际场景的应用,而非实验室中的理论数据。
    • 因为使用了 Cube 预计算技术,在理论上, Kylin 可以支撑的数据集大小没有上限,仅受限于存储系统和分布式计算系统的承载能力,并且查询速度不会随数据集的增大而减慢。 Kylin 在数据集规模上的局限性主要在于维度的个数和基数。它们一般由数据模型来决定,不会随着数据规模的增长而线性增 长,这也意味着 Kylin 对未来数据的增长有着更强的适应能力。
  • 亚秒级响应
    • Apache Kylin 拥有优异的查询响应速度,这点得益于预计算,很多复杂的计算,比如连接、聚合,在离线的预计算过程中就已经完成,这大大降低了查询时刻所需要的计算量,提高了响应速度。根据可查询到的公开资料可以得知, Apache Kylin 在某生产环境中90%的查询可以在3s内返回结果。这并不是 说一小部分 SQL 相当快,而是在数万种不同 SQL 的真实生产系统中,绝大部分的查询都非常迅速;在另外一个真实的案例中,对1000多亿条数据构建了立方体,90%的查询性能都在1.18s以内,可见 Kylin在超大规模数据集上表现优异。
  • BI可视化工具集成
    • Apache Kylin 提供了丰富的 API ,以与现有的 BI 工具集成,具体包括如下内容。
    • ODBC 接口:与 Tableau 、 Excel 、 Power BI 等工具集成。
    • JDBC 接口:与 Saiku 、 BIRT 等 Java 工具集成。
    • Rest API :与 JavaScript 、 Web 网页集成。

Kylin技术架构

  • 1. REST Server:REST Server是一套面向应用程序开发的入口点,旨在实现针对Kylin平台的应用开发工作。 此类应用程序可以提供查询、获取结果、触发cube构建任务、获取元数据以及获取用户权限等等。另外可以通过Restful接口实现SQL查询。
  • 2. 查询引擎(Query Engine):当cube准备就绪后,查询引擎就能够获取并解析用户查询。它随后会与系统中的其它组件进行交互,从而向用户返回对应的结果。
  • 3. 路由器(Routing):在最初设计时曾考虑过将Kylin不能执行的查询引导去Hive中继续执行,但在实践后发现Hive与Kylin的速度差异过大,导致用户无法对查询的速度有一致的期望,很可能大多数查询几秒内就返回结果了,而有些查询则要等几分钟到几十分钟,因此体验非常糟糕。最后这个路由功能在发行版中默认关闭。
  • 4. 元数据管理工具(Metadata):Kylin是一款元数据驱动型应用程序。元数据管理工具是一大关键性组件,用于对保存在Kylin当中的所有元数据进行管理,其中包括最为重要的cube元数据。其它全部组件的正常运作都需以元数据管理工具为基础。 Kylin的元数据存储在hbase中。
  • 5. 任务引擎(Cube Build Engine):这套引擎的设计目的在于处理所有离线任务,其中包括shell脚本、Java API以及Map Reduce任务等等。任务引擎对Kylin当中的全部任务加以管理与协调,从而确保每一项任务都能得到切实执行并解决其间出现的故障。

Kylin构建在Hadoop等分布式计算平台之上。主要是对hive中的数据进行预计算,充分利用hadoop的mapreduce框架的并行处理能力实现,用户只需提前定义好查询维度,Kylin将会帮助我们进行计算,并将结果存储到HBase中,为海量数据的查询和分析提供亚秒级返回,是空间换时间的解决方案。需要大量的存储空间(原数据量的10+倍)。

二、kylin搭建

需完成hadoop,hbase,hive等前提,详情可见我之前的博客。

准备工作

kylin安装包下载:Apache Kylin | 下载?或者Index of /dist/kylin

上传安装包至node001

解压

tar -zxvf apache-kylin-2.4.1-bin-hbase1x.tar.gz -C /opt

改名

mv /opt/apache-kylin-2.4.1-bin/ /opt/kylin

搭建

配置文件

环境配置

终端输入:vim /etc/profile

末行加入:

export KYLIN_HOME=/opt/kylin
export PATH=$PATH:$KYLIN_HOME/bin

export HBASE_CLASSPATH=/opt/hbase-2.4.14/lib/hbase-common-2.4.14.jar

??重新加载配置文件:

source /etc/profile

find-hbase-dependency.sh

终端输入:vim /opt/kylin/bin/find-hbase-dependency.sh

修改这一行为自己的hbase-common-jar包

启动测试

启动:jobhistory

mr-jobhistory-daemon.sh start historyserver

启动zookeeper(集群记得每个节点都要启动)

zkServer.sh start?

启动Hadoop集群

start-all.sh?

启动hbase

start-hbase.sh

启动kylin

kylin.sh start

访问web页面

http://master节点:7070/kylin

此文是对kylin的简述,今后将会整理发布kylin的基本操作,简单优化等内容

参考资料

kylin搭建及使用

kylin百度百科

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:48:45  更:2022-10-08 20:49:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 5:21:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码