共享存儲功能支持無限並發擴展,同時 Redshift 的實例存儲功能支持低延遲訪問無法通過其他方式訪問的數據。 這兩個策略的獨特組合使得 Redshift 目前具備一流的性能,並能在日后不斷改進。

Amazon Redshift 將數據倉庫查詢擴展到您的數據湖,無需加載。您可以針對 Redshift 中本地存儲的 PB 級數據運行分析查詢,以及直接針對 Amazon S3 中存儲的 EB 級數據運行分析查詢。設置和自動執行大多數管理任務以及在任意規模中提供快速性能都非常簡單。
Amazon S3 數據湖:Amazon Redshift 是將您的查詢擴展到 Amazon S3 數據湖而無需加載數據的唯一數據倉庫。您可以直接在 S3 中查詢已使用的開放文件格式,例如 Avro、CSV、Grok、JSON、ORC 和 Parquet 等。
AWS 分析生態系統:Amazon Redshift 與 AWS 分析生態系統進行原生集成。AWS Glue 可以將數據提取、轉換和加載 (ETL) 到 Redshift 中。Amazon Kinesis Data Firehose 是捕獲、轉換流數據並將其加載到 Redshift 以實現近乎實時分析的一種簡單方式。您可以使用 Amazon QuickSight 創建報告、可視化和控制面板。 為了加速向 Amazon Redshift 的遷移,您可以免費使用 AWS Database Migration Service (DMS) 六個月。
Redshift Spectrum 是 Amazon Redshift 的一項功能,借助這項功能,您可以對 Amazon S3 中 EB 級非結構化數據運行查詢,而無需進行加載或 ETL 操作。當您發布查詢時,查詢會進入 Amazon Redshift SQL 終端節點,該終端節點會生成查詢方案並對其進行優化。Amazon Redshift 會確定哪些數據存儲在本地以及哪些數據存儲在 Amazon S3 中,然后生成一種方案來盡可能減少需要讀取的 Amazon S3 數據量,從共享資源池中請求 Redshift Spectrum 工作線程來讀取和處理 Amazon S3 中的數據。
Amazon Redshift 使用各種創新技術,與傳統的數據倉庫存儲及分析用數據庫相比,其性能提高將近十倍:
- 列式數據存儲:Amazon Redshift 以列組織數據,並非以一系列的行來存儲數據。與適用於事務處理的基於行的系統不同,基於列的系統適用於數據倉庫存儲及分析,在此系統中,查詢經常涉及到對大型數據集進行聚合。由於僅對涉及查詢的列進行處理,且列式數據按順序存儲在存儲介質上,故基於列的系統所需的 I/O 要少得多,從而顯著提高了查詢性能。
- 高級壓縮:與基於行的數據存儲相比,列式數據存儲可進行更大程度的壓縮,因為類似的數據是按順序存儲在硬盤上。Amazon Redshift 擁有多種壓縮技術,與傳統的關系數據存儲相比,通常可進行較大程度的壓縮。此外,與傳統的關系數據庫系統相比,Amazon Redshift 不需要索引或具體化視圖,因此使用的空間較少。將數據加載到空表中時,Amazon Redshift 會自動對您的數據進行采樣並選擇最合適的壓縮方案。
- 大規模並行處理 (MPP):Amazon Redshift 可以自動將數據與查詢負載分配到所有節點。借助 Amazon Redshift,您可以輕松將節點添加至數據倉庫,而且隨着您的數據倉庫規模的擴大,仍能維持快速的查詢性能。
- Redshift Spectrum:借助 Redshift Spectrum,您可以對 Amazon S3 中的 EB 級數據運行查詢,且無需進行加載或 ETL 操作。即使沒有在 Amazon Redshift 中存儲任何數據,您仍然可以使用 Redshift Spectrum 查詢 Amazon S3 中的 EB 級數據集。當您發布查詢時,查詢會進入 Amazon Redshift SQL 終端節點,該終端節點會生成查詢方案。Amazon Redshift 會確定哪些數據存儲在本地以及哪些數據存儲在 Amazon S3 中,然后生成一種方案來盡可能減少需要讀取的 Amazon S3 數據量,從共享資源池中請求 Redshift Spectrum 工作線程來讀取和處理 Amazon S3 中的數據,然后將結果返回 Amazon Redshift 群集進行任何剩余處理。
您可以使用 AWS 管理控制台或 Amazon Redshift API 輕松創建 Amazon Redshift 數據倉庫群集。您可以從單節點 160GB 數據倉庫開始,然后在 AWS 控制台中單擊幾下或調用一個 API,一路擴展到 1PB 或更大。
單節點配置使您能夠開始經濟快速地使用 Amazon Redshift,而且隨着您的需求的增長,單節點配置可擴展為多節點配置。 一個 Redshift 數據倉庫群集中可以包含 1 到 128 個計算節點,具體取決於節點類型。
- 多節點配置需要一個領導節點來管理客戶端的連接並接收查詢,以及兩個計算節點來存儲數據並執行查詢和計算。系統將自動為您配置領導節點,並且您無需為其付費。僅需指定您的首選可用區(可選項)、節點數量、節點類型、主機名稱和密碼、安全組、您對備份保留期的首選項及其他系統設置。在您選定理想配置后,Amazon Redshift 將預置所需資源並建立數據倉庫群集。
- 領導節點接收來自客戶端應用程序的查詢,分析查詢並制定執行計划,是對查詢進行處理的一套有序步驟。然后領導節點和計算節點協調這些計划的並行執行,聚合來自這些節點的中間結果,並將這些結果最終返回至客戶端應用程序。
- 計算節點執行執行計划所規定的步驟,並在這些計划之間傳輸數據,從而為這些查詢進行服務。中間結果會先被送回至領導節點進行聚合,然后才會被送回至客戶端應用程序。
- 密集存儲 (DS) 節點類型提供兩種大小:超大型節點和八倍超大型節點。超大型節點 (XL) 有 3 個硬盤,總共 2TB 的磁盤存儲,而八倍超大型節點 (8XL) 有 24 個硬盤,總共 16TB 的磁盤存儲。DS2.8XLarge 有 36 個 Intel Xeon E5-2676 v3 (Haswell) 虛擬內核和 244GiB RAM,DS2.XL 有 4 個 Intel Xeon E5-2676 v3 (Haswell) 虛擬內核和 31GiB RAM。請參閱定價頁面了解更多詳細信息。您可從每小時 0.85 USD 的單個超大型節點 2TB 數據倉庫開始,然后擴展至 1PB 或更大。您可按小時付費或使用預留實例定價,將價格降低到每年每 TB 不到 1000 USD。
- 密集計算 (DC) 節點類型也提供兩種大小。大型節點具有 160GB 的 SSD 存儲、2 個 Intel Xeon E5-2670v2 (Ivy Bridge) 虛擬核心和 15GiB 的 RAM。八倍超大型節點是大型節點的 16 倍,具有 2.56TB 的 SSD 存儲、32 個 Intel Xeon E5-2670v2 虛擬核心和 244GiB 的 RAM。您可從每小時 0.25 USD 的單個 DC2.Large 節點開始,然后一路擴展至 128 個 8XL 節點,從而具有 326TB 的 SSD 存儲、3200 個虛擬內核和 24TiB 的 RAM。
- Amazon Redshift 的 MPP 架構意味着可以通過增加數據倉庫群集中的節點數來提升性能。每個計算節點的最佳數據量取決於您的應用程序特點和查詢性能需求。一個 Amazon Redshift 數據倉庫群集中可以包含 1 到 128 個計算節點,具體取決於節點類型。
盡管 Redshift Spectrum 非常適用於對 Amazon Redshift 和 S3 中的數據運行查詢,但它真的不適合企業通常需要使用 Amazon EMR 之類的處理框架進行處理的使用案例類型。Amazon EMR 的功能遠不止於運行 SQL 查詢。Amazon EMR 是一種托管服務,可讓您使用最新版本的常用大數據處理框架(如 Spark、Hadoop 和 Presto)在完全自定義的群集上處理和分析極大的數據集。借助 Amazon EMR,您可以為機器學習、圖形分析、數據轉換、流式處理數據以及您可以編寫代碼的幾乎任何應用程序運行各種擴展的數據處理任務。
您可以將 Redshift Spectrum 與 EMR 配合使用。Redshift Spectrum 存儲表定義的方式與 Amazon EMR 相同。Redshift Spectrum 可以支持 Amazon EMR 使用的相同 Apache Hive 元數據倉來查詢數據和表定義。如果您使用的是 Amazon EMR 並擁有 Hive 元數據倉,則只需配置 Amazon Redshift 群集即可使用 Redshift Spectrum。然后,您可以馬上開始查詢這些數據和 Amazon EMR 任務。因此,如果您已經在使用 EMR 處理大型數據存儲,則可同時使用 Redshift Spectrum 來查詢這些數據,而不會影響 Amazon EMR 任務。
Amazon Athena 是讓任何員工都能對 Amazon S3 中的數據運行臨時查詢的最簡單方式。Athena 是無服務器服務,因此您無需設置或管理基礎設施,即可立即開始分析數據。
如果您擁有需要以一致且高度結構化的格式進行存儲的頻繁訪問數據,那么您應該使用 Amazon Redshift 之類的數據倉庫。這樣一來,您就可以在 Amazon Redshift 中靈活存儲結構化的頻繁訪問數據,並使用 Redshift Spectrum 將 Amazon Redshift 查詢擴展到 Amazon S3 數據湖中的所有數據。此外,您還可以靈活地將數據以您想要的格式存儲在您想要的位置,並在需要時即時可用。
如果數據倉庫群集的可用區 (AZ) 發生故障,那么對數據倉庫群集可用性和數據持久性有何影響?
如果 Amazon Redshift 數據倉庫群集的可用區無法使用,那么在 AZ 的電源及網絡訪問恢復之前,您將無法使用您的群集。數據倉庫群集的數據將被保留下來,一旦 AZ 重新可供使用,那么您就能夠開始使用 Amazon Redshift 數據倉庫。此外,您也可選擇將任何現有快照恢復到同一區域中的新 AZ 中。Amazon Redshift 將首先恢復您最頻繁訪問的數據,這樣您就能盡快地恢復查詢。
當前 Amazon Redshift 僅支持單一可用區部署。通過將數據從同一組 Amazon S3 輸入文件加載到各個 AZ 中的兩個 Amazon Redshift 數據倉庫群集中,您便可在多個 AZ 中運行數據倉庫群集。借助 Redshift Spectrum,您可以跨可用區運行多個群集,並訪問 Amazon S3 中的數據,而無需將其加載到群集中。此外,您也可將數據倉庫群集從數據倉庫群集快照恢復至其他可用區。
在加載數據時,Amazon Redshift 會復制數據倉庫群集內的所有數據並將其連續備份至 S3。Amazon Redshift 始終嘗試維持至少三份數據(計算節點上的正本數據、副本數據和 Amazon S3 上的備份數據)。Redshift 還能將您的快照異步復制到另一個區域的 S3 中進行災難恢復。默認情況下,Amazon Redshift 以一天的保留期啟用數據倉庫群集的自動化備份。您可將其配置為 35 天之久。免費備份存儲受限於數據倉庫群集中節點上的總存儲大小,並僅適用於已激活的數據倉庫群集。
如何管理自動備份及快照保留期?
您可以使用 AWS 管理控制台或 ModifyDBInstance API,通過修改 RetentionPeriod 參數來管理自動備份的保留時間段。如果您希望關閉自動備份,則可以通過將保留期設置為 0(不建議)來執行該操作。Elastic Resize 幾分鍾內即可在單個 Redshift 集群中添加或刪除節點,以管理其查詢吞吐量。例如,一天內某幾個小時的 ETL 工作負載或月末報告可能需要額外 Redshift 資源才能按時完成。並發擴展會添加額外集群資源來提高整體查詢並發量。
Redshift Spectrum 目前支持許多開源數據格式,其中包括 Avro、CSV、Grok、Ion、JSON、ORC、Parquet、RCFile、RegexSerDe、SequenceFile、TextFile 和 TSV。
Redshift Spectrum 目前支持 Gzip 和 Snappy 壓縮。