文章出處

創建于2017/9/7 最后更新于2017/9/16

關鍵詞:大數據,HBase,數據開放,即席查詢,數據授權,HDFS,Zeppelin,Kylin,

提綱:

  1. 解決什么場景

  2. 即席查詢的發展歷程

  3. 五個特性

  4. 小結


  數據開放實驗室(OpenDataLab) 是云縱數據中心繼魔鏡(競情數據分布式抓取管理平臺)、魔盒(大數據協作平臺)、數屏(可視化監控屏管理平臺)之后推出的又一款大數據應用。

  它的現階段目標是將我司的各種數據,經過脫敏、清洗等處理之后,授權下游企業使用,通過即席查詢確定數據格式,定義API,通過API拉取數據。它的用戶既有企業內部用戶,也有企業外部用戶。

  它的開發者有:前臺少明,川川,中舟,順闖,倉庫清勇,興申,明軍,明黎,梁鍵等。

 

  螞蟻金服曾把大數據應用劃分為四個階段,如下圖所示:

圖1 四個應用階段

 

  雖然我們的數據開放實驗室對標的是處于第四階段的螞蟻數巢之云數據實驗室,但是第一我們現階段數據量還是太小,第二螞蟻金服強調的是“可用不可見,相逢不相識”的可信的大數據加工處理環境,而我們強調的是將大數據以自助定制API的方式輸出給可信的合作伙伴,本質上還是即席查詢的變種。 

 

0x00,解決什么場景

   我們定義數據開放實驗室要解決三件事:

1)把數據倉庫的數據復制到實驗室數據專區。把數據專區里的數據授權給企業,在這個數據復制的過程中,可以對數據做脫敏等清洗工作;

2)企業可以看到企業專區里的表結構和數據字典,可以做即席查詢(Ad-hoc),當然只展示結果集的前1000條記錄;

3)企業如果覺得結果集符合需求,可以將查詢發布為 API,通過接口調用,可以將數據拉到企業本地。

  

0x01,即席查詢的發展歷程

面向數據倉庫的即席查詢,這個工作在窩窩開展過,技術選型為 shib+node.js+Presto。Presto 也是幾年前諸多互聯網公司提升 Ad-hoc 響應速度的重要選擇之一。

到了2016、2017年,即席查詢有了更多的選擇,如 Apache Zeppelin,Apache Kylin,原先用了 Presto 的那撥公司陸續接入了 Kylin,如美團點評唯品會鏈家京東POP,國美商城,百度地圖

2017年3月3日,明軍做了 Kylin 技術演示。我們發現一個嚴重的問題,由于給企業授權數據是分批分期進行的,如果 Kylin 建了多個 Cube,不同 Cube 之間的表不能聯表查詢,那就違背了數據開放實驗室的需求,你想企業客戶都已經看到了多張表,不可能說因為底層 Cube 的限制而不允許聯表查詢。唯品會2016年12月做的 Kylin 分享中提到,他們基于 Presto+Kylin 雙引擎的架構做了改造,支持了跨 Cube Join。我們短期內還做不到這一點。

 

2017年7月14日數據開放實驗室第一次公開演示。

2017年8月18日數據開放實驗室正式上線。

 

0x02,五大特性

接下來展示一下這個產品企業前臺的五個特性。

第一,企業前臺的 dashboard 展示集群資源使用情況,已授權數據表數量,已發布API數量,如下圖所示:

圖3 首頁dashboard

 

當 Hadoop 集群的CPU、內存使用情況變為紅色時,不建議進行數據查詢操作。

第二,數據列表可以查看數據字典,數據大小。

第三,查詢編輯器里支持按 tab 鍵提示關鍵字、表名、字段名,還支持一鍵格式化。

圖6 智能提示和格式化

 

咱們這里的 SQL 采用的是類似于 SQL 的語法,可以看作是標準 SQL 的子集,但不能因此簡單地把 OpenDataLab 等價成⼀個數據庫,它在一些查詢語法上跟標準 SQL 有所不同,需要看幫助文檔。

還可以把當前 SQL 語句保存下來,以后能在“查詢記錄”列表里找回來。

查詢的執行過程會實時打印出來,如下圖所示:

圖7 執行信息

 

第四,查詢之后,可以發布為 API 了,臨時或一次性使用數據,可以選擇“單次”,周期性獲取數據,選擇“周期”。

第五,API 發布后,可以在 API 列表里找到,能看到 API 任務進度和數據定制進度。加速狀態為“已加速”的分析才能被外部程序訪問到。

既可以由程序調用 API,同時為了方便內部用戶導出數據,這里也提供了下載報表的按鈕。

數據開放實驗室還有一個管理后臺,能開通企業,對企業授權數據,定義數據脫敏和轉換等規則,這里不再贅述。

  

0x03,小結

就醬,底層有 DataFlash 集群,上層應用有魔盒、魔鏡、數屏、數據開放實驗室等大數據應用或工具。

 

-EOF-


贈圖一枚

 

吐槽若干:


 RT @hengdm:一件看似簡單的事之所以一直沒人能做好,是因為它有看不見的大坑。

/*說一個實例。

昨天看到一篇《微信iOS收款到賬語音提醒開發總結》。需求很簡單,為了解決小商戶老板們在頻繁交易中不方便核對、確認到賬的痛點,微信要做收款到賬語音提醒。

技術實現嘛,聽上去也不難,收款到賬語音提醒需要收款方在收到款后,播放一段TTS合成語音播報金額,微信在前臺時可以通過模板消息將需要播報的金額帶下來,再請求TTS數據并播放,但是app在掛起或者被kill掉的情況下要如何請求語音數據并播放呢?

但遇到的問題有:

零,有人說,使用 VoIP 方式喚醒 App,蘋果審核團隊會拒審的。

微信開發者說,還好,蘋果官方文檔確實提到了只有 VoIP 應用才能接入 Push Kit,微信本身支持視頻通話和語音通話的功能,所以收款語音提醒只是復用這個通道。

一,有大佬吐槽,如果微信支付開啟了到帳提醒,即使手機靜音了,也會播報。

好,改。

但是,蘋果在iOS5之后便禁止監聽靜音按鍵。

悲催的開發者最后在 Reddit 上找到了一種曲線救國的方式,實現起來也不復雜:使用AudioServicesPlaySystemSound播放一段0.2s的空白音頻,并監聽音頻播放完成事件,如果從開始播放到回調完成方法的間隔時間小于0.1s,則意味當前靜音開關為開啟狀態。

二,用戶吐槽音量太小聽不見。

原因是用戶設置的系統音量過小所導致。

那也得解決啊。

最終的解決方案借鑒了進入收付款展示二維碼時自動調節屏幕亮度的方案:如果屏幕亮度未達到閾值,則調高屏幕亮度到閾值,離開頁面時,將亮度設回原亮度。同理,播放提示音時,若用戶設置的系統音量小于閾值,則調節到閾值。提示音播放完畢后,將提示音調回原音量。

*/


昨天面試的時候我告訴候選人,一個公司如果讓一幫人只做業務另一幫人只做架構(其實也只是技術選型而已),這樣是不對的。

第一,每個工程師都有更高更快更強的愿望,我們講究的是平凡人(可以)做非凡事。

第二,只做技術選型遠遠不夠。技術管理分為三個層次:研發能力,研發效率,研發活力。“研發能力的提升”是研發部門的生理需求,“生產效率的提升”是公司的安全需求,“研發活力的提升”是研發人員的社交需求和尊重需求。三者循環往復,互相促進,缺一不可。


RT @cxiaoji:「1996年6月,阿里亞娜五號火箭第一次試射,表示水平速度的64位浮點數值被轉換為16位整型代入運算,導致火箭在高速下水平翻滾解體。

他們要是用JavaScript就沒事了

/*注:Ariane的開發語言是Ada。設計Ariane4火箭時堅信水平速率是不會超過一個16-bit signed integer的。但Ariane5火箭的水平速率比4高出了5倍,code review時沒有注意到這一點,導致數據轉換時溢出,控制慣性導航系統的計算機向控制引擎噴嘴的計算機發送了一個無效數據,于是火箭偏離它的飛行路徑,解體并爆炸。*/

 

-END-


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜

    大師兄 發表在 痞客邦 留言(0) 人氣()