Amazon Redshift簡化資料管道背後的技術邏輯

danny_2018發表於2022-12-23

從大資料概念首次提出,到全球經濟邁入數智化時代,Amazon Redshift雲數倉支撐企業應用走向現代化資料架構,已有十年曆史。回顧過去,Redshift圍繞資料分析、高可靠、高可用等方向,經歷了哪些重要迭代? 2022re:Invent最新推出的Zero-ETL“簡化資料管道”理念,背後包含哪些技術邏輯?

接下來,讓我們站在新十年的起點,一起去感受以Redshift為核心的資料技術帶來的變革!

十年躍遷

“這10年,我們一直從客戶需求出發,不斷完善產品功能,提升應用效能。比如:客戶希望融合湖倉的能力,在倉中能夠直接查詢S3資料湖中的資料。”亞馬遜雲科技資料分析專家 潘超,具體介紹了Redshift的演進歷程。

早在2017年,Redshift就推出了Redshift Spect,提供了湖倉融合能力。2019年,Redshift推出RA3型別的節點,儲存和計算完全分離各自獨立擴充套件,幫助客戶節省成本的同時;也給Redshift的架構帶來極大的擴充套件性和靈活性。之後,Redshift DataSharing應運而生,使用者可以實現資料的生產和消費分離,可以在不移動資料的情況下實現跨叢集、跨賬號、跨Region資料的共享。

2021年,Redshift Serverless的釋出,帶來了雲原生數倉的極致體驗,客戶不用再關注底層計算資源的擴充套件,可按需付費,簡單易用。Redshift Serverless將計算資源抽象為RPU,會根據叢集負載彈性伸縮,只在有查詢的時候,按照RPU的使用時長計費,不查詢不收費。使用起來非常方便,給到使用者的就是一個Endpoint,直接連結使用即可。可適用於負載有高有底有波峰、波谷的應用場景等。

2022年的re:invent,Redshift再次成為焦點。Amazon Redshift Multi-AZ(高可用性與高可靠性)、Amazon Glue Data Quality(更好地管理資料湖質量)、Centralized Access Controls for Redshift Data Sharing(簡易且安全的資料訪問許可權管理)、Amazon Redshift auto-copy from S3(簡化資料分析與移動)等,與Amazon Redshift相關的新功能,多到數不過來。

那麼,這些新功能將為使用者帶來哪些實際價值呢?

以DataSharing舉例,透過DataSharing客戶能夠做到跨賬號跨Region的資料共享,做到讀寫分離,比如客戶想要把RDS資料實時同步到Redshift,做完加工處理後對外提供高併發的實時資料查詢,我們可以將RDS資料實時攝入到Redshift的Provision Cluster,之後將後設資料Share給Redshift Serverless叢集提供BI查詢,整個過程只需要在控制檯上點選幾個按鈕就可以實現。

同樣,Auto-copy對於客戶來說,也是一個令人興奮的新功能。Auto-Copy簡化了從S3資料湖中載入到Redshift的過程,它可以自動監控S3的資料目錄的變化,將新增的資料檔案自動載入到Redshift中, 無需依賴任何元件,只需要一個SQL語句就可以完成。

Redshift所有功能創新,均源於使用者的業務場景。Redshift的應用場景包括四大塊:1.常規業務運營與BI分析;2.實時數倉分析;3.查詢、報表與資料分析,就是OLAP的一些應用查詢;4.機器學習與分析預測。目前,全球有數萬使用者在使用Redshift進行資料分析,這些使用者來自遊戲、金融、醫療、網際網路等各個行業。

ETL自由

2022年re:invent大會上,Redshift能夠C位出道,還有一個重要原因,那就是首次推出了Zero-ETL獨特的技術方法。

“透過Zero-ETL,直接實現了從Aurora儲存層到Redshift儲存層的資料轉換,並且無需依賴任何元件,效能和實時性都有更好的保證,這是兩個雲原生產品的融合。” 潘超進一步解釋了Zero-ETL誕生初衷。

對於大多數企業而言,要想讓關聯式資料庫的資料實時進入數倉中做AP查詢,通常會使用CDC工具實時解析資料,再用計算引擎將資料寫入到倉中,同時要更新對資料進行Merge操作,整個過程比較複雜,還要依賴多個元件才能完成,給開發和運維帶來了極大挑戰。採用雲原生產品融合的方式,則可以各自完成自己專業的事情,讓資料在分析服務之間無縫流轉。

Zero-ETL其實秉承的是亞馬遜雲科技一直以來的產品理念,那就是化繁為簡,實現從0到1的技術突破後,再努力消除從1到0的瑣碎。而從雲原生數倉層面看,Zero-ETL的本質是,讓資料在倉、湖、資料庫之間無縫流轉,而無需關注複雜的資料管道建設問題,讓客戶全心投入到業務中去。

深度整合

當資料進入到Redshift,資料分析與互動工作才正式開始,對於有著複雜業務資料邏輯的企業來說,更希望透過Redshift去簡化業務流程,同時可以無縫構建和執行Apache Spark應用程式。

“在2022re:Invent大會上,Adam宣佈了Amazon Redshift與Apache Spark深度整合,以幫助資料工程師構建和執行Spark應用程式,這些應用程式可以從 Amazon RedShift 叢集消費和寫入資料。” 潘超強調,聚焦資料戰略,亞馬遜雲科技的產品雖自成一體,但也會擁抱開放,與開源生態深度整合。

首先,Redshift會和自己的託管服務無縫整合,比如:Glue Catalog做統一的後設資料管理;Lake Formation做統一的許可權管控;Zero-ETL做TP到AP的實時分析。

同時,Redshift也會跟開源、第三方合作伙伴的工具無縫整合。比如:加強了Redshift和Spark的融合,Glue和EMR都整合了最新研發的高效能Spark Redshift Connector,更有效地提供謂詞下推、臨時檔案列存等特性,相比開源Connector有10倍以上的效能提升。

過去,如果你在EMR工作,可以使用Spark 對資料進行分析,但如果你想對 Redshift 中的資料執行Spark查詢,你必須將資料遷移到S3,或者配置使用開源的Spark Redshift聯結器, 整個過程比較繁瑣。最好的方法是,只在Redshift上就能對資料執行Spark查詢。

Amazon Redshift 和Apache Spark 的整合後,能最大限度地減少設Spark和Redshift 開源聯結器的繁瑣過程(且通常是手動過程),並減少了執行分析和ML任務所需的準備時間。比如:你正在使用亞馬遜雲科技的分析和機器學習 (ML) 服務(Amazon EMR、Amazon Glue 和 Amazon Sagemaker),那麼現在可以構建 Apache Spark 應用程式,從 Amazon Redshift 資料倉儲中讀寫資料,而不會影響應用程式的效能或資料的事務一致性。

而在流式資料接入與處理方面,Redshift是透過Amazon Managed Streaming for Apache Kafka (Amazon MSK) Serverless支援快速擴充套件資源,簡化實時資料攝取和流式傳輸。問題是,這種方式的優勢是什麼?和Flink技術路線是怎樣一種關係?

答案是,二者並不矛盾!很多客戶需要更加實時的資料攝入,比如:風險監控及風控指標管理、遊戲使用者行為分析等等,Streaming Ingestion解決的是透過在Redshift執行一個SQL,即可完成MSK和KDS的資料實時攝入到Redshift,將資料攝入延遲降低到秒級別,減少額外元件維護,減低成本。如果客戶需要實時計算,依然可以選擇Flink或者無伺服器的託管Flink(Amazon Kinesis Data Analytics)。但如果客戶是要做實時分析,那麼Streaming Ingestion是一個很好的選擇。

藉助Redshift提供的Streaming Ingestion,使用者可以非常方便地可以將訊息中心的資料接入到Redshift,中間無需依賴任何元件,執行Redshift標準SQL即可,整個過程自動攝取,降低資料入倉攝入延遲和維護成本。

對於實時查詢能力,Redshift有Auto Tuning的功能,比如排序鍵,分佈鍵,每列的壓縮演算法,自動物化檢視等。Redshift依靠自己內部的機器學習演算法,會自動去做一系列的動作,使用者不再需要特別關注數倉效能的調優,只關注業務邏輯即可。

Redshift也提供了聯邦查詢能力,使用者可以直接透過Redshift直接查詢RDS和Aurora中的資料,獲取實時資料,而不需要資料載入過程。

換言之,Redshift具備了實時數倉所需要的資料的實時攝入和實時查詢能力,這種簡化資料管道以及深度整合的方式,可有效支撐各個業務場景需求,讓企業在特定的實時場景下不再需要移動資料,也不再需要構建和管理任何聯結器。

總之,在亞馬遜雲科技整體的資料戰略部署中,Redshift佔有重要地位。在簡單、易用、高價效比優勢背後,其實體現的是Redshift一路創新與持續迭代帶來的成果。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31547898/viewspace-2929287/,如需轉載,請註明出處,否則將追究法律責任。

相關文章