飛象網(wǎng)訊(李樂羽/文),4月28日消息,2017 GMIC全球移動互聯(lián)網(wǎng)大會正在進行,飛象網(wǎng)為您全程直播,現(xiàn)在演講的是亞馬遜AWS首席云計算技術(shù)顧問費良宏,他演講的內(nèi)容是云計算大數(shù)據(jù)實踐與設(shè)計范式。
演講內(nèi)容如下:
席睿:感謝王元超女士的精彩演講,把美團云發(fā)展戰(zhàn)略講得比較細致。接下來有請亞馬遜AWS首席云計算技術(shù)顧問費良宏先生,他的演講主題是“云計算大數(shù)據(jù)實踐與設(shè)計范式”,有請。
費良宏:大家好,我想跟大家分享一下管郁達數(shù)據(jù)的話題。我主要是圍繞著在云計算環(huán)境里的數(shù)據(jù)模式的架構(gòu)與實現(xiàn),也說說我們十年實踐的心得。大數(shù)據(jù)大家都不陌生,對相關(guān)領(lǐng)域大家也有很多了解。但是回顧過去幾年大數(shù)據(jù)發(fā)展,有一些明顯態(tài)勢需要大家重視。
第一個就是規(guī)模的膨脹,如果幾年前我們認為大數(shù)據(jù)還只是GB、PB級別的話,接下來我們會看到,從TB到ZB的增長速度已經(jīng)越來越快了。接下來5年、10年會有一個新的認知。
第二點非結(jié)構(gòu)化數(shù)據(jù)已經(jīng)占據(jù)了主導地位,比如說基因工程、社交媒體,這樣話題產(chǎn)生的更多數(shù)據(jù)是以非結(jié)構(gòu)化形式存在的。我們熟悉的結(jié)構(gòu)化模式,已經(jīng)不太適用了,我們有必要談一談大數(shù)據(jù),如何利用今天的技術(shù)和手段幫助我們解決這個問題。
從大數(shù)據(jù)應(yīng)用場景來看無非是幾種應(yīng)用模式:
1.批處理模式,從事大數(shù)據(jù)的人已經(jīng)很熟悉了,在今天和過去都用這樣的方法來操控大數(shù)據(jù)。
2.流處理,過去幾年出現(xiàn)的,而且已經(jīng)比較普遍了。流處理模式有其特定的歷史淵源,主要來自于數(shù)據(jù)產(chǎn)生的特殊性以及處理的特殊要求。
3.機器學習,數(shù)據(jù)本身并不具有價值,如果把它變成一種知識,它的數(shù)據(jù)才會變得更有價值,這個關(guān)鍵就是機器學習。
今天的人工智能是很熱的話題,機器學習是一種很真實,可以幫助我們?nèi)ソ鉀Q從數(shù)據(jù)到知識化的有效手段,所以我們要關(guān)心的是在大數(shù)據(jù)的環(huán)境里,如何利用批處理、流處理、機器學習達成我們目的的一個目標。
實際上我們來觀察云計算或者大數(shù)據(jù)的市場,我們看到了一個讓我們眼花繚亂的市場,各種架構(gòu)、工具、技術(shù)、實踐案例,充斥著各種媒體,各種分享。其實對于我們從業(yè)者來說,從這些信息當中找到你所需要的內(nèi)容和知識并不是一件非常容易的事情,這張圖可以很好的揭示出來大數(shù)據(jù)市場五花八門、眼花繚亂的現(xiàn)狀。我們面臨的挑戰(zhàn)包括幾個話題:
1.對大數(shù)據(jù)來說我們有沒有好的參考架構(gòu)?通過這個參考架構(gòu)我們達成目標。
2.在架構(gòu)體系下選擇哪種工具?工具上的相似形很大,我們要選擇一個非常適當?shù)墓ぞ摺?/P>
3.如何做,畢竟工具不能替代我們。
4..我們從大數(shù)據(jù)能得到什么,為什么要這么做。
回到大數(shù)據(jù)的本質(zhì),我們可以抽象起來,大數(shù)據(jù)的流程無非是從數(shù)據(jù)的采集、存儲、分析處理以及使用上來看對于存儲和分析處理,可能會通過若干迭代的方式不斷的進行循環(huán),以及達成數(shù)據(jù)可用化的程度。在這個環(huán)節(jié)中,我們需要考慮的除了剛才的流程,以及完成流程的功能之外,要考慮吞吐量,以及非常重要的成本因素。如果把簡化的大數(shù)據(jù)流程作為觀察對象的時候,其實我們面臨的問題就比較簡單了,就可以從這幾個角度談一談大數(shù)據(jù)的問題。
第一個需要跟大家分享的就是關(guān)于數(shù)據(jù)溫度的話題,數(shù)據(jù)溫度是比較有意思的話題,它是用另外一個角度衡量這個數(shù)據(jù)的。天氣預(yù)報里很熟悉,通過溫度的方法感知外部世界的變化,數(shù)據(jù)有沒有溫度?我的觀察數(shù)據(jù)也是有溫度的。我們操控的大數(shù)據(jù)里有一些特點,有一些數(shù)據(jù)請求頻率非常高,需要有特定的持久性的要求,延時在毫秒級別,這是熱數(shù)據(jù)。新對來說也有冷數(shù)據(jù),就是請求頻率相對比較低,規(guī)模和體量非常巨大,某種意義上稱之為歸檔數(shù)據(jù),目前來看這樣的數(shù)據(jù)體量會越來越大。還有溫數(shù)據(jù),正好處于冷熱之間的范疇。
有了這樣的定義之后,我們才知道究竟應(yīng)該選擇哪種工具,哪種方法來管理數(shù)據(jù)。非常重要的是,大家需要關(guān)心不同的工具以及存儲的方法,在成本方面有很大的差異性。只有考慮到數(shù)據(jù)的溫度,有可能在成本上做最經(jīng)濟化,最適當?shù)倪x擇。
其次談到流處理概念,流就存在著存儲的概念。隨著今天應(yīng)用場景的變化,諸如像移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、社交媒體,它呈現(xiàn)了一種數(shù)量巨大,但是尺寸不是很大的特性。這類叫流數(shù)據(jù),這種使用是一種很獨特的應(yīng)用場景,用傳統(tǒng)大數(shù)據(jù)處理方式對這些數(shù)據(jù)進行處理恐怕不是非常有效果,所以我們提出了流式數(shù)據(jù)處理的概念?梢酝ㄟ^流這樣的存儲模式,實現(xiàn)數(shù)據(jù)的解耦。
我們往往對大數(shù)據(jù)要做持久化的緩沖,流恰好是持久化緩沖最佳的選擇。在采集方面,尤其像物聯(lián)網(wǎng)、移動互聯(lián)這樣的場景里,有多種數(shù)據(jù)采集的應(yīng)用特點。這個特點里,與之相對應(yīng)的最好技術(shù)手段就是流的技術(shù)和手段了。在流的應(yīng)用場景里,我們需要關(guān)注的是,是不是要確保數(shù)據(jù)的一致性和順序的一致性,以及是不是需要并行處理,是不是需要通過PapReduce方式處理,這解決一些方法和特點以及現(xiàn)狀的概括。
選擇大數(shù)據(jù)處理工具的時候我們面臨著一些困境,今天的工具不是缺乏而是過多了,歸納起來這些工具和手段無非是這樣幾種類型。第一是內(nèi)存中存儲的工具In memory,另外是NoSQL數(shù)據(jù)庫,第三類SQL關(guān)系數(shù)據(jù)庫,第四種是檢索方法。從數(shù)據(jù)來講,我們放到內(nèi)存里處理的速度最快,延遲最少,但是代價最高。我們看這個,它很適合一對一,N對M,簡單環(huán)境下快速響應(yīng)高并發(fā)的數(shù)據(jù)處理的要求。關(guān)系數(shù)據(jù)庫大家都很熟悉了,它僅對關(guān)系型數(shù)據(jù)才能有效實施。非關(guān)系型數(shù)據(jù),可以用非檢索工具來做。
我們也有幾個考慮角度,第一是數(shù)據(jù)結(jié)構(gòu)的問題,是不是有固定的schema,還是鍵值方式。另外存取方式,有按列存儲的,這樣的數(shù)據(jù)模型他們在使用上就有一些特定的要求。如果我用傳統(tǒng)按行的方式讀取、處理,效率不是最高的,這里范式考慮。另外結(jié)合數(shù)據(jù)的溫度,按照冷、熱、溫的特點去選擇工具操作,最重要的就是成本的考慮。規(guī)模不大的時候成本不是主要考慮的因素,但是規(guī)模很大的時候,成本就是非常重要,甚至是致命的因素了。
內(nèi)存數(shù)據(jù)上我們會看到,NoSQL是不二選擇,最好的就是關(guān)系數(shù)據(jù)庫。對非結(jié)構(gòu)化數(shù)據(jù),一定是通過檢索化方式。簡單化的模型,在我們的選擇上是很好的選擇。參考工具對不同的技術(shù)來說有深遠的影響,我們對不同的技術(shù)應(yīng)用手段放在表里能看到,針對不同請求的成本、數(shù)據(jù)容量,可以看到不同的數(shù)據(jù)手段有偏好、擅長的領(lǐng)域。NoSQL更適合于弱數(shù)據(jù)的處理。比如說S3對象存儲模式,更適合溫數(shù)據(jù)或者冷數(shù)據(jù)處理,了解這一點我們再把數(shù)據(jù)手段和工具結(jié)合起來,選擇判斷會更容易。
典型分析處理框架有很多種,典型的是批處理模式,利用集群,實現(xiàn)周報、日報、月報處理。第二點是查詢,利用一些交互式工具,實現(xiàn)業(yè)務(wù)場景和分析的需要。第三個是流式計算消息處理,可以實現(xiàn)實時或者準實時的大數(shù)據(jù)處理能力。最后一類就是機器型應(yīng)用,利用機器學習的算法,把數(shù)據(jù)中的價值給抽取、提煉出來。
對于這樣的應(yīng)用場景,市面上充斥著各種各樣的工具,我們也會針對這個場景提供托管服務(wù),對于云計算用戶來講,就是在選擇工具上有優(yōu)勢。
對于大數(shù)據(jù)架構(gòu)談了很多話題,引入了很多概念,如何將概念應(yīng)用到真正的架構(gòu)里?基于云計算平臺上也有一個大數(shù)據(jù)參考架構(gòu)。這個架構(gòu)里就像剛才談到的四個不同的環(huán)節(jié)流程,涵蓋數(shù)據(jù)采集、存儲這些環(huán)節(jié)。包括數(shù)據(jù)溫度由低到高,數(shù)據(jù)存儲方式的復雜到簡單都有針對性的選擇。
一個好消息,去年8月份AWS在中國區(qū)的服務(wù)已經(jīng)落地商用了,大家可以通過中國區(qū)云計算的服務(wù),提供的內(nèi)容可以體現(xiàn)一下AWS提供的大數(shù)據(jù)所展現(xiàn)的魅力。
對于這樣一個架構(gòu)大家已經(jīng)有一些了解了,最后想跟大家分享一下大數(shù)據(jù)在實踐中的設(shè)計范式,這也是過去十年里云計算、大數(shù)據(jù)應(yīng)用得到的心得。在軟件架構(gòu)里,最近一段時間大家談到的架構(gòu)設(shè)計原則就是解耦,利用松耦合方式增加系統(tǒng)的彈性。數(shù)據(jù)解耦對大數(shù)據(jù)來說是非常重要的設(shè)計原則,傳統(tǒng)深擦作大數(shù)據(jù)的時候更習慣把大數(shù)據(jù)的存儲、計算放到同一個環(huán)境下,在存儲和處理上沒有明顯的解耦,但是這種方式存在著弊端。比如說對于數(shù)據(jù)的管理和處理流火性方面,或者不同的處理要求對數(shù)據(jù)的拷貝、管理上,存在天生的弊端很難解決。有時候企業(yè)里面為了解決這個問題,不得以會將數(shù)據(jù)有多份存儲,無形增加了開銷和不確定因素。
我們提出的建議方法,就是將數(shù)據(jù)解耦。大數(shù)據(jù)存儲、處理,再存儲,再處理的過程中,有不同的計算環(huán)境將數(shù)據(jù)剝離開,這樣數(shù)據(jù)就成了獨立數(shù)據(jù),不同的業(yè)務(wù)場景和分析工具都會共享同一份數(shù)據(jù)來達成處理目的。
另外建議大家在很多場景里使用發(fā)布訂閱的設(shè)計模型和范式,可以實現(xiàn)數(shù)據(jù)解耦和一部分靈活性。另外可以用邏輯化視圖,物化視圖來進行處理,針對大數(shù)據(jù)海量數(shù)據(jù)環(huán)境下可以提供問題的解決。利用物化方式,加速處理的能力。
還有數(shù)據(jù)溫度的問題,這是我反復強調(diào)的問題,因為成本的問題,管理特殊性的問題,所以我們也需要考慮到如何利用數(shù)據(jù)溫度的特殊性,在經(jīng)濟性,靈活性,工具選擇上做出最好的搭配。這個搭配就要針對不同的場景,比如說實時處理、交互處理都會有不同的方式做選擇。
大數(shù)據(jù)里有幾種應(yīng)用場景,第一種是實時處理,就是引入流的概念,利用一些流的服務(wù)和產(chǎn)品,提升我們數(shù)據(jù)的處理能力,以及將我們處理的延遲降到最低。第二是交互和批處理,在這種查詢環(huán)境里最重要的就是集中化數(shù)據(jù)管理能力,這張圖里給大家分享的核心,就是AWSS3作為公共管理數(shù)據(jù)級的接口環(huán)境。
過去兩年里,漸漸興起廣為大家熟悉的概念是數(shù)據(jù)湖,某種意義上強調(diào)企業(yè)建立一個全數(shù)據(jù)的集中管理能力。利用目前云計算和大數(shù)據(jù)的處理能力,真的可以為企業(yè)提供全數(shù)據(jù)的概念,利用全數(shù)據(jù)我們在大數(shù)據(jù)的操作、分析,不同主題的應(yīng)用里,就具備了真正意義上的大數(shù)據(jù)的處理。
歸納起來,大數(shù)據(jù)的設(shè)計架構(gòu)原則無非是幾點:
第一點就是解耦的數(shù)據(jù)線,將數(shù)據(jù)的存儲、處理、分析和得到的答案,這幾個環(huán)節(jié)在數(shù)據(jù)層面做到真正的解耦,配合好的軟件架構(gòu),應(yīng)該能滿足今天的需要,并且有很大的伸縮靈活性。
第二是選擇適當?shù)墓ぞ,每個工具都有自己擅長的領(lǐng)域,我們要考慮數(shù)據(jù)是什么結(jié)構(gòu),結(jié)構(gòu)化還是非結(jié)構(gòu)化,是毫秒級別還是分鐘級別的,以及吞吐量和訪問模式的問題,這些有明確說法的時候,你依據(jù)標準選擇工具的話,恐怕就不是很困難的事情。
第三個是有效利用云計算,因為我們今天談到了數(shù)據(jù)概念已經(jīng)不再是GB、TB的概念,恐怕是ZB的概念,管理大數(shù)據(jù)真的不是簡單的事情。所以現(xiàn)在越來越多的大數(shù)據(jù)可以跟云計算結(jié)合在一起,在座的各位有志于從事大數(shù)據(jù)相關(guān)工作的話,你們選擇環(huán)境和平臺的時候從今天就要開始,如何利用云計算提升的可用性、彈性、大數(shù)據(jù)托管工具等等,來實現(xiàn)大數(shù)據(jù)的解決方案,這一點是在很多案例中被證明的。
第四個是以日志為中心的設(shè)計模式,大數(shù)據(jù)的核心就是對日志的管理。如果日志數(shù)據(jù)的有效管理是大數(shù)據(jù)的關(guān)鍵因素,我們在設(shè)計之初就要考慮到這些數(shù)據(jù)的特殊性。比如說在日志管理方面,存儲處理方面,選擇一些不可變?nèi)罩竞臀锘晥D方法,會更有效。
最后一點是成本的意識,成本是大數(shù)據(jù)非常關(guān)鍵的因素,如果不能有效權(quán)衡成本,也許在項目之初,嘗試階段就不能有效解決這個問題。當有一定規(guī)模和積累的時候,這個辦法可能就沒有辦法解決了,因為你會被成本拖累。
歸納起來請大家記住幾個設(shè)計原則:解耦數(shù)據(jù)總線、選擇恰當工具、有效利用云計算、以日志為中心,并且具有成本意識。
AWS有十年云計算的經(jīng)驗,也圍繞大數(shù)據(jù)提供了很好的生態(tài)環(huán)境和基礎(chǔ)平臺,也希望大家有機會多體驗一下AWS的強大能力。我們也有云創(chuàng)計劃的福利,這當中可以獲得AWS免費提供的服務(wù),謝謝大家。