Amazon Redshift:本地數據倉庫替代品
Amazon Redshift是一個由Amazon網絡服務(AWS)推出的數據倉庫服務,盡管它可能會吸引一些用戶,但是請注意它不同于企業內部版。作為企業內部數據倉庫的一個替代產品,Redshift深得用戶的青睞,特別是在用戶了解了其鮮明的服務特色,并將其用于提升業務優勢之后更是如此。
Amazon Redshift把數據倉庫應用提升到了平臺即服務(PaaS)產品的高度。這個數據倉庫服務是基于PostgreSQL定制版的,這是一個具有其競爭對手商業關系型數據庫管理系統所有功能的開源關系型數據庫。多年以來,關系型數據庫一直都支持服務器集群,但是其早期版本是難以實施和管理的。
Redshift旨在解決過去被強加給數據庫管理員(DBA)數據庫集群那令人沮喪、費時的挑戰的。數據庫管理員使用Amazon控制面板來創建最多達16個計算節點的集群,其中每個節點都配置有2TB或16TB的存儲器。
Redshift用戶可實現更低的存儲成本
Redshift是一個柱狀的數據存儲,因此當數據被存儲在磁盤上時,它們是按列而不是按行進行排列的。這樣就減少了當根據列選擇數據時所需的輸入輸出操作數量,例如選擇上月所有銷售額大于10000單位的產品,它還允許實現更高效的數據壓縮,從而最終實現用戶存儲成本的降低。
與所有暢銷商品一樣,Amazon Redshift的價格也頗具吸引力,具體為1000美元每年每TB。不要感到驚訝,這有利于這款產品迅速占領市場。1000美元每年每TB的成本相當于在2TB節點上運行的預約價。如果你運行著一個小型數據倉庫,那么你可能采用單節點的數據倉庫。只有2TB的實例(即被稱為dw.hs1.xlarge的服務器)適用于單節點配置;16TB的實例(dw.hs1.8xlarge)是為集群保留的。
除了存儲數據和執行查詢的計算節點之外,你還需要一個群首節點。群首節點從客戶端接收查詢、制定運行計劃、向計算節點發送查詢并收集查詢計算結果。Amazon只根據計算節點進行收費;群首節點是不收取費用的。
定價是基于虛擬機規模的。2TB節點的請求定價為每小時0.85美元,而16TB節點的價格則為6.80美元每小時。目前,Amazon Redshift可供美國東部、美國西部和東歐(愛爾蘭)等區域的用戶使用。
保留實例可以降低你的成本,但是用戶從AWS直接購買需簽訂為期一年或三年的使用承諾書。用戶也可以通過Amazon市場的另一個客戶處購買。銷售實例的客戶自行定價,并確定市場上所提供機器實例的類型。
由于Amazon Redshift剛剛問世,你可能還無法馬上找到很多的數據倉庫實例。另外,如果你能夠總是在你的合同中銷售所有未用和不必要的機時,那么你可能會決定購買一個保留實例。
數據倉庫節點的價格包括了計算節點上的存儲成本以及用于備份應用Amazon簡單存儲服務(S3)上的等量存儲資源。如果你在你的數據倉庫中存儲了超過存儲量的數據,那么你會需要對超出的存儲資源按標準S3價格支付費用。
通過Amazon Redshift進行數據維護
Redshift的性能恰與其并行運行的能力一致。在集群中查詢是跨節點分布的,因此每個節點都會完成整個工作量中的一小部分。不要因為跨節點的數據分布而錯誤估計了工作量。默認情況下,Redshift將使用Round-Robin算法來實現集群中跨所有節點的數據分發。如果你選擇基于關鍵節點的數據分布,那么你應當仔細選擇這個關鍵節點以避免在節點子集中的瓶頸。
所有的數據庫都需要一定程度的維護,而Redshift將會執行一些最常見的維護任務,其中包括執行備份操作和為軟件打補丁等。數據庫管理員們將仍然需要監控與數據庫設計和數據負載相關的性能表現。RedShift通過在表中刪除現有的列和添加新的列來執行更新操作。這將有助于提升運行性能,但也會導致存儲碎片的出現和增多。數據庫管理員需要定期運行VACUUM命令以便于回收未使用的存儲空間。數據庫管理員還需熟悉用于檢查查詢執行計劃的ANALYZE命令,這是分析查詢運行緩慢原因的一個關鍵技術。
作者簡介:Dan Sullivan,是一名擁有超過20年IT經驗的作家、系統架構師和顧問。他致力于先進分析、系統架構、數據庫設計、企業安全和業務智能等應用。他曾在多個行業中工作,其中包括金融服務、制造、醫藥、軟件開發、政府、零售、教育等。Dan曾就多個主題撰寫了大量文章,如數據倉庫、與安全管理相關的云計算技術和先進分析、協作以及文本挖掘。