《4-馬浩_沐瞳出海實踐業務分享之大數據成本優化_1_副本.pdf》由會員分享,可在線閱讀,更多相關《4-馬浩_沐瞳出海實踐業務分享之大數據成本優化_1_副本.pdf(32頁珍藏版)》請在三個皮匠報告上搜索。
1、基于基于AWSAWS的大數據系統成本優化方案的大數據系統成本優化方案沐瞳沐瞳出海實踐業務分享出海實踐業務分享馬浩馬浩-大數據運維負責人大數據運維負責人上海沐瞳科技上海沐瞳科技ContentsContents目錄目錄項目背景項目背景沐瞳大數據架構簡圖沐瞳大數據架構簡圖我們的挑戰我們的挑戰如何提高計算資源的利用率,從而降低計算成本如何對數據進行分層,從而在數據上升的情況下降低整體數據成本如何有效對存儲數據進行監控/管理/篩選,從而輔助進行數據分層,并有效解決冗余數據的問題如何提高計算資源的利用率,從而降低計算成本?離線計算彈性伸縮離線計算彈性伸縮-針對工作周期性進行優化針對工作周期性進行優化離線離
2、線計算的工作方式計算的工作方式-利用率周期明顯,部分任務定時進利用率周期明顯,部分任務定時進行行6:00 am0:00 am12:00 am6:00 pm12:00 pm利用率通過通過彈性伸縮進行計算利用率的提升彈性伸縮進行計算利用率的提升將一定比例的常駐機器轉化為彈性資源當產生業務需求時再對應拉起這件部分的計算資源以確保整體資源利用率保持在一定的程度彈性伸縮的技術實現彈性伸縮的技術實現通過ASG進行彈性組的定義通過Eventbridge進行定時任務觸發通過System Manager進行內外環境初始化以及任務啟動離線離線計算的工作方式計算的工作方式-利用率周期明顯,部分任務定時進利用率周期明
3、顯,部分任務定時進行行6:00 am0:00 am12:00 am6:00 pm機器成本12:00 pm利用率機器成本成本優化量如何對數據進行分層,從而在數據上升的情況下降低整體數據成本?S3S3存儲層成本優化存儲層成本優化-針對冷熱數據進行數據分層針對冷熱數據進行數據分層大數據大數據存儲存儲困境困境S3存儲分布存儲分布待刪除數據需冷備數據S3S3存儲現狀存儲現狀存儲成本三大問題:S3S3數據存儲分層解析數據存儲分層解析存儲類別存儲類別存儲價格存儲價格請求價格請求價格訪問速度訪問速度訪問場景訪問場景Standard貴便宜快熱數據存儲Standard-IA便宜偏貴快冷數據存儲Glacier非常便
4、宜貴慢歸檔冷數據數據成本=存儲成本+訪問成本AWS S3存儲針對數據的訪問冷熱,提供了多種存儲類型以及計費方式善用不同存儲類型,能極大地優化整體存儲成本S3S3數據存儲分層解析數據存儲分層解析010000200003000040000500006000070000800005000100001500020000數據成本隨請求變化圖數據成本隨請求變化圖StandardStandard-IAGlacier單位:USD單位:K req右圖為假設存儲2000TB數據時,數據成本隨著月請求量變化的數據假設每上升1000K req,數據檢索量上升1000GB可看出,standard數據的成本幾乎不變化,I
5、A變化較明顯,而Glacier隨著請求上升,成本的變化非常劇烈S3S3數據存儲分層解析數據存儲分層解析熱數據成本熱數據成本冷數據成本歸檔數據成本根據數據的實際訪問情況以及業務形態,主動進行S3數據冷熱分層,可有效降低整理成本S3S3存儲類存儲類別與成本別與成本優化優化S3S3存儲類別與成本優化存儲類別與成本優化準確的識別數據的冷熱對降低成本至關重要準確的識別數據的冷熱對降低成本至關重要問題問題:如何識別:如何識別S3S3中數據的冷熱?中數據的冷熱?如何有效對存儲數據進行監控/管理/篩選S3S3存儲清單存儲清單+日志分析日志分析+Class+Class AnalysisAnalysis如何如何有
6、效地監控有效地監控BucketBucket的數據情況以及增量情況?的數據情況以及增量情況?每天的數據總量是多少?有多少文件?變化趨勢是什么?如何準確地獲取所有需要清理的冗余數據的清單?是否可以針對數據系統,進行Bucket Prefix Object級別的篩選和Group?是否能做更進一步的數據分析?解決方案解決方案:S3S3 InventoryInventory什么什么是是S3S3 InventoryInventoryS3 Inventory 會每天根據我們需要的字段,從Bucket中讀取所有Object的元數據所有的這些元數據可匯總成當天的S3基表通過對這張基表做圖表分析,以及SQL查詢,
7、可獲得關于S3的所有所需要的存儲信息 S3 Inventory S3 Inventory實踐實踐 開啟S3庫存清單管理 在開啟 s3 清單功能后,可能需要多達 48 小時才能收到第一份 S3 清單文件,一般情況下生成清單時間少于 24 小時。清單文件 csv 生成之后,生成hive表CREATE EXTERNAL TABLE inventory_list(bucket string,key string,size bigint,last_modified_date string,storage_class string)PARTITIONED BY(dt string)ROW FORMAT S
8、ERDE org.apache.hadoop.hive.serde2.OpenCSVSerde STORED AS INPUTFORMAT org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat OUTPUTFORMAT org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat LOCATIONs3:/inventory/testinventory/data/hiveS3 InventoryS3 Inventory實踐實踐 存儲清單分析-按照某天生成的清單,查詢桶內有多少存儲類型:Select
9、distinct storage_class from inventory_list where dt=YYYY-MM-DD-00-00-比如按照2020-05-20生成的清單查詢:Select distinct storage_class from inventory_list where dt=2020-05-20-00-00如何如何有效地監控有效地監控BucketBucket的數據情況以及增量情況?的數據情況以及增量情況?數據的冷熱和其分層息息相關如何正確的識別數據的冷熱,并實現自動化?解決方案解決方案:S3S3訪問日志分析訪問日志分析S3S3桶日志分析桶日志分析01開啟日志后可以查詢桶
10、對象的所有請求,并進行分析02要顯示在特定時間段內執行的表分取所有操作03統計最近時間段內桶的不同操作趨勢S3S3桶日志分析桶日志分析Amazon S3 將服務器訪問日志作為對象存儲在一個 S3 存儲桶中。按照以下步驟使用 hive 分析和查詢 S3 服務器訪問日志CREATE EXTERNAL TABLE s3_access_logs_db.mybucket_logs(XXXXX)LOCATIONs3:/bucket-name/prefix-name/account-id/region/source-bucket-name/TBLPROPERTIES(projection.enabled=t
11、rue,XXXXXXX storage.location.template=s3:/bucket-name/prefix-name/account-id/region/source-bucket-name/$timestamp)AdvancedAdvanced AutomaticAutomatic ToolTool:ClassClass AnalysisAnalysisStorage Analysis可以比較長期且自動化地對S3中的數據進行分析它的目的是為了識別與幫助用戶決策將冷熱數據存儲到正確的存儲類中它會持續地分析Object的訪問情況,并幫助監控與決策什么時候對什么文件進行操作適合在監控日志的整套系統邏輯還沒有完善,或者只是希望有一套輕量化系統協助做冷熱數據分析的場景系統自動化實踐基于基于S S3 3的大數據存儲策略優化實踐解決方案的大數據存儲策略優化實踐解決方案S3S3存儲策略實現存儲策略實現一階段一階段通過存儲清單和日志分析刪除存量數據,一期目標達成優化存量存儲30%存儲優化存儲優化30%30%成本優化結果二階段二階段通過日志分析做歷史低訪問數據存儲類優化,達成成本優化20%目標成本優化成本優化20%20%三階段三階段存量數據和歷史低訪問數據長期分析自動寫入數據庫表后,做自動化策略執行,長期優化s3存儲成本生命周期管理生命周期管理