Amazon Redshift介紹
Amazon Redshift是一種可輕松擴展的完全托管型PB級數據倉庫,它通過使用列存儲技術和並行化多個節點的查詢來提供快速的查詢性能,使您能夠更高效的分析現有數據。使用雲端Amazon Redshift服務,您無需管理龐大的服務器集群,分析數據的成本不到傳統解決方案的十分之一。
Amazon Redshift使用列存儲技術改善I/O效率並跨過多個節點平行放置查詢,從而提供快速的查詢性能。Redshift使用標准的PostgreSQL JDBC和ODBC驅動程序,從而使您能夠使用各種常見SQL客戶端。數據加載速度與集群大小呈線性關系。
作為AWS的服務之一的Redshift有哪些優勢呢?
1、完全托管,快速上手
使用Redshift雲服務,您可以根據業務需要在幾分鍾內建立幾個到幾十個節點的數據倉庫集群,立刻開始您的數據分析的任務,也能根據需求隨時增加或減少集群資源。Redshift是完全托管平台,承擔了大量的集群管理、數據庫管理、監控、集群健康檢查、備份、升級等工作,讓您能專注業務分析,無需花大量時間在服務器管理,安全及數據備份等工作上。
2、為數據倉庫而優化的架構
Amazon Redshift基於企業級PostgreSQL數據庫,有大規模並行處理(MPP)結構,MPP可以通過將數據分布到各個計算節點來解決海量數據的處理難題。在Redshift中,每個集群有一個管理節點和多個計算節點。集群內部使用私有、高速、 低延時的網絡連接。每個計算節點都有單獨的CPU,內存和附加存儲,並且每個計算節點有多個分區,您的數據被分布保存在計算節點的多個分區內,因此每個分區的數據量大大減少,您的查詢會在多個分區並行執行,大大的增加了查詢的效率。
注:MPP是將任務並行的分散到多個服務器和節點上,在每個節點上計算完成后,將各自部分的結果匯總在一起得到最終的結果(與Hadoop相似),詳情點擊;https://blog.csdn.net/qq_42189083/article/details/80610092
3、查詢優化
Redshift提供了針對MPP架構的查詢優化引擎,被編譯后的SQL分布在多個計算節點的分區內並行執行,並且最大化的利用了列式存儲的優勢,因此在復雜的多表連接查詢的情況下,查詢優化器通常能有很大的性能提升。
4、高性能
很多用戶使用Redshift獲得了幾十倍甚至上百倍的查詢加速,Redshift為您提供非常搞笑的查詢性能,除了上面講的專為數據倉庫而優化的架構外,還有以下優勢:
4.1、列式存儲
很多數據庫使用行式存儲,此時如果要基於某個列求和,需要加載整張表的數據,而Redshift列式存儲只需要加載一列的數據,磁盤的IO以及內存的消耗都顯著減少,增加了性能。由於數據倉庫中的大部分查詢只是掃描整張表中的部分字段,因此Redshift列式存儲特別適合數據倉庫查詢,另外列式存儲索引比傳統索引能提供5倍以上的壓縮效果和10倍以上的性能提升。
4.2、數據壓縮
作為一個列式數據倉庫,Redshift還支持列數據壓縮,數據壓縮減少了磁盤占用空間,減少了讀寫I/O、減少了內存占用空間,並提高了查詢的性能。由於Redshift同列的數據類型相同,有些值也相同,因此Redshift的壓縮率很高
5、成本低
使用Redshift無需昂貴的服務器及管理人員成本,僅按使用量付費,並且可以通過購買預留實例來進一步減少成本,實際成本只有傳統數據倉庫分析的十分之一。
6、安全
創建Redshift集群的時候,可以選擇啟用加密來保護數據倉庫中的數據,啟用加密后,所有的數據庫、系統表及備份數據都會被加密,保障了數據的安全。連接Redshift的時候,您也可以使用SSL連接,保障網絡傳輸安全。另外AWS也通過身份管理IAM,虛擬網絡VPC,防火牆安全組等保護您數據的安全 。
7、負載性能監控
Redshift監控讓您能了解集群運行的細節,比如您可以隨時檢查集群節點的CPU、內存、網絡、存儲的使用狀況,了解節點當前負載,確保您使用合適的資源來滿足當前的業務需求。Redshift和雲監控CloudWatch服務高度集成,CloudWatch能夠監測Redshift的各種指標,也可以設置警報,在集群出現故障時第一時間通知您。CloudWatch簡單易用,是保障集群健康的重要環節。
8、數據遷移到Redshift
不管您的數據是否在雲中,都能輕松的使用Redshift分析現有數據,對於傳統的沒有使用雲的用戶,只需要先將數據文件上傳到AWS中。AWS提供了多種途徑將雲中的數據加載到Redshift中,下面介紹幾種:
8.1、從S3中加載數據
傳統的用戶可以將數據文件通過上傳到AWS的雲存儲S3上。對於敏感數據,可以在上傳前加密數據或者使用S3雲端加密功能,因此無需擔心數據安全。Redshift提供了命令自動將S3中的數據並行加載到Redshift中。
8.2、從Dynamo DB中加載數據
您也可以將數據加載AWS的NoSQL數據庫(Dynamo DB)中,Dynamo DB中的數據可以實時或者批量的導入到Redshift。
8.3、從EMR中加載數據
EMR是AWS基於hadoop框架的大數據處理服務,通過大數據處理平台加工后的數據,可以使用Redshift命令將HDFS中的數據加載到Redshift中。
8.4、通過SSH從遠程服務器加載數據
Redshift也提供了命令從雲中或您數據中心主機上通過SSH連接加載數據。
AWS提供了豐富的功能幫助您將數據中心或雲中的數據加載到Redshift中,加載完成后您就可以在Redshift中建立模型,分析數據,使用AWS的QuickSight、Elasticsearch Service等服務顯示報表,也可以在AWS的Market Place中尋找行業BI工具分析和顯示數據。