化繁為簡,亞馬遜云科技Amazon Redshift開啟云原生數倉新篇章
這一標志性的技術盛宴再一次給人們留下了無限的想象空間,等待大家在新的一年去持續探索和發掘。
而最讓人關注的,應該就是各類新服務了,今年無論是Adam還是Swami博士的Keynote很多篇幅都是和數據相關的新服務和新特性,尤其是Swami博士關于數據創新起源的表述以及新的端到端云原生數據戰略。所以,接下來將目光切回今天這篇文章關注的對象——數據,更具體地說是眾多新發布中占據高位的Amazon Redshift云數據倉庫。
簡化數據攝入工作
最好是沒有
要想數據分析到位,首先要保證有穩定、可靠的數據攝入通道,來實現端到端的第一環(其實還有第零環,是業務在數據源側的規劃),而這一塊也是大部分數據工程中遇到最頭疼的問題之一。首先,數據源就包含很多種,最常見的數據源包括關系型數據庫、數據湖和實時的流數據。其次,不管是手動還是自動的ETL流水線,都需要專業的數據工程團隊來構建和維護,并且經常要處理或介入數據結構的變更等情況。這次,Redshift連發多個功能特性來幫助客戶解決或者消除這類問題。
首先是最常見的關系型數據庫,也就是經典的OLTP向OLAP的數據傳遞。如果是為了更快或者更實時地獲取線上業務的事務數據來做分析,通常可以通過開啟數據庫的binlog來捕捉CDC變更,然后再使用解析CDC的工具如Amazon DMS、Debezium等來實現,這些都需要客戶進行不斷的監控、配置和優化。此外,不同的數據庫和數據表可能會有不同的需求,這樣就再加倍了數量級的維護成本。
相信大家對Redshift印象最深的一個功能就是Zero ETL,幫助客戶完成從1到0的過程!Redshift通過與Amazon Aurora數據庫深度集成,在事務型數據寫入Aurora后,數據在底層被持續地復制到Redshift,完成行式數據存儲到列式數據存儲的轉換,徹底消除了自己構建和維護復雜數據管道的工作。沒有Hybrid OLTP和OLAP,仍然是熟悉的Amazon Purpose-Build(Aurora還是 Aurora,Redshift還是Redshift)各司其職解決最實際的問題。同時,客戶的應用程序架構保持不變,讀寫端點指向Aurora,分析端點指向Redshift,但是底層已經不再是一大串接一大串的數據抽取、轉換和加載,直接無縫銜接并且達到近實時的效果。
然后是數據湖S3,Redshift開始支持從S3數據湖中自動復制,手動擋升級自動擋。之前,如果想要拷貝數據都需要手動或者定時執行COPY命令,現在Redshift新添加了COPY JOB命令自動檢測指定路徑的新文件,跳過已經加載完畢的舊文件。以前編寫的定時任務腳本可以退役了,而且再也不用擔心手抖重復執行,生活變得更美好了。
如果業務需求是實時的,那么通過S3作為Staging存儲再COPY的方式就跟不上節奏了,所以,流數據也要拿下。re:Invent之前,Redshift流式攝入已經開始支持Amazon Kinesis Data Streams,這次發布更是添加了Amazon Managed Streaming for Apache Kafka(MSK),同時流式攝入也正式推出,告別預覽。從上面的圖中可以看出,流式攝入合并了數據消費的過程,直接在Redshift中實現并持續加載到數據倉庫。在Redshift中,流式攝入是通過物化視圖的方式實現的(查找官方文檔是在物化視圖章節),用戶還可以在這個物化視圖基礎上再配合其他數據疊加物化視圖提高查詢效率。另外,別忘了還可以給流式攝入開啟自動刷新功能。從此,客戶可以更簡單地完成實時數據分析,包括IoT物聯網設備、點擊流、應用程序監控、欺詐檢測和游戲實時排行榜等。
以上,Redshift簡化了各種最經典的數據源ETL方式,數據坐等分析。
更多數據分析的利器
來點火花
數據已經妥妥地進到了數據倉庫的碗里來,接下來就請開始它的表演了。此時,數據工程師表示Redshift SQL很好,但是還有些更復雜業務數據邏輯更適合通過代碼的方式進行操作和處理(而不是通過UDF)。開源大數據生態體系下有非常豐富的軟件供組織采用了,其中功能完善、發展穩定的Apache Spark往往是一個優先的選擇。在亞馬遜云科技平臺上使用Spark并不復雜,有托管服務EMR和Glue保駕護航,還有新發布的Amazon Athena for Apache Spark可以極速啟動交互。但是,說到Spark和Redshift之間進行數據分析還是需要折騰一下的,或者是通過將Redshift中的數據導出到S3中,或者是使用各種第三方的Spark連接器,前者需要多走一步浪費時間和資源,后者沒有多少人維護不說,性能和安全性都令人堪憂。因此,Amazon Redshift integration for Apache Spark應運而生。
這個內置集成模式基于一個之前的開源項目,提升了性能和安全性,相信后續亞馬遜云科技仍將繼續跟進這個開源項目,并將各種升級改造的好東西貢獻給社區。目前,EMR、EMR on EKS、EMR Serverless和Glue(限定版本)都預置了打包好的連接器和JDBC驅動程序,客戶完全可以直接開始編寫代碼(有愛好者迫不及待連夜在EMR Studio中使用EMR on EKS完成了對Redshift Serverless和集群模式的交互式讀寫測試,體驗極佳),對Redshift中的數據進行處理。如果客戶的數據分析工作負載以Spark為主,也可以通過Spark統一對各種數據源的分析。