共用方式為


選擇資料存放區的準則

本文說明評估資料存放區時所要使用的比較準則。 目標是協助您判斷哪些資料儲存體類型可符合您的解決方案需求。

一般考量

當您進行選取時,請記住下列考慮。

功能需求

  • 資料格式:您要儲存哪種類型的資料? 常見的類型包括交易資料、JSON 物件、遙測、搜尋索引或一般檔案。
  • 資料大小:您需要儲存多少實體? 這些實體是否需要以單一檔的形式維護,或者是否可以跨多個檔、資料表和集合進行分割?
  • 調整和結構:您需要的整體儲存體容量為何? 您預期會分割資料嗎?
  • 資料關聯性:您的資料是否需要支援一對多或多對多關聯性? 關聯性本身是資料很重要的一部分嗎? 您需要聯結或合併來自相同資料集或外部資料集的資料嗎?
  • 一致性模型:一個節點中所做的更新在可以進行進一步變更之前,出現在其他節點中有多重要? 您可以接受最終一致性嗎? 您是否需要交易的 ACID 保證?
  • 架構彈性:您要套用至資料的架構類型為何? 您將使用採用靜態結構描述 (schema-on-write) 方法的固定結構描述,或是採用動態結構描述 (schema-on-read) 方法?
  • 並行:當您更新和同步處理資料時,您想要使用的並行機制為何? 應用程式是否會執行許多可能衝突的更新? 如果是,您可能需要記錄鎖定和封閉式並行控制。 或者,您可以支援開放式並行存取控制嗎? 如果是,則簡單時間戳型並行控制是否足夠,或者您需要多重版本並行控制的新增功能嗎?
  • 資料移動:您的解決方案是否需要執行 ETL 工作,才能將資料移至其他存放區或資料倉儲?
  • 資料生命週期:資料寫入一次、讀取多? 是否可移到非經常性或冷儲存體?
  • 其他支援的功能:您是否需要任何其他特定功能,例如架構驗證、匯總、索引、全文檢索搜尋、MapReduce 或其他查詢功能?

非功能需求

  • 效能和延展性:您的資料效能需求為何? 您有資料擷取速率和資料處理速率的特殊需求嗎? 擷取資料之後,查詢和匯總資料的可接受回應時間為何? 資料存放區需要相應增加至多大? 您的工作負載偏向大量讀取或大量寫入?
  • 可靠性:您需要支援哪些整體服務等級協定? 您需要為數據取用者提供哪些容錯層級? 您需要何種備份和還原功能?
  • 寫:您的資料是否需要分散到多個複本或區域? 您需要何種資料複寫功能?
  • 限制:特定資料存放區的限制是否會支援調整、連線數目和輸送量的需求?

管理和成本

  • 受控服務:盡可能使用受控資料服務,除非您需要只能在基礎結構即服務中找到的特定功能, (IaaS) 裝載的資料存放區。
  • 區域可用性:針對受控服務,服務是否適用于所有 Azure 區域? 您的解決方案需要裝載在特定的 Azure 區域嗎?
  • 可攜性:您的資料是否需要遷移至內部部署、外部資料中心或其他雲端裝載環境?
  • 授權:您有專屬與 OSS 授權類型的喜好設定嗎? 您可使用的授權類型是否有任何其他外部限制?
  • 整體成本:使用解決方案內服務的整體成本為何? 需要執行多少個執行個體,才能滿足執行時間和輸送量需求? 請考慮此計算中的作業成本。 建議使用受控服務的其中一個原因,便是可降低作業成本。
  • 成本效益:您可以分割資料,以更有成本效益地儲存資料嗎? 例如,您可以將大型物件從昂貴的關聯式資料庫移出到物件存放區嗎?

安全性

  • 安全性:您需要哪種類型的加密? 您需要待用加密嗎? 您要使用何種驗證機制來連線到您的資料?
  • 稽核:您需要產生何種稽核記錄?
  • 網路需求:您是否需要限制或管理從其他網路資源存取您的資料? 是否有只能從 Azure 環境中存取資料的需求? 是否有從特定 IP 位址或子網路存取資料的需求? 是否有從裝載於內部部署或其他外部資料中心的應用程式或服務存取資料的需求?

DevOps

  • 技能集:您的小組正在使用的程式設計語言、作業系統或其他技術嗎? 您的小組有其他難以使用的技術嗎?
  • 用戶端:您的開發語言是否有良好的用戶端支援?

下一步