使用 Azure SQL Database 相應放大

適用于:Azure SQL資料庫

您可以使用彈性資料庫工具,輕鬆擴增 Azure SQL Database 中的資料庫。 這些工具和功能可讓您使用 Azure SQL Database 中的資料庫資源,建立交易式工作負載的解決方案,尤其是軟體即服務 (SaaS) 應用程式。 彈性資料庫功能的組成如下:

下圖顯示的架構包含與資料庫集合有關的彈性資料庫功能

此圖中,資料庫色彩代表結構描述。 相同色彩的資料庫共用相同的結構描述。

  1. 使用分區化結構裝載於 Azure 上的一組 SQL 資料庫
  2. 彈性資料庫用戶端程式庫 用來管理分區集。
  3. 一個資料庫子集被放入彈性集區中。 (請參閱 何謂集區?)。
  4. 彈性資料庫作業會針對所有資料庫執行排定的或 ad-hoc T-SQL 指令碼。
  5. 分割合併工具 用來將資料移到另一個的分區。
  6. 彈性資料庫查詢 可讓您撰寫一個跨分區集所有資料庫的查詢。
  7. 彈性交易 可讓您多個資料庫執行交易。

彈性資料庫工具

為何要使用這些工具?

已簡單達成雲端應用程式在 VM和 Blob 儲存體方面的彈性和縮放 - 增加或減少單位,或增加電源即可。 但對於關聯式資料庫中可設定狀態的資料處理,仍然是個挑戰。 在這些情況下出現的挑戰:

  • 針對工作負載的關聯式資料庫部分放大和縮小容量。
  • 管理可能會影響特定資料子集的作用區 - 例如忙碌的終端客戶 (租用戶)。

傳統上,要解決這類情況,都是經由投資更大型的伺服器來支援應用程式。 不過,此選項在雲端有其限制,因為所有處理都發生在預先定義的商用硬體上。 相反地,將資料和處理分散至許多相同結構的資料庫 (一種稱為「分區化」的相應放大模式),不論在成本或彈性上,都是超越傳統相應增加方法的另一種選擇。

水平和垂直縮放

下圖顯示縮放的水平和垂直面向,也是彈性資料庫的基本縮放方法。

水準與垂直向外延展

水平縮放指的是藉由新增或移除資料庫,來調整容量或整體效能,意即「相應擴增」。 分區化是常用的水平縮放實作方法,主要是將資料分割到結構相同的一組資料庫上。

垂直縮放指的是增加或減少個別資料庫的計算大小,也稱為「相應增加」。

大部分雲端級別的資料庫應用程式都採用這些兩種策略的組合。 例如,軟體即服務應用程式可能會使用水平縮放來佈建終端客戶,並使用垂直縮放,允許每個終端客戶的資料庫視所需,按工作負載增加或縮減資源。

  • 水平縮放是透過 彈性資料庫用戶端程式庫來管理。
  • 垂直縮放是透過 Azure PowerShell Cmdlet 變更服務層級,或將資料庫放入彈性集區中來達成。

分區化

分區化是一種將大量相同結構的資料分散在許多獨立資料庫的技術。 為一般客戶或企業建立軟體即服務 (SAAS) 供應項目的開發人員尤其愛用。 這些終端客戶通常稱為「租用戶」。 需要使用分區化可能有各種原因:

  • 資料總量太大而超出個別資料庫的條件約束
  • 整體工作負載的交易輸送量超過個別資料庫的能力
  • 租用戶可能需要彼此實際隔離,因此每個租用戶需要個別的資料庫
  • 基於規範、效能或地理政治的理由,資料庫的不同區段可能需要位於不同的地理位置。

在其他情況下,例如從分散式裝置擷取資料,分區化可用於填滿一組暫時組織的資料庫。 例如,一個不同的資料庫可專供每日或每週使用。 在此情況下,分區化索引鍵可以是表示日期的整數 (出現在分區化資料表的所有資料列),而擷取日期範圍資訊的查詢,必須由應用程式遞送至涵蓋相關範圍的資料庫子集。

當應用程式中的每一筆交易可以限制為單一分區化索引鍵的單一值時,分區化表現最佳。 這可確保所有交易都在特定資料庫的範圍內發生。

多租用戶和單一租用戶

有些應用程式採用最簡單的方法,為每個租用戶建立個別的資料庫。 這個方法就是單一租用戶分區化模式,它會在租用戶的細微層級上提供隔離、備份/還原能力和資源規模調整。 使用單一租用戶分區化時,每個資料庫與特定的租用戶識別碼值 (或客戶索引鍵值) 相關聯,但該索引鍵不一定出現在資料本身。 應用程式必須負責將每個要求路由至適當的資料庫 - 用戶端程式庫可以簡化此工作。

單一租用戶與多租用戶

其他案例將多個租用戶一起放入資料庫中,而不是將它們隔離至個別的資料庫。 這個模式就是典型的多租用戶分區化模式,應用程式管理大量的小型租用戶會驅使此情況。 在多租用戶分區化中,資料庫資料表中的資料列都設計成具有索引鍵 (識別租用戶識別碼) 或分區化索引鍵。 同樣地,應用程式層負責將租用戶的要求路由至適當的資料庫,而彈性資料庫用戶端程式庫支援此功能。 此外,資料列層級安全性可用來篩選每個租用戶可以存取的資料列 - 如需詳細資訊,請參閱使用彈性資料庫工具和資料列層級安全性的多租用戶應用程式。 使用多租用戶分區化模式時,可能需要在資料庫之間重新分配資料,而彈性資料庫分割合併工具可協助達成此工作。 若要深入了解使用彈性集區的 SaaS 應用程式的設計模式,請參閱 採用 Azure SQL Database 的多租用戶 SaaS 應用程式的設計模式

將資料從多租用戶資料庫移到單一租用戶資料庫

當建立 SaaS 應用程式時,通常會提供試用版軟體給潛在客戶。 在此情況下,使用多租用戶資料庫來處理資料較符合成本效益。 不過,當潛在客戶變成真正客戶時,單一租用戶資料庫就比較好,因為提供更好的效能。 如果客戶已在試用期間建立資料,請使用 分割合併工具 ,將資料從多租用戶資料庫移到新的單一租用戶資料庫。

後續步驟

如需示範用戶端程式庫的範例應用程式,請參閱開始使用彈性資料庫工具

若要將現有的資料庫轉換為使用該工具,請參閱移轉現有的資料庫以相應放大

若要查看彈性集區的細節,請參閱彈性集區的價格和效能考量,或使用彈性集區來建立新的集區。

其他資源

尚未使用彈性資料庫工具? 請參閱使用者入門指南。 如有疑問,請在 SQL Database 問與答的問題頁面上與我們連絡。如有功能要求,請在 SQL Database 意見反應論壇中新增想法或投票支持現有的想法。