精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

美團Apache Kylin精確去重指標優化歷程

大數據
本文記錄了我將Apache Kylin超高基數的精確去重指標查詢提速數十倍的過程,大家有任何建議或者疑問歡迎討論。

[[181635]]

康凱森,美團點評大數據工程師,Apache Kylin commiter,目前主要負責Apache Kylin在美團點評的平臺化建設。

問題背景

本文記錄了我將Apache Kylin超高基數的精確去重指標查詢提速數十倍的過程,大家有任何建議或者疑問歡迎討論。

某業務方的cube有12個維度,35個指標,其中13個是精確去重指標,并且有一半以上的精確去重指標單天基數在千萬級別,cube單天數據量1.5億行左右。業務方一個結果僅有21行的精確去重查詢竟然耗時12秒多,其中HBase端耗時6秒多,Kylin的query server端耗時5秒多:

  1. SELECT A, B, count(distinct uuid), FROM table WHERE dt = 17150 GROUP BY A, B 

精確去重指標已經在美團點評生產環境大規模使用,我印象中精確去重的查詢的確比普通的Sum指標慢一點,但也挺快的。這個查詢慢的如此離譜,我就決定分析一下,這個查詢到底慢在哪。

優化1 將精確去重指標拆分HBase列族

我首先確認了這個cube的維度設計是合理的,這個查詢也精準匹配了cuboid,并且在HBase端也只掃描了21行數據。

那么問題來了,為什么在HBase端只掃描21行數據卻需要6秒多?一個顯而易見的原因是Kylin的精確去重指標是用bitmap存儲的明細數據,而這個cube有13個精確去重指標,并且基數都很大。我從兩方面驗證了這個猜想:

1.同樣SQL的查詢Sum指標只需要120毫秒,并且HBase端Scan僅需2毫秒。

2.我用HBase HFile命令行工具查看并計算出HFile中單個KeyValue的大小,發現普通指標的列族中每個KeyValue平均大小是29B,精確去重指標列族的每個KeyValue平均大小卻有37M。

所以我第一個優化就是將精確去重指標拆分到多個HBase列族,優化后的效果十分明顯。查詢時間從12秒多減少到5.7秒左右,HBase端耗時從6秒多減少到1.3秒左右,不過query server耗時依舊有4.5秒多。

優化2 移除不必要的toString避免bitmap deserialize

Kylin的query server耗時依舊有4.5秒多,我猜測肯定還是和bitmap比較大有關,但是為什么bitmap大會導致如此耗時呢?為了分析query server端查詢處理的時間到底花在了哪,我利用Java Mission Control進行了性能分析。

JMC分析很簡單,在Kylin的啟動進程中增加以下參數:

  1. -XX:+UnlockCommercialFeatures -XX:+FlightRecorder  
  2. -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints  
  3. -XX:StartFlightRecording=delay=20s,duration=300s,name=kylin,filename=myrecording.jfr,settings=profile  

獲得myrecording.jfr文件后,我們在本機執行jmc命令,然后打開myrecording.jfr文件就可以進行性能分析。從jmc的熱點代碼圖中我們發現,耗時最多的代碼竟然是一個毫無意義的toString。去掉這個toString之后,query server的耗時直接減少了1秒多。

優化3 獲取bitmap的字節長度時避免deserialize

在優化2去掉無意義的toString之后,熱點代碼已經變成了對bitmap的deserialize。不過bitmap的deserialize共有兩處,一處是bitmap本身的deserialize,一處是在獲取bitmap的字節長度時。于是很自然的想法就是是在獲取bitmap的字節長度時避免deserialize bitmap,當時有兩種思路:

1.在serialize bitmap時就寫入bitmap的字節長度。

2.在MutableRoaringBitmap序列化的頭信息中獲取bitmap的字節長度。(Kylin的精確去重使用的bitmap是RoaringBitmap)

我最終確認思路2不可行,采用了思路1。

思路1中一個顯然的問題就是如何保證向前兼容,我向前兼容的方法就是根據MutableRoaringBitmap deserialize時的cookie頭信息來確認版本,并在新的serialize方式中寫入了版本號,便于之后序列化方式的更新和向前兼容。

經過這個優化后,Kylin query server端的耗時再次減少1秒多。

優化4 無需上卷聚合的精確去重查詢優化

從精確去重指標在美團點評大規模使用以來,我們發現部分用戶的應用場景并沒有跨segment上卷聚合的需求,即只需要查詢單天的去重值,或是每次全量構建的cube,也無需跨segment上卷聚合。所以我們希望對無需上卷聚合的精確去重查詢進行優化,當時我考慮了兩種可行的方案:

方案1: 精確去重指標新增一種返回類型

一個極端的做法是對無需跨segment上卷聚合的精確去重查詢,我們只存儲最終的去重值。

優點:

1.存儲成本會極大降低。

2.查詢速度會明顯提高。

缺點:

1.無法支持上卷聚合,與Kylin指標的設計原則不符合。

2.無法支持segment的merge,因為要進行merge必須要存儲明細的bitmap。

3.新增一種返回類型,對不清楚的用戶可能會有誤導。

4.查詢需要上卷聚合時直接報錯,用戶體驗不好,盡管使用這種返回類型的前提是無需上聚合卷。

實現難點:

如果能夠接受以上缺點,實現成本并不高,目前沒有想到明顯的難點。

方案2:serialize bitmap的同時寫入distinct count值。

優點:

1.對用戶無影響。

2.符合現在Kylin指標和查詢的設計。

缺點:

1.存儲依然需要存儲明細的bitmap。

2.查詢速度提升有限,因為即使不進行任何bitmap serialize,bitmap本身太大也會導致HBase scan,網絡傳輸等過程變慢。

實現難點:

如何根據是否需要上卷聚合來確定是否需要serialize bitmap?

解決過程:

我開始的思路是從查詢過程入手,確認在整個查詢過程中,哪些地方需要進行上卷聚合。為此,我仔細閱讀了Kylin query server端的查詢代碼,HBase Coprocessor端的查詢代碼,Calcite的example例子。發現在HBase端,Kylin query server端,cube build時都有可能需要指標的聚合。

此時我又意識到一個問題:即使我清晰的知道了何時需要聚合,我又該如何把是否聚合的標記傳遞到精確去重的反序列方法中呢?現在精確去重的deserialize方法參數只有一個ByteBuffer,如果加參數,就要改變整個kylin指標deserialize的接口,這將會影響所有指標類型,并會造成大范圍的改動。所以我把這個思路放棄了。

后來我"靈光一閃",想到既然我的目標是優化無需上卷的精確去重指標,那為什么還要費勁去deserialize出整個bitmap呢,我只要個distinct count值不就完了。所以我的目標就集中在BitmapCounter本身的deserialize上,并聯想到我最近提升了Kylin前端加載速度十倍以上的核心思想:延遲加載,就改變了BitmapCounter的deserialize方法,默認只讀出distinct count值,不進行bitmap的deserialize,并將那個buffer保留,等到的確需要上卷聚合的時候再根據buffer deserialize 出bitmap。

當然,這個思路可行有一個前提,就是buffer內存拷貝的開銷是遠小于bitmap deserialize的開銷,慶幸的是事實的確如此。最終經過這個優化,對于無需上卷聚合的精確去重查詢,查詢速度也有了較大提升。顯然,如你所見,這個優化加速查詢的同時加大了需要上卷聚合的精確去重查詢的內存開銷。我的想法是首先對于超大數據集并且需要上卷的精確去重查詢,用戶在分析查詢時返回的結果行數應該不會太多,其次我們需要做好query server端的內存控制。

總結

我通過總共4個優化,在向前兼容的前提下,后端僅通過100多行的代碼改動,對Kylin超高基數的精確去重指標查詢有了明顯提升,測試中最明顯的查詢有50倍左右的提升。

責任編輯:龐桂玉 來源: 大數據雜談
相關推薦

2017-05-03 08:32:22

Apache KyliCube設置

2020-02-12 14:05:41

系統緩存架構

2015-07-31 11:33:28

美團云

2022-08-12 12:23:28

神經網絡優化

2022-05-26 21:38:02

開源分布式Hadoop

2017-04-11 09:33:55

Apache Kyli優化聚合組

2016-11-27 20:43:26

云計算迭代

2017-05-11 10:44:19

Apache KyliCount_Disti字符串

2022-03-25 10:47:59

架構實踐美團

2016-01-29 10:39:35

排序搜索美團

2013-08-20 13:11:58

技術美團

2016-11-15 09:34:14

Apache Kyli流處理引擎

2022-03-03 16:45:02

美團述職反饋

2017-06-01 10:52:35

互聯網

2018-04-23 09:50:54

2020-03-23 12:58:34

美團公有云互聯網

2018-08-03 11:58:07

美團分布式數據處理可視化

2019-08-23 13:10:39

美團點評Kubernetes集群管理

2017-09-18 01:21:05

美團IDC集群銳捷網絡

2018-07-20 10:18:05

走進美團工程師文化
點贊
收藏

51CTO技術棧公眾號

亚洲观看黄色网| 欧美狂野激情性xxxx在线观| 羞羞色院91蜜桃| 雨宫琴音一区二区三区| 精品国产乱码91久久久久久网站| 妞干网在线观看视频| 国产在线视频网址| 国产在线精品一区在线观看麻豆| 97免费在线视频| 萌白酱视频在线| 亚洲精品一区二区三区中文字幕| 欧美午夜视频在线观看| 三年中国中文在线观看免费播放| 天天干,夜夜爽| 精品一区二区三区影院在线午夜| 97在线视频免费播放| 少妇高潮在线观看| 日韩在线影视| 欧美一区二区三区爱爱| 日韩av黄色网址| 国产黄色在线观看| 国产视频视频一区| 国产精品精品软件视频| 亚洲一卡二卡在线| 老司机一区二区三区| 欧美激情在线播放| 国产精品99久久久久久成人| 国产尤物久久久| 亚洲第一区第一页| 图片区乱熟图片区亚洲| 日韩高清不卡| 天涯成人国产亚洲精品一区av| 最新国产精品久久| 成年人视频在线观看免费| 丁香六月综合激情| 国产一区玩具在线观看| 亚洲男人天堂网址| 国产亚洲毛片在线| 欧美激情亚洲国产| 欧美日韩免费做爰视频| 93在线视频精品免费观看| 亚洲深夜福利在线| 中文字幕人妻一区二区| 欧美挤奶吃奶水xxxxx| 精品福利av导航| 4438x全国最大成人| 精品国产欧美| 91精品国产综合久久福利软件| 天天插天天操天天射| 91精品韩国| 91黄色小视频| 成年人在线看片| 免费观看一级欧美片| 婷婷六月综合亚洲| 国产在线精品91| 在线看片国产福利你懂的| 激情成人在线视频| 国产亚洲综合视频| 天天综合网站| 欧美三级欧美一级| 性生活免费在线观看| 日韩在线电影| 日韩欧美高清dvd碟片| 秋霞午夜鲁丝一区二区| 大型av综合网站| 亚洲精品福利免费在线观看| www.超碰97| 国产成人精品999在线观看| 亚洲网站视频福利| 亚洲第一精品福利| 欧美在线视频二区| 国产福利免费在线观看| 欧美高清在线精品一区| 在线免费观看成人网| 在线观看三级视频| 亚洲成人精品在线观看| 37pao成人国产永久免费视频| 成人在线爆射| 欧美一区二区大片| 国产综合内射日韩久| 少妇久久久久| 最好看的2019年中文视频| 麻豆网址在线观看| 在线播放精品| 欧美一区视频在线| 在线观看免费中文字幕| 国产精品一级在线| 久久精品中文字幕一区二区三区| 国产裸舞福利在线视频合集| 自拍偷拍亚洲激情| 大西瓜av在线| 日韩一区二区三区在线免费观看| 欧美精品xxxxbbbb| 人妻av一区二区| 欧美日韩一二| 欧美—级高清免费播放| 波多野结衣高清视频| 国产一区在线精品| 欧美一区二区三区电影在线观看| 欧美成年黄网站色视频| 婷婷中文字幕综合| 亚洲免费成人在线视频| 欧美三级午夜理伦三级在线观看 | 亚洲精品一区二区三区香蕉| 国产精品久久不卡| 欧美激情理论| 日本国产一区二区三区| 精品久久人妻av中文字幕| 久久免费电影网| www.欧美黄色| 人人玩人人添人人澡欧美| 亚洲国产女人aaa毛片在线| 亚洲少妇xxx| 久久免费国产| 国产精品一区视频| 黄视频网站在线| 91福利精品视频| 久久久午夜精品福利内容| 天天av综合| 国产精品mp4| 国产成人自拍一区| 最近日韩中文字幕| 成年人网站大全| 青青久久av| 欧美国产日本高清在线| 一区二区三区免费在线| 久久香蕉国产线看观看99| 欧美视频在线观看视频| 91精品国产一区二区在线观看| 亚洲人午夜精品免费| 国产 欧美 日韩 在线| 国产二区国产一区在线观看| 中文网丁香综合网| 久久99国产精品二区高清软件| 日韩精品免费一线在线观看| 国产成人啪精品午夜在线观看| 久久99精品久久久久| 亚洲精品国产一区| 日韩毛片在线| 在线观看欧美成人| 这里只有精品6| 亚洲国产激情av| 免费激情视频在线观看| 精品在线99| 日韩美女在线观看一区| 黄色大片在线看| 蜜臀av性久久久久蜜臀av麻豆 | 精品无码久久久久| 国产在线精品国自产拍免费| 致1999电视剧免费观看策驰影院| 农村妇女一区二区| xxav国产精品美女主播| 亚洲最大成人av| 日韩理论片在线| 香蕉视频色在线观看| 欧美日韩 国产精品| 91九色极品视频| 日本三级在线观看网站| 精品日韩欧美在线| 日本视频免费在线| 99精品视频在线观看| 六月丁香婷婷激情| 伊人成综合网yiren22| 国产99在线|中文| 成年人在线观看网站| 51精品国自产在线| 草视频在线观看| 成人av免费在线| 欧美三级午夜理伦三级| 欧美欧美黄在线二区| 国产精品视频自在线| 国产精品久久久久久福利| 欧美一区日韩一区| 日韩精品久久久久久久| 久久久久免费观看| 日本国产一级片| 狠狠爱www人成狠狠爱综合网 | 日本a口亚洲| 亚洲一区二区三区成人在线视频精品| 成人av影院在线观看| 亚洲另类激情图| 91片黄在线观看喷潮| 亚洲午夜久久久久久久久电影网| 三级电影在线看| 麻豆精品久久久| 成人av在线播放观看| 五月综合久久| 91在线观看免费观看 | 国产人成在线视频| 欧美一区二区不卡视频| 欧美啪啪小视频| 最近日韩中文字幕| 中文字幕xxx| 国产美女精品人人做人人爽| 欧美变态另类刺激| 91成人国产| 乱一区二区三区在线播放| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 中文字幕+乱码+中文字幕一区| 91香蕉视频免费看| 久久亚洲风情| 大西瓜av在线| 午夜av一区| 欧美一区三区二区在线观看| 嫩呦国产一区二区三区av| 国产精品91久久| 黑人玩欧美人三根一起进| 日韩中文视频免费在线观看| 天天干天天舔天天射| 欧美一区2区视频在线观看| 欧美视频xxxx| 天天射综合影视| 国产日韩欧美在线观看视频| 国产免费成人在线视频| 波多野结衣一二三区| 国产在线一区二区综合免费视频| 少妇人妻互换不带套| 最新日韩av| 黄色录像特级片| 日韩电影免费网址| 欧美亚洲丝袜| 国产精品一线| 99久久综合狠狠综合久久止| 亚洲图片小说区| 国产精品久久久亚洲| 日产福利视频在线观看| 久久69精品久久久久久国产越南| 在线观看美女网站大全免费| 亚洲男人天堂2023| 香蕉av在线播放| 亚洲国产精品福利| 精品人妻少妇AV无码专区| 欧美巨大另类极品videosbest | 日本成人看片网址| 香蕉久久精品日日躁夜夜躁| 国产日韩在线一区二区三区| 7m精品国产导航在线| 亚洲综合第一页| 亚洲精品一区国产| 成人在线看片| 岛国成人av| 激情小说网站亚洲综合网| 欧美精品中文| 久久久久久久久四区三区| 偷拍自拍一区| 欧美主播一区二区三区美女 久久精品人| 久久av国产紧身裤| 精品国产乱码一区二区三区四区| 久久久伦理片| 看高清中日韩色视频| 亚洲精品456| 色播亚洲婷婷| 四虎成人av| 色哺乳xxxxhd奶水米仓惠香| 在线国产一区二区| 欧美黄色免费网址| aa亚洲婷婷| 国产精品无码av无码| 麻豆精品国产91久久久久久| 天天综合网久久| 国产精品18久久久久久久久| 亚洲精品一二三四| 不卡区在线中文字幕| 久久中文字幕人妻| 国产精品久线观看视频| 免费中文字幕在线| 一区二区三区欧美日韩| 日本五十熟hd丰满| 色老汉一区二区三区| 国产一区二区三区中文字幕 | 国产鲁鲁视频在线观看免费| 最近2019年日本中文免费字幕 | 亚洲h在线观看| 国产免费一区二区三区四区五区| 欧美在线小视频| 国产人妻精品一区二区三| 亚洲电影在线看| 成人在线免费观看| 欧美精品在线视频观看| 午夜久久中文| 国产女人精品视频| 高清欧美性猛交xxxx黑人猛| 欧美高清一区二区| 99热国内精品永久免费观看| 国产www免费| 免费看精品久久片| 欧美熟妇精品一区二区| 久久综合色综合88| 久久国产精品国语对白| 欧美午夜女人视频在线| 国产女人18毛片18精品| 日韩精品视频在线| 巨大荫蒂视频欧美另类大| 91国在线精品国内播放| 91麻豆精品| 欧美高清视频一区| 欧美另类女人| 国产福利影院在线观看| 成人激情校园春色| 91大神福利视频| 欧美日韩在线影院| 国产福利小视频| 一区二区三区四区精品| av中文字幕在线看| 91精品国产综合久久香蕉| 日韩成人动漫在线观看| 在线观看污视频| 免费一级片91| 野外性满足hd| 一区二区三区欧美激情| 夜夜骚av一区二区三区| 亚洲欧美成人一区二区在线电影| 中文在线免费| 国产精品一区久久| 久久99高清| 男人的天堂狠狠干| 国产福利一区二区三区在线视频| 免费看黄色三级| 一本色道久久加勒比精品| 亚洲成a人片在线| 久久影视免费观看| 成人午夜在线| 蜜桃久久精品乱码一区二区 | 91精品国产99久久久久久| 美女国产精品久久久| 亚洲日本精品一区| 日韩电影在线看| 精品人妻无码一区二区三区换脸| 午夜不卡av免费| 成人久久久精品国产乱码一区二区| 色噜噜狠狠狠综合曰曰曰88av | 夜夜精品视频| 在线观看一区二区三区四区| 亚洲青青青在线视频| 91 中文字幕| www.久久撸.com| 中文字幕日韩亚洲| 一区精品视频| 精品影视av免费| 免费成人深夜蜜桃视频| 欧美日韩综合一区| 在线视频1区2区| 91精品视频观看| 欧美黄色大片网站| 亚洲少妇一区二区| 亚洲地区一二三色| 少妇人妻偷人精品一区二区| 午夜精品久久久久久久久久久久| 国产精品香蕉| www.com毛片| 国产亚洲欧美一级| 最新中文字幕在线观看视频| 在线观看成人黄色| 91精品在线免费视频| 国产一级不卡视频| 成人精品在线视频观看| 成人午夜视频精品一区| 亚洲精品视频中文字幕| 天堂久久午夜av| 一区二区冒白浆视频| 国产老女人精品毛片久久| 久久久久久久久久99| 亚洲精品久久久久久下一站| 亚洲精品动漫| 亚洲精品在线视频观看| 国产一区二区福利视频| 精品少妇爆乳无码av无码专区| 亚洲国产美女精品久久久久∴| 韩国主播福利视频一区二区三区| 天堂资源在线亚洲视频| 国产在线视频不卡二| 1级黄色大片儿| 中文字幕亚洲综合| 57pao国产一区二区| 97av视频在线观看| 中文字幕日韩av资源站| 性中国xxx极品hd| 日本亚洲欧洲色α| 国产精品国内免费一区二区三区| 国产香蕉精品视频| 色婷婷精品久久二区二区蜜臂av| 美女写真理伦片在线看| 成人91免费视频| 日本在线不卡视频| 久久久无码精品亚洲国产| 亚洲欧美日本精品| 国产一区二区三区免费在线| 男人靠女人免费视频网站| 国产精品久久久久影视| 男人天堂手机在线观看| 国产精品青草久久久久福利99| 欧美激情1区| 蜜桃av乱码一区二区三区| 日韩欧美国产电影| 99欧美精品| 国产午夜大地久久| 亚洲丝袜美腿综合| 免费在线超碰| 福利视频久久| 久久99精品久久久|