Kylin工作原理、體系架構

核心思想:預計算。

  對多維分析可能用到的度量進行預計算,將計算好的結果保存成Cube,并存在HBase中,供查詢時直接訪問

  將高復雜度的聚合運算、多表連接……操作轉換成對預計算結果的查詢。決定了Kylin擁有很好的快速查詢、高并發能力

  理論基礎:空間換時間

?

Cuboid:Kylin中將維度任意組合成為一個Cuboid

Cube:Kylin中將所有維度組合成為一個Cube,即包含所有的Cubeid

  為了更好地使用Hadoop大數據環境,Kylin從通常用來做數據倉庫的HIve中讀取源數據,使用Mapreduce作為Cube構建的引擎,并將于計算結果保存在HBase中,對外暴露Restful API/JEBC/ODBC的查詢接口。

  Kylin支持標準的ANSI SQL,所以可以和常用分析工具(Tableau、Excel)進行無縫對接

?

restful api:

  符合REST架構設計的API。

  RESTful架構,就是目前最流行的一種互聯網軟件架構。它結構清晰、符合標準、易于理解、擴展方便,所以正得到越來越多網站的采用

  REST,即Representational State Transfer的縮寫

  如果一個架構符合REST原則,就稱它為RESTful架構

  什么是RESTful架構:

  (1)每一個URI代表一種資源;

  (2)客戶端和服務器之間,傳遞這種資源的某種表現層;

  (3)客戶端通過四個HTTP動詞,對服務器端資源進行操作,實現"表現層狀態轉化"。

?

JDBC

  (Java DataBase Connectivity,java數據庫連接)是一種用于執行SQL語句的Java API,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。

  JDBC提供了一種基準,據此可以構建更高級的工具和接口,使數據庫開發人員能夠編寫數據庫應用程序

?

ODBC

  開放數據庫連接(Open Database Connectivity,ODBC)是微軟公司開放服務結構(WOSA,Windows Open Services Architecture)中有關數據庫的一個組成部分,它建立了一組規范,并提供了一組對數據庫訪問的標準API(應用程序編程接口)。

  這些API利用SQL來完成其大部分任務。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。

  開放數據庫互連(ODBC)是Microsoft提出的數據庫訪問接口標準。

  開放數據庫互連定義了訪問數據庫API的一個規范,這些API獨立于不同廠商的DBMS,也獨立于具體的編程語言(但是Microsoft的ODBC文檔是用C語言描述的,許多實際的ODBC驅動程序也是用C語言寫的。)

  ODBC規范后來被X/OPEN和ISO/IEC采納,作為SQL標準的一部分,具體內容可以參考《ISO/IEC 9075-3:1995 (E) Call-Level Interface (SQL/CLI)》等相關的標準文件。

?

ANSI SQL

  “美國國家標準化組織(ANSI)”是一個核準多種行業標準的組織。

  SQL作為關系型數據庫所使用的標準語言,最初是基于IBM的實現在1986年被批準的。

  1987年,“國際標準化組織(ISO)”把ANSI SQL作為國際標準。

?

?

體系架構:

  

  Kylin是一個MOLAP(多維在線聯機分析處理)系統,將Hive中的數據進行預計算,利用Hadoop的Mapreduce分布式計算框架來實現

  Kylin獲取的表是星型模型結構的。目前建模時,只支持一張事實表,多張維表。

  如果業務需求比較復雜,就要考慮在Hive中進行進一步處理。(比如生成一張大的寬表,或者采用View代替)

  HBase:Kylin中用來存儲OLAP分析的Cube數據的地方,實現多維數據集的交互式查詢

  

  

  

?

?

Cube構建

  Layer Cubing:按照dimension數量從大到小的順序,從Base Cuboid開始,依次基于上一層Cubeid的結果進行再聚合。每一層的計算都是一個單獨的MapReduce任務

    逐層算法,啟動N+1輪MapReduce計算:

      第一輪,讀取原始數據RawData,去掉不相關的列,只保留相關的列。同時對維度列進行壓縮編碼(此處,計算出ABCD組合,即base cuboid)

      此后每一輪MapReduce,輸入是上一輪的輸出,以重用之前的計算結果,去掉要聚合的維度,算出新的Cuboid,直到最后算出所有的Cubeid

  

    1.5.x開始引入Fast(in-mem) cubing算法,利用Mapper端計算先完成大部分聚合,再將聚合后的結果交給Reducer,從而降低對網絡瓶頸的壓力。

    

    MapReduce的計算結果最終保存到HBase中,HBase中每行記錄的Rowkey由dimention組成,measure會保存再Column family中。為了減少存儲代價,會對dimension和measure進行編碼。

?

Kylin的Sql查詢

  Cube構建完成后,可以查詢維度對應的度量值了。

  查詢時,SQL語句被SQL解析器翻譯成一個解析計劃,從這個計劃可以準確知道用戶要查哪些表,怎樣join起來,有哪些過濾條件。Kylin用這個計劃去匹配找尋到合適的Cube

  如果有Cube命中,這個計劃會發送到存儲引擎,翻譯成對存儲(默認HBase)相應的Scan操作

   group by、過濾條件的列,用來找到Cuboid,過濾條件會被轉換成Scan的開始、結束值,以縮小Scan的范圍

   Scan的result、Rowkey會被反向解碼成各個dimension的值,Value會被解碼成Metrics值,同時利用HBase列存儲的特性,可以保證Kylin有良好的快速響應、高并發

?

Kylin的特性、生態圈

  1.可擴展、超快OLAP引擎

  2.Hadoop ANSI SQL 接口

  3.交互式查詢能力

  4.多維立方體MOLAP Cube

  5.與BI工具(Tableau)無縫整合

  6.其他特性

    

?

LDAP:

  LDAP是輕量目錄訪問協議,英文全稱是Lightweight Directory Access Protocol,一般都簡稱為LDAP。

  它是基于X.500標準的,但是簡單多了并且可以根據需要定制。與X.500不同,LDAP支持TCP/IP,這對訪問Internet是必須的。

  LDAP的核心規范在RFC中都有定義,所有與LDAP相關的RFC都可以在LDAPman RFC網頁中找到。

  LDAP目錄以樹狀的層次結構來存儲數據。如果你對自頂向下的DNS樹或UNIX文件的目錄樹比較熟悉,也就很容易掌握LDAP目錄樹這個概念了。就象DNS的主機名那樣,

  LDAP目錄記錄的標識名(Distinguished Name,簡稱DN)是用來讀取單個記錄,以及回溯到樹的頂部。

?

Kylin生態圈

  

?

?ETL: Extract-Transform-Load

  用來描述將數據從來源端經過抽取(extract)、轉換(transform)、加載(load)至目的端的過程。

  ETL一詞較常用在數據倉庫,但其對象并不限于數據倉庫。

ETL是構建數據倉庫的重要一環,用戶從數據源抽取出所需的數據,經過數據清洗,最終按照預先定義好的數據倉庫模型,將數據加載到數據倉庫中去。

  

    

  

?

?

  

?

  

  

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

  

轉載于:https://www.cnblogs.com/panpanwelcome/p/7895564.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252837.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252837.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252837.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

工業相機圖像傳感器的靶面大小

在機器視覺中,工業相機是一種比較重要的配件。而在 工業相機中,圖像傳感器又是最最關鍵核心的東西。而圖像傳感器的靶面的大小,往往直接關系到成像的質量。通常來講,圖像的成像質量與像素的大小成正比。這也就意味著,同…

SpringMVC+Mybatis學習

簡單Web項目搭建&#xff1a; 一.流程 1. 導包 n個springMVC&#xff1b; 2個mybatis<其中一個是mybatis-spring>&#xff1b; 3個jackson包&#xff1b; 2. xml配置 web.xml和applicationContext.xml 3. 建包&#xff0c;建接口&#xff0c;建類 4. 建jsp 二&#xff1a…

PPT怎么在線轉視頻?

PPT在線轉視頻的方法有哪些&#xff1f;在PPT中有些播放上的問題還是可以進行文件的轉換&#xff0c;下面就給大家簡單的介紹一下方法。步驟一&#xff1a;PPT轉視頻的直接方法是進入迅捷PDF在線轉換器網站中&#xff0c;點擊導航欄中的視頻音頻轉換中的PPT轉視頻&#xff1b; …

At least one JPA metamodel must be present!

使用spring jpa是一直報這個錯&#xff0c;找了兩天網上沒有找到答案&#xff0c;最后發現時配置配錯了&#xff0c;如下&#xff1a; <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa<…

夜貓子”必需的!——融合夜視技術

融合夜視技術是一項正在發展中的前沿技術&#xff0c;通過將多個工作在不同波段的夜視傳感器獲得的圖像經過處理後生成高質量的融合圖像&#xff0c;融合圖像的分辨率更高&#xff0c;能夠揭示出那些很難被看到的特徵。按照融合的方式&#xff0c;融合夜視技術可以分為數字融合…

Vue中登錄模塊

轉載于:https://www.cnblogs.com/DZzzz/p/8921783.html

unity 中的UGUI 屏蔽鼠標穿透

void Update() { if(IsTouchedUI()) { Debug.Log("當前觸摸在UI上"); } else { Debug.Log("當前沒有觸摸在UI上"); } } void OnMouseDown() { if(IsTouchedUI()) { Debug.Log("當前觸摸在UI上"); } else { Debug.Log(&qu…

深度解析紅外探測器

輻射/設計/技術之前我們跟大家解析了紅外探測器的相關性能參數。 對于紅外探測器的工作原理你了解多少呢&#xff1f;今天小編再繼續上次的講解&#xff0c;為大家解析非制冷紅外焦平面探測器技術原理 及機芯介紹。 非制冷紅外技術原理 非制冷紅外探測器利用紅外輻射的熱效應&a…

js基礎總結性能優化

一.加載和執行1.推薦所有的script標簽盡可能放到body標簽的底部&#xff0c;以盡量減少對整體頁面下載速度的影響。2.組織腳本減少頁面包含的scirpt標簽數量&#xff0c;可以把多個文件合并成一個。3.無阻塞腳本1&#xff09;.延遲腳本defer:html解析完才加載&#xff0c;執行順…

Python2 Python3 爬取趕集網租房信息,帶源碼分析

*之前偶然看了某個騰訊公開課的視頻,寫的爬取趕集網的租房信息,這幾天突然想起來,于是自己分析了一下趕集網的信息,然后自己寫了一遍,寫完又用用Python3重寫了一遍.之中也遇見了少許的坑.記一下.算是一個總結.*python2 爬取趕集網租房信息與網站分析 分析目標網站url尋找目標標…

紅外熱成像技術原理

目前&#xff0c;新的熱成像儀主要采用非致冷焦平面陣列技術&#xff0c;集成數萬個乃至數十萬個信號放大器&#xff0c;將芯片置于光學系統的焦平面上&#xff0c;無須光機掃描系統而取得目標的全景圖像&#xff0c;從而大大提高了靈敏度和熱分辨率&#xff0c;并進一步地提高…

網站中公用頭部與尾部

一、html 1. <iframe src"1.html" frameborder"0"></iframe> 2. <embed src"1.html"/> 二、寫公用的js 文件&#xff0c;js中寫字divde符串&#xff0c;然后在需要的頁面適當位置引入公用的js. 三、ajax動態拉取填充 四、后端…

基于webpack的PC端和mobile端開發以及生產環境的搭建

我們用webpack做單頁面應用開發應該嘗試過很多次了&#xff0c;如果在同一個項目需要支持PC端和移動端&#xff0c;做成多頁面應用&#xff0c;開發時能根據請求的終端返回不同的內容&#xff0c;應該怎么做呢&#xff1f;以下描述的是我嘗試的一種方案&#xff0c;并且以vue-c…

深度學習簡介(一)——卷積神經網絡

本文的主要目的&#xff0c;是簡單介紹時下流行的深度學習算法的基礎知識&#xff0c;本人也看過許多其他教程&#xff0c;感覺其中大部分講的還是太過深奧&#xff0c;于是便有了寫一篇科普文的想法。博主也是現學現賣&#xff0c;文中如有不當之處&#xff0c;請各位指出&…

node+mongoose使用例子

https://github.com/Aquarius1993/nodeNotes 功能 1. 注冊 2. 登錄 3. 修改密碼 4. 修改頭像 5. 獲取用戶筆記 6. 添加&#xff0c;刪除,更新筆記安裝部署 1. 安裝 Node.js MongoDB 2. npm install 3. 啟動 MongoDB 4. npm start 5. visit http://localhost:8899 https://git…

FastJson的常用操作

轉載&#xff1a;https://www.cnblogs.com/Ming8006/p/6944954.html 常用操作包括以下內容&#xff1a; 對象與&#xff08;JsonObject或JsonArray&#xff09;與String的互換String轉換為&#xff08;JsonObject或JsonArray&#xff09;如何保持順序Eval的使用值為null的&…

Jenkins持續集成 之 Jenkins安裝

一、安裝JDK與TOMCAT8 參考地址&#xff1a; http://ibm.chick.blog.163.com/blog/static/144201610201652811537410/ 二、下載Jenkins安裝包 wget http://mirrors.jenkins.io/war/latest/jenkins.war 三、把jenkins.war放到TOMCAT下的webapps 四、啟動tomcat并訪問 http://10.…

夜視模式,多少猥瑣相機假汝之名

一般相機加裝一個紅外濾光片&#xff0c;就是一個可以用來干猥瑣事情的相機了。現在有相機直接把這個功能整合了&#xff0c;它的這個功能叫紅外夜視模式&#xff0c;可以拍下黑暗中的物體&#xff0c;當然&#xff0c;也可以透視紡織品和一些其他材質的衣物。這部相機具有500萬…

vue-router.esm.js?fe87:16 [vue-router] Route with name 'page' does not exist

本文地址&#xff1a;http://www.cnblogs.com/veinyin/p/7910525.html 我的路由配置 1 { 2 path: /page, 3 name: page, 4 component: page 5 } 我的 router-link <router-link :to"{name:page,params:{trans:ahahahaha}}">page</route…

Java中設計模式之單例設計模式-1

單例作用 1 節省內存2 可以避免多種狀態導致狀態沖突單例的創建步驟 1 私有化構造方法2 私有化聲明的屬性3 getInstance4 方法需要靜態單例分類 1.懶漢式 2.餓漢式 兩種單例區別&#xff1a; 餓漢式 線程安全的 懶漢式 線程不安全的 餓漢式&#xff1a; package 設計模式之單…