openLooKeng初體驗-單節點自動安裝
今天瀏覽新聞時看到華爲近期開源了一款名爲openLooKeng數據虛擬化引擎。正好最近在研究跨源跨域異構數據分析的問題,於是便繼續瞭解了一下。訪問其官方網站 感覺頁面風格做得還挺簡潔清爽。閱讀了一些概念和簡介,大概七七八八瞭解了個輪廓。 然後順着首頁quick start 指導,我準備動手實踐一下。
我的環境
根據文檔說明,僅僅只要一臺linux 環境,內存大於4G即可,於是我就用了我自己的公有云機器:
安裝和使用
在linux命令行窗口執行:
wget -O - https://download.openlookeng.io/install.sh|bash
從腳本運行日誌來看,腳本應該是自動做了一些環境檢查,並自動從下載了openLooKeng的安裝包和依賴包。接着又自動下載了安裝包並部署到環境上。此外,從下圖可以看到腳本幫我創建了一個名爲openlkadmin的用戶,用於管理openLooKeng服務的。這點值得表揚。可以很好地避免了用root 用戶來操作一切。
過了一會兒,日誌顯示部署成功了。如下圖:
總體感覺安裝很順暢,整個過程我並沒有做任何操作。不過也吐槽一下,中間有有一個環節卡了一會兒,我估計是在下載openLooKeng的安裝,整個過程沒有任何信息輸出,我還以爲部署腳本卡住了。好在過了一分鐘後腳本繼續往下走了。 估計是我網絡導致下載緩慢的緣故吧。
安裝結束時,腳本提示它已自動將openLooKeng的服務運行起來了, 並提示可以運行運行cli 來連接openLooKeng。
照着部署結束的提示,運行如下命令:
/opt/openlookeng/bin/openlk-cli
可以看到openlk-cl
連接到了localhost 的8090 端口,通過簡單的查詢可以看到系統已經內置了幾個數據源: system, memory, tpcds, tpch
進一步看tpdcs下有哪些數據表:
show tables from tpcds.sf100
從表名字來看,就是標準的tpcds benchmark 的測試數據了。不管三七二十一,先看看數據量大小:
對比結果比較明瞭,sf後綴的數值越大,數據量也越大。
順手我就跑了幾個tpcds標準的查詢。 先從數據量小的跑一個吧:
use tpcds.sf1;
select dt.d_year
, item.i_brand_id brand_id
, item.i_brand brand
, sum(ss_ext_sales_price) sum_agg
from date_dim dt
, store_sales
, item
where dt.d_date_sk = store_sales.ss_sold_date_sk
and store_sales.ss_item_sk = item.i_item_sk
and item.i_manufact_id = 436
and dt.d_moy=12
group by dt.d_year
,item.i_brand
,item.i_brand_id
order by dt.d_year
,sum_agg desc
,brand_id
limit 100;
總耗時46秒, 處理了297萬行數據, 印象還不錯。
換個數據大的,在換個更復雜的聯合查詢試了一下:
use tpcds.sf100;
with
customer_total_return
as
(
select sr_customer_sk as ctr_customer_sk
, sr_store_sk as ctr_store_sk
, sum(SR_FEE) as ctr_total_return
from store_returns
, date_dim
where sr_returned_date_sk = d_date_sk and d_year =2000
group by sr_customer_sk
,sr_store_sk
)
select c_customer_id
from customer_total_return ctr1
, store
, customer
where ctr1.ctr_total_return > (
select avg(ctr_total_return)*1.2
from customer_total_return ctr2
where ctr1.ctr_store_sk = ctr2.ctr_store_sk
)
and s_store_sk = ctr1.ctr_store_sk
and s_state = 'NM'
and ctr1.ctr_customer_sk = c_customer_sk
order by c_customer_id
limit 100;
值得注意的是,cli 界面也會顯示執行過程。
可以看到,總耗時2分46秒處理了近6千多萬記錄。
實際上,我們去WEB UI 界面上去看,瀏覽器登陸http://localhost:8090, 可以看到整個執行中間過程,包括內存使用,數據傳輸率等信息。
初步體驗感受
整個安裝過程比較簡單,一鍵式無需干預。 腳本也完成了創建用戶、校驗/安裝jdk依賴、配置以及默認數據源的添加等操作,對於我們初嘗openLooKeng 來說非常方便,省去了閱讀冗長安裝部署的文檔。
從使用openLooKeng的角度而言,我還需要做更多的探索。目前是單節點運行,且體驗了內置數據源。下一步,我先了解下openLooKeng的connector, 然後試着去連接更多的真實數據源。 如果能找到更多的機器,我也會試一下多節點安裝,以及多節點部署後的openLooKeng 是否會帶來性能的極大提升。
to be continued : )