PERF04-BP04 根據存取模式選擇資料儲存
根據工作負載的存取模式確定要使用的服務和技術。除了效能和規模等非功能性要求外,存取模式還嚴重影響資料庫和儲存解決方案的選擇。第一個維度是對交易、ACID 合規和一致性讀取的需求。並非每個資料庫都支持這些項目,並且大部分 NoSQL 資料庫都會提供最終一致性模型。第二個重要維度是寫入和讀取隨時間和空間的分佈。全球分散式應用程式需要考慮流量模式、延遲和存取要求,以便識別最佳的儲存解決方案。選擇的第三個關鍵層面是查詢模式靈活性、隨機存取模式,以及一次性查詢。還必須斟酌圍繞文字和自然語言處理、時間系列和圖形的高度專業化查詢功能的考量。
預期成果: 已根據識別和記錄的資料存取模式選取資料儲存。這可能包括最常見的讀取、寫入和刪除查詢、對特定計算和彙總的需求、資料的複雜性、資料相依性,以及必要的一致性需求。
常用的反模式:
-
您只選取一個資料庫廠商來簡化操作管理。
-
您假設資料存取模式不會隨著時間改變。
-
您在應用程式中實作複雜的交易、回復和一致性邏輯。
-
資料庫設定為支援潛在的高流量爆增,這會導致資料庫資源大部分時間保持閒置狀態。
-
使用共用的資料庫進行交易和分析用途。
建立此最佳實務的優勢: 根據存取模式選取和優化您的資料儲存將有助於降低開發複雜性,並優化您的效能機會。了解何時使用讀取複本、全域表、資料分割和快取將協助您降低營運負擔,並根據您的工作負載需求進行擴展。
若未建立此最佳實務,暴露的風險等級: 中
實作指引
識別並評估您的資料存取模式,以選取正確的儲存組態。每個資料庫解決方案都有設定和優化儲存解決方案的選項。使用收集的指標和記錄,並嘗試使用選項來找出最佳組態。使用下表根據每個資料庫服務檢閱儲存選項。
AWS 服務 | Amazon RDS、Amazon Aurora | Amazon DynamoDB | Amazon DocumentDB | Amazon ElastiCache | Amazon Neptune | Amazon Timestream | Amazon Keyspaces | Amazon QLDB |
---|---|---|---|---|---|---|---|---|
擴展儲存 | 可用來自動擴展所佈建儲存 IOPS 的儲存自動擴展選項也可以在利用佈建的 IOPS 儲存類型時,獨立於佈建的儲存進行擴展 | 自動擴展。資料表在大小方面不受限制。 | 儲存自動擴展選項可用來擴展佈建的儲存 | 儲存是記憶體內,受制於執行個體類型或計數 | 儲存自動擴展選項可用來自動擴展佈建的儲存 | 設定記憶體內和磁性層的保留期間 (以天為單位) | 自動擴增和縮減表格儲存 | 自動擴展。資料表在大小方面不受限制。 |
實作步驟:
-
識別並記錄資料和流量的預期成長。
-
Amazon RDS 和 Aurora 支援儲存自動擴增至記錄的限制。除此之外,考慮將較舊資料轉換到 Amazon S3 進行封存、彙總歷史資料進行分析,或透過碎片水平擴展。
-
DynamoDB 和 Amazon S3 將自動擴展至近乎無限制的儲存容量。
-
可以手動調整在 EC2 上執行的 Amazon RDS 執行個體和資料庫大小,並且 EC2 執行個體可以在後來新增 EBS 容量以取得額外的儲存。
-
可以根據活動中的變更來變更執行個體類型。例如,您可以在測試時從較小的執行個體開始,然後在您開始接收服務的生產流量時擴展執行個體。Aurora Serverless V2 會自動擴展以回應負載中的變更。
-
-
記錄有關正常和尖峰效能 (每秒交易數 TPS 和每秒查詢數 QPS) 和一致性 (ACID 和最終一致性) 的要求。
-
記錄解決方案部署層面和資料庫存取要求 (全域、多可用區域、讀取複寫、多個寫入節點)
實作計劃的工作量: 如果您的資料管理解決方案沒有日誌或指標,則需要在識別和記錄資料存取模式之前完成該操作。一旦了解您的資料存取模式,選取並設定您的資料儲存是 低 工作量。
資源
相關文件:
相關影片:
相關範例: