在亞馬遜云科技上構(gòu)建智能湖倉(下)

來源: AWS
作者:Praful Kava & Changbin Gong
時(shí)間:2021-05-31
16850
在本文中,我們介紹了多種專用AWS服務(wù),您可以利用它們構(gòu)建起智能湖倉架構(gòu)中的五個(gè)核心邏輯層。我們還提供多種選項(xiàng),介紹如何在正確的工作中使用正確的AWS服務(wù)以實(shí)現(xiàn)良好的靈活性與豐富的功能性。

大數(shù)據(jù)處理

為了對智能湖倉存儲層(Amazon S3與Amazon Redshift)上托管的大量半結(jié)構(gòu)化、非結(jié)構(gòu)化或高度結(jié)構(gòu)化數(shù)據(jù)進(jìn)行集成處理,您可以使用Apache Spark構(gòu)建大數(shù)據(jù)處理作業(yè),并在AWS Glue或Amazon EMR上加以運(yùn)行。這些作業(yè)可以使用Spark的原生及其他開源連接器進(jìn)行訪問,并將Amazon Redshift中存儲的關(guān)系型數(shù)據(jù)同Amazon S3中存儲的復(fù)雜平面或分層結(jié)構(gòu)化數(shù)據(jù)結(jié)合起來。處理完成后,這些作業(yè)可以將結(jié)果數(shù)據(jù)集存儲回S3數(shù)據(jù)湖、Amazon Redshift數(shù)據(jù)倉庫或者二者共同構(gòu)成的智能湖倉存儲層。

AWS Glue提供無服務(wù)器、按使用量計(jì)費(fèi)的ETL功能,其ETL管道能夠處理規(guī)模達(dá)數(shù)十TB的海量數(shù)據(jù),且無需啟動或管理任何服務(wù)器或集群。為了加快ETL開發(fā),AWS Glue還能自動生成ETL代碼并提供常用的數(shù)據(jù)結(jié)構(gòu)與ETL轉(zhuǎn)換(用于驗(yàn)證、清洗、轉(zhuǎn)換及展平數(shù)據(jù))。AWS Glue還提供內(nèi)置功能,用于處理存儲在Amazon Redshift以及S3數(shù)據(jù)湖內(nèi)的數(shù)據(jù)。在同一作業(yè)之內(nèi),AWS Glue還可以加載并處理使用平面表格式存儲的Amazon Redshift數(shù)據(jù)、以及其他使用常見開源格式(例如CSV、JSON、Parquet以及Avro)存儲的S3數(shù)據(jù)湖托管數(shù)據(jù)集。AWS Glue ETL作業(yè)可通過公共Lake Formation目錄(AWS Glue crawlers會爬取Amazon S3及Amazon Redshift以獲取數(shù)據(jù))訪問這些數(shù)據(jù),借此以統(tǒng)一方式引用Amazon Redshift與Amazon S3托管表。AWS Glue ETL還能夠?qū)Ψ謪^(qū)數(shù)據(jù)執(zhí)行增量處理。此外,AWS Glue也提供觸發(fā)器與工作流功能,可用于構(gòu)建包含作業(yè)依賴項(xiàng)、并發(fā)運(yùn)行等多個(gè)步驟的端到端數(shù)據(jù)處理管道。

您可以自動擴(kuò)展EMR集群,滿足PB級別大數(shù)據(jù)處理管道的嚴(yán)苛資源需求。這些管道還可以使用不同的Amazon Elastic Compute Cloud(Amazon EC2)競價(jià)實(shí)例隊(duì)列,進(jìn)一步改善資源成本優(yōu)化效果。關(guān)于實(shí)例選項(xiàng)的更多詳細(xì)信息,請參閱支持的實(shí)例類型。

運(yùn)行在Amazon EMR上的基于Spark數(shù)據(jù)處理管道能夠?qū)崿F(xiàn)以下功能:

·Spark內(nèi)置的讀取器與寫入器能夠處理采用多種開源格式的數(shù)據(jù)湖托管數(shù)據(jù)集。

·開源Spark-Amazon Redshift連接器能夠直接對Amazon Redshift數(shù)據(jù)倉庫中的數(shù)據(jù)進(jìn)行讀取與寫入。

要讀取由數(shù)據(jù)湖托管的復(fù)雜結(jié)構(gòu)化數(shù)據(jù)集schema,Amazon EMR上的Spark ETL作業(yè)可以接入Lake Formation目錄。這是通過AWS Glue兼容性配合AWS身份與訪問管理(IAM)策略共同實(shí)現(xiàn),負(fù)責(zé)對指向AWS Glue表以及底層S3對象的訪問進(jìn)行分別授權(quán)。同樣,Spark作業(yè)還可以使用Spark-Amazon Redshift連接器讀取Amazon Redshift托管數(shù)據(jù)集的數(shù)據(jù)與schema。您也可以使用Spark及Apache Hudi構(gòu)建高效的增量數(shù)據(jù)處理管道Amazon EMR。

近實(shí)時(shí)ETL

要執(zhí)行多個(gè)現(xiàn)代分析用例,您需要以近實(shí)時(shí)方式執(zhí)行以下操作:

·攝取大量高頻或流式數(shù)據(jù)

·驗(yàn)證、清洗與豐富數(shù)據(jù)

·將數(shù)據(jù)放入智能湖倉存儲以供消費(fèi)

您可以使用以下方法構(gòu)建起能夠輕松擴(kuò)展、并近實(shí)時(shí)處理大量數(shù)據(jù)的管道:

·Amazon Kinesis Data Analytics for SQL/Flink

·在AWS Glue或Amazon EMR上使用Spark Streaming

·將Kinesis Data Firehose與AWS Lambda相集成

Kinesis Data Analytics、AWS Glue與Kinesis Data Firehose可幫助您建立起近實(shí)時(shí)數(shù)據(jù)處理管道,且無需創(chuàng)建或管理任何計(jì)算基礎(chǔ)設(shè)施。Kinesis Data Firehose與Kinesis Data Analytics管道能夠彈性擴(kuò)展以匹配源吞吐量,而基于Amazon EMR與AWS Glue的Spark Streaming作業(yè)則可以根據(jù)指定的擴(kuò)展參數(shù)、在幾分鐘內(nèi)完成規(guī)模擴(kuò)展。

基于Kinesis Data Analytics for Flink/SQL的流式管道通常會從Amazon Kinesis Data Streams(位于我們智能湖倉架構(gòu)的攝取層中)讀取記錄、對其進(jìn)行轉(zhuǎn)換,而后將處理完成的數(shù)據(jù)寫入至Kinesis Data Firehose。Spark Streaming管道則通常從Kinesis Data Streams(位于我們智能湖倉架構(gòu)的攝取層中)讀取記錄、對其進(jìn)行轉(zhuǎn)換,而后將處理完成的數(shù)據(jù)寫入至另一Kinesis數(shù)據(jù)流,且后者又接入Kinesis Data Firehose交付流。Firehose交付流能夠?qū)⑻幚砗蟮臄?shù)據(jù)交付至智能湖倉存儲層內(nèi)的Amazon S3或Amazon Redshift。要構(gòu)建起簡單、不涉及狀態(tài)轉(zhuǎn)換的近實(shí)時(shí)管道,您可以將數(shù)據(jù)直接攝取至Kinesis Data Firehose中,并使用Kinesis Data Firehose調(diào)用的Lambda函數(shù)對傳入記錄進(jìn)行微批處理。Kinesis Data Firehose會將轉(zhuǎn)換后的微批記錄交付至智能湖倉存儲層中的Amazon S3或Amazon Redshift。

憑借著將數(shù)據(jù)交付至Amazon S3與Amazon Redshift的能力,Kinesis Data Firehose得以為處理層中的近實(shí)時(shí)ETL管道提供統(tǒng)一的智能湖倉存儲寫入器接口。在Amazon S3上,Kinesis Data Firehose可以將數(shù)據(jù)存儲在有效的Parquet或ORC文件中,您可以靈活使用ZIP、GZIP及Snappy等開源編解碼器對這些文件進(jìn)行壓縮。

數(shù)據(jù)消費(fèi)層

我們的智能湖倉參考架構(gòu)提供多種專用AWS服務(wù),能夠讓不同角色類型之間的數(shù)據(jù)消費(fèi)方式互連互通,包括支持交互式SQL查詢、商務(wù)智能與機(jī)器學(xué)習(xí)等多種分析用例。這些服務(wù)使用統(tǒng)一的智能湖倉接口訪問存儲在Amazon S3、Amazon Redshift以及Lake Formation目錄中的所有數(shù)據(jù)與元數(shù)據(jù)。此外,各項(xiàng)服務(wù)還可以通過開放文件格式(例如JSON、Avro、Parquet以及ORC)使用Amazon Redshift表中存儲的平面關(guān)系數(shù)據(jù)以及S3對象中存儲的平面或復(fù)雜結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)。

交互式SQL

要使用交互式SQL探索智能湖倉內(nèi)存儲的所有數(shù)據(jù),商務(wù)分析師與數(shù)據(jù)科學(xué)家可以使用Amazon Redshift(配合Redshift Spectrum)或者Athena輕松實(shí)現(xiàn)。您可以運(yùn)行SQL查詢,這些查詢會將Amazon Redshift集群中托管的平面、關(guān)系、結(jié)構(gòu)化維度數(shù)據(jù),連同Amazon S3中存儲的TB級規(guī)模的平面或復(fù)雜結(jié)構(gòu)化歷史事實(shí)數(shù)據(jù)結(jié)合起來,而且允許在數(shù)據(jù)中使用JSON、Avro、Parquet以及ORC等開放文件格式。在Amazon S3中查詢數(shù)據(jù)集時(shí),Athena與Redshift Spectrum都將獲取存儲在Lake Formation目錄中的schema,并將其應(yīng)用于讀取操作(schema-on-read)。您可以在Athena或Amazon Redshift各自的控制臺上運(yùn)行查詢,也可以將面向JDBC或ODBC端點(diǎn)提交查詢。關(guān)于更多詳細(xì)信息,請參閱使用ODBC與JDBC驅(qū)動程序接入Amazon Athena,以及在Amazon Redshift中配置連接。

Athena能夠針對存儲在Amazon S3中的TB級數(shù)據(jù)運(yùn)行復(fù)雜的ANSI SQL,而且您無需預(yù)先將其加載至數(shù)據(jù)庫內(nèi)。Athena具有無服務(wù)器特性,因此不存在需要設(shè)置或管理的基礎(chǔ)設(shè)施,您只需要為運(yùn)行查詢所產(chǎn)生的數(shù)據(jù)掃描量付費(fèi)。Athena還提供聯(lián)合查詢功能,允許在同一SQL查詢中將Amazon S3托管的事實(shí)數(shù)據(jù)與Amazon Redshift集群內(nèi)托管的維度表結(jié)合起來。Athena利用存儲在Lake Formation目錄內(nèi)的數(shù)據(jù)集分區(qū)信息減少數(shù)據(jù)掃描量,由此更快提供結(jié)果并降低查詢成本。您可以使用Athena CTAS語句存儲重復(fù)的查詢結(jié)果,這將進(jìn)一步降低查詢成本。

Amazon Redshift提供強(qiáng)大的SQL功能,可對智能湖倉存儲(跨Amazon Redshift MPP集群與S3存儲湖)內(nèi)的超大型數(shù)據(jù)集進(jìn)行快速在線分析處理(OLAP)。Amazon Redshift還提供功能強(qiáng)大的查詢優(yōu)化器,能夠通過類似于PostgreSQL的語法編寫出復(fù)雜的用戶查詢,并生成可在Amazon Redshift MPP集群與Redshift Spectrum節(jié)點(diǎn)隊(duì)列(以查詢Amazon S3中的數(shù)據(jù))上運(yùn)行的高性能查詢計(jì)劃。Amazon Redshift則提供結(jié)果緩存功能,可將同一查詢的重復(fù)操作次數(shù)降低幾個(gè)數(shù)量級,借此顯著縮短查詢運(yùn)行時(shí)間。借助Amazon Redshift中的物化視圖,您只需要對復(fù)雜join進(jìn)行一次預(yù)先計(jì)算(后續(xù)以增量方式進(jìn)行刷新),借此簡化并加快用戶所需編寫的下游查詢。Amazon Redshift還提供并發(fā)擴(kuò)展,可在幾秒鐘內(nèi)啟動更多瞬態(tài)集群,借此支持幾乎無限數(shù)量的并發(fā)查詢。您可以將查詢結(jié)果寫入回Amazon Redshift原生表或者S3數(shù)據(jù)湖上托管的外部表(使用Redshift Spectrum)。

機(jī)器學(xué)習(xí)

數(shù)據(jù)科學(xué)家們往往需要探索、整理并特征化各類結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)集,為機(jī)器學(xué)習(xí)模型的訓(xùn)練作業(yè)做好準(zhǔn)備。智能湖倉接口(用于將Amazon Redshift與Athena及Spark接口配合使用的交互式SQL接口)能夠?yàn)閿?shù)據(jù)科學(xué)家提供以下功能,由此大大簡化并加快數(shù)據(jù)準(zhǔn)備進(jìn)程:

·統(tǒng)一的Lake Formation目錄,用于搜索及發(fā)現(xiàn)智能湖倉存儲中托管的所有數(shù)據(jù)。

·基于Amazon Redshift SQL與Athena的交互式SQL功能,用于訪問、瀏覽及轉(zhuǎn)換智能湖倉存儲中的所有數(shù)據(jù)。

·基于Spark的統(tǒng)一訪問機(jī)制,能夠整理并轉(zhuǎn)換智能湖倉存儲中托管的所有數(shù)據(jù)集(包括結(jié)構(gòu)化與非結(jié)構(gòu)化),并將其轉(zhuǎn)換為特征集。

接下來,數(shù)據(jù)科學(xué)家可以將Amazon SageMaker接入智能湖倉的存儲層并訪問訓(xùn)練特征集,借此完成機(jī)器學(xué)習(xí)模型的開發(fā)、訓(xùn)練與部署。

SageMaker是一項(xiàng)完全托管服務(wù),提供一套名為SageMaker Studio交互式開發(fā)環(huán)境(IDE)以構(gòu)建、訓(xùn)練及部署機(jī)器學(xué)習(xí)的各組件。在Studio中,您可以使用統(tǒng)一的可視化界面統(tǒng)一上傳數(shù)據(jù)、創(chuàng)建新notebook、訓(xùn)練及調(diào)整模型、在各步驟間往來移動以調(diào)整實(shí)驗(yàn)過程、比較結(jié)果并將模型部署至生產(chǎn)環(huán)境中。

SageMaker還提供托管Jupyter notebook,您只需單擊幾下即可啟動notebook。SageMaker notebook提供彈性計(jì)算資源、git集成、輕松共享、預(yù)置機(jī)器學(xué)習(xí)算法、幾十種現(xiàn)成機(jī)器學(xué)習(xí)示例以及AWS Marketplace集成功能,您可以輕松部署數(shù)百種經(jīng)過預(yù)訓(xùn)練的算法。SageMaker notebook還預(yù)先配置了所有主要深度學(xué)習(xí)框架,包括TensorFlow、PyTorch、Apache MXNet、Chainer、Keras、Gluon、Horovod、Scikit-learn以及Deep Graph Library等。

各機(jī)器學(xué)習(xí)模型在SageMaker托管的計(jì)算實(shí)例上進(jìn)行訓(xùn)練,其中也包括成本效益極高的EC2競價(jià)實(shí)例。您可以使用SageMaker Experiments組織多項(xiàng)訓(xùn)練作業(yè),也可以使用SageMaker的內(nèi)置算法、自定義算法或AWS Marketplace提供的數(shù)百種算法構(gòu)建訓(xùn)練作業(yè)。SageMaker Debugger則提供對于模型訓(xùn)練作業(yè)的完全可見性。最后,SageMaker也為機(jī)器學(xué)習(xí)訓(xùn)練作業(yè)提供強(qiáng)大的自動超參數(shù)調(diào)優(yōu)選項(xiàng)。

只需要單擊幾下,您就可以將SageMaker訓(xùn)練完成的模型部署至生產(chǎn)中,并輕松通過一組完全托管EC2實(shí)例進(jìn)行擴(kuò)展。您可以在多種EC2實(shí)例類型中做出選擇,并附加具有成本效益的GPU驅(qū)動實(shí)例實(shí)現(xiàn)推理加速。模型部署完成后,SageMaker即可監(jiān)控關(guān)鍵模型指標(biāo)以提高推理準(zhǔn)確性,同時(shí)檢測一切概念漂移跡象。

商務(wù)智能

Amazon QuickSight提供無服務(wù)器功能,可供您輕松創(chuàng)建并發(fā)布包含豐富信息的交互式商務(wù)智能儀表板。商務(wù)分析師們可以使用Athena或Amazon Redshift的交互式SQL接口,通過智能湖倉存儲中的數(shù)據(jù)為QuickSight儀表板提供素材支持。此外,您也可以直接將QuickSight接入可操作數(shù)據(jù)庫(例如MS SQL、Postgres)以及各類SaaS應(yīng)用(例如Salesforce、Square以及ServiceNow等)。為了保證儀表板擁有出色的性能表現(xiàn),QuickSight還提供一款名為SPICE的內(nèi)存緩存與計(jì)算引擎。SPICE能夠自動復(fù)制數(shù)據(jù)以實(shí)現(xiàn)高可用性,允許成千上萬用戶同時(shí)執(zhí)行快速交互式分析,并有效保護(hù)底層數(shù)據(jù)基礎(chǔ)設(shè)施。

QuickSight憑借開箱即用、自動生成的機(jī)器學(xué)習(xí)洞見(包括預(yù)測、異常檢測與敘述重點(diǎn)等)極大豐富了儀表板信息與視覺效果。QuickSight與SageMaker原生集成,可在商務(wù)智能儀表板上實(shí)現(xiàn)其他基于機(jī)器學(xué)習(xí)模型的自定義洞見。您可以使用QuickSIght應(yīng)用程序經(jīng)由任意設(shè)備訪問QuickSight儀表板,也可以將儀表板靈活嵌入至Web應(yīng)用程序、門戶與網(wǎng)站中。QuickSight能夠自動擴(kuò)展至成千上萬用戶,并以經(jīng)濟(jì)高效的按會話計(jì)費(fèi)方式提供極具性價(jià)比的服務(wù)體驗(yàn)。

總結(jié)

基于專用服務(wù)組合建立的智能湖倉架構(gòu)將幫助您從海量數(shù)據(jù)中快速獲取面向所有用戶的洞察見解,同時(shí)充分預(yù)留升級空間,供您隨后續(xù)發(fā)展隨時(shí)引入新的分析方法與技術(shù)成果。

在本文中,我們介紹了多種專用AWS服務(wù),您可以利用它們構(gòu)建起智能湖倉架構(gòu)中的五個(gè)核心邏輯層。我們還提供多種選項(xiàng),介紹如何在正確的工作中使用正確的AWS服務(wù)以實(shí)現(xiàn)良好的靈活性與豐富的功能性。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于AWS,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對觀點(diǎn)贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多