云數(shù)據(jù)倉(cāng)庫(kù)先驅(qū)Amazon Redshift:十年云上重塑之旅
PB級(jí)云數(shù)據(jù)倉(cāng)庫(kù)服務(wù)Amazon Redshift發(fā)布近十年之際,Amazon Science采訪了亞馬遜云科技數(shù)據(jù)分析副總裁Rahul Pathak和亞馬遜云科技高級(jí)首席工程師IppokratisPandis,他們分享了Amazon Redshift的起源、過(guò)去近十年的成長(zhǎng)及其未來(lái)展望。
十年前,時(shí)任亞馬遜云科技高級(jí)副總裁的Andy Jassy(現(xiàn)任Amazon CEO)在首屆亞馬遜云科技re:Invent大會(huì)上宣布推出Amazon Redshift預(yù)覽版。與昂貴、缺乏彈性并需要投入大量的運(yùn)營(yíng)人力和資金的傳統(tǒng)本地?cái)?shù)據(jù)倉(cāng)庫(kù)解決方案相比,Amazon Redshift有了質(zhì)的飛躍。
亞馬遜首席技術(shù)官Werner Vogels在2012年11月28日的博文里表示:“我們很高興推出了Amazon Redshift預(yù)覽版,這是一個(gè)高性能、全托管的PB級(jí)云數(shù)倉(cāng)服務(wù)。該服務(wù)的性能將顯著提升客戶的數(shù)據(jù)分析效率。Amazon.com的數(shù)據(jù)倉(cāng)庫(kù)團(tuán)隊(duì)一直在試用Amazon Redshift,他們對(duì)規(guī)模高達(dá)20億行的數(shù)據(jù)集進(jìn)行了一系列的典型查詢,并將Amazon Redshift與本地?cái)?shù)據(jù)倉(cāng)庫(kù)進(jìn)行比較,結(jié)果顯示Amazon Redshift將速度提高了10-150倍!”
這也是為何當(dāng)時(shí)還是高級(jí)產(chǎn)品經(jīng)理的Rahul Pathak以及整個(gè)Amazon Redshift團(tuán)隊(duì),在該服務(wù)宣布推出之日充滿信心。Rahul Pathak現(xiàn)任亞馬遜云科技數(shù)據(jù)分析副總裁,他回憶:“我們沒(méi)料到的是它會(huì)這么受客戶歡迎。在提供預(yù)覽版時(shí),我們先讓客戶注冊(cè),了解他們的數(shù)據(jù)量和工作負(fù)載。約三天左右,我們就發(fā)現(xiàn)客戶對(duì)Amazon Redshift的需求量比原先預(yù)計(jì)的整年需求量還多10倍。于是,我們?cè)趓e:Invent一結(jié)束就迅速增加硬件訂單,以確保在2013年初Amazon Redshift正式可用時(shí)能有充足的數(shù)據(jù)中心硬件支持。還好提前提供了預(yù)覽版,否則我們將應(yīng)接不暇?!?
從那時(shí)起,Amazon Redshift團(tuán)隊(duì)一直加緊創(chuàng)新,滿足客戶不斷增長(zhǎng)的各種需求。如今,數(shù)以萬(wàn)計(jì)的客戶每天使用Amazon Redshift處理EB級(jí)的數(shù)據(jù),為高性能商業(yè)智能(BI)報(bào)告、儀表板應(yīng)用程序、數(shù)據(jù)探索和實(shí)時(shí)分析等分析工作負(fù)載提供支持。
關(guān)于Redshift的起源
Rahul:在Amazon Redshift推出的前幾年,我們的很多客戶就已經(jīng)把除了數(shù)據(jù)倉(cāng)庫(kù)之外的所有工作負(fù)載遷移到了云端。數(shù)據(jù)倉(cāng)庫(kù)常常是客戶在企業(yè)本地運(yùn)行的最后一個(gè)應(yīng)用,而且他們?nèi)悦媾R如成本高昂、帶有懲罰性質(zhì)的許可費(fèi)、難以擴(kuò)展,并且無(wú)法分析所有數(shù)據(jù)等重重挑戰(zhàn)??蛻舻脑V求之一便是希望在云中大規(guī)模地運(yùn)行具備足夠性價(jià)比的數(shù)據(jù)倉(cāng)庫(kù)來(lái)分析所有數(shù)據(jù),同時(shí)兼顧性能。
隨后,我們開(kāi)始著手構(gòu)建、運(yùn)營(yíng)一個(gè)代號(hào)為Cookie Monster的全新項(xiàng)目。當(dāng)時(shí),客戶數(shù)據(jù)量正在爆炸式增長(zhǎng),這些數(shù)據(jù)不僅來(lái)自關(guān)系型數(shù)據(jù)庫(kù),還包括各種各樣的數(shù)據(jù)源??蛻粼囉昧薘edshift的一個(gè)早期測(cè)試版,發(fā)現(xiàn)結(jié)果返回速度快得驚人,比他們之前使用的系統(tǒng)快了10到20倍,以至于他們還以為系統(tǒng)出現(xiàn)了問(wèn)題。當(dāng)然,我們也收到一些客戶對(duì)某些早期功能不滿意的反饋。我們及時(shí)與這些客戶取得聯(lián)系,了解他們面臨的挑戰(zhàn)、反饋,并在2013年2月該服務(wù)正式上線之前進(jìn)行了調(diào)整。
當(dāng)我們推出Amazon Redshift,并宣布定價(jià)為每年1000美元/TB時(shí),人們簡(jiǎn)直不敢相信我們推出了一個(gè)性價(jià)比如此之高的服務(wù)。我們?cè)趲追昼妰?nèi)而不是幾個(gè)月就能為客戶提供一個(gè)數(shù)據(jù)倉(cāng)庫(kù),這吸引了所有人的關(guān)注,被業(yè)界稱為一個(gè)真正的游戲規(guī)則改變者。
Ippokratis:當(dāng)時(shí),我在IBM研究院從事數(shù)據(jù)庫(kù)技術(shù)工作,我們意識(shí)到,以云服務(wù)的方式提供數(shù)據(jù)倉(cāng)庫(kù)將顛覆游戲規(guī)則。使用客戶的本地系統(tǒng)通常需要幾天或幾周時(shí)間才能解決的問(wèn)題,使用像Redshift這樣的云數(shù)據(jù)倉(cāng)庫(kù)則只需要幾分鐘,應(yīng)用云服務(wù)明顯加快了創(chuàng)新的速度。
就傳統(tǒng)的本地?cái)?shù)據(jù)倉(cāng)庫(kù)而言,通常需要花費(fèi)幾個(gè)月甚至幾年時(shí)間才能將新功能更新到最新的軟件版本中;而在云端,新功能可以在幾周內(nèi)推出,客戶無(wú)需改變其應(yīng)用程序中的任何一行代碼。Amazon Redshift的發(fā)布是一個(gè)拐點(diǎn),讓我對(duì)云和云數(shù)據(jù)倉(cāng)庫(kù)產(chǎn)生了真正的興趣,并選擇加入了亞馬遜云科技。[Ippokratis于2015年10月作為首席工程師加入Amazon Redshift團(tuán)隊(duì)]。
關(guān)于Amazon Redshift在過(guò)去的十年中的發(fā)展
Ippokratis:為了滿足客戶的需求,Amazon Redshift已進(jìn)入快速迭代過(guò)程。我們主要聚焦四個(gè)維度:1)滿足客戶高效處理日益復(fù)雜的分析查詢的需求;2)客戶需要處理更多數(shù)據(jù),需要從數(shù)據(jù)中獲得洞察的用戶數(shù)量也大幅增長(zhǎng);3)客戶需要更易于操作的系統(tǒng);4)客戶希望將Amazon Redshift與亞馬遜云科技其他服務(wù)進(jìn)行集成。
Amazon Redshift從誕生之日起,我們就致力于讓它能為客戶提供卓越的的高性價(jià)比。團(tuán)隊(duì)從一開(kāi)始,就專(zhuān)注于盡最大可能降低核心查詢執(zhí)行延遲,以便系統(tǒng)能夠響應(yīng)更多作業(yè)請(qǐng)求,客戶能夠運(yùn)行更多工作負(fù)載,并支持日常分析。為此,Amazon Redshift生成高度優(yōu)化的C++代碼,然后將其發(fā)送到并行數(shù)據(jù)庫(kù)中的分發(fā)器,并執(zhí)行這些高度優(yōu)化的代碼。這種方法讓Amazon Redshift在查詢執(zhí)行方式上獨(dú)樹(shù)一幟,也使它一直成為服務(wù)的核心。
我們從來(lái)沒(méi)有停止過(guò)創(chuàng)新,一直竭力為客戶提更好的性能。另一個(gè)讓我感興趣的點(diǎn)是,客戶在傳統(tǒng)商業(yè)智能中,通常會(huì)為需要長(zhǎng)時(shí)間運(yùn)行的作業(yè)進(jìn)行系統(tǒng)優(yōu)化。但當(dāng)我們從深入分析客戶行為時(shí),我們發(fā)現(xiàn)在每天運(yùn)行的數(shù)十億次查詢中,90%的查詢執(zhí)行時(shí)間不到一秒。這一驚人發(fā)現(xiàn)打破了人們對(duì)數(shù)據(jù)倉(cāng)庫(kù)期望的傳統(tǒng)認(rèn)知,同時(shí)也改變了我們著力優(yōu)化的代碼方向。
Rahul:正如Ippokratis提到的,客戶需要處理更多的數(shù)據(jù),并使用這些數(shù)據(jù)為整個(gè)組織挖掘數(shù)據(jù)價(jià)值,這是我們重點(diǎn)關(guān)注的第二個(gè)方向。數(shù)據(jù)分析一直非常重要,但在八或十年前,卻不一定是客戶的關(guān)鍵任務(wù)應(yīng)用?,F(xiàn)在,這種情況已經(jīng)改變,企業(yè)核心業(yè)務(wù)流程依賴于Amazon Redshift的高可用性和高性能。過(guò)去十年中,為支持這一目標(biāo),Amazon Redshift在架構(gòu)上最大的變化是引入Redshift Managed Storage (RMS),將計(jì)算和存儲(chǔ)分離,并聚焦各自領(lǐng)域,大舉創(chuàng)新。
RMS支持跨多個(gè)可用區(qū),具有99.999999999%的耐久性和99.99%的可用性。RMS既管理用戶數(shù)據(jù),也管理交易元數(shù)據(jù)。
另一個(gè)重大趨勢(shì)是客戶希望在不同的數(shù)據(jù)集之間進(jìn)行查詢和整合。我們?cè)?017年推出了Redshift Spectrum,讓Amazon Redshift成為云中第一個(gè)支持查詢Amazon S3數(shù)據(jù)的數(shù)據(jù)倉(cāng)庫(kù)。之后Amazon Redshift運(yùn)行查詢的能力也得到進(jìn)一步證實(shí),該服務(wù)能夠掃描Amazon S3以及集群中EB級(jí)的數(shù)據(jù)進(jìn)行查詢。這是另一個(gè)改變游戲規(guī)則的重要時(shí)刻。
像納斯達(dá)克這樣的客戶已經(jīng)廣泛使用這種方式來(lái)查詢本地磁盤(pán)上的數(shù)據(jù),獲得最高的性能,同時(shí)利用Amazon Redshift與數(shù)據(jù)湖的完美集成,實(shí)現(xiàn)對(duì)整個(gè)歷史數(shù)據(jù)的高性能查詢。除了查詢數(shù)據(jù)湖,Amazon Redshift還支持對(duì)Amazon Aurora和Amazon RDS等交易型數(shù)據(jù)存儲(chǔ)的綜合查詢,這也是一大創(chuàng)新??蛻粽嬲饬x上擁有一個(gè)高性能的分析系統(tǒng),能夠查詢所有重要數(shù)據(jù),無(wú)需像其他系統(tǒng)那樣管理復(fù)雜的集成過(guò)程。
Ippokratis: 易用性是我們關(guān)注的第三個(gè)方向。傳統(tǒng)本地?cái)?shù)據(jù)倉(cāng)庫(kù)需要企業(yè)IT部門(mén)配備專(zhuān)門(mén)的數(shù)據(jù)庫(kù)管理員。過(guò)去十年中,客戶期望已經(jīng)發(fā)生了變化。現(xiàn)在,如果把數(shù)據(jù)倉(cāng)庫(kù)作為一種服務(wù)來(lái)提供,系統(tǒng)必須能夠自動(dòng)調(diào)整、修復(fù)和優(yōu)化。這已經(jīng)成為我們關(guān)注的一個(gè)重要領(lǐng)域,通過(guò)將機(jī)器學(xué)習(xí)和自動(dòng)化納入系統(tǒng),增強(qiáng)易用性,減少管理員的工作量。
Rahul:在易用性方面,我想到了三個(gè)創(chuàng)新。第一是并發(fā)擴(kuò)展。與工作負(fù)載管理類(lèi)似,客戶以前必須手動(dòng)調(diào)整并發(fā),或重置手動(dòng)分割的工作負(fù)載集群。現(xiàn)在,系統(tǒng)會(huì)自動(dòng)部署新的資源,自動(dòng)伸縮,客戶無(wú)需采取任何行動(dòng)。
第二是自動(dòng)表優(yōu)化功能。系統(tǒng)能夠通過(guò)查看工作負(fù)載和數(shù)據(jù)布局,并自動(dòng)建議數(shù)據(jù)應(yīng)該如何在集群節(jié)點(diǎn)中排序和分布。這個(gè)優(yōu)化是一個(gè)不斷學(xué)習(xí)的過(guò)程,它能夠持續(xù)根據(jù)工作負(fù)載的變化進(jìn)行調(diào)整,這是一個(gè)非常厲害的功能。
客戶總是在增加更多數(shù)據(jù)集和更多用戶,昨天的最優(yōu)選到明天可能就不復(fù)存在了。Amazon Redshift可以自動(dòng)識(shí)別,并根據(jù)數(shù)據(jù)存儲(chǔ)進(jìn)行調(diào)優(yōu)。關(guān)于如何分析數(shù)據(jù)在多節(jié)點(diǎn)并行處理系統(tǒng)中的最佳分布鍵,這是個(gè)非常有趣的話題,我們?cè)趲啄昵鞍l(fā)布的一篇圖優(yōu)化論文中專(zhuān)門(mén)進(jìn)行了分析。我們對(duì)最佳分布鍵進(jìn)行了自動(dòng)優(yōu)化,并加入了對(duì)數(shù)據(jù)壓縮編碼的處理。在一個(gè)分析系統(tǒng)中,如何壓縮數(shù)據(jù)對(duì)結(jié)果有很大影響,因?yàn)閽呙璧臄?shù)據(jù)越少,查詢就越快。過(guò)去,客戶必須自己決定選擇什么樣的壓縮編碼格式?,F(xiàn)在,Amazon Redshift可以自動(dòng)確定如何正確編碼數(shù)據(jù),為數(shù)據(jù)和工作負(fù)載提供盡可能高的性能。
第三個(gè)創(chuàng)新是去年re:Invent上推出的Amazon Redshift Serverless。Redshift Serverless可在幾秒鐘內(nèi)自動(dòng)設(shè)置和擴(kuò)展資源,讓客戶無(wú)需管理數(shù)據(jù)倉(cāng)庫(kù)集群,即可以為PB級(jí)數(shù)據(jù)規(guī)模運(yùn)行高性能分析工作負(fù)載,更輕松地從數(shù)據(jù)中快速獲取洞察。通過(guò)Redshift Serverless,客戶只需要配置一個(gè)endpoint即可與他們的數(shù)據(jù)進(jìn)行互動(dòng),Redshift Serverless將自動(dòng)擴(kuò)展并自動(dòng)管理系統(tǒng),從根本上消除了復(fù)雜性。
客戶可以只關(guān)注他們的數(shù)據(jù),設(shè)置限制參數(shù)來(lái)管理預(yù)算,我們可在設(shè)定好的限制條件之下提供最佳性能。這是在易用性方面取得的另一個(gè)巨大進(jìn)步,因?yàn)樗鼰o(wú)需客戶進(jìn)行任何操作。就目前客戶對(duì)Redshift Serverless預(yù)覽版的反饋來(lái)看,客戶對(duì)該服務(wù)的表現(xiàn)非常滿意。我們也很高興推出了Amazon Redshift Serverless正式可用版本。
Ippokratis: 第四個(gè)重點(diǎn)是與其他亞馬遜云科技服務(wù)的集成。集成是客戶的使用行為從傳統(tǒng)BI向前進(jìn)化的重要方向。如今,云數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)中心樞紐,與廣泛的亞馬遜云科技服務(wù)緊密集成。首先,我們?yōu)榭蛻籼峁┝藢?shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)與數(shù)據(jù)湖連接起來(lái)的能力。之后,客戶表示需要訪問(wèn)Amazon Aurora和Amazon RDS等運(yùn)營(yíng)數(shù)據(jù)庫(kù)中的高速業(yè)務(wù)數(shù)據(jù),于是,Amazon Redshift增加了對(duì)OLTP交易數(shù)據(jù)庫(kù)的訪問(wèn)支持。然后,我們?cè)黾恿藢?duì)流數(shù)據(jù)的支持,以及與Amazon SageMaker和Amazon Lambda的集成,客戶就可以在不移動(dòng)數(shù)據(jù)的情況下運(yùn)行機(jī)器學(xué)習(xí)訓(xùn)練和推理,并進(jìn)行通用計(jì)算。很明顯,我們已經(jīng)從傳統(tǒng)BI系統(tǒng)轉(zhuǎn)化成為深度集成的一組亞馬遜云科技服務(wù)。
Rahul:集成的另一個(gè)重要方面是與機(jī)器學(xué)習(xí)服務(wù)。通過(guò)Redshift ML,數(shù)據(jù)分析師和數(shù)據(jù)庫(kù)開(kāi)發(fā)人員可以在Amazon Redshift中使用熟悉的 SQL 命令輕松創(chuàng)建、訓(xùn)練和應(yīng)用機(jī)器學(xué)習(xí)模型。我們構(gòu)建了從SQL語(yǔ)言創(chuàng)建模型的能力,它將數(shù)據(jù)攝取到Amazon S3并調(diào)用Amazon SageMaker,使用自動(dòng)機(jī)器學(xué)習(xí)建立最合適的模型,并基于數(shù)據(jù)提供預(yù)測(cè)。
模型經(jīng)高效編譯并返回?cái)?shù)據(jù)倉(cāng)庫(kù),讓客戶無(wú)需額外的計(jì)算和成本,即可運(yùn)行高性能推理。這種集成的優(yōu)勢(shì)在于,Amazon SageMaker中的每一次創(chuàng)新也就意味著Redshift ML變得更好。這是客戶可以從我們的服務(wù)集成中受益的另一種方式。
集成的另一個(gè)重要的方向是Data Sharing。一旦使用 RA3 實(shí)例,將計(jì)算和存儲(chǔ)層分離,就可以打開(kāi)Data Sharing,讓客戶有能力與同一賬戶、其他賬戶、或者跨區(qū)域的集群共享數(shù)據(jù)。這意味著可以將數(shù)據(jù)消費(fèi)者和生產(chǎn)者分開(kāi),實(shí)現(xiàn)現(xiàn)代化的數(shù)據(jù)網(wǎng)格等等架構(gòu)上的創(chuàng)新??蛻艨梢栽诓粡?fù)制數(shù)據(jù)的情況下分享數(shù)據(jù),從而達(dá)成不同賬戶間的數(shù)據(jù)一致性。
例如,數(shù)據(jù)科學(xué)家組別的用戶可以安全地在共享數(shù)據(jù)中工作,報(bào)表或營(yíng)銷(xiāo)組的用戶也可以。我們還將Data Sharing與AmazonData Exchange整合在一起,客戶可以搜索并訂閱最新的第三方數(shù)據(jù)集,并在Amazon Redshift中立即進(jìn)行查詢。從釋放數(shù)據(jù)潛能的角度來(lái)看,這種整合再次改變了游戲規(guī)則,幫助第三方供應(yīng)商數(shù)據(jù)變現(xiàn),更為用戶提供安全、實(shí)時(shí)的數(shù)據(jù)訪問(wèn)和許可,方便在內(nèi)部和跨組織進(jìn)行高性能分析。Amazon Redshift是一個(gè)極其豐富的數(shù)據(jù)生態(tài)系統(tǒng)的一部分,這是一個(gè)巨大的優(yōu)勢(shì),能滿足客戶在公司的各個(gè)組織之間更方便的提供/獲取數(shù)據(jù)的需求。
展望Redshift及云數(shù)據(jù)倉(cāng)庫(kù)的發(fā)展前景
Rahul:未來(lái),客戶將產(chǎn)生越來(lái)越多的數(shù)據(jù),他們希望更經(jīng)濟(jì)高效地分析這些數(shù)據(jù)。雖然數(shù)據(jù)量呈現(xiàn)指數(shù)級(jí)增長(zhǎng),但很顯然,客戶并不希望他們的成本也以指數(shù)級(jí)增長(zhǎng)。這就要求我們繼續(xù)創(chuàng)新,進(jìn)一步提升性能以確保單位數(shù)據(jù)處理成本持續(xù)下降。
我們將繼續(xù)在軟件、硬件、芯片和機(jī)器學(xué)習(xí)應(yīng)用等方面進(jìn)行創(chuàng)新。在過(guò)去的10年中,我們已經(jīng)兌現(xiàn)了這一承諾,今后亦將如此。
我非常自豪于我們團(tuán)隊(duì)目前取得的諸多成就,同時(shí),我也同樣對(duì)我們正在執(zhí)著努力的事業(yè)而熱血沸騰。
客戶總是希望擁有更好的可用性,希望他們的數(shù)據(jù)是安全的以及與更多數(shù)據(jù)源整合的可能性,我們也計(jì)劃繼續(xù)圍繞這些方向優(yōu)化服務(wù)體驗(yàn)。可以確定的是,我們有能力提供極具高性價(jià)比、深度集成和安全可靠的服務(wù),幫助客戶創(chuàng)造更多價(jià)值。
Ippokratis: 這是一段不可思議的旅程。我們一直在與客戶一路前行,不斷重構(gòu)。這背后離不開(kāi)亞馬遜云科技領(lǐng)導(dǎo)團(tuán)隊(duì)的支持,但更重要的是團(tuán)隊(duì)中出色的工程師、經(jīng)理和產(chǎn)品團(tuán)隊(duì),他們讓一切成為可能。