網易餘利華:大數據技術升級脈絡及認知陷阱

{"type":"doc","content":[{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"多年來,大數據技術經歷了幾輪更迭,在計算、存儲、大規模落地等層面均取得了不錯的進展,並在不斷的成長和成熟,整個生態領域也得到了快速發展。目前,基於分析的大數據計算平臺在各大公司發揮着非常重要的基礎設施的作用。本期"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.cn\/video\/7S2ZjFgUagxEECf2lKUj","title":"xxx","type":null},"content":[{"type":"text","text":"大咖說直播"}]},{"type":"text","text":",InfoQ邀請到了網易數據科學中心總監、網易有數總經理餘利華結合他在大數據領域的從業經驗,與大家分享大數據技術應用逐步升級的脈絡,解讀背後的業務需求以及認知陷阱。"}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"關注的大數據技術:流批一體與 AI 應用"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"InfoQ:您方便簡單介紹一下目前在網易負責的主要工作嗎?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"餘利華:"},{"type":"text","text":"我目前負責網易的數據科學中心,這個部門是網易的大數據部門,爲網易內部提供公共的大數據工具,包括大數據平臺,以及 BI 等一些基礎的通用軟件。除了這些工具,我也負責網易的一些公共數據的建設,比如網易跨業務的數據,用戶畫像等公共的數據資產。目前,我們也有對外的商業化品牌網易有數,把我們用得很好的工具對外商業化輸出。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"InfoQ:您個人最近一年比較關注的技術或者應用場景是什麼?具體原因是什麼?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"餘利華:"},{"type":"text","text":"最近我們在關注的技術方向主要有以下兩個。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一個是流批一體。我們一直在做數據中臺,"},{"type":"text","marks":[{"type":"strong"}],"text":"我關注流批一體技術也是期望未來能夠把數據中臺從離線變成實時"},{"type":"text","text":"。從需求上來講,流批一體在技術上要解決好兩個問題,一是能解決存儲統一的問題。受限於目前的技術,我們存儲最新數據的實時表,和我們存儲T+1數據的離線表通常是兩張表,這兩張表實際上是代表了一份數據,但是因爲在實時性上有要求,通常就存儲在不同的系統裏,比如說離線的表存儲在Hive裏面,實時的表存儲在Kudu或者HBase裏面,這樣造成的問題不僅僅是存儲和維護的成本上升,使用也很複雜。做流批一體的存儲統一就是希望把這樣的兩張表重新合併在一起,並且還能實現一些增量的消費,這樣能夠直接實時計算,在存儲方向上我們也在做一些預研的項目。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"解決完存儲統一的問題之後,要解決編程語言的統一。現在採用的Lambda架構通常需要寫兩份代碼,實時計算一份代碼,離線計算一份代碼,未來有可能做到流計算和批計算都用同一套代碼,因爲目前他們都已經支持了SQL,未來有可能統一到SQL。或許未來有可能在數據中臺上做少量的變更,做少量的配置,就能幫我們把離線數據中臺轉成實時的數據中臺,流批一體是一個大的方向。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二個關注的技術方向是"},{"type":"text","marks":[{"type":"strong"}],"text":"AI在大數據系統方面應用"},{"type":"text","text":"。首先是自然語言的交互,這也是目前熱點的方向,很多的國外企業像微軟都在往這個方向發展。自然語言交互是訪問大數據比較自然的方式,舉個例子,假設我們要問“這款奶粉最近的銷售額是多少”,如果大數據系統能夠直接告訴你答案,甚至給出一個圖表,是不是我們非專業的人員也能用大數據了?當然,要做成這樣還是非常難的,因爲這裏面充滿了歧義,就像銷售額,銷售額指的是數據庫裏的哪個字段,哪張表呢?最近是距離多長時間,是最近一天還是最近一個月?充滿歧義。我們之前也跟浙大的大數據實驗室的老師做過交流,也做了一些自然語言到SQL翻譯的測試,目前這塊精度還不是很高,但是我們會一直保持關注。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"AI在大數據裏面還有其他的用途,比如數據治理、數據管理,一個簡單的例子就是,假設我們的一些表裏有身份證,那我們應該能自動識別出這些具有敏感信息的字段,然後自動的匹配通用的規則,比如說給身份證打上很多的星號。而且還要關注一些校驗的規則,比如檢查這個身份證的質量好不好,未來身份證自帶校驗,我們是不是要直接匹配一個校驗規則,幫助我們檢測身份證是不是有效的,提升我們數據質量。目前,很多公司都在朝這個方向發展。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"另外 AI 也能用於一些運維的途徑。大數據的系統大大小小有幾十個組件,部署起來特別麻煩,如何保證數據按時產出是一個複雜的問題。在這個方向上,我們需要去預測數據的產出時間,提前預警。很多時候,大數據計算都是在晚上計算,在晚上生成數據,這個計算過程特別耗時,如果不能提前預警,我們幾乎是沒有時間來處理緊急情況的。因爲大數據的任務用時特別長,所以應該提前預警這樣的數據,甚至讓大數據給我們推薦一個任務應該配置什麼參數、內存配置多大,這些應該是系統自動配置的,不應該讓管理員去配置。這樣不僅能節省人力,而且能夠優化大數據資源的使用。未來通過這種自動運維,我們就能夠實現自動駕駛的大數據系統,就像Oracle現在號稱自己是自動駕駛數據庫,未來大數據系統也是自動駕駛的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"InfoQ:最近幾年,我們陸續看到業內很多公司在落地流批一體。根據您的經驗,這個過程有哪些需要注意的問題呢?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"餘利華:"},{"type":"text","text":"從兩個方面來看,一個是從語言同步來看,其實語言到SQL層面流跟批還是有所不同的,所以怎麼能夠統一語言,目前還要再探索。在存儲方向上,之前在HDFS或者在對象存儲上,沒有一個存儲能解決好數據的更新問題,但是如果我們對數據的實時性要求不是那麼高的話,目前有一些開源的項目在做這個方向,未來有可能我們在數據湖裏面具備實現更新的能力和實時數據的能力,這樣我們就有可能把存儲也統一起來,做了存儲跟代碼的統一,未來纔有可能做到流批一體。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"親歷大數據技術更迭:提升人效是核心"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"InfoQ:您方便聊一下自己經歷了大數據技術的幾輪更迭,每一個階段的特點和主流的架構大概是什麼樣的?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"餘利華:"},{"type":"text","text":"我會從能效角度,就是用戶使用方便程度、使用效率角度把大數據的技術劃分爲三個階段,每個階段大數據的人效都被提升了數倍。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一個階段是大數據誕生之初,以Hadoop的誕生爲標誌,這個階段是解決了大規模數據的存儲和計算的問題。Hadoop的誕生使我們能夠處理更大規模的數據,這個階段重點是分佈式技術,解決規模和性能的問題,以及後來的Spark也是爲了能解決更大規模的數據,更高的效率。這是第一個階段。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二個階段是SQL語言成爲大數據編程的主流。Hadoop誕生之初並沒有SQL,處理數據都要寫代碼,門檻太高。當時,圖靈獎獲得者、數據庫領域的專家Stonebraker曾經批判MapReduce是一個技術的大倒退,原因之一就是MapReduce非常難用,比當時已經成熟的數據庫SQL技術差得太遠了。在編程語言方面,現在業內也提供很多嘗試,比如Java、Scala、Pig和Google開源的Beam等,但這些語言的使用效率都遠遠趕不上SQL。最終事實證明,SQL纔是數據處理語言的勝利者。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"從我們自己的平臺上統計,大部分的任務都是SQL。大數據的SQL技術起源於當時Facebook開發的一個Hive項目。Hive以後,SparkSQL逐漸發展起來了,SparkSQL可以支持更多的SQL標準,內存計算性能也更好,我們最近幾年也在推動用SparkSQL來替代Hive系統,根據實測數據,從Hive切換到SparkSQL會有兩倍以上的性能提升。我們自己也在做一個開源項目叫做Kyuubi,它的定位非常類似於HiveServer,它是一個SparkSQL的查詢服務器,我們也正在往Apache社區推這個開源項目。在SQL的生態裏面還有很多,包括Impala,將MPP技術和Hadoop結合提供更好的查詢性能,還有Presto等,當然目前SparkSQL還是主流。有了SQL之後大數據操作就已經簡化了很多了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三個階段是集成開發和管理的階段。隨着雲和大數據開源技術的發展,大數據的基礎設施和大數據技術變得比較容易獲得,目前大數據的重點往往是怎麼樣去快速地構建大數據應用,提供大數據應用。構建大數據應用需要把各種大數據技術組合在一起,通過這種集成化的方式提高數據應用交付的效率。這裏的技術涉及到數據集成,任務的開發、調度和運維,數倉的設計,數據治理,數據服務等技術點,只有把這些技術點組合起來,才能提供比較好的開發效率。目前這個階段還沒有形成統一的標準。舉個例子,大數據測試就是一個還沒有解決好的問題。很多時候大家做數據的開發和測試環境都是不分離的,在線上開發的代碼隨便檢查一下就上線了,也沒有任何的迴歸測試。所以我說,我們大數據整個研發還是不成熟,相比在線的CI\/CD差得比較遠。我們也在這個方向上嘗試做出一個比較好的大數據開發和管理平臺,能夠把各個大數據的技術很好地組合在一起,從而提高應用的開發效率。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"InfoQ:最近有關Apache 軟件基金會(ASF)宣佈將其至少 19 個開源項目撤回到 Apache Attic,其中有 13 個項目與大數據相關,10 個項目屬於 Hadoop 生態系統的事情引發了業內的廣泛討論。您對於目前整個Hadoop生態的發展有哪些想法和觀點呢?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"餘利華:"},{"type":"text","text":"這個問題比較大,其實現在廣義的Hadoop生態,我不把它定義爲像MapReduce這樣的東西,而是包含Spark、Impala等等。現在這些底層技術還是很成熟的,要性能有Impala,要SQL全、性能也不錯,有SparkSQL等等,而且雲端也可能會提供這樣的大數據服務。但是從我的角度來講,怎麼樣把這些大數據的技術用起來,去快速地開發應用,保障我們的數據按時產出,這個是比較關鍵的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"對於大數據項目撤回到Apache Attic,我覺得這件事情很正常,並不是每個項目都能成功。剛纔我把Hadoop生態定義成包含Spark在內的所有大數據技術的集合,我們可以基於最新的、最主流的技術做自己的發行版,而淘汰的都是比較邊緣的、很少人在用的項目。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"湖倉一體:邏輯數據湖更實用"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"InfoQ:最近一段時間業內在湖倉一體的落地方面也有很多進展和輸出,也想聽下您對這一方面架構落地的建議。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"餘利華:"},{"type":"text","text":"湖倉一體這個概念,可能不同人有不同的定義。我先澄清“湖”和“倉”這兩個概念,倉是指數據倉庫,就是類似於Teradata、Greenplum這些系統,這些系統的特點是,數據要經過ETL,形成定義良好的表,之後導入到數據倉庫系統裏面去,主要場景是數據分析和報表。數據倉庫的優點是支持ACID,支持更新,性能也不錯,但是性能好是來自它的查詢引擎跟存儲是耦合的設計,這樣查詢能夠用到底層存儲的高級特性,比如索引,存儲也能爲查詢做一些優化。性能好的另一個原因,是數據倉庫一般有專用硬件。但是它的缺點也很明顯,它沒法處理這種非結構化的數據,也沒法支持這種複雜的計算,比如機器學習。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"湖是數據湖,數據湖其實是一套存儲系統加上一些標準的文件格式,再加上一些數據查詢和處理的系統。存儲可以是對象存儲,也可以是HDFS,典型的文件格式有Parquet、Orc等。數據湖一般採用ELT技術,它強調數據先入湖,在數據湖的內部進行結構的轉化,這種方式的好處是非常靈活,能夠存儲任何數據,也支持各種複雜的計算引擎,包括機器學習。其實Hadoop就是一套數據湖的系統。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"數據湖也是有些缺點的,一個是它跟數倉正好相反,不支持ACID,性能吞吐力還可以,但是很難做到及時響應,因爲它爲了通用性和標準化,存儲和查詢引擎不是深耦合的,同樣的存儲數據可以換查詢引擎來查,但這樣做帶來的缺點是不能做得深度耦合的優化,一般沒有什麼索引結構。另外很多時候數據湖上面的負載是多變的,它不是一個專用的環境,所以性能不穩定,容易受到其他負載的干擾。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"湖和倉有各自的優缺點。在企業內部,像網易,湖和倉一般是同時存在的,我們可以稱之爲"},{"type":"text","marks":[{"type":"strong"}],"text":"“湖倉結合”"},{"type":"text","text":"。最原始的數據,比如說用戶訪問日誌、數據庫的數據,都會先導入到數據湖裏面進行加工,然後比較關鍵的、用於決策的一小部分數據會導到數據倉庫系統裏面去。湖倉結合是能滿足業務需求的,它既能處理各種複雜的負載,成本也不太高,並且也能用上數倉的一些好處。當然它也有問題,比如我要維護兩套系統,數據可能要冗餘一份,數據的一致性維護上也會存在一些問題,這就是爲什麼現在要提出湖倉一體的概念。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"湖倉一體的定義有很多,我採用的是發表在 CIDR2021 會議上的一篇LakeHouse論文裏的定義。論文裏說,湖倉一體的主要思想是把倉融入到湖裏,在數據湖的基礎之上提供 ACID特性,提供更好的查詢性能。也就是說,湖能夠一定程度上替代倉的功能,Databricks公司的Delta Lake項目也是朝着這個方向做的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"湖倉一體的想法非常好,如果未來發展好的話,是能替代掉很多數倉的使用的。但完全替代數倉還是不大可能的,因爲像數據湖的特點是能力比較強,什麼產品都能用,這往往意味着它在某些方向上不會太精,所以它不能完全替代數倉。它能替代一些數倉的場景,但最終還是脫離不了湖倉結合。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在湖倉結合的情況下,我們的數據可能分散在湖裏,分散在倉裏,甚至很多時候,一個企業裏可能還會有很多個湖,有可能雲端有一套系統,自己的機房裏有一套大數據系統,甚至可能有多個數據倉庫。我們現在的理念是,做一個"},{"type":"text","marks":[{"type":"strong"}],"text":"“邏輯數據湖”"},{"type":"text","text":",雖然把這些數據分佈在不同的地方,但是能不能讓它看起來是統一的視圖,在同一個地方能看見,這些數據有統一的標準,含義是清晰的,它的血緣等各方面的元數據信息都是完善的,這樣的數據通過邏輯入湖,構成邏輯數據湖。這是性價比較高的一種方式,如果真的把數據全都導到一個湖裏,它的改造成本是非常大的。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"警惕數據中臺的陷阱"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"InfoQ:在過往的職業生涯中,您有經歷過或者說有了解過,開發者羣體對於大數據技術或者應用存在哪些認知陷阱,具體的原因是什麼呢?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"餘利華:"},{"type":"text","text":"我在工作中經常看到的現象是,開發羣體往往比較關注技術本身,有時候會對技術要解決的問題,或者技術的價值關注得比較少。我自己以前也做開發,也有這個傾向,但後來,我負責部門之後就深刻的認識到,能說清楚技術的價值的重要性。所以我們的團隊做產品、做技術之前都會去問問,做這個事情對用戶有沒有價值。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"舉個例子。數據中臺是最近比較火的一個詞,大家經常會聽到別人說怎麼去構建一個統一的數據中臺。但是很多時候,這些人說不清楚數據中臺的價值。"},{"type":"text","marks":[{"type":"strong"}],"text":"我們做數據中臺是業務需求驅動的,並沒有去強求整個集團要一個數據中臺,因爲網易的每個業務相差是比較大的"},{"type":"text","text":",比如電商跟教育明顯就不一樣,所以我們會有兩層的數據中臺,每個業務會有自己數據中臺,集團層面也會有公共的數據中臺,通過這樣的方式來解決業務的問題。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"之前我們數據中臺立項的時候,從用戶角度梳理出要解決的一些問題,在效率方面,我們當時面臨的問題是找數據特別困難,一個業務有幾萬張表,而且這些表的命名還不規範,很難從中找到相應的數據。這就導致我們的業務存在大量的數據重複建設,交付的速度比較慢,平均需要一週的時間。針對這些問題,我們和業務一起共建了模型設計中心的產品,這也是我們數據中臺的一個子產品,並且還獲得了網易集團的一個技術貢獻大獎。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"通過這個產品,我們把業務模型做了規範,模型的複用度從原來的 2.4 提升到 9.6。也就是說,一張表原來是2.4個表的複用度,後來能做到9.6張表來複用。同時我們還做數據地圖的產品,提升數據的效率。最終通過我們的數據中臺產品,需求交付的速度從一週以後降低到2.5天。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在數據質量和成本方面,我們也做了很多的統計去量化我們的效果。比如說在質量方面,我們之前面臨的問題是,每週都有十多個數據質量的問題,當時一個比較嚴重的事情是,我們有個運營在他們的季度總結大會上說,他來網易工作最大的困難是數據不符合常識邏輯,這讓我們數據團隊面臨很大的壓力。後來,我們上線了數據質量的功能,去找出線上的問題;還做了數據測試的功能,去找出更多代碼的Bug;也做了任務運維,保證任務能夠按時產出。最終我們任務完成率提升了很多,研發的Bug下降的也非常多。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"總結一下就是,我們做一件事情很多時候是從用戶的角度來思考的,我們把遇到的效率的問題、質量的問題、成本的問題,都進行了量化,這樣才能把我們的技術成果講得比較清楚,而不是爲了建設中臺而建設中臺,從而保證我們走的方向是正確的。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"數據生產力的內涵與落地要點"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"InfoQ:在中臺最開始火的時候,我就看到過網易對於中臺方面的一些分享和觀點,以及實踐的案例。我最近也注意到網易對於全鏈路數據生產力有一些研究跟想法,您方便跟我們分享一下全鏈路數據生產力具體指什麼?它的意義是什麼嗎?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"餘利華:"},{"type":"text","text":"很多時候我們都說大數據是一家企業的核心競爭力之一,但是怎麼去判斷一家公司的大數據應用的水平?看這家公司的數據量夠不夠大嗎?還是看這家公司每年在大數據上花的錢?這些都不是太科學,"},{"type":"text","marks":[{"type":"strong"}],"text":"我們用數據生產力這個概念來衡量大數據應用的水平,怎麼樣纔算是企業有好的數據生產力,我們總結爲一句話:人人用數據,天天用數據。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"以前我們的數據都是數據分析師在用,或者是老闆在用,但是這樣用數據的人數和頻率是非常有限的,決策的顆粒度也不夠,很多細節的問題沒有用上數據。事實上很多一線的崗位都是需要數據的,比如一個門店的店長,他可能需要看商品的銷售、庫存的情況,還要及時地補貨,增加營收。營銷人員要實時地看促銷的效果,提升營銷的水平。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"只要能做到人人用數據,天天用數據,哪怕每天只是用數據改進一點點業務,長期的累計下去,企業也能得到很大的進步,這樣數據就能轉化爲生產力,企業也就有了競爭力。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"InfoQ:在大數據整個的發展過程當中,無論是數據的可視化,還是體驗,或者是開發者對於數據的重視程度都在不斷的提高,尤其是這兩年,隨着數據中臺在企業內部的落地,幫助企業去打通數據孤島,這些其實還不足以解決數據生產力的問題,對嗎?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"餘利華:"},{"type":"text","text":"剛纔提到了一些數據中臺的作用,比如說提升效率了,提升質量了,降低成本了,但這些解決不了業務問題,也沒法提升企業的大數據應用的水平。"},{"type":"text","marks":[{"type":"strong"}],"text":"數據生產力是通過數據應用來實現的,數據中臺最重要的是支撐好更多有價值的數據應用的落地,這樣數據中臺就會更有價值。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們觀察到很多客戶要立項做數據中臺的時候,總會帶一些應用,比較常見的是帶一些BI報表。但很多時候只有BI還是不夠的,第一,BI看數據不那麼好看,之前有個業務方就跟我們反饋說,他們現在部門有五百張報表,但是他不知道從哪裏看起。這些報表沒有按照一定的數據分析的思路來設計,沒有按照一定的業務和故事來組織起來,看起來比較雜亂無章。而且這些報表只能看,不能跟業務系統聯動。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"所以"},{"type":"text","marks":[{"type":"strong"}],"text":"在數據生產力方向上,我們更強調做數據產品,數據產品是一類決策性的產品,它首先看數據比較容易,其次能跟業務系統聯動。"},{"type":"text","text":"比如像網易嚴選做的供應鏈協同決策系統,它能生成自動補貨的請求,發到採購系統裏面去,讓採購系統去執行採購動作,這就是一個典型的數據產品。"},{"type":"text","marks":[{"type":"strong"}],"text":"我們的業務系統加上數據中臺,加上數據產品,這三個構成一個數據生產力的循環。"},{"type":"text","text":"我們的業務系統爲數據中臺提供原始的數據,數據中臺加工這些原始的數據,形成高質量的數據,以服務化的形式提供到我們的數據產品,數據產品生成決策又會把這個決策推回到業務系統。比如剛纔說的補貨數據產品,就是把補貨的請求推送到我們的採購系統裏面去。通過這樣的數據生產力的循環,就能夠提升數據應用水平。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/30\/3053b2f3d33973ac36682e1cc5a33ac7.png","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們內部的業務像電商,同時就有接近20個數據產品,而其他的業務也正在建設大量的數據產品。只有有了數據中臺,我們建設數據產品纔會更高效,才能支撐更多的應用,才能產生價值。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"InfoQ:如果企業沒有構建數據中臺,僅用大數據系統做支撐也是OK的嗎?會影響最終的效果嗎?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"餘利華:"},{"type":"text","text":"我們說的數據中臺也是建立在大數據基礎上的數據中臺,它可能強調的是數據的打通,強調的是以服務化的方式來提供,這樣構建數據應用會更加快速一點。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"InfoQ:從技術層面來看,數據生產力工具的技術生態大概包含哪幾部分內容,具體每一部分是解決什麼樣的問題,網易是如何做的?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"餘利華:"},{"type":"text","text":"數據生產力包含三個層面的內容。第一個是大數據平臺方向的,我們自己叫大數據開發計算平臺,主要是幫助我們內部的業務,或者幫助客戶去建立數據中臺。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二個是有數BI,我們不僅僅把它定義成一個BI產品,更多把它定義成一個數據產品的研發工具,比如我們有數據門戶、決策引擎等等這些產品,數據門戶能以無代碼的方式,開發一個數據產品出來,決策引擎也可以把我們決策的知識放在決策規則和決策引擎裏面。我們之前內部的一些業務,它的會員運營系統找不到人來開發的時候,數據團隊就通過這種無代碼的方式很快地去搭建出來自己的數據產品。有了這樣的無代碼搭建數據產品的工具,我們就有可能爲每個角色都創建自己的數據產品,這樣才能真正做到人人用數據,天天用數據。我們一些業務已經用這樣的工具構建了十多個數據產品。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三個是通用的一些數據產品,比如說像標籤系統,就是各行各業通用的一些數據產品。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"通過以上三個層面,就能夠把數據中臺建設起來,把數據產品加工出來,從而推動數據生產力的落地。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"網易有數大數據平臺的演進與未來"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"InfoQ:您方便分享一下,網易的整個數據平臺大概經歷了幾輪的更迭,目前的架構特點是什麼樣子的嗎?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"餘利華:"},{"type":"text","text":"我們經歷了幾個階段,第一個階段是我們最早期的時候,當時是09年以前,Hadoop不太成熟的時候,我們自研了一套計算框架,搭配了我們自己做的分佈式文件系統,形成我們最早的一套大數據處理的系統。當時也是膽子比較大,做這樣的系統。當時主要的用戶還是自己,我們用這套系統給每個業務去開發它的數據統計的代碼。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在第二個階段,隨着Hadoop的成熟,我們引入了Hadoop,逐漸地把自己研發的框架淘汰掉了。這個階段我們主要是保證Hadoop的穩定性、規模的問題,我們的用戶也是業務線的一些大數據的專家。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三個階段,因爲我們的應用、用戶越來越多,這時候就考慮要把很多大數據的技術工具做產品化。我們做了模型設計、數據開發、數據治理、數據服務等功能,從而形成了我們自己的大數據平臺。總體的目的是提高大數據的人效,讓我們能夠更快地做大數據的應用。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"到未來,我們要對接各種其他的大數據發行版,比如CDH,甚至也對接我們的數據倉庫系統,比如像GP這樣的引擎,使我們的數據應用、數據中臺能夠建立在各種複雜的環境下,能夠跨發行版、跨湖、跨倉,從而形成一種更靈活的架構。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"InfoQ:對於大數據技術的未來發展,您認爲還有哪些是值得開發者和企業去多多關注的呢?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"餘利華:"},{"type":"text","text":"首先是大數據方面流行的開源技術,我們相信開源是標準,大家都要往這個方向去投資。當然,研究開源對我們自己找工作也是非常有利的。像在湖倉一體這個方向上,Delta Lake、Iceberg這些開源項目可以關注起來。另外有些提升數據生產力的技術也建議關注一下,因爲怎麼去搭建數據產品,怎麼去搭建數據應用,肯定是未來的一個重要的方向。有個開源項目叫Dash,就是讓數據科學家通過少量的編程就能自行開發應用,像這樣的技術可以關注一下。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"InfoQ:網易在大數據方面未來的重點改進方向大概是什麼?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"餘利華:"},{"type":"text","text":"剛纔基本上也都提到過了,第一個就是雲原生大數據平臺,大數據的技術未來可能基於K8s在運行,可能適配了一些雲端的存儲等等。我們現在因爲一些業務出海的需要已經在適配了,比如我們大數據系統適配了AWS這樣的雲服務,未來也可能會適配其他的雲。第二個就是實時的數據平臺。現在數據中臺都是離線的,未來希望能夠支撐到實時的。因爲數據實時化也是個趨勢。第三個是AI在大數據系統中的應用,無論是自然語言的查詢,還是在數據管理或者運維上的一些應用,都希望能做一些探索。另外,未來也希望能用無代碼這樣的工具,幫助各個行業去打造一些典型的數據產品。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"嘉賓介紹:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"餘利華,網易數據科學中心總監,網易有數總經理,網易服務端技術委員會主任委員,2008 年獲浙江大學計算機專業博士學位,之後加入網易公司研發第一代分佈式存儲系統和分佈式數據庫系統,並一直專注於後端數據存儲處理方向。目前負責網易全鏈路大數據生產力平臺以及數據庫產品研發,支撐網易大部分互聯網業務,並在零售、製造、物流、傳媒等行業領頭羊推廣應用。"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章