今天,Cloudera正式宣佈在CDH中支持Apache Phoenix,同時也會集成到將來的Cloudera Data Platform中。javascript
Cloudera的CDH發行版其實一直包含Apache HBase服務,它爲但願利用大數據功能的客戶的操做型應用程序提供了一個靈活的NoSQL數據庫。這些應用程序已經發展成爲重要且核心的應用程序,能夠推進收入和利潤的增加。這些應用程序包括面向客戶的應用程序,電子商務平臺,銀行的風控和反欺詐,或爲應用程序提供AI/ML模型,以及根據實際結果進一步增強訓練。html
可是,對於許多客戶來講,使用HBase其實很抗拒,由於:java
1.HBase的數據模型是一張大寬表,支持上百萬個column,但卻不支持join數據庫
2.使用Java APIs而不是ANSI SQLapache
他們要求可以使用相似於Oracle或MySQL提供的更傳統的schema設計,而且願意在靈活性方面作出一些權衡,例如:安全
1.他們願意使用提供的數據類型,而不是定義本身的數據類型微信
2.他們願意放棄靈活性,讓單個column具備多種類型,具體取決於行,以換取單行中的單個類型併發
爲了使客戶輕鬆擁有Apache HBase的其它優點(無限擴展,數百萬行,模式演變等),同時提供相似RDBMS的功能(ANSI SQL,簡單join,開箱即用的數據類型等),咱們在CDH上引入了對Apache Phoenix的支持。ide
若是優化HBase,基於Phoenix的應用程序一樣也會受益,從而得到更好的性能。例如Phoenix實現了主鍵的加鹽 - 所以HBase用戶不用考慮Rowkey的設計。高併發
此外,基於Phoenix的應用程序能夠與HBase應用程序共存 - 這意味着您可使用單個HBase集羣來支持這二者。使用Phoenix,客戶能夠繼續使用他們喜歡的BI和儀表盤工具,就像之前使用Hive和Impala同樣。
在CDH中從安全和治理角度,Phoenix使用HBase ACLs來實現Phoenix表的基於角色訪問控制。同時Cloudera Navigatior也會捕獲Phoenix的審計信息。
如今,Cloudera發佈的主要是基於CDH5.16.2的Phoenix4.14.1 Parcel包,不久以後咱們將會發布CDH6.2的Phoenix5.0的Parcel包,由於C6中的HBase已是2.x,因此會不同。
已有的HDP客戶其實一直能夠享有Apache Phoenix的技術支持,使用HDP的HBase的用戶幾乎有一半正在使用Phoenix,同時Phoenix在HBase的用戶社區也很受歡迎。
使用Apache Phoenix構建核心應用程序,請點擊如下連接下載Phoenix:
https://www.cloudera.com/downloads/phoenix.html
Q)Phoenix適用於什麼樣的工做負載
Phoenix支持與HBase相同的用例場景,主要是低延遲,高併發的工做負載。可是,Phoenix還能夠更輕鬆地利用底層數據進行儀表板和BI應用。
Q) Phoenix的受權機制是什麼?
Phoenix依賴於HBase的受權機制,對於CDH客戶,可使用HBase ACL。對於HDP客戶,可使用Ranger。
Q) Phoenix的可擴展性怎樣?已知的最大的集羣是哪一個?
Phoenix能夠擴展到數百TB的數據。最大的客戶擁有超過0.5 PB的數據,由Phoenix管理。該用例的詳細信息能夠在PhoenixCon archives找到:
https://phoenix.apache.org/phoenixcon-archives.html
也能夠在今年早些時候用戶本身的視頻中 NoSQL day videos查看:
https://www.youtube.com/playlist?list=PLSAiKuajRe2l6If7Az2PHIDG8vsJly9CH
Q) Phoenix是否支持地理空間二級索引?支持什麼級別的空間數據?
它對地理空間(geo-spatial)數據的支持有限。GeoMesa在HBase上提供了一個geospatial層,能夠支持這種需求並與客戶應用程序集成。Phoenix,GeoMesa以及JanusGraph和OpenTSDB均可以共存於一個HBase集羣中。
Q) 如何建立和使用索引?
有關索引的詳細信息,請參閱Phoenix Secondary Indexing頁面。
https://phoenix.apache.org/secondary_indexing.html
從Phoenix 4.8.0開始,使用本地索引不須要進行任何配置。
Q) 作索引的column數量有限制嗎?
與RDBMS同樣,HBase的二級索引其實就是使用另外一張索引表來實現的,這張表包含索引和源數據的連接。若是你對全部column都進行索引,你的維護成本會大大上升。對於索引的選擇你還同時須要考慮讀多寫少能夠考慮Global indexes(全局索引),若是寫多讀少,則能夠考慮Local indexes(本地索引)。
本文分享自微信公衆號 - Hadoop實操(gh_c4c535955d0f)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。