資源描述:
《hbase的sql實(shí)踐與改進(jìn)-31頁》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、Ali-HBase的SQL實(shí)踐與改進(jìn)阿里巴巴天穆12345為什么需要SQL?SQLonAli-HBase優(yōu)化與改進(jìn)ApsaraDB-HBase未來的工作案例:時間序列數(shù)據(jù)的存取time(desc)eventmessage需求:10040011aaa?按時間順序追加新記錄8010020bbb?按時間范圍查詢數(shù)據(jù)8010010ccc?查詢結(jié)果按時間倒排7010040ddd6020000eee.........寫熱點(diǎn)問題time(desc)eventmessagetime(desc)eventmessage10040011aaa12010010xxx8010020bbb11010020y
2、yy8010010ccc10040011aaa7010040ddd8010020bbb6020000eee8010010ccc..................解決寫熱點(diǎn)問題:Hash散列time(desc)eventmessagehashtimeeventmessage12010010xxxAAAA10040011aaa11010020yyyBBBB8010020bbb10040011aaaCCCC12010010xxx8010020bbbDDDD8010010ccc8010010cccEEEE11010010yyy.........FFFF.........解決寫熱點(diǎn)問題:分
3、桶bucket_idtime(desc)eventmessage分桶:10040011aaabucket_id=md5(rowkey)%bucket_num17010040ddd5030000fff?所有“桶”都可寫8010010ccc2?數(shù)據(jù)在桶內(nèi)有序,桶之間無序6020000eee?代價:范圍查詢時,須并發(fā)查所有桶,客戶端8010020bbb執(zhí)行mergesort34010050hhh............解決寫熱點(diǎn)問題:分桶bucket_idtime(desc)eventmessageSelect*fromeventLogwheretime>40andtime<=70;10
4、040011aaa17010040dddbucket_1:70,505030000fffbucket_2:608010010cccbucket_3:NA26020000eeemergesort9010020bbb34010050hhh70,60,50............基于HBaseNativeAPI的實(shí)現(xiàn)?分桶:?寫:打散?讀:并發(fā)scan,clientmergesort?desc主鍵:ts=Long.MAX_VALUE-ts?rowkey:3列主鍵的拼接與拆分?數(shù)據(jù)類型轉(zhuǎn)換:Hbase只支持byte[]對于復(fù)雜的業(yè)務(wù)場景,用戶要做的事情更多使用HBaseNativeAPI的
5、代價與收益?精準(zhǔn)?成本/負(fù)擔(dān)?細(xì)節(jié):用戶可精確控制一切,如hash函數(shù)選取?學(xué)習(xí)成本:學(xué)習(xí)曲線陡峭?最佳性能/吞吐:便于針對場景進(jìn)行優(yōu)化?開發(fā)成本:代碼量大?自定義?重復(fù)?實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)場景?每個用戶都要做相同/相似的事情“難用”的HBaseNativeAPIHBaseNativeAPI僅提供“原語”級別的操作抽象層次低目標(biāo):降低接入門檻,讓用戶能快速、低成本的接入需求:解決共性問題?自動/透明的rowkey散列?自動拼接/解析rowkey(schema)?支持豐富的數(shù)據(jù)類型?支持豐富的查詢語義?支持二級索引?支持聚合?...解決方案:SQLonHBase解決NativeAPI“難
6、用”的問題?具備NativeAPI的全部能力成為HBase的默認(rèn)戶接口?與NativeAPI性能差距<5%?相比HBaseAPI,大家更熟悉SQL?快速開發(fā)(ORM框架)?對用戶透明的優(yōu)化拓展服務(wù)邊界?SQL工具?更低的接入門檻和成本基于Phoenix的SQLonHBase解決方案PhoenixJDBCDriverZooKeeperServiceHBaseClientHBaseMasterServiceRegionServerRegionServerRegionServerPhoenixPhoenixPhoenixCoprocessorCoprocessorCoprocessorH
7、DFS案例1:支付寶智能搜索dump平臺實(shí)時鏈路?250+張表數(shù)據(jù)源HBase?80億+數(shù)據(jù)HBaseShopShop?日更新1億?全鏈路RT<200msItem同步ItemJoinResult導(dǎo)出搜索引擎?平均selectRT<10ms?平均qps>10W,峰值30W+RelationRelation全量鏈路案例1:支付寶智能搜索dump平臺場景:?周期性全量導(dǎo)入+實(shí)時增量HBase?每張主表平均3-6張索引表HBase實(shí)時寫入Shop?基于全局二級索引的多維度查詢