欧美日韩日日夜夜,成人做爰视频www网站小优视频,精品成人自拍视频,国产成人aaaa

推廣 熱搜: 集成  系統(tǒng)集成  弱電  軟件  kvm  思科  服務(wù)器  視頻會議  拼接  SFP 

歐陽辰:小米億級大數(shù)據(jù)實時分析之旅

   日期:2016-09-08     來源:IT168    作者:田曉旭    瀏覽:434    評論:0    
核心提示:本文根據(jù)【2016 第七屆中國數(shù)據(jù)庫技術(shù)大會】現(xiàn)場演講嘉賓歐陽辰老師分享內(nèi)容整理而成。錄音整理及文字編輯。

本文根據(jù)【2016 第七屆中國數(shù)據(jù)庫技術(shù)大會】現(xiàn)場演講嘉賓歐陽辰老師分享內(nèi)容整理而成。錄音整理及文字編輯。

嘉賓介紹:

億級大數(shù)據(jù)實時分析之旅
▲歐陽辰

歐陽辰,畢業(yè)于北京大學(xué)計算機(jī)系,獲得碩士學(xué)位,喜歡互聯(lián)網(wǎng)技術(shù),架構(gòu)設(shè)計,數(shù)據(jù)挖掘,質(zhì)量改進(jìn),旅游閱讀,是一個簡單樂觀,熱愛生活的人。

正文:

大家好,很高興參加這次大會。先簡單介紹一下我自己。我在北大計算機(jī)系念完書以后不久加入到了Oracle公司,是中國Oracle研發(fā)的第一批員工,做了三年數(shù)據(jù)庫企業(yè)軟件。之后,2005年,我加入微軟從事互聯(lián)網(wǎng)方面的研發(fā)工作,主要做了兩個項目:一個是搜索,一個是廣告平臺。去年一月份加入小米公司,從事大數(shù)據(jù)平臺和廣告平臺的研發(fā)工作。

億級大數(shù)據(jù)實時分析之旅

首先和大家分享一下我對大數(shù)據(jù)的感悟吧。提到大數(shù)據(jù),大家可能馬上就會想到4個v,快速、大量、變化、多樣,那么我自己理解的大數(shù)據(jù)是什么呢?

因為現(xiàn)在各種數(shù)據(jù)的應(yīng)用場景很多,但是在有些場景下,采樣的數(shù)據(jù)不能夠滿足業(yè)務(wù)需求,我們需要一個完整的數(shù)據(jù)集來做處理業(yè)務(wù)。舉個例子,在廣告里面有一個精準(zhǔn)投放的概念,就是了解用戶興趣愛好以后,然后精準(zhǔn)的投放廣告,這種投放的廣告效果和用戶體驗都會比較好,那么這是怎么做到的?必須采用全量數(shù)據(jù),假設(shè)我們只采樣10%的用戶去做這個數(shù)據(jù)處理,肯定是不科學(xué)的。

我自己覺得大數(shù)據(jù)需要全量數(shù)據(jù),才能把業(yè)務(wù)做好。如果只用采樣數(shù)據(jù),做到的效果,我認(rèn)為不叫大數(shù)據(jù)業(yè)務(wù)。實時數(shù)據(jù)的價值最大。大家很多時候都覺得大數(shù)據(jù)光鮮亮麗,其實在做大數(shù)據(jù)的過程很苦逼,需要經(jīng)過數(shù)據(jù)清洗、數(shù)據(jù)挖掘等等過程。大數(shù)據(jù)很像紅樓夢,金玉其外,其實內(nèi)在有很多很多無奈。

億級大數(shù)據(jù)實時分析之旅

大家都知道小米是一個手機(jī)公司,雷總經(jīng)常說小米是一個互聯(lián)網(wǎng)和軟件公司,其實我個人理解除了這些,小米還是一個很好的大數(shù)據(jù)公司。我們有超過兩億的用戶在使用小米的手機(jī)、電視和路由器等等。小米的數(shù)據(jù)量非常大,除了我們自己的數(shù)據(jù),還有合作伙伴的數(shù)據(jù),生態(tài)鏈的數(shù)據(jù),那么怎么處理這些數(shù)據(jù)?

億級大數(shù)據(jù)實時分析之旅

我們的數(shù)據(jù)基礎(chǔ)架構(gòu)還是很豐富和強(qiáng)大,采用的基本上都是開源技術(shù)。我們用Scribe收集一些Log,然后用ETL去處理數(shù)據(jù)。存儲層我們針對不同場景采用了很多方案,包括HDFS、HBase和KUDU等等。HBase是小米投入比較大的技術(shù)。數(shù)據(jù)管理層,我們用Hue來做業(yè)務(wù)管理配置,Kerberos是傳統(tǒng)的認(rèn)證體系。數(shù)據(jù)分析層,我們也嘗試了很多工具,例如傳統(tǒng)的MapReduce,Spark, Strom,Hive,Impala以及新工具Druid和Elastic search。算法層,主要包括研究機(jī)器學(xué)習(xí)、自然語言、數(shù)據(jù)挖掘和統(tǒng)計分析的方向。

億級大數(shù)據(jù)實時分析之旅

大數(shù)據(jù)的應(yīng)用場景是困擾很多大數(shù)據(jù)人員的一個問題。大家都知道數(shù)據(jù)很有用,數(shù)據(jù)可以指導(dǎo)我們精細(xì)化運營,那么數(shù)據(jù)怎么變現(xiàn)呢?其實是一個非常難的問題,我自己總結(jié)了一下,大數(shù)據(jù)的直接變現(xiàn)場景有兩個比較明確,一個是廣告營銷方面,包括精準(zhǔn)投放,廣告效果的跟蹤。第二個就是互聯(lián)網(wǎng)金融,互聯(lián)網(wǎng)金融有很多泛征信的問題,所以很多金融服務(wù)愿意掏錢去買有價值的數(shù)據(jù)。其他方面只要是扶持業(yè)務(wù)精細(xì)化運營和正常發(fā)展,比如說防黃牛和圖片分析處理的算法。

億級大數(shù)據(jù)實時分析之旅

小米的技術(shù)應(yīng)用場景有很多,我們有一個開放平臺,提供類似友盟的統(tǒng)計服務(wù)。另外我們內(nèi)部有一個實時分析系統(tǒng),幫助我們查看手機(jī)銷量、日活以及哪個地方的手機(jī)bug比較多。

億級大數(shù)據(jù)實時分析之旅

實時數(shù)據(jù)分析包括數(shù)據(jù)收集、數(shù)據(jù)處理、數(shù)據(jù)建模、數(shù)據(jù)分析、數(shù)據(jù)可視化多個部分。其中數(shù)據(jù)分析也分好幾個層次,最底下的一層叫做響應(yīng)型分析,主要是收集數(shù)據(jù),安排一定規(guī)格做報表,是比較基礎(chǔ)的處理方法。第二個層次叫診斷型分析,主要是做競品分析和趨勢分析。第三個層次是數(shù)據(jù)分析很重要的一點,戰(zhàn)略分析,包括制作戰(zhàn)略方向、預(yù)測模型。有很多公司在做戰(zhàn)略分析方面的工作,著名的有麥肯錫7S模型、波士頓矩陣分析圖。最后一個層次叫做預(yù)測型分析,預(yù)測型分析可能是下一代數(shù)據(jù)分析的頂尖層次,很多時候是需要人工智能給我們一些真正的建議。我認(rèn)為數(shù)據(jù)分析下一個比較熱門的地方,就是預(yù)測型數(shù)據(jù)分析,現(xiàn)在的數(shù)據(jù)分析基本都是反映現(xiàn)狀,很難給企業(yè)一些建設(shè)性意見,幫助企業(yè)繼續(xù)發(fā)展。

億級大數(shù)據(jù)實時分析之旅

我把大數(shù)據(jù)分析工具分為開源方案和商業(yè)方案兩類。大規(guī)模實時數(shù)據(jù)分析的商業(yè)項目有HP vertica,Oracle Exadata、Teradata。Vertica是一個挺不錯的工具,F(xiàn)acebook也在使用 Vertica解決方案來做商業(yè)分析,大家都知道Facebook本身就是一個很強(qiáng)的互聯(lián)網(wǎng)公司,他也在釆用 vertica解決方案,就說明Vertica的數(shù)據(jù)處理量非常大,部署相對也比較簡單,關(guān)鍵是速度快,兼容各種SQL查詢工具。Exadata是Oralce和SUN合并以后,推出了軟硬件一體機(jī)的服務(wù)器,效果非常好,它的響應(yīng)速度非??臁⒖捎眯苑浅8?,Oracle Exadata可以應(yīng)用自如的在線處理TB級別的數(shù)據(jù)。

開源方案其實有2類工具,一類是MOLAP多維數(shù)據(jù)分析工具,包括Pinot、DRUID、ES、Kylin。另外一類是基于關(guān)系型數(shù)據(jù)庫的ROLAP,這類工具大多是基于傳統(tǒng)型數(shù)據(jù)庫的解決方案,支持的數(shù)據(jù)規(guī)模比較小,數(shù)據(jù)處理的靈活性較低。

億級大數(shù)據(jù)實時分析之旅

數(shù)據(jù)分析工具很多也很雜亂,我們應(yīng)該怎么挑選這些工具呢?其實這些工具在CAP理論里都有自己的定位,這里有幾個指標(biāo)可供大家在挑選數(shù)據(jù)分析工具的時候參考一下。第一個是數(shù)據(jù)量處理分析的能力,第二是能夠提供多少并發(fā)度,第三是實時性的能力以及總體的成本和分析系統(tǒng)的效率。

億級大數(shù)據(jù)實時分析之旅

小米統(tǒng)計的數(shù)據(jù)平臺包括了很多技術(shù),我們有個入口層可以從終端直接把數(shù)據(jù)打到服務(wù)器。接入層使用LVS/NGIX,對于HTTPS,我們采用專用的硬件加大服務(wù)器吞吐量,Analytics Server上的Scribe Log把數(shù)據(jù)傳到HDFS上,同時把同樣的數(shù)據(jù)打印一份到Kafka里,kafka做分布式處理,然后MapReduce和Spark做一些批處理和實時處理。最后落盤的時候,我們會選擇不同的落盤方式,落到ES上的直接接Kafka,數(shù)據(jù)比較穩(wěn)定的,量小一些的,有結(jié)構(gòu)的,(例如一些元數(shù)據(jù)和系統(tǒng)統(tǒng)計數(shù)據(jù),會落到MySQL,在線的大量應(yīng)用數(shù)據(jù)落地HBase里,數(shù)據(jù)量比較大且經(jīng)常需要實時查詢的會落到DRUID里。前端的服務(wù)大概分為兩類,一類是運營,對每個產(chǎn)品進(jìn)行精細(xì)化運營,另一類是洞察,老板或者管理者通過這個系統(tǒng)去查看一些核心指標(biāo)。

億級大數(shù)據(jù)實時分析之旅

我們在內(nèi)部使用比較多的NoSQL是HBase,它是比較好數(shù)據(jù)庫,比MySQL的存儲容量大很多,基本上可以到P量級,且訪問速度非??臁?/p>

億級大數(shù)據(jù)實時分析之旅

我們在HBase的使用過程中也不斷做了很多改進(jìn),比如我們提供名字服務(wù),很多HBase可以通過名字去訪問Cluster;HBase天生是不支持索引的,它只用key去找value,知道key才可能知道value,我們在內(nèi)部實現(xiàn)了一個二級索引;salted table,在插入數(shù)據(jù)的時候,如果key比較接近,可能會落在一起,導(dǎo)致整個系統(tǒng)不平衡。Salted Table就是給它們加個隨機(jī)數(shù),讓它們在落盤的時候更加平均;HBase以前不是強(qiáng)類型的,我們會在API加強(qiáng)類型的檢查,讓操作更規(guī)范一些。

億級大數(shù)據(jù)實時分析之旅

除此之外,我們還對HBase在小米上的使用做了一些改進(jìn):單機(jī)多實例,減少Heap大小;BucketCache(Heap+Offheap);Compaction限速;Read/Write Quota限制;table/CF粒度的Replication限速;在線更新集群配置;新的HLog寫模型;根據(jù)業(yè)務(wù)類型選擇存儲介質(zhì)。

億級大數(shù)據(jù)實時分析之旅

我們以前有很多數(shù)據(jù)是在MySQL中,那么如何實現(xiàn)從MySQL平滑遷移到HBase?

第一步是雙寫MySQL和HBase ,把所有最新的數(shù)據(jù)都放在兩個數(shù)據(jù)庫里,第二步就是把MySQL數(shù)據(jù)全部嵌入到HBase里面,這樣理論上它們是有一樣的數(shù)據(jù)。第三步就是雙讀,驗證數(shù)據(jù)是否一致,如果不一致則需繼續(xù)讀取,直到數(shù)據(jù)完全一致,最后灰度返回HBase結(jié)果,完成整個遷移。

億級大數(shù)據(jù)實時分析之旅

下面我們對比一下幾種MOLAP的分析工具。

DRUID是采用JAVA開發(fā)語言的實時數(shù)據(jù)分析工具,是在2011年發(fā)布的,當(dāng)時創(chuàng)始這個工具的公司叫MetaMarkets。MetaMarkets是一個互聯(lián)網(wǎng)廣告的分析公司,因為互聯(lián)網(wǎng)廣告里有大量的數(shù)據(jù),所以它就開發(fā)了這樣一個工具來做實時分析,它的特點是實時聚合,目前很多互聯(lián)網(wǎng)公司都在使用,包括雅虎、小米、阿里,網(wǎng)易,新浪等等。

Pinot是去年11月份LinkedIn開源的實時分析軟件,它跟DRUID都是JAVA語言開發(fā)的,輸入輸出都是json。LinkedIn在開源軟件領(lǐng)域非常有名氣,因為當(dāng)時它把Kafka開源出來了。

Kylin以前是eBay的一個項目,去年eBay將它開源出來,它支持標(biāo)準(zhǔn)的OLAP/JDBC協(xié)議,并且和一些標(biāo)準(zhǔn)數(shù)據(jù)庫連接。它的處理跟實時聚合可能有點不一樣,Pinot的進(jìn)程是把進(jìn)來的數(shù)據(jù)變成列存儲,簡化存儲,所以聚合會比較快。而Kylin更多的是做一些預(yù)處理、cache。

DRUID 支持很多功能,查詢性能也比較好。DRUID是為OLAP工作流的探索性分析而構(gòu)建。它支持各種filter、aggregator和查詢類型,并為添加新功能提供了一個框架?,F(xiàn)有的DRUID部署每天處理數(shù)十億事件和TB級數(shù)據(jù)。

億級大數(shù)據(jù)實時分析之旅

億級大數(shù)據(jù)實時分析之旅

DRUID的架構(gòu)比較經(jīng)典,當(dāng)查詢語句來了之后,它會把請求發(fā)給兩個節(jié)點,其中一個節(jié)點是Real-time,該節(jié)點主要存儲最新的數(shù)據(jù),另外一個是Historical節(jié)點,主要存儲歷史數(shù)據(jù)。

億級大數(shù)據(jù)實時分析之旅

我們的廣告系統(tǒng)里是這樣應(yīng)用DRUID的:在廣告的前端有展現(xiàn)和點擊過來時,我們有兩條線可以走。一條線是通過Kafka直接到DRUID做聚合,然后再做展現(xiàn)。這是一條實時線,延時大概是1分鐘左右。還有一條是可追溯的線,把log放到HDFS里,我們每天會有腳本去HDFS中拷貝存儲,然后到DRUID里面去做矯正,最后會把這里面的結(jié)果和DRUID里面的數(shù)據(jù)重新掛一下。我們認(rèn)為這些持久化數(shù)據(jù)是可以重跑的,所以我們是十分信任這條線上的數(shù)據(jù)。

億級大數(shù)據(jù)實時分析之旅

Pinot是LinkedIn的工具,是分布式的實時OLAP數(shù)據(jù)分析平臺,現(xiàn)在主要應(yīng)用于LinkedIn內(nèi)部,大概有50多個場景,比如“誰看了我的Profile”、“廣告創(chuàng)建,跟蹤”、“內(nèi)部數(shù)據(jù)分析BI等”。據(jù)最新數(shù)據(jù)表明,Pinot的規(guī)模不到一千個節(jié)點,數(shù)據(jù)量不算太大,但是場景很多。它的SQL-Like查詢不是標(biāo)準(zhǔn)的SQL而是提供一個類似SQL的工具,支持多種數(shù)據(jù)源,目前也在開發(fā)UDF。

億級大數(shù)據(jù)實時分析之旅

Pinot的架構(gòu)也是比較經(jīng)典Lambda架構(gòu),查詢來了以后,它主要查看兩個節(jié)點,一個是歷史節(jié)點,還有一個是realtime節(jié)點,中間協(xié)調(diào)采用的是Apache Helix,Apache Helix在調(diào)度能力和cluster管理能力方面要比DRUID好一些。Pinot在對SQL查詢的支持方面花了很多力氣,它的輸入對象是類SQL,容易和傳統(tǒng)的數(shù)據(jù)工具集成。

億級大數(shù)據(jù)實時分析之旅

Kylin大家都知道是eBay開源的一個分析引擎,它提供了標(biāo)準(zhǔn)的SQL查詢、提供了BI工具的集成,提供了完美的管理界面、任務(wù)監(jiān)控、增量更新。

億級大數(shù)據(jù)實時分析之旅

Kylin除了支持標(biāo)準(zhǔn)SQL查詢,還支持Restful API查詢,它會把查詢Query記錄下來,來自Hadoop的元數(shù)據(jù)會調(diào)度以前任務(wù),把數(shù)據(jù)發(fā)到Query里。這樣架構(gòu)在一些預(yù)定義好的場景和數(shù)據(jù)下的執(zhí)行速度是非??斓?,比較適合每天的報表。如果業(yè)務(wù)有了很好的格式化工具或者報表以后,你只需要把數(shù)據(jù)源替換一下。以前,這部分查詢功能可能需要從MySQL、SQL Server遷移到HBase接口。

億級大數(shù)據(jù)實時分析之旅

我們也利用Kylin嘗試過以下場景,例如API請求分析、廣告返回類型的分析。我們發(fā)現(xiàn)它在響應(yīng)時間和誤差率方面的表現(xiàn)也不錯。

億級大數(shù)據(jù)實時分析之旅

KUDO是去年十月份開源的項目,小米也參與其中。KUDO最早是Cloudera做的項目,大家都知道Cloudera是一家非常棒的分布式Hadoop存儲的技術(shù)公司。我們知道存儲在開源方面有兩個方案,一個是Hadoop HDFS,另一個是HBase。Hadoop HDFS的特點是批處理能力特別強(qiáng),但是響應(yīng)時間慢。HBase特點是小吞吐,低延時,簡單的查詢是可以,大批量的數(shù)據(jù)可能會有些挑戰(zhàn)。KUDO其實是介于兩者之間,無論響應(yīng)時間方面還是數(shù)據(jù)處理量方面都是介乎兩者之間。目前小米主要應(yīng)用在服務(wù)質(zhì)量監(jiān)控和問題排查。

億級大數(shù)據(jù)實時分析之旅

我們以前的數(shù)據(jù)處理方法是這樣的:從數(shù)據(jù)源獲取到數(shù)據(jù)以后,我們通過Hive和MapReduce Spark寫到HDFS里面,將它變成列存儲,用Impala工具查詢。

但是現(xiàn)在我們應(yīng)用了一個全新的模式,數(shù)據(jù)傳到Kafka里去查,然后Storm傳到KUDO里,最后采用兩條路徑陸續(xù)查,一條路徑是Impala查詢,另一條是直接查詢。我們發(fā)現(xiàn)大部分的分析查詢場景,都能滿足我們的預(yù)期。

億級大數(shù)據(jù)實時分析之旅

Elasic Search的核心引擎是Lucene,是一款實時分布式搜索引擎和分析引擎,支持全文檢索,結(jié)構(gòu)化搜索和分析。小米部分應(yīng)用也是將log進(jìn)行索引來做分析,主要應(yīng)用在廣告分析和查詢方面。

億級大數(shù)據(jù)實時分析之旅

數(shù)據(jù)可視化方面我們主要用一些的標(biāo)準(zhǔn)的開源工具,包括 Meteorite Saiku、Microsoft Power BI、Excel、Baidu eChart。

億級大數(shù)據(jù)實時分析之旅

數(shù)據(jù)分析和數(shù)據(jù)處理中有一個概念叫數(shù)據(jù)隱私,它最早是1890年提出來的,2012年,歐盟頒布了一項的法律叫做《用戶保護(hù)條約》,這個條約里規(guī)定了很多名詞條例,2016年4月份,歐盟頒布了一個效力更強(qiáng)的條約,《歐盟通用數(shù)據(jù)保護(hù)條約》。該條約規(guī)定每個公司必須有一個CDO,禁止搜集個人特別信息,包括政治觀點、性取向,保護(hù)兒童數(shù)據(jù)等等。在數(shù)據(jù)隱私方面,歐盟走的比較靠前。而在國內(nèi)的話,我們還是在參考民法通則等一些老舊的方法。

在互聯(lián)網(wǎng)里最重要的隱私數(shù)據(jù)叫PII,PII代表個人標(biāo)識數(shù)據(jù),這些信息能夠關(guān)聯(lián)到個體本身,比如說你的手機(jī)號、你的身份證號都能關(guān)聯(lián)到你。

億級大數(shù)據(jù)實時分析之旅

我認(rèn)為大數(shù)據(jù)分析一定要以業(yè)務(wù)為基礎(chǔ),沒有業(yè)務(wù)支持的大數(shù)據(jù)分析都是耍流氓,一定很難有好的收獲,大數(shù)據(jù)分析一定要找到業(yè)務(wù)做落地點。

技術(shù)選型的指標(biāo)不如想象中的重要,只要選用的技術(shù)用的精妙即可。舉個例子,小米要在服務(wù)器中存儲一些用戶之間的消息信息,有些用戶可能會查詢消息,但查詢的概率非常非常小,我們當(dāng)時有兩個選項,一個選項是使用Elasic Search,第二個就直接用HBase,如果用ElasicSearch會引入新的很多麻煩,包括基礎(chǔ)的部署、安全等方面,所以我們就跟其他內(nèi)容一樣都放到HBase里面去做一些簡單的查詢,這樣可以更好地保護(hù)安全。

在實時分析的時候,維度是一個永遠(yuǎn)的痛。

我們希望大家在做數(shù)據(jù)分析處理的時候,要像保護(hù)你的眼睛一樣保護(hù)用戶的隱私。

億級大數(shù)據(jù)實時分析之旅

數(shù)據(jù)分析是挺難的一件事情,大家既然走上這個道路,我希望大家不忘初心,方得始終!特別是你想從業(yè)務(wù)中洞察出一些信息,它不僅需要你的技術(shù)牛逼,而且還需要數(shù)據(jù)的敏感性,能夠發(fā)現(xiàn)自己的數(shù)據(jù)問題。數(shù)據(jù)分析的未來看似光明,實則道阻且長。

 
標(biāo)簽: 大數(shù)據(jù)
打賞
 
更多>同類資訊
0相關(guān)評論

 
推薦資訊
點擊排行
?
網(wǎng)站首頁  |  付款方式  |  版權(quán)隱私  |  使用協(xié)議  |  聯(lián)系方式  |  關(guān)于我們  |  網(wǎng)站地圖  |  排名推廣  |  廣告服務(wù)  |  RSS訂閱  |  違規(guī)舉報  |  京ICP備11008917號-2  | 
 
主站蜘蛛池模板: 息烽县| 宿松县| 兴城市| 资源县| 上杭县| 宁城县| 云安县| 吴旗县| 晋州市| 武定县| 阿坝| 南乐县| 鄂伦春自治旗| 昆山市| 瓦房店市| 夏河县| 青河县| 通山县| 曲沃县| 育儿| 阿合奇县| 会理县| 岳西县| 普兰县| 同仁县| 建平县| 思茅市| 台南市| 永春县| 元阳县| 乐平市| 达州市| 东辽县| 合川市| 淄博市| 葵青区| 尚志市| 石台县| 威信县| 甘肃省| 福建省|