使用 Azure SQL Database 相應放大

適用於:Azure SQL Database

您可以使用彈性資料庫工具,輕鬆地相應放大 Azure SQL 資料庫 中的資料庫。 這些工具和功能可讓您使用 Azure SQL 資料庫 的資料庫資源來建立交易式工作負載的解決方案,特別是軟體即服務 (SaaS) 應用程式。 彈性資料庫功能是由下列項目所組成:

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

在此圖形中,資料庫的色彩代表架構。 具有相同色彩的資料庫會共用相同的架構。

  1. 一組 SQL 資料庫 會使用分區化架構裝載在 Azure 上。
  2. 彈性資料庫客戶端連結庫可用來管理分區集。
  3. 資料庫子集會放入 彈性集區中。 (請參閱 什麼是集區?)。
  4. 彈性資料庫作業會針對所有資料庫執行排程或臨機操作 T-SQL 腳本。
  5. 分割 合併工具 可用來將數據從某個分區移至另一個分區。
  6. 彈性資料庫查詢可讓您撰寫跨越分區集中所有資料庫的查詢。
  7. 彈性交易 可讓您執行跨越數個資料庫的交易。

Elastic Database tools

為什麼要使用工具?

對於 VM 和 Blob 記憶體而言,達到雲端應用程式的彈性和規模相當簡單,只要新增或減去單位,或增加電源即可。 但它仍然是關係資料庫中具狀態數據處理的挑戰。 這些案例中出現了挑戰:

  • 增加和縮小工作負載中關係資料庫部分的容量。
  • 管理可能會影響特定數據子集的熱點,例如忙碌的終端客戶(租使用者)。

傳統上,這類案例已透過投資大型伺服器來支援應用程式來解決。 不過,在雲端中,所有處理都會在預先定義的商品硬體上執行,而此選項會受到限制。 相反地,將數據和處理分散到許多相同結構化資料庫(稱為「分區化」的向外延展模式)提供在成本和彈性方面傳統相應增加方法的替代方案。

水平和垂直縮放

下圖顯示縮放的水準和垂直維度,這是彈性資料庫可調整的基本方式。

Horizontal versus vertical scale-out

水平調整是指新增或移除資料庫,以調整容量或整體效能,也稱為「相應放大」。 分區化,其中數據分割在相同結構化資料庫的集合之間,是實作水平調整的常見方式。

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

大部分的雲端規模資料庫應用程式會使用這兩種策略的組合。 例如,軟體即服務應用程式可能會使用水平調整來布建新的終端客戶和垂直調整,以允許每個終端客戶的資料庫視需要增加或壓縮工作負載的資源。

  • 水平縮放是使用彈性資料庫用戶端程式庫來管理。
  • 使用 Azure PowerShell Cmdlet 來變更服務層級,或將資料庫放在彈性集區中,可以完成垂直調整。

分區化

分區化是一種將大量相同結構的資料分散在許多獨立資料庫的技術。 它特別受雲端開發人員歡迎為終端客戶或企業建立軟體即服務(SAAS)供應專案。 這些終端客戶通常稱為「租使用者」。 基於任何原因,可能需要分區化:

  • 數據總量太大,無法符合個別資料庫的條件約束
  • 整體工作負載的交易輸送量超過個別資料庫的功能
  • 租使用者可能需要彼此的實體隔離,因此每個租使用者都需要個別的資料庫
  • 基於合規性、效能或地緣政治原因,資料庫的不同區段可能需要位於不同的地理位置。

在其他案例中,例如從分散式裝置擷取數據,分區化可用來填滿一組暫時組織的資料庫。 例如,個別的資料庫可以專用於每天或每周。 在此情況下,分區化索引鍵可以是代表日期的整數(存在於分區化數據表的所有數據列中),而查詢擷取日期範圍的資訊,必須由應用程式路由傳送至涵蓋有問題範圍之資料庫的子集。

當應用程式中的每個交易可以限制為分區化索引鍵的單一值時,分區化效果最佳。 這可確保所有交易都是特定資料庫的本機交易。

多租用戶和單一租使用者

有些應用程式會使用最簡單的方法,為每個租使用者建立個別的資料庫。 這種方法是單一 租使用者分區化模式 ,可提供租用戶粒度的隔離、備份/還原能力和資源調整。 使用單一租使用者分區化時,每個資料庫都會與特定的租使用者標識碼值(或客戶密鑰值)相關聯,但該索引鍵不一定存在於數據本身。 應用程式有責任將每個要求路由傳送至適當的資料庫,而用戶端連結庫可以簡化此作業。

Single tenant versus multi-tenant

其他案例會將多個租使用者封裝在一起到資料庫,而不是將它們隔離到不同的資料庫。 此模式是典型的 多租使用者分區化模式 ,可能是由應用程式管理大量小型租用戶的事實所驅動。 在多租使用者分區化中,資料庫數據表中的數據列全都是設計來攜帶識別租使用者標識碼或分區化密鑰的密鑰。 同樣地,應用層會負責將租使用者的要求路由傳送至適當的資料庫,而彈性資料庫客戶端連結庫可支援此要求。 此外,數據列層級安全性可用來篩選每個租用戶可存取的數據列 -如需詳細資訊,請參閱 具有彈性資料庫工具和數據列層級安全性的多租用戶應用程式。 使用多租使用者分區化模式,可能需要在資料庫之間轉散發數據,而且是由彈性資料庫分割合併工具所促進。 若要深入了解使用彈性集區的 SaaS 應用程式的設計模式,請參閱 採用 Azure SQL Database 的多租用戶 SaaS 應用程式的設計模式

將數據從多個移至單一租用資料庫

建立 SaaS 應用程式時,通常會為潛在客戶提供軟體的試用版。 在此情況下,對數據使用多租用戶資料庫是符合成本效益的。 不過,當潛在客戶成為客戶時,單一租用戶資料庫會更好,因為它可提供更佳的效能。 如果客戶在試用期間建立了數據,請使用 分割合併工具 將數據從多租使用者移至新的單一租用戶資料庫。

注意

無法從多租用戶資料庫還原至單一租使用者。

下一步

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

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

若要查看彈性集區的詳細數據,請參閱 彈性集區的價格和效能考慮,或使用彈性集區建立新的集

其他資源

尚未使用彈性資料庫工具? 請參閱使用者入門指南。 如需問題,請在 Microsoft Q&A 問題頁面上與我們連絡,以取得 SQL 資料庫 和功能要求,在 SQL 資料庫 意見反應論壇新增想法或投票給現有想法。