成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

今日頭條王燁:真正數據驅動的公司是這樣使用數據的

原創
開發 大數據
隨著今日頭條的發展,數據量遞增式爆棚,今日頭條基礎數據平臺架構師王燁見證了基礎數據平臺從無到有、從小到大的歷程,故他由來解讀平臺演進過程中踩的哪些,再合適不過。

【51CTO.com原創稿件】在前往今日頭條的路上,一直考慮對于這樣一家數據驅動的公司,訪問哪個方向會更受關注,是個性化新聞推薦、不同業務之間算法差異,還是敏感信息屏蔽、新聞源抓???可是,在這個陽光溫暖的午后,與今日頭條基礎數據平臺架構師王燁長達一個多小時的交流中,我們的話題不知不覺一直圍繞著一個主題,那就是如何使用數據。

基礎數據平臺——是數據驅動型公司發展到一定階的必需

今日頭條(以下簡稱頭條)于2012成立,王燁于2014年加入,那時候,公司僅三百人。隨著公司發展,數據量遞增式爆棚,見證了基礎數據平臺從無到有、從小到大的歷程,所以他由來解讀平臺的方方面面,再合適不過。 

[[187961]]

王燁·今日頭條基礎數據平臺架構師

什么時候需要建設基礎數據平臺?對于初創公司來講,核心是服務好用戶,做好產品功能的迭代。當公司發展到一定階段,業務開始多元化并開始精細化運營,數據需求變多,產生的數據量和數據處理復雜度也大幅增加,這時就該建設基礎數據平臺了。王燁介紹,2014年的頭條每天只有幾百萬活躍用戶,支撐好產品是首要任務,并沒有專門的人負責做數據。眾多復雜業務的上線,同步會招聘大量的PM(產品經理)和運營。基于刻到骨子里的數據驅動的思想,各種各樣的數據需求源源不斷的被提上來,這時不再是幾個數據工程師單打獨斗就能解決問題了,而讓PM和運營直接分析數據的門檻也很高。面對這些情況,頭條的做法是成立數據平臺團隊,把數據基礎設施像Hadoop、Hive、Spark、Kylin等封裝成工具,把這些工具結合通用的分析模式整合成完整的解決方案,再把這些解決方案通過平臺的形式,提供給業務部門使用。數據平臺也有一個演進的過程,并不需要追求從開始就大而全,不同階段采用的技術能匹配當時需求就好。

基礎數據平臺的職責什么?推薦業務是頭條最重要的業務之一,從其需求出發,搭建面向全公司的通用數據平臺。用戶數據(內容偏愛、行為軌跡、閱讀時間等)是頭條最龐大的數據源,這些被記錄下來的數據反映了用戶的興趣,會以各種形式傳輸和存儲,并提供給全公司各個業務系統來調用。還要維護面向RD(分析師)數據工具集(日志收集、入庫、調度、依賴管理、查詢、元數據、報表),面向PM、運營的通用用戶行為分析平臺,底層查詢引擎(Hive, Presto, Kylin等OLAP查詢引擎,支撐上層數據平臺和數據倉庫),平臺基礎數據倉庫及協助維護業務部門數據倉庫。

建設基礎數據平臺需要面臨哪些挑戰?數據生命周期分為生成、傳輸、入庫和統計/分析/挖掘,每個環節的難度都會隨著數據規模的變大而上升。當前,頭條每日處理數據量為7.8PB、訓練樣本量200億條、服務器總量40000臺、Hadoop節點3000臺。龐大數據量和業務復雜度給數據生成、采集、傳輸、存儲和計算等帶來的一系列問題是平臺建設要克服的挑戰。

數據生成與采集——SDK、用戶埋點

一般情況下,數據生成與采集是很簡單的事,但對于頭條這個功能眾多的APP來講,難點就在于每個功能背后都是一個團隊獨立運營。如果每個團隊都用自研的數據采集的方法,那會給后續的進程帶來巨大的困擾。那怎么辦呢?王燁介紹了他們分析和決策的過程,頭條屬于C端業務公司,主要以日志形式為主,數據的主要來源是用戶行為,那么就以采用事件模型來描述日志,以SDK形式接入,支持客戶端、服務端埋點。這里需要注意的是:數據質量很重要,埋點規范趁早確立,臟數據是不可避免的,可以引入必要的約束、清洗等。

埋點就是用戶在使用某一個功能時,產生的一段數據。頭條初期,埋點由各業務場景自定義日志格式,之后埋點統一到事件模型,保證了信息的結構化和自描述,降低了后續使用成本,并復用統一的解析和清洗流程、數據倉庫的入庫和行為分析平臺的導入。埋點的管理,也由通過文檔、Wiki等方式演進成埋點管理系統,覆蓋整個埋點生命周期。這樣一來,也得到了埋點元信息的描述,后續可應用在數據清洗、分析平臺等場景,同時埋點的上線流程實現標準化,客戶端也可進行自動化測試。

數據平臺實現了通用的客戶端埋點SDK和服務端埋點SDK,放棄之前按約定生成數據的方式,可以保證生成的日志符合埋點規范,并統一App啟動、設備標識等的基本口徑,也減少了新App適配成本。對數據的描述由使用JSON改為Protobuf,這樣就可通過IDL實現強制約束,包括數據類型、字段命名等。

除了日志數據,關系數據庫中的數據也是數據分析的重要來源。頭條在數據的采集方式上,用Spark實現類Sqoop的分布式抓取替代了早期定期用單機全量抓取Mysql數據表的方式,有效的提升了抓取速度,突破了單機瓶頸。再之后為了減少Mysql壓力,選用Canal來接收Mysql binlog,離線merge出全量表,這樣就不再直接讀Mysql了,而且對千萬/億級大表的處理速度也會更快。

數據傳輸——Kafka做消息總線 連接在線和離線系統

數據在客戶端向服務端回傳或者直接在服務端產生時,可以認為是在線狀態。當數據落地到統計分析相關的基礎設施時,就變成離線的狀態了。在線系統和離線系統采用消息隊列來連接。頭條的數據傳輸以Kafka作為數據總線,所有實時和離線數據的接入都要通過Kafka,包括日志、binlog等。王燁提醒,這里值得注意的是:盡早引入消息隊列,與業務系統解耦。

頭條的數據基礎設施以社區開源版本作為基礎,并做了大量的改進,也回饋給了社區,同時還有很多自研的組件。因為以目前的數據和集群規模,直接使用社區版本乃至企業版的產品,都會遇到大量困難。像數據接入,就自研Databus,作為單機Agent,封裝Kafka寫入,提供異步寫入、buffer、統一配置等feature。

Kafka數據通過Dump落地到HDFS,供后續離線處理使用。隨著數據規模的增加,Dump的實現也經歷了幾個階段。最初實現成的是類似Flume模式的單機上傳,很快遇到了瓶頸,實現改成了通過Storm來實現多機分布式的上傳,支持的數據吞吐量大幅增加。現在開發了一個叫DumpService的服務,作為托管服務方便整合到平臺工具上,底層實現切換到了Spark Streaming,并實現了exactly-once語義,保證Dump數據不丟不重。

數據入庫——數據倉庫、ETL(抽取轉換加載)

頭條的數據源很復雜,直接拿來做分析并不方便。但是到數據倉庫這一層級,會通過數據處理的過程,也就是ETL,把它建設成一個層次完備的適合分析的一個個有價值的數倉。在數倉之上,就可以讓數據分析師和數據RD通過SQL和多維分析等更高效的手段使用數據。

數據倉庫中數據表的元信息都放在Hive metastore里,數據表在HDFS上的存儲格式以Parquet為主,這是一種列式存儲格式,對于嵌套數據結構的支持也很好。

頭條有多種ETL的實現模式在并存,對于底層數據構建,一種選擇是使用Python通過Hadoop Streaming來實現Map Reduce的任務,但現在更傾向于使用Spark直接生成Parquet數據,Spark相比MapReduce有更豐富的處理原語,代碼實現可以更簡潔,也減少了中間數據的落地量。對于高層次的數據表,會直接使用Hive SQL來描述ETL過程。

數據計算——計算引擎的演進

數據倉庫中的數據表如何能被高效的查詢很關鍵,因為這會直接關系到數據分析的效率。常見的查詢引擎可以歸到三個模式中,Batch類、MPP類、Cube類,頭條在3種模式上都有所應用。

頭條最早使用的查詢引擎是InfoBright,Infopight可以認為是支持了列式存儲的Mysql,對分析類查詢更友好,但Infopight只支持單機。隨著數據量的增加,很快換成了Hive,Hive是一個很穩定的選擇,但速度一般。為了更好的支持Adhoc交互式查詢,頭條開始調研MPP類查詢引擎,先后使用過Impala和Presto,但在頭條的數據量級下都遇到了穩定性的問題。頭條現在的方案是混合使用Spark SQL和Hive,并自研QAP查詢分析系統,自動分析并分發查詢SQL到適合的查詢引擎。在Cube類查詢引擎上,頭條采用了Kylin,現在也是Kylin在國內***的用戶之一。

數據門戶——為業務的數據分析提供整體解決方案

對于大部分需求相對簡單的公司來說,數據最終可以產出報表就夠用了,如做一個面向管理層的報表,可以讓老板直觀的了解一些關鍵性指標,這是最基礎的數據應用模式。再深入一點,就需要匯總各種來源的業務數據,提供多種維度和指標來進行更深入的探索型分析,得到的結論用來指導產品的迭代和運營。王燁表示,頭條絕大部分業務都是數據驅動的,都需要產出和分析大量的數據,這就或多或少需要用到平臺的提供的系列工具。

頭條開發了一套叫數據門戶的平臺系統,提供給業務部門使用,對數據生命周期各個環節都提供了相應支持。數據門戶提供的工具都是聲明式的,也就是讓使用者只需要說明要實現什么目的,具體實現的復雜細節都隱藏起來,對使用者更友好。通過這些工具,可以讓業務部門的RD、分析師、PM等將精力放在業務分析本身,而不是去學習大量數據基礎設施的使用方法。

今日頭條王燁:真正數據驅動的公司是這樣使用數據的

數據抽取平臺QueryEditor

今日頭條王燁:真正數據驅動的公司是這樣使用數據的

數據抽取平臺QueryEdito使用界面

數據抽取平臺QueryEditor,用于數據生命周期管理,對Kafka數據Dump、數據倉庫入庫、SQL查詢托管等做了統一支持。

基礎數據平臺理念及方向——降低使用門檻 提升工具易用性  

基礎數據平臺的理念就是提供整體解決方案,降低數據使用門檻,方便各種業務接入?;ヂ摼W產品的數據分析模式也是相對固定的,比如事件多維分析、留存分析、漏斗分析等,把這些分析模式抽象出工具,也能覆蓋住大部分常用需求。同時期望參與業務的人比如PM等能更直接的掌握數據,通過相關工具的支持自行實現數據需求,盡量解放業務部門工程師的生產力,不至于被各種臨時跑數需求困擾。而對于更專業的數據分析師的工作,也會提供更專業的工具支持。

責任編輯:王雪燕 來源: 51CTO
相關推薦

2017-08-30 09:42:50

今日頭條知乎

2015-12-09 11:22:24

高仿今日頭條android源碼

2016-03-03 11:36:09

浪潮

2021-03-19 08:29:30

MacOS操作系統算法

2017-12-18 14:06:53

今日頭條

2017-06-20 09:14:32

大數據平臺實踐

2013-12-09 16:13:36

用友王文京

2016-05-30 16:13:41

2019-08-08 16:35:02

暗數據信息企業

2015-01-20 11:21:51

微信社交

2017-07-10 16:51:42

互聯網

2018-08-22 15:45:11

英特爾今日頭條大數據

2011-02-25 23:09:12

瞻博網絡Fabric

2017-11-06 10:45:13

今日頭條文本推薦應用

2015-03-06 10:24:45

云服務戴爾IBM

2015-03-10 10:24:49

數據中心

2018-04-17 09:47:10

2015-06-24 10:07:56

數據泄露

2009-03-06 09:55:48

職場晉升助理

2016-06-14 14:25:34

wifi安全
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区观看 | 日韩欧美第一页 | 久久国产电影 | 91中文视频| 99爱在线免费观看 | 中文字幕在线不卡 | 国产精品亚洲一区二区三区在线 | 欧美日韩在线免费 | 看羞羞视频免费 | 日本一区二区视频 | 伊人网在线综合 | 中文字幕一区二区三区在线乱码 | 欧美综合在线观看 | 欧美久久久久久久久中文字幕 | 中文字幕在线欧美 | 黄色网址在线播放 | 国产精品一区二区三区四区 | 在线视频亚洲 | 男女在线免费观看 | 精品乱码一区二区 | 天天操天天摸天天爽 | 韩日一区二区 | 国内自拍真实伦在线观看 | 欧美一区二区成人 | caoporn免费在线视频 | 亚洲在线 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 嫩草视频免费 | 色888www视频在线观看 | 日韩一区二区三区在线看 | 免费h视频 | 精品欧美乱码久久久久久1区2区 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 一级大黄色片 | 日本成人毛片 | 欧美日韩国产高清视频 | 91在线观看免费视频 | 国产激情视频网址 | 中文字幕日韩欧美一区二区三区 | 日韩精品成人一区二区三区视频 | 亚洲视频中文字幕 |