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