使用 Azure SQL Database 擴增
適用於:Azure SQL 資料庫
您可以使用彈性資料庫工具,在 Azure SQL 資料庫輕鬆地將資料庫向外擴增。 這些工具和功能可讓您使用 Azure SQL 資料庫的資料庫資源,建立交易工作負載的解決方案,特別是軟體即服務 (SaaS) 應用程式。 彈性資料庫功能組成如下:
- 彈性資料庫用戶端程式庫:用戶端程式庫是一種可讓您建立和維護分區資料庫的功能。 請參閱開始使用彈性資料庫工具。
- 在相應放大的雲端資料庫之間移動資料:在分區化資料庫之間移動資料。 此工具有助於將資料從多租用戶資料庫移動至單一租用戶資料庫 (反之亦然)。 請參閱部署分割合併服務以在分區化資料庫之間移動資料。
- Azure SQL 資料庫中的彈性工作:使用工作來管理 Azure SQL 資料庫中的大量資料庫。 使用工作輕鬆執行系統管理操作,例如結構描述變更、認證管理、參考資料更新、效能資料集錦或租用戶(客戶)遙測集錦。
- Azure SQL 資料庫彈性查詢概觀 (預覽版):可讓您執行跨多個資料庫的 Transact-SQL 查詢。 這可讓您連線到報表工具,例如 Excel、Power BI、Tableau 等。
- 跨雲端資料庫的分散式交易:這項功能讓您可執行跨數個資料庫的交易。 彈性資料庫交易適用於使用 ADO .NET 的 .NET 應用程式,且與以往熟悉使用 System.Transaction 類別的程式設計經驗整合。
下圖顯示了架構,其中包括與資料庫集錦相關的彈性資料庫功能 。
在此圖中,資料庫的顏色代表著結構描述。 具相同色彩的資料庫會共用相同的結構描述。
- 一組 SQL 資料庫會使用分區化結構裝載在 Azure。
- 彈性資料庫用戶端程式庫可用來管理分區組。
- 資料庫子集會放入彈性集區。
- 彈性資料庫工作會針對所有資料庫執行 T-SQL 指令碼。
- 分割合併工具可用來將資料從某個分區移動至另一個分區。
- 彈性資料庫查詢可讓您寫入跨分區組所有資料庫的查詢。
- 彈性交易:可讓您執行跨數個資料庫的交易。
為什麼要使用工具?
對於 VM 和 Blob 儲存體,實現雲端應用程式的彈性和擴增相當簡單,只要新增或減去單位,或增加電源即可。 但這仍然是關聯式資料庫中具狀態資料處理的挑戰。 這些案例中出現了挑戰:
- 增加和減少工作負載中關聯式資料庫部分的容量。
- 管理可能會產生影響特定資料子集的作用區,例如忙碌的終端客戶(租用戶)。
傳統上,這類案例已透過投資大規模伺服器支援應用程式來解決。 不過,所有處理都會在預先定義的商品硬體上執行,此選項在雲端中會受到限制。 相反地,將資料和處理分散到許多結構相同的資料庫(稱之「分區化」的向外擴增模式)提供在成本和彈性方面傳統上擴增方式的替代方案。
水平和垂直擴增
下圖顯示了水平和垂直的擴增維度,這是彈性資料庫可擴增的基本方式。
水平縮放是指新增或移除資料庫,以調整容量或整體效能,也稱為「相應放大」。分區化是實作水平縮放的常用方法,在這種方法中,系統會將資料分割到一系列結構相同的資料庫中。
垂直擴增代表著增加或減少個別資料庫的計算大小,亦稱之「向上擴增」。
大部分的雲端規模資料庫應用程式是使用這兩種策略的合併。 例如,軟體即服務應用程式可能使用水平擴增來佈建新的終端客戶,而垂直擴增則允許每個終端客戶的資料庫按需增加或壓縮工作負載的資源。
- 水平擴增是使用彈性資料庫用戶端程式庫來管理。
- 使用 Azure PowerShell Cmdlet 來變更服務層級,或將資料庫放入彈性集區,以實現垂直擴增。
分區化
分區化是一種將大量相同結構化資料分散到許多獨立資料庫的技術。 特別受雲端開發人員廣泛用於為終端客戶或企業建立軟體即服務 (SAAS)供應項目。 這些終端客戶通常稱為「租用戶」。需要進行分區化可能有以下各種原因:
- 資料總量太大,不符合個別資料庫的條件限制
- 整體工作負載的交易輸送量超過個別資料庫的功能
- 租用戶可能需要彼此的實體隔離,因此每個租用戶都需要個別的資料庫
- 基於合規性、效能或地緣政治原因,資料庫的不同區段可能需要位於不同的異地位置。
在其他案例中(例如從分散式裝置擷取資料)分區化可用來填滿一組暫時組織的資料庫。 例如,不同的資料庫可專用於每天或每周。 在此情況下,分區金鑰可以是代表日期的整數(存在於分區資料表的所有資料列中),而查詢擷取日期範圍的資訊,必須由應用程式路徑傳送至涵蓋有問題範圍之資料庫的子集。
當應用程式中的每筆交易可以限制為分區金鑰的單一值時,分區化運作最佳。 這可確保所有交易都是特定資料庫的本機交易。
多租用戶與單一租用戶
有些應用程式會使用最簡單的方法,為每名租用者建立不同的資料庫。 這種方法是單一租用戶分區化模式,提供了租用戶細微性的隔離、備份/還原能力和資源擴增。 使用單一租用戶分區化時,每個資料庫都會與特定租用戶 ID 值 (或客戶金鑰值) 相關聯,但此金鑰不需要存在於資料本身。 應用程式有責任將每個要求路徑傳送至適當的資料庫,而用戶端程式庫可以簡化此工作。
其他案例會將多租用戶壓縮進資料庫,而非將其隔離到不同的資料庫。 此模式為典型的多租用戶分區化模式,可能是受應用程式管理大量小型租用戶之因素驅動。 在多租用戶分區化中,資料庫資料表中的資料列均設計用以攜帶識別租用戶 ID 或分區金鑰的金鑰。 同樣地,應用程式層負責將租用戶的要求路徑傳送至適當的資料庫,而彈性資料庫用戶端程式庫可支援此要求。 此外,列層級安全性可用來篩選每名租用戶可存取的資料列,如需詳細資料,請參閱具有彈性資料庫工具和列層級安全性的多租用戶應用程式。 使用多租用戶分區化模式,可能需要在資料庫之間轉散布資料,且是由彈性資料庫分割合併工具所輔助。 若要深入了解使用彈性集區的 SaaS 應用程式設計模式,請參閱多租用戶 SaaS 應用程式設計模式。
將資料從多個移動至單一租用資料庫
建立 SaaS 應用程式時,通常會為潛在客戶提供軟體的試用版。 在此情況下,對資料使用多租用戶資料庫是符合成本效益。 然而,當潛在客戶成為客戶時,單一租用戶資料庫是更好的選擇,因為它可提供較好的效能。 如果客戶在試用期間建立資料,請使用分割合併工具將資料從多租用戶移動至新的單一租用戶資料庫。
注意
無法從多租用戶資料庫還原至單一租用戶。
範例和教學課程
如需展示用戶端程式庫的範例應用程式,請參閱 開始使用彈性資料庫工具。
欲轉換現有的資料庫來使用工具,請參閱移轉現有的資料庫來向外擴增。
欲參閱彈性集區的詳細資料,請參閱 彈性集區的價格和效能考量,或使用彈性集區來建立新的集區。
相關內容
尚未使用彈性資料庫工具? 請參閱使用者入門指南。 如有疑問,請在 SQL Database 的 Microsoft Q&A 問題頁面上與我們連絡。如有功能要求,請在 SQL Database 意見反應論壇中新增想法或投票支持現有的想法。