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