女朋友問(wèn)小灰:什么是數(shù)據(jù)倉(cāng)庫(kù)?什么是數(shù)據(jù)湖?什么是智能湖倉(cāng)?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
首先,我們來(lái)講一講什么是數(shù)據(jù)庫(kù)。
作為程序員,我們寫(xiě)的大多數(shù)商業(yè)項(xiàng)目,往往都需要用到大量的數(shù)據(jù)。計(jì)算機(jī)的內(nèi)存,可以實(shí)現(xiàn)數(shù)據(jù)的快速存儲(chǔ)和訪問(wèn)。
但是,內(nèi)存的空間是有限的,也無(wú)法長(zhǎng)期保存有用的數(shù)據(jù)。對(duì)于那些大量的,需要長(zhǎng)期使用的數(shù)據(jù),我們需要對(duì)它們進(jìn)行持久的、規(guī)范化的存儲(chǔ),于是就有了數(shù)據(jù)庫(kù)(DataBase)。
市場(chǎng)上常用的數(shù)據(jù)庫(kù)有很多種,包括像MySQL、Oracle這樣的關(guān)系型數(shù)據(jù)庫(kù),也包括Redis,HBase這樣的非關(guān)系型數(shù)據(jù)庫(kù)。
無(wú)論是哪一種數(shù)據(jù)庫(kù),它們所存儲(chǔ)的都是結(jié)構(gòu)化數(shù)據(jù),主要應(yīng)用的領(lǐng)域是聯(lián)機(jī)事務(wù)處理(OLTP),也就是我們程序員所熟悉的增刪改查業(yè)務(wù)。
滿足了業(yè)務(wù)需求,數(shù)據(jù)庫(kù)當(dāng)中的數(shù)據(jù)不斷積累,變得越來(lái)越豐富。這時(shí)候人們發(fā)現(xiàn),這些數(shù)據(jù)不但可以支撐業(yè)務(wù)的運(yùn)行,也可以用于生成商業(yè)報(bào)表,進(jìn)行數(shù)據(jù)分析,提供有價(jià)值的決策參考。這些數(shù)據(jù)分析和生成報(bào)表的處理操作,被稱(chēng)為聯(lián)機(jī)分析處理(OLAP)。
但是,傳統(tǒng)數(shù)據(jù)庫(kù)擅長(zhǎng)的是快速地對(duì)小規(guī)模數(shù)據(jù)進(jìn)行增刪改查,并不擅長(zhǎng)大規(guī)模數(shù)據(jù)的快速讀取。
于是,人們發(fā)明了一種全新的數(shù)據(jù)存儲(chǔ)方式,并把原本分散在不同項(xiàng)目當(dāng)中的業(yè)務(wù)數(shù)據(jù)進(jìn)行抽取、清洗、轉(zhuǎn)換、加載,最終匯總成為一系列面向主題的數(shù)據(jù)集合,按照全新的方式進(jìn)行存儲(chǔ)。
這種全新的存儲(chǔ)方式,被稱(chēng)為數(shù)據(jù)倉(cāng)庫(kù)(Data Warehouse);把數(shù)據(jù)進(jìn)行抽取、清洗、轉(zhuǎn)換、加載的過(guò)程,被稱(chēng)為ETL(Extract Transform Load)。
數(shù)據(jù)倉(cāng)庫(kù)當(dāng)中存儲(chǔ)的數(shù)據(jù),同樣是結(jié)構(gòu)化數(shù)據(jù)。
數(shù)據(jù)庫(kù)用于業(yè)務(wù)處理,數(shù)據(jù)倉(cāng)庫(kù)用于數(shù)據(jù)分析,一時(shí)間大家都使用得十分愉快。
但是,隨著大數(shù)據(jù)和機(jī)器學(xué)習(xí)技術(shù)的不斷發(fā)展,人們發(fā)現(xiàn)不僅是結(jié)構(gòu)化的數(shù)據(jù)具有分析價(jià)值,許多非結(jié)構(gòu)化的數(shù)據(jù),例如用戶(hù)日志、電子郵件、PDF等等,同樣具有可觀的分析和學(xué)習(xí)價(jià)值。
這些五花八門(mén)的數(shù)據(jù),如果統(tǒng)一按照ETL的方式進(jìn)行加工處理,實(shí)在是不太現(xiàn)實(shí),那么索性把它們按照原始格式匯總在一起吧。這樣匯總起來(lái)的龐大集合,被存儲(chǔ)在了數(shù)據(jù)湖(Data Lake)當(dāng)中。
數(shù)據(jù)湖當(dāng)中的數(shù)據(jù)可謂是包羅萬(wàn)象:
結(jié)構(gòu)化的,有各種關(guān)系型數(shù)據(jù)庫(kù)的行和列。
半結(jié)構(gòu)化的,有JSON、XML、CSV。
非結(jié)構(gòu)化的,有電子郵件、PDF、各種文檔。
通過(guò)數(shù)據(jù)湖這個(gè)統(tǒng)一的數(shù)據(jù)管理節(jié)點(diǎn),企業(yè)可以利用更加豐富多樣的數(shù)據(jù),為商業(yè)智能、機(jī)器學(xué)習(xí)等方向賦能。
在現(xiàn)實(shí)的企業(yè)項(xiàng)目當(dāng)中,所需要的不只是統(tǒng)一存儲(chǔ)的數(shù)據(jù)湖,也需要各種各樣專(zhuān)門(mén)構(gòu)建的存儲(chǔ)方案,由此為特定應(yīng)用場(chǎng)景提供必要的性能、規(guī)模與成本優(yōu)勢(shì)。
比如,我們?nèi)匀恍枰獢?shù)據(jù)倉(cāng)庫(kù),適合針對(duì)結(jié)構(gòu)化數(shù)據(jù)通過(guò)復(fù)雜查詢(xún)快速獲取結(jié)果;我們需要Lucene或Elastic Search這樣的全文檢索引擎,從而實(shí)現(xiàn)快速搜索并分析日志數(shù)據(jù),借此監(jiān)控生產(chǎn)系統(tǒng)的運(yùn)行狀態(tài)。
通過(guò)這些多樣的存儲(chǔ)方案,我們可以高效低成本地進(jìn)行數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、大數(shù)據(jù)處理、日志分析等工作。
為了從數(shù)據(jù)湖及專(zhuān)門(mén)構(gòu)建的存儲(chǔ)中獲取最大收益,企業(yè)希望在不同系統(tǒng)之間輕松移動(dòng)數(shù)據(jù)。比如有些情況下,客戶(hù)希望將數(shù)據(jù)湖當(dāng)中的部分?jǐn)?shù)據(jù)移至數(shù)據(jù)倉(cāng)庫(kù)、日志系統(tǒng)等節(jié)點(diǎn)。我們將這種情況,歸納為由內(nèi)向外的數(shù)據(jù)移動(dòng)操作。
還有些情況下,企業(yè)希望將業(yè)務(wù)數(shù)據(jù)從關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)移動(dòng)到數(shù)據(jù)湖內(nèi)。我們將這種情況,歸納為由外向內(nèi)的數(shù)據(jù)移動(dòng)操作。
最后,企業(yè)還可能要求將數(shù)據(jù)在不同的專(zhuān)用數(shù)據(jù)存儲(chǔ)方案之間往來(lái)移動(dòng),比如將數(shù)據(jù)倉(cāng)庫(kù)內(nèi)的數(shù)據(jù)提供給機(jī)器學(xué)習(xí)系統(tǒng)。我們將這種情況,歸納為圍繞邊界的數(shù)據(jù)移動(dòng)操作。
1.快速構(gòu)建起可擴(kuò)展的數(shù)據(jù)湖。
2.豐富而且功能強(qiáng)大的專(zhuān)門(mén)構(gòu)建的數(shù)據(jù)服務(wù)集合,這些數(shù)據(jù)服務(wù)可以為交互式儀表板與日志分析等提供必要的性能支持。
3.在數(shù)據(jù)湖及各專(zhuān)門(mén)構(gòu)建的數(shù)據(jù)服務(wù)之間實(shí)現(xiàn)數(shù)據(jù)的無(wú)縫化移動(dòng)。
4.通過(guò)統(tǒng)一方式加以保護(hù)、監(jiān)控與管理,保證數(shù)據(jù)訪問(wèn)活動(dòng)的合規(guī)性。
5.以低成本方式擴(kuò)展系統(tǒng),保證不對(duì)性能產(chǎn)生負(fù)面影響。
我們將這樣一種強(qiáng)大的數(shù)據(jù)湖及其配套的專(zhuān)用構(gòu)建數(shù)據(jù)服務(wù)體系,稱(chēng)為智能湖倉(cāng)(Lake House)架構(gòu)。
下面我們從5個(gè)方面,來(lái)分別介紹一下亞馬遜云科技智能湖倉(cāng)是如何滿足企業(yè)的各項(xiàng)需要的:
1.可擴(kuò)展數(shù)據(jù)湖
如何保證數(shù)據(jù)湖的可擴(kuò)展性呢?亞馬遜云科技憑借的是他們的絕活,Amazon Simple StorageService (Amazon S3) 。Amazon S3作為一款歷史悠久的對(duì)象存儲(chǔ)服務(wù),擁有無(wú)與倫比的持久性、可用性與可擴(kuò)展性。正是因?yàn)檫@個(gè)優(yōu)勢(shì),亞馬遜云科技的數(shù)據(jù)湖選擇了Amazon S3技術(shù)作為基礎(chǔ)。
與此同時(shí),數(shù)據(jù)湖的設(shè)置與管理往往涉及諸多手動(dòng)且極為耗時(shí)的操作,例如從不同來(lái)源處加載數(shù)據(jù)、監(jiān)控?cái)?shù)據(jù)湖、設(shè)置分區(qū)、將數(shù)據(jù)重整為列格式,以及對(duì)訪問(wèn)進(jìn)行授權(quán)與審計(jì)等等。為了幫助簡(jiǎn)化這個(gè)過(guò)程,亞馬遜云科技開(kāi)發(fā)出了Amazon Lake Formation。Lake Formation能夠從數(shù)據(jù)庫(kù)及對(duì)象存儲(chǔ)中收集并分類(lèi)數(shù)據(jù),將數(shù)據(jù)移動(dòng)到AmazonS3數(shù)據(jù)湖內(nèi),使用機(jī)器學(xué)習(xí)算法清理并分類(lèi)數(shù)據(jù),使得云端安全數(shù)據(jù)湖的構(gòu)建周期大大縮短。
2.專(zhuān)門(mén)構(gòu)建的分析服務(wù)
為了滿足不同的具體數(shù)據(jù)需求,亞馬遜云科技提供最具深度與廣度的專(zhuān)門(mén)構(gòu)建的分析服務(wù)組合,被稱(chēng)為purpose-built。其中包括亞馬遜云科技的幾個(gè)重要法寶:
Amazon Athena
交互式查詢(xún)服務(wù),支持使用標(biāo)準(zhǔn)SQL語(yǔ)句在S3上分析數(shù)據(jù)。
Amazon EMR
行業(yè)領(lǐng)先的云大數(shù)據(jù)平臺(tái),可使用多種開(kāi)放源代碼工具處理大量數(shù)據(jù)。
Amazon Elasticsearch Service
一種托管服務(wù),提供了在ElasticSearch云當(dāng)中部署、操作和擴(kuò)展亞馬遜云科技集群的服務(wù)。
Amazon Kinesis
提供收集、處理和分析實(shí)時(shí)流數(shù)據(jù)的服務(wù),以便及時(shí)獲得見(jiàn)解并對(duì)新信息快速做出響應(yīng)。
Amazon Redshift
亞馬遜云科技的強(qiáng)大數(shù)據(jù)倉(cāng)庫(kù),性?xún)r(jià)比很高。
這些法寶,各有各的勇武之地。
比如,面對(duì)Amazon S3當(dāng)中結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù),我們?nèi)绾蝸?lái)進(jìn)行查詢(xún)和分析呢?這時(shí)候,Amazon Athena就派上了用場(chǎng)。
Amazon Athena可以幫助我們使用熟知的標(biāo)準(zhǔn)SQL語(yǔ)句來(lái)創(chuàng)建數(shù)據(jù)庫(kù)、創(chuàng)建表、查詢(xún)數(shù)據(jù)、并讓數(shù)據(jù)結(jié)果可視化。
再比如,互聯(lián)網(wǎng)程序員每天都要面對(duì)海量的日志,如何更高效地存儲(chǔ)和查詢(xún)?nèi)罩灸??ElasticSearch是一個(gè)合適的選擇。
而Amazon Elasticsearch Service是一項(xiàng)完全托管的服務(wù),方便您大規(guī)模經(jīng)濟(jì)高效地部署、保護(hù)和運(yùn)行 Elasticsearch。該服務(wù)提供開(kāi)放源 Elasticsearch API、托管 Kibana、與 Logstash 和其他亞馬遜云科技服務(wù)的集成以及內(nèi)置提醒和 SQL 查詢(xún)支持。
3.無(wú)縫數(shù)據(jù)移動(dòng)
前面我們說(shuō)過(guò),企業(yè)常常需要在多種服務(wù)及數(shù)據(jù)存儲(chǔ)方案之間進(jìn)行數(shù)據(jù)遷移。那么,如何能讓大規(guī)模的數(shù)據(jù)做到平滑安全的遷移呢?亞馬遜云科技使用了他們的另一件法寶:Amazon Glue。
Amazon Glue 是一項(xiàng)無(wú)服務(wù)器數(shù)據(jù)集成服務(wù),可幫助企業(yè)輕松準(zhǔn)備數(shù)據(jù)以進(jìn)行分析、機(jī)器學(xué)習(xí)與應(yīng)用程序開(kāi)發(fā)。Amazon Glue提供數(shù)據(jù)集成所需要的全部功能,可以在幾分鐘內(nèi)獲取洞見(jiàn)結(jié)論。
Amazon Glue包含一個(gè)重要的組件,叫做Amazon Glue Elastic Views。
這個(gè)組件讓你可以對(duì)存儲(chǔ)在多種數(shù)據(jù)存儲(chǔ)中的數(shù)據(jù)創(chuàng)建視圖,并在您選擇的目標(biāo)數(shù)據(jù)存儲(chǔ)中創(chuàng)建具體化視圖。您可以使用Amazon Glue Elastic Views,通過(guò) PartiQL語(yǔ)言(一種兼容 SQL 的開(kāi)源查詢(xún)語(yǔ)言)編寫(xiě)查詢(xún)來(lái)創(chuàng)建具體化視圖。您可以在亞馬遜云科技管理控制臺(tái)中使用查詢(xún)編輯器以交互方式編寫(xiě) PartiQL 查詢(xún),也可以通過(guò) API 或 CLI 發(fā)出查詢(xún)。
Amazon Glue Elastic Views支持 Amazon DynamoDB 作為數(shù)據(jù)源,并以 Amazon Redshift、Amazon Elasticsearch Service 和 Amazon S3 作為目標(biāo)。你可以將具體化視圖與其他用戶(hù)共享,以供他們?cè)谧约旱膽?yīng)用程序中使用,從而加快開(kāi)發(fā)速度。Amazon Glue Elastic Views持續(xù)監(jiān)控源數(shù)據(jù)存儲(chǔ)中的數(shù)據(jù)更改,并自動(dòng)向目標(biāo)數(shù)據(jù)存儲(chǔ)提供更新。
在數(shù)據(jù)移動(dòng)的過(guò)程中,如何將流數(shù)據(jù)可靠地加載到數(shù)據(jù)湖、數(shù)據(jù)存儲(chǔ)和分析服務(wù)中呢?亞馬遜云科技還有一項(xiàng)法寶:Amazon Kinesis Data Firehose。
Amazon Kinesis Data Firehose服務(wù)可以捕獲和轉(zhuǎn)換流數(shù)據(jù),并將其傳輸給 Amazon S3、Amazon Redshift、Amazon Elasticsearch Service,這是一項(xiàng)完全托管的服務(wù),會(huì)自動(dòng)擴(kuò)展以匹配數(shù)據(jù)吞吐量,并且無(wú)需持續(xù)管理。該服務(wù)還可以在加載數(shù)據(jù)前對(duì)其進(jìn)行批處理、壓縮、轉(zhuǎn)換和加密,從而最大程度地減少所用存儲(chǔ)量,同時(shí)提高安全性。
此外,剛才我們提到的Amazon Redshift與Athena還支持聯(lián)合查詢(xún),可以跨多種存儲(chǔ)方案在運(yùn)營(yíng)數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)以及數(shù)據(jù)湖間對(duì)數(shù)據(jù)執(zhí)行查詢(xún),無(wú)需任何數(shù)據(jù)移動(dòng)即可提供跨數(shù)據(jù)湖洞見(jiàn),消除了設(shè)置并維護(hù)復(fù)雜的提取、轉(zhuǎn)換與加載(ETL)管道的需求。
4.統(tǒng)一治理
現(xiàn)代分析架構(gòu)中的一大核心,在于對(duì)數(shù)據(jù)訪問(wèn)活動(dòng)進(jìn)行授權(quán)、管理及審計(jì),這就是所謂的統(tǒng)一治理。這種能力說(shuō)起來(lái)簡(jiǎn)單,實(shí)現(xiàn)往往非常困難,因?yàn)榭缃M織內(nèi)各類(lèi)數(shù)據(jù)存儲(chǔ)方案進(jìn)行安全管理、訪問(wèn)控制與審計(jì)跟蹤往往復(fù)雜且耗時(shí),而不同的存儲(chǔ)系統(tǒng)往往又有著不同的安全性、數(shù)據(jù)訪問(wèn)與審計(jì)要求。
亞馬遜云科技為客戶(hù)帶來(lái)細(xì)粒度訪問(wèn)控制與治理選項(xiàng),能夠立足單一控制點(diǎn)對(duì)跨數(shù)據(jù)湖及專(zhuān)用數(shù)據(jù)存儲(chǔ)系統(tǒng)的訪問(wèn)行為進(jìn)行全面管理。
同時(shí),亞馬遜云科技還推出了Amazon Lake Formation行級(jí)安全功能的預(yù)覽版本,希望降低人員及應(yīng)用程序在共享數(shù)據(jù)時(shí)的安全保障難度。比如,一個(gè)區(qū)域銷(xiāo)售經(jīng)理,只能訪問(wèn)其所在區(qū)域內(nèi)的銷(xiāo)售數(shù)據(jù)。這一層級(jí)的過(guò)濾功能,極大節(jié)約了運(yùn)營(yíng)開(kāi)支并消除了不必要的存儲(chǔ)成本。
5.性能與成本效益
降低成本,提升性能,一直IT領(lǐng)域的核心競(jìng)爭(zhēng)力。亞馬遜云科技的一整套技術(shù)棧,都在致力于為企業(yè)降低成本,實(shí)現(xiàn)最大的性?xún)r(jià)比。
比如說(shuō),亞馬遜云科技的Amazon S3,大大降低了數(shù)據(jù)湖內(nèi)的數(shù)據(jù)存儲(chǔ)成本。此外,Amazon EC2提供了按需、預(yù)留及競(jìng)價(jià)實(shí)例之間靈活選擇并切換的能力。同時(shí),亞馬遜云科技還發(fā)布AQUA for Amazon Redshift 的預(yù)覽版本,AQUA使用分布式硬件加速型緩存,能夠?qū)⒂?jì)算與存儲(chǔ)層相融合,實(shí)現(xiàn)10倍于其他云數(shù)據(jù)倉(cāng)庫(kù)的查詢(xún)性能。