原创 Kylin cuboid算法修改

緣由     近期由於發現線上cube的構建時間太慢(一個項目的cube構建前一天的數據一般需要170分鐘左右),目前我們接入的應用才三個,如果後期接入更多的cube之後會導致更慢的cube構建速度,於是深入瞭解了一下cuboi

原创 Kylin性能調優記——業務技術兩手抓

背景 最近開始使用了新版本的Kylin,在此之前對於新版本的瞭解只是代碼實現和一些簡單的新功能測試,但是並沒有導入實際場景的數據做分析和查詢,線上Hadoop穩定之後,逐漸得將一些老需求往新的環境遷移,基於以前的調研,新版本(V2

原创 安卓開發筆記——從0到1

開始     之前沒有接觸過客戶端的知識,倒是使用JAVA自帶的Swing和AWT寫過Windows圖形界面,自己也總是覺得應該利用空閒時間學習一下其它方面的知識,之前一直計劃開始學習Android,於是踏上了學習Android的

原创 初識Calcite——使用實例

      Calcite(https://calcite.apache.org/)是Apache的一個孵化器項目,它是一個構建JDBC或者ODBC訪問數據庫的框架,通過自定義一些adapter通過sql訪問任意類型的數據,回想起我們之前

原创 Parquet與ORC性能測試報告

一、環境說明 Hadoop集羣:使用測試Hadoop集羣,節點: hadoop230 hadoop231 hadoop232 hadoop233 這幾臺機器配置一樣,具體參數可參考如下: CPU數量:2個 CPU線程數:32

原创 Kylin使用之創建Cube和高級設置

簡介   Kylin作爲一個OLAP引擎,需要Cube模型支撐,在我們的工作過程中,在和用戶以及相關的開發人員、測試、產品等介紹Kylin的過程中,他們總是會對Cube的模型有一些疑惑,作爲經常接觸這個概念的我來說這是再明瞭不過的

原创 【Kylin】Kylin中的cube構建

前言   在使用Kylin的時候,最重要的一步就是創建cube的模型定義,即指定度量和維度以及一些附加信息,然後對cube進行build,當然我們也可以根據原始表中的某一個string字段(這個字段的格式必須是日期格式,表示日期的

原创 Kylin執行查詢流程分析

  Kylin基於MOLAP實現,查詢的時候利用Calcite框架,從存儲在Hbase的segment表(每一個segment對應着一個htable)獲取數據,其實理論上就相當於使用Calcite支持SQL解析,數據從Hbase中

原创 意淫設定時間系統de實現—由訂外賣想到的

由來   週末一人在家,叫了一份外賣,作爲碼農的我就對於外賣中日期的設定是怎麼實現的提起了興趣,於是就根據自己的想法記錄一下如果我來實現,我要怎麼做。   場景是這個樣子的:在外賣系統中有兩種角色,一種是商家,一種是顧客,每一個

原创 Mondiran創建連接

以前使用jdbc創建連接的時候使用的url是這樣的形式:jdbc:mysql://hostname:port/database?key1=value1&key2=value2,在URL需要以"jabc:mysql"開頭的,其中需要聲明數

原创 Kylin任務調度模塊

      Kylin運行過程中會生成很多不同的Job,這些job是如何調度執行的呢?本文從源碼的層面分析kylin是如何完成多個任務的併發執行,以及如何在其他項目中使用這種多線程的模型。 初始化流程      首先,kylin使用了

原创 改造mondrian的構想

     項目中最近需要使用mondrian,於是開始首先閱讀以下mondrian的源代碼,總體看來mondrian是一個ROLAP引擎,但是它的定位還是一個以庫形式 提供的組件,而不是作爲服務,例如它將所有的緩存都放在進程內部,當我在一

原创 關於Kylin結果緩存的思考

由來 Apache Kylin定位是大數據量的秒級SQL查詢引擎,原理是通過預計算所有可能的維度組合存儲在Hbase中,查詢時解析SQL獲取維度和度量信息,然後再從hbase中掃描獲取數據返回,個人認爲Kylin最強大的地方在於實

原创 大數據時代快速SQL引擎-Impala

背景 隨着大數據時代的到來,Hadoop在過去幾年以接近統治性的方式包攬的ETL和數據分析查詢的工作,大家也無意間的想往大數據方向靠攏,即使每天數據也就幾十、幾百M也要放到Hadoop上作分析,只會適得其反,但是當面對真正的Big

原创 《JAVA編程思想》讀書筆記1——OOP思想

面向對象思想 JAVA是一種面向對象編程語言,它基於Smalltalk語言,作爲OOP語言,它具有以下五個基本特性 萬物皆對象,每一個對象都會存儲數據,並且可以對自身執行操作。因此,每一個對象包含兩部分:成員變量和成員方法。在成