| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 一篇文章搞懂 Apache Kylin 4.x 的技术架构 -> 正文阅读 |
|
[大数据]一篇文章搞懂 Apache Kylin 4.x 的技术架构 |
前言本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
正文Apache Kylin 系统可以分为在线查询和离线构建两部分,技术架构如图所示,在线査询的模块主要处于上半区,而离线构建则处于下半区。 离线构建我们首先来看看离线构建的部分。 从图中可以看出,数据源在左侧,主要是 Hadoop/Hive/Kafka/RDBMS ,保存着待分析的用户数据。 根据元数据的定义,下方构建引擎从数据源抽取数据,并构建 Cube 。 数据以关系表的形式输入,且必须符合星形模型( Star Schema )。 Map Reduce 和 Spark 是主要的构建技术,Kylin 4.0 版本中Spark Engine 是唯一的构建引擎。 构建后的 Cube 保存在右侧的存储引擎中,选用 Parquet 作为存储。
在线查询完成了离线构建之后,用户可以从上方查询系统发送 SQL 进行査询分析。 Kyin 提供了各种 RestAPI 、 JDBC / ODBC 接口。 无论从哪个接口进入, SQL 最终都会来到 Rest 服务层,再转交给查询引擎进行处理。 这里需要注意的是, SQL 语句是基于数据源的关系模型书写的,而不是 Cube 。 Kylin 在设计时刻意对査询用户屏蔽了 Cube 的概念,分析师只需要理解简单的关系模型就可以使用 Kylin ,没有额外的学习门槛,传统的 SQL 应用也很容易迁移。 查询引擎解析 SQL ,生成基于关系表的逻辑执行计划,然后将其转译为基于 Cube 的物理执行计划,最后查询预计算生成的 Cube 并产生结果。 整个过程不会访问原始数据源。 Apache Kylin 1.5 版本的可扩展架构Apache Kylin 1.5 版本引入了“可扩展架构”的概念。 可扩展指 Kylin 可以对其主要依赖的三个模块做任意的扩展和替换。 Kylin 的三大依赖模块分别是 在设计之初,作为 Hadoop 家族的一员,这三者分别是 Hive 、 MapReduce 和 HBase 。 但随着推广和使用的深入,渐渐有用户发现它们均存在不足之处。 比如,实时分析可能会希望从 Kafka 导入数据而不是从 Hive,而 Spark 的迅速崛起,又使我们不得不考虑将 MapReduce 替换为 Spark ,以期大幅提高 Cube 的构建速度,至于 HBase ,它的读性能可能还不如 Cassandra 或 Kudu 等。 可见,是否可以将一种技术替换为另一种技术已成为一个常见的问题。 于是 Kylin 1.5 版本的系统架构进行了重构,将数据源、构建引擎、存储引擎三大依赖抽象为接口。 深度用户可以根据自己的需要做二次开发,将其中的一个或多个替换为更适合的技术。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 13:26:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |