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

來源: AWS
作者:Praful Kava & Changbin Gong
時間:2021-05-31
17097
通過將不同結構、不同類型、不同來源的相關數(shù)據匯總起來并加以分析,用戶能夠得出更深刻、更豐富的洞察見解。

通過將不同結構、不同類型、不同來源的相關數(shù)據匯總起來并加以分析,用戶能夠得出更深刻、更豐富的洞察見解。為此,用戶需要從不同孤島中獲取所有數(shù)據、將其聚合至統(tǒng)一位置(也就是人們常說的「數(shù)據湖」),再以此為基礎執(zhí)行分析與機器學習。但在其他用例中,用戶也會將數(shù)據放置在其他專用存儲體系之內,例如存儲在數(shù)據倉庫內以針對結構化數(shù)據執(zhí)行復雜查詢并快速獲得結果;或者存儲在搜索服務中以快速搜索/分析日志數(shù)據,進而監(jiān)控生產系統(tǒng)的運行狀況。無論如何,要想從這些數(shù)據中獲取最佳洞見,用戶必須有能力輕松在數(shù)據湖與專用存儲系統(tǒng)之間移動數(shù)據。但隨著系統(tǒng)中數(shù)據規(guī)模的持續(xù)增長,數(shù)據移動也變得越來越困難。為了解決這一挑戰(zhàn)、進而從數(shù)據中獲取最大收益,亞馬遜云科技提出了Lake House“智能湖倉”方案。

在本文中,我們將共同了解如何在亞馬遜云科技的云平臺上構建智能湖倉,借此從指數(shù)級增長的海量數(shù)據中獲取洞見,并幫助您快速靈活做出決策。這套智能湖倉方案首先指定中央數(shù)據湖,再圍繞數(shù)據湖建立專用數(shù)據服務環(huán),同時提供輕松易行的數(shù)據往來移動能力,幫助用戶從容運用數(shù)據資源以及蘊藏其中的重要價值。

智能湖倉方案

作為一類現(xiàn)代化數(shù)據架構,智能湖倉方法不僅強調將數(shù)據湖與數(shù)據倉庫集成起來,同時也涉及將數(shù)據湖、數(shù)據倉庫以及所有其他專用服務接入統(tǒng)一且連續(xù)的整體。數(shù)據湖為我們提供對主體數(shù)據的分析環(huán)境,而專用分析服務則負責以令人滿意的速度為您提供具體用例支持(例如實時儀表板與日志分析功能)。

本文中的智能湖倉方案包含以下幾大關鍵要素:

·可擴展數(shù)據湖

·專用數(shù)據服務

·無縫數(shù)據移動

·統(tǒng)一治理機制

·高效率低成本

下圖所示,為真實客戶數(shù)據與常見數(shù)據遷移需求(包括數(shù)據分析服務與數(shù)據存儲間的數(shù)據遷移、由內向外、由外向內、周邊移動等情況)共同建立的智能湖倉方案。

build-intelligent-lake-warehouse-on-amazon-cloud-technology1.png

這樣一套分層與組件化數(shù)據分析架構,使您可以通過正確的工具完成正確的任務,同時提供以迭代及增量方式構建架構的良好敏捷性。在添加新數(shù)據源、發(fā)現(xiàn)新的用例/需求以及開發(fā)新的分析方法時,我們可以更靈活地調整智能湖倉中的相應組件,借此滿足當前及未來的各類需求。

對于我們的這套智能湖倉架構,您可以把它組織成一套五層邏輯堆棧,其中各個層對應著負責滿足特定需求的專用組件。

build-intelligent-lake-warehouse-on-amazon-cloud-technology2.png

下面,我們將具體介紹這五個層級。但在此之前,不妨先來聊聊智能湖倉架構的數(shù)據來源。

數(shù)據源

這套智能湖倉架構可供您攝取并分析來自不同來源的數(shù)據。無論是業(yè)務線(LOB)應用、ERP應用還是CRM應用,大部分數(shù)據源都會以固定的間隔生成高度結構化的批量數(shù)據。除了內部結構化來源之外,您還可以從現(xiàn)代數(shù)據源(例如Web應用程序、移動設備、傳感器、視頻流以及社交媒體等)處接收數(shù)據。這些現(xiàn)代數(shù)據源往往會以連續(xù)數(shù)據流方式生成半結構化乃至非結構化數(shù)據。

數(shù)據攝取層

智能湖倉架構中的攝取層,負責將數(shù)據攝取至智能湖倉的存儲層內。它會借助各類協(xié)議接入內部及外部數(shù)據源,批量或實時攝取數(shù)據,再將結果傳送至數(shù)據倉庫乃至智能湖倉存儲層的數(shù)據湖組件中。

數(shù)據存儲層

智能湖倉架構中的數(shù)據存儲層,負責提供持久、可擴展且具有良好成本效益的組件,用以存儲及管理大量數(shù)據。在智能湖倉架構中,數(shù)據倉庫與數(shù)據湖將原生集成以提供經濟高效的存儲層體系,用以支持非結構化以及高度結構化和建模數(shù)據。存儲層會按照不同消費就緒狀態(tài)對存儲數(shù)據進行劃分,具體包括原始數(shù)據、可信數(shù)據、豐富數(shù)據與建模數(shù)據。

數(shù)據倉庫中的結構化數(shù)據存儲

數(shù)據倉庫中存儲的是符合標準且高度可信的數(shù)據,具體結構化形式則包括傳統(tǒng)的星形、雪花形、數(shù)據保管庫乃至其他非規(guī)范化模式。倉庫中存儲的數(shù)據通常獲取自高度結構化的內部與外部來源(例如交易系統(tǒng)、關系數(shù)據庫以及其他結構化運營資源),而且往往以一定的規(guī)律保持運作?,F(xiàn)代云原生數(shù)據倉庫通常能夠在內置的高性能存儲卷中存放經過壓縮的PB級列式數(shù)據。通過MPP引擎配合快速連接通道,現(xiàn)代云原生數(shù)據倉庫能夠為復雜SQL查詢提供低延遲與高執(zhí)行速度。

為了提供經過嚴格篩選、一致且受信的數(shù)據,在將數(shù)據存儲至倉庫之前,您需要首先通過提取、轉換、加載(ETL)或者提取、加載、轉換(ELT)管道對源數(shù)據進行預處理、驗證及轉換,借此建立起跨業(yè)務域的高可信度真實數(shù)據集源。

智能湖倉架構中的結構化與非結構化數(shù)據存儲

數(shù)據湖,是一套用于存儲并組織所有數(shù)據的集中式數(shù)據存儲庫。它支持以結構化、半結構化以及非結構化等形式存儲數(shù)據,支持分層存儲以高度優(yōu)化成本,同時可自動擴展以容納EB級海量數(shù)據。常見的數(shù)據湖被劃分為登陸區(qū)、原始區(qū)、受信區(qū)與策劃區(qū)幾個部分,用于根據數(shù)據的消費就緒狀態(tài)進行分別存儲。通常,數(shù)據在攝取完成后會被原樣存儲在數(shù)據湖內(無需預先定義schema),借此加快攝取速度并縮短數(shù)據探索之前的準備時間。數(shù)據湖可以通過多種方法(包括大數(shù)據處理與機器學習)對各類數(shù)據集進行分析。數(shù)據湖與數(shù)據倉庫間的原生集成,還允許您從倉庫存儲中移出大量訪問頻率較低的歷史數(shù)據,借此降低存儲成本。

目錄層

目錄層負責存儲智能湖倉存儲層內所托管數(shù)據集的業(yè)務與技術元數(shù)據。在智能湖倉架構中,目錄由數(shù)據湖與數(shù)據倉庫共享,并允許用戶編寫查詢。這些查詢將把存儲在數(shù)據湖與數(shù)據倉庫內的數(shù)據合并至同一SQL中,由此跟蹤版本化schema與數(shù)據集的細粒度分區(qū)信息。隨著數(shù)據集數(shù)量的增加,該層還提供搜索功能以保證智能湖倉中的數(shù)據集始終可被發(fā)現(xiàn)與查詢。

智能湖倉接口

在智能湖倉架構中,數(shù)據倉庫與數(shù)據湖在存儲乃至公共目錄層上保持原生集成,因此能夠為處理及消費層提供統(tǒng)一的智能湖倉接口。以此為基礎,智能湖倉的處理與消費層組件又可以通過統(tǒng)一的單個智能湖倉接口(例如SQL或Spark)使用存儲層內存儲的所有數(shù)據(分別存儲在數(shù)據倉庫與數(shù)據湖內)。這樣的架構設計,使您無需沿任一方向在數(shù)據倉庫及數(shù)據湖之間移動數(shù)據,即可訪問智能湖倉中的所有存儲數(shù)據。

數(shù)據倉庫與數(shù)據湖間的原生集成,使您得以靈活執(zhí)行以下操作:

·將EB級別的結構化與非結構化數(shù)據存儲在極具成本效益的數(shù)據湖之內,同時將經過高度策劃、建模與整合的結構化數(shù)據存儲在熱數(shù)據倉庫存儲內。

·利用Spark等單一處理框架通過單一管道合并并分析所有數(shù)據,包括數(shù)據湖中的非結構化數(shù)據與數(shù)據倉庫中的結構化數(shù)據。

·構建基于SQL的數(shù)據倉庫原生ETL或ELT管道,將倉庫中的平面關系數(shù)據與數(shù)據湖內復雜的多層結構化數(shù)據相結合。

數(shù)據處理層

智能湖倉架構的數(shù)據處理層組件負責通過驗證、清洗、規(guī)范化、轉換與擴充等方式將數(shù)據轉換為可消費狀態(tài)。處理層提供專用組件執(zhí)行各類轉換,包括數(shù)據倉庫SQL、大數(shù)據處理以及近實時ETL等。

處理層提供與正確的數(shù)據集特征(包括大小、格式、schema、速度)、當前處理任務以及可用技術集(SQL、Spark)相匹配的專用組件,由此盡可能加快交付速度。處理層能夠經濟高效地擴展以處理大量數(shù)據,同時支持schema-on-write、schema-on-read、分區(qū)數(shù)據集以及多種數(shù)據格式。處理層還能夠訪問統(tǒng)一的智能湖倉存儲接口與通用目錄,由此訪問智能湖倉中的所有數(shù)據及元數(shù)據,進而實現(xiàn)以下優(yōu)勢:

·避免分析處理數(shù)據湖與數(shù)據倉庫時可能導致的數(shù)據冗余、非必要數(shù)據移動以及ETL代碼重復。

·加快交付速度。

數(shù)據消費層

智能湖倉架構中的數(shù)據消費層負責提供可擴展的高性能組件,利用統(tǒng)一的智能湖倉接口訪問存儲層中的數(shù)據以及目錄中的元數(shù)據。數(shù)據消費層還提供專用分析組件以全面開放分析功能,確保組織內的所有職能角色都能夠通過交互式SQL查詢、倉庫式分析、商務智能儀表板以及機器學習等形式獲取洞察見解。

消費層中的組件支持以下功能:

·編寫查詢與分析/機器學習作業(yè),訪問及合并來自傳統(tǒng)數(shù)據倉庫的維度schema以及數(shù)據湖托管表(需要配合schema-on-read)。

·處理以各種開放文件格式(例如Avro、Parquet或者ORC)存儲的數(shù)據湖托管數(shù)據集。

·在讀取數(shù)據湖中托管的大型分區(qū)數(shù)據集時,通過分區(qū)裁剪優(yōu)化性能與成本。

在本文的后續(xù)部分,我們將介紹一套參考架構,展示如何使用亞馬遜云科技服務構建智能湖倉邏輯架構中的各個層。在這套方案中,亞馬遜云科技服務將托管以下工作:

·提供并管理可擴展、具有良好彈性、安全且成本效益出色的基礎設施組件。

·確保各基礎設施組件彼此原生集成。

這套方案將幫助您將主要精力集中在以下工作身上:

·快速建立數(shù)據與分析管道。

·顯著加快新數(shù)據的導入速度,并從數(shù)據中獲取洞見。

·支持多個用戶角色。

亞馬遜云科技平臺上的智能湖倉參考架構

下圖所示,為亞馬遜云科技平臺上的智能湖倉參考架構。

build-intelligent-lake-warehouse-on-amazon-cloud-technology3.png

在以下章節(jié)中,我們將具體介紹各邏輯層的細節(jié)信息。

數(shù)據攝取層

智能湖倉參考架構中的攝取層包含一組專用的亞馬遜云科技服務,負責將不同來源的數(shù)據攝取至智能湖倉存儲層內。大部分攝取服務能夠直接將數(shù)據傳遞至數(shù)據湖與數(shù)據倉庫存儲。此外,其中使用的定制化專用服務還能充分滿足以下來源的連接性、數(shù)據格式、數(shù)據結構與數(shù)據速度等具體要求:

·運營數(shù)據庫源

·軟件即服務(SaaS)應用程序

·文件共享

·流式數(shù)據源

運營數(shù)據庫源(OLTP、ERP、CRM等)

攝取層中的AWS Data Migration Service(AWS DMS)組件能夠接入多個運營RDBMS與NoSQL數(shù)據庫,并將其中的數(shù)據攝取至數(shù)據湖內的Amazon Simple Storage Service(Amazon S3)存儲桶中,或者直接攝取至Amazon Redshift數(shù)據倉庫的staging表。借助AWS DMS,您可以一次性導入源數(shù)據,然后再復制源數(shù)據庫的數(shù)據持續(xù)變化。

SaaS應用程序

攝取層使用Amazon AppFlow輕松將SaaS應用程序數(shù)據攝取至您的數(shù)據湖內。只需單擊幾下,您就可以在Amazon AppFlow中設置無服務器數(shù)據獲取流。您的數(shù)據流可以接入多種SaaS應用程序(例如Salesforce、Marketo以及Google Analytics)、攝取數(shù)據,再將結果傳遞至智能湖倉存儲層或者數(shù)據湖內的S3存儲桶,也可以直接傳遞至Amazon Redshift數(shù)據倉庫中的staging表。您可以調度Amazon AppFlow攝取流,或者根據SaaS應用程序內的事件進行即時觸發(fā)。在將攝取數(shù)據傳遞至智能湖倉存儲層之前,您還可以對數(shù)據內容加以驗證、過濾、映射及脫敏。

文件共享

相當一部分應用程序會將結構化與非結構化數(shù)據存儲在托管于網絡附加存儲(NAS)陣列上的文件中。AWS DataSync能夠從啟用NFS與SMB的NAS設備中快速將數(shù)百萬個文件、數(shù)百TB大小的數(shù)據攝取至數(shù)據湖登陸區(qū)內。DataSync不僅能夠自動處理復制作業(yè)的腳本、調度并監(jiān)控轉移過程,還能夠驗證數(shù)據完整性并優(yōu)化網絡資源利用率。在完成一輪文件轉移之后,DataSync還可監(jiān)控并將后續(xù)發(fā)生變更的文件同步至智能湖倉。更重要的是,DataSync是一項完全托管服務,整個設置過程只需要幾分鐘。

流式數(shù)據源

攝取層使用Amazon Kinesis Data Firehose從內部或外部源處接收流式數(shù)據,并將其傳遞至智能湖倉存儲層。只需單擊幾下,您就可以配置Kinesis Data Firehose API端點,供數(shù)據源發(fā)送流式數(shù)據——包括點擊流、應用程序與基礎設施日志及監(jiān)控指標,以及設備遙測與傳感器讀數(shù)等物聯(lián)網數(shù)據。Kinesis Data Firehose將執(zhí)行以下操作:

·緩沖輸入流。

·對數(shù)據進行分批、壓縮、轉換、分區(qū)與加密。

·將數(shù)據作為S3對象傳遞至數(shù)據湖,或作為行傳遞至Amazon Redshift數(shù)據倉庫內的staging表。

Kinesis Data Firehose為無服務器服務,不需要額外管理且提供成本模型,您只需要為通過該服務傳輸及處理的實際數(shù)據量付費。Kinesis Data Firehose會自動伸縮以適應傳入數(shù)據的規(guī)模及吞吐量。在構建實時流式分析管道期間,攝取層會直接提供Amazon Kinesis Data Streams。

智能湖倉存儲層

Amazon Redshift與Amazon S3為本文中的智能湖倉參考架構提供了統(tǒng)一的原生集成存儲層。一般而言,Amazon Redshift負責存儲高度規(guī)范化、符合標準要求的可信數(shù)據,這些結構化數(shù)據遵循標準維度schema;對于其他結構化、半結構化與非結構化數(shù)據,則由Amazon S3提供EB級別的數(shù)據湖存儲支持。但Amazon Redshift同樣支持半結構化數(shù)據,供您在其中攝取及存儲半結構化數(shù)據。Amazon S3則提供行業(yè)領先的可擴展性、數(shù)據可用性、安全性與性能表現(xiàn)。開放文件格式允許您使用多種處理及消費層組件對同一批Amazon S3數(shù)據執(zhí)行分析。公共目錄層在Amazon S3中負責存儲結構化或半結構化數(shù)據集的schema。消費該S3數(shù)據集的組件通常會在讀取數(shù)據集時,將這些schema應用于數(shù)據集(即schema-on-read)。

Amazon Redshift Spectrum是原生集成智能湖倉存儲層中的核心組成部分之一。Redshift Spectrum幫助Amazon Redshift提供一個統(tǒng)一的SQL接口,用以接收及處理SQL語句,并在同一查詢內引用及合并托管在數(shù)據湖及數(shù)據倉庫內的數(shù)據集。憑借數(shù)千個瞬態(tài)Redshift Spectrum節(jié)點配合Amazon Redshift的復雜查詢優(yōu)化功能,Amazon Redshift能夠高效查詢存儲在Amazon S3中的PB級數(shù)據。Redshift Spectrum還能夠查詢S3數(shù)據湖內的分區(qū)數(shù)據,包括讀取使用開源編解碼器壓縮的數(shù)據,并支持包括JSON、CSV、Avro、Parquet、ORC以及Apache Hudi在內的多種開源行或列式存儲。

當Redshift Spectrum讀取存儲在Amazon S3中的數(shù)據集時,會將來自公共AWS Lake Formation目錄的相應schema應用于數(shù)據(即schema-on-read)。借助Redshift Spectrum,您可以建立起執(zhí)行以下操作的Amazon Redshift原生管道:

·使用Redshift Spectrum將大量歷史數(shù)據保留在數(shù)據湖內,并將最近幾個月的熱數(shù)據攝取至數(shù)據倉庫中。

·處理附加存儲內的熱數(shù)據與數(shù)據湖中的歷史數(shù)據,由此生成豐富數(shù)據集,全程無需執(zhí)行任何數(shù)據移動操作。

·將豐富數(shù)據集插入至附加存儲中的表內,或者直接插入由數(shù)據湖托管的外部表中。

·輕松將大量冷門歷史數(shù)據由數(shù)據倉庫轉移至成本更低廉的數(shù)據湖存儲內,且仍保證將其作為Amazon Redshift查詢的一部分以供輕松獲取。

Amazon Redshift中的高度結構化數(shù)據通常負責為交互式查詢及高度受信的即時商務智能儀表板提供支持;而Amazon S3內的結構化、非結構化與半結構化數(shù)據,則常被用于驅動機器學習、數(shù)據科學與大數(shù)據處理用例。

AWS DMS與Amazon AppFlow能夠將數(shù)據從結構化來源直接傳遞至S3數(shù)據湖或Amazon Redshift數(shù)據倉庫,充分滿足用例的具體需求。在攝取數(shù)據文件之后,DataSync會將數(shù)據存儲至Amazon S3。處理層組件可通過單一統(tǒng)一接口(例如Amazon Redshift SQL)訪問統(tǒng)一智能湖倉存儲層內的數(shù)據,并由接口使用Redshift Spectrum將Amazon Redshift集群中存儲的數(shù)據與Amazon S3的數(shù)據加以合并。

在S3數(shù)據湖內,結構化與非結構化數(shù)據均被存儲為S3對象。數(shù)據湖內的各S3對象會按存儲桶或前綴名稱被劃分為登陸區(qū)、原始區(qū)、受信區(qū)及策劃區(qū)等幾種類別。對于將數(shù)據存儲在S3數(shù)據湖內的管道,數(shù)據將從來源處被直接攝取至登陸區(qū)內。接下來,處理層將驗證登陸區(qū)數(shù)據并將結果存儲在原始區(qū)內或添加相應前綴以供永久存儲。之后,處理層對原始區(qū)數(shù)據執(zhí)行schema、分區(qū)以及其他轉換,確保數(shù)據達到一致狀態(tài),處理后的結果被統(tǒng)一存儲在受信區(qū)內。最后一步,處理層對受信區(qū)數(shù)據集進行建模,再將結果與其他數(shù)據集進行合并以實施策劃,最終結果被存儲在策劃層內。通常,來自策劃層的數(shù)據集會被部分或全部納入Amazon Redshift數(shù)據倉庫中,以支持那些要求極低訪問延遲、或者需要運行高復雜度SQL查詢的用例。

各個區(qū)內的數(shù)據集,通常會根據相應區(qū)(原始、受信或策劃區(qū))消費模式的匹配鍵進行分區(qū)。參考架構使用GZIP、BZIP以及Snappy等開源編解碼器對數(shù)據集所對應的S3對象執(zhí)行壓縮,借此降低存儲成本并縮短處理層與消費層內的組件讀取時間。數(shù)據集通常以Parquet及ORC等開源列式存儲格式存在,以進一步減少處理層與消費層組件查詢某些列子集時所需讀取的數(shù)據量。Amazon S3提供一系列針對不同用例設計的存儲類。其中Amazon S3智能分層存儲類專門用于在不影響性能或運營開銷的前提下,自動將數(shù)據轉移至最具成本效益的訪問層內。

Amazon Redshift提供PB級數(shù)據倉庫存儲容量,用于存儲按維度或非規(guī)范化schema建模的高度結構化數(shù)據。在Amazon Redshift上,數(shù)據將以高壓縮比列式格式存儲,并分布式存儲在高性能節(jié)點集群上。各個節(jié)點最多提供64 TB高性能托管存儲容量。Amazon Redshift會強制執(zhí)行schema-on-write、ACID事務與工作負載隔離等機制,借此保障數(shù)據的高質量與一致性。用戶大多在Amazon Redshift上存儲高一致性、統(tǒng)一、可信且受控的結構化數(shù)據集,借此滿足高吞吐量、低延遲與高并發(fā)性用例。當然,您也可以使用Amazon Redshift中增量式刷新的物化視圖,以顯著提高商務智能儀表板中復雜查詢的性能與吞吐量。

在通過各種來源獲取數(shù)據并構建智能湖倉時,我們一般可以直接在整個數(shù)據湖及數(shù)據倉庫中托管數(shù)百甚至數(shù)千個數(shù)據集。中央數(shù)據目錄將統(tǒng)一為智能湖倉存儲(數(shù)據倉庫與數(shù)據湖)內的全部數(shù)據集提供元數(shù)據,這將大大降低搜索難度、保證智能湖倉能夠始終保持良好的數(shù)據發(fā)現(xiàn)能力。此外,這種將元數(shù)據由數(shù)據湖托管數(shù)據分離至統(tǒng)一中央schema的處理方式,還可幫助處理層/消費層組件及Redshift Spectrum輕松實現(xiàn)schema-on-read。

在本文的智能湖倉參考架構中,Lake Formation提供的中央目錄負責存儲智能湖倉中托管的全部數(shù)據集的元數(shù)據(無論數(shù)據集實際存儲在Amazon S3還是Amazon Redshift內)。用戶可以將全部數(shù)據集的技術元數(shù)據(例如版本化表schema、分區(qū)信息、物理數(shù)據位置以及更新時間戳等)與業(yè)務屬性(例如數(shù)據所有者、數(shù)據管理者、列業(yè)務定義以及列信息敏感性等)存儲在Lake Formation中。

大部分由數(shù)據湖托管的數(shù)據集,其schema都在不斷變化、數(shù)據分區(qū)也在持續(xù)增加;而由數(shù)據倉庫托管的數(shù)據集schema則大多以受控方式持續(xù)演進。AWS Glue crawlers能夠跟蹤數(shù)據湖托管數(shù)據集以及數(shù)據倉庫數(shù)據集內不斷變化的數(shù)據schema與新增分區(qū),并在Lake Formation目錄中為相應schema添加新的版本。此外,Lake Formation還提供API,供您使用自定義腳本及第三方產品實現(xiàn)元數(shù)據注冊與管理。

Lake Formation為數(shù)據湖管理員們提供了中央管理位置,可以為數(shù)據湖內托管的數(shù)據庫和表設置細化的表級與列級權限。在設置Lake Formation權限之后,用戶和各分組只能使用多個處理層與消費層服務(例如AWS Glue、Amazon EMR、Amazon Athena以及Redshift Spectrum等)訪問授權的表和列。

數(shù)據處理層

智能湖倉架構中的處理層提供多種專用組件,能夠支持各類數(shù)據處理用例。為了匹配智能湖倉內各數(shù)據集的獨特結構(平面表、多層或者非結構化)及速度(批量或流式),您可以靈活選擇不同的專用處理組件。各個組件都能夠面向Amazon S3與Amazon Redshift(統(tǒng)稱為智能湖倉存儲)讀寫數(shù)據。

我們可以使用處理層組件構建數(shù)據處理作業(yè),這些作業(yè)將使用以下接口對存儲在數(shù)據倉庫及數(shù)據湖內的數(shù)據進行讀寫:

Amazon Redshift SQL(配合Redshift Spectrum)。

運行在Amazon EMR上的Apache Spark作業(yè)。

運行在AWS Glue上的Apache Spark作業(yè)。

您可以使用AWS Glue crawlers或Lake Formation API,將結果數(shù)據集中的元數(shù)據添加到Lake Formation中央目錄內。

您也可以使用專用組件構建出能夠實現(xiàn)以下功能的數(shù)據轉換管道:

使用Amazon Redshift(配合Redshift Spectrum)、基于SQL的ELT

使用AWS Glue或Amazon EMR實現(xiàn)的大數(shù)據處理

使用Amazon Kinesis實現(xiàn)的近實時流式數(shù)據處理。

通過流式無服務器處理獲取實時洞見

使用Apache Flink與Amazon Kinesis Data Analytics實現(xiàn)流式ETL

使用Spark Streaming在AWS Glue上實現(xiàn)近實時流式數(shù)據處理。

使用Spark Streaming在Amazon EMR上實現(xiàn)近實時流式數(shù)據處理。

基于SQL的ELT

要在智能湖倉存儲層中轉換結構化數(shù)據,您可以使用您所熟悉的SQL語義構建起功能強大的ELT管道。這些ELT管道將使用Amazon Redshift中的大規(guī)模并發(fā)處理(MPP)功能以及Redshift Spectrum功能啟動數(shù)千個瞬態(tài)節(jié)點,即時將處理容量擴展至PB級別。Amazon Redshift上基于存儲過程的這類ELT管道能夠對以下對象進行轉換:

·由AWS DMS或Amazon AppFlow直接傳遞至Amazon Redshift staging表的平面結構化數(shù)據

·使用開源文件格式(例如JSON、Avro、Parquet及ORC等)托管在數(shù)據湖內的數(shù)據

在數(shù)據豐富期間,這些管道還可以使用SQL語句將內部維度表與S3數(shù)據湖內托管的大型事實表(使用Redshift Spectrum層)連接起來。在最后一步中,數(shù)據處理管道可以將經過策劃、豐富與建模的數(shù)據插入至Amazon Redshift內部表或存儲在Amazon S3中的外部表內。

立即登錄,閱讀全文
版權說明:
本文內容來自于AWS,本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質服務商推薦
更多
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家