Horizontální navýšení kapacity s Azure SQL Database

PLATÍ PRO: Azure SQL Database

Databáze můžete snadno škálovat na více Azure SQL Database pomocí elastická databáze nástrojů. Tyto nástroje a funkce umožňují používat databázové prostředky Azure SQL Database k vytváření řešení pro transakční úlohy, zejména pro aplikace SaaS (Software jako služba). elastická databáze funkce se skládají z těchto prvků:

  • elastická databáze klientská knihovna:Klientská knihovna je funkce, která umožňuje vytvářet a udržovat shardované databáze. Viz Začínáme s elastická databáze nástroji.
  • elastická databáze dělení a slučování:přesouvá data mezi shardované databáze. Tento nástroj je užitečný pro přesun dat z databáze s více tenanty do databáze s jedním tenantem (nebo naopak). Podívejte se na kurz Split-Merge elastické databáze.
  • úlohy elastické databáze (Preview): Použijte úlohy ke správě velkého počtu databází v Azure SQL Database. S využitím úloh můžete snadno provádět operace správy, jako jsou změny schématu, správa přihlašovacích údajů, aktualizace referenčních dat, shromažďování dat o výkonu nebo shromažďování telemetrických dat tenanta (zákazníka).
  • elastická databáze dotazu (Preview): Umožňuje spustit dotaz Transact-SQL, který zahrnuje více databází. To umožňuje připojení k nástrojům pro vytváření sestav, jako je Excel, Power BI, Tableau atd.
  • Elastickétransakce: Tato funkce umožňuje spouštět transakce, které zahrnují několik databází. Transakce elastické databáze jsou k dispozici pro aplikace .NET používající ADO .NET a integrují se se známým programovacím prostředím pomocí tříd System.Transaction.

Následující obrázek znázorňuje architekturu, která zahrnuje elastická databáze funkcí ve vztahu ke kolekci databází.

Na tomto obrázku představují barvy databáze schémata. Databáze se stejnou barvou sdílejí stejné schéma.

  1. Sada databází SQL je hostovaná v Azure s využitím architektury horizontálního dělení.
  2. Klientská elastická databáze se používá ke správě sady horizontálních oddílů.
  3. Podmnožina databází je v elastickém fondu. (Viz Co je fond?).
  4. Úloha elastická databáze spouští naplánované nebo ad hoc skripty T-SQL pro všechny databáze.
  5. Nástroj pro dělení a slučování se používá k přesunu dat z jednoho horizontálního oddílu do druhého.
  6. Dotaz elastická databáze umožňuje napsat dotaz, který zahrnuje všechny databáze v sadě horizontálních oddílů.
  7. Elastické transakce umožňují spouštět transakce, které zahrnují několik databází.

Nástroje pro elastické databáze

Proč používat nástroje?

Dosažení elasticity a škálování pro cloudové aplikace bylo jednoduché pro virtuální počítače a úložiště objektů blob – jednoduše sečte nebo odečte jednotky nebo zvýší výkon. Zůstává ale výzvou pro stavové zpracování dat v relačních databázích. V těchto scénářích se objevily problémy:

  • Zmenšování a zmenšení kapacity relační databáze v rámci vaší úlohy
  • Správa hotspotů, které mohou nastat, ovlivňující konkrétní podmnožinu dat, jako je zaneprázdněný koncový zákazník (tenant).

Tradičně se takové scénáře řeší investicemi do rozsáhlejších serverů, které podporují aplikaci. Tato možnost je však omezená v cloudu, kde veškeré zpracování probíhá na předdefinovaném komoditním hardwaru. Distribuce dat a zpracování mezi mnoho stejně strukturovaných databází (model horizontálního navýšení velikosti označovaný jako "shardování") poskytuje alternativu k tradičním přístupům ke škálování na více než náklady a elasticitu.

Horizontální a vertikální škálování

Následující obrázek znázorňuje horizontální a svislé rozměry škálování, což jsou základní způsoby škálování elastických databází.

Horizontální a vertikální horizontální navýšení velikosti

Horizontální škálování označuje přidávání nebo odebírání databází za účelem úpravy kapacity nebo celkového výkonu, které se také označuje jako horizontální navýšení kapacity. Horizontální dělení, při kterém jsou data rozdělená na kolekci identicky strukturovaných databází, je běžným způsobem implementace horizontálního škálování.

Vertikální škálování označuje zvýšení nebo snížení velikosti výpočetních prostředků jednotlivých databází, označované také jako vertikální navýšení kapacity.

Většina cloudových databázových aplikací používá kombinaci těchto dvou strategií. Například aplikace Software jako služba může používat horizontální škálování ke zřízení nových koncových zákazníků a vertikálního škálování, aby databáze každého koncového zákazníka mohla podle potřeby zvětšovat nebo zmenšovat prostředky.

  • Horizontální škálování se spravuje pomocí elastická databáze knihovny.
  • Vertikální škálování se provádí pomocí Azure PowerShell rutin ke změně úrovně služby nebo umístěním databází do elastického fondu.

Sharding

Shardování je technika distribuce velkých objemů identicky strukturovaných dat mezi několik nezávislých databází. Je obzvláště oblíbený u cloudových vývojářů, kteří vytvářejí nabídky SaaS (Software jako služba) pro koncové zákazníky nebo firmy. Tito koncoví zákazníci se často označují jako "tenanti". Shardování může být vyžadováno z libovolného počtu důvodů:

  • Celkový objem dat je příliš velký, aby se vešel do omezení jednotlivých databází.
  • Transakční propustnost celkového zatížení překračuje možnosti jednotlivých databází.
  • Tenanti mohou vyžadovat fyzickou izolaci od sebe navzájem, takže jsou pro každého tenanta potřeba samostatné databáze.
  • Z důvodu dodržování předpisů, výkonu nebo geopolitických důvodů se mohou různé části databáze nacházet v různých zeměpisných lokalitách.

V jiných scénářích, jako je příjem dat z distribuovaných zařízení, je možné shardování použít k vyplnění sady databází, které jsou uspořádané dočasně. Například samostatná databáze může být vyhrazena pro každý den nebo týden. V takovém případě může být klíč horizontálního dělení celé číslo představující datum (přítomné ve všech řádcích shardovaných tabulek) a dotazy načítající informace pro rozsah dat musí aplikace směrovat do podmnožiny databází pokrývajících tento rozsah.

Shardování funguje nejlépe, když je možné každou transakci v aplikaci omezit na jednu hodnotu klíče horizontálního dělení. Tím se zajistí, že všechny transakce jsou místní pro konkrétní databázi.

Více tenantů a jeden tenant

Některé aplikace používají nejjednodušší přístup k vytvoření samostatné databáze pro každého tenanta. Tento přístup je model horizontálního dělení jednoho tenanta, který poskytuje izolaci, možnost zálohování a obnovení a škálování prostředků v členitosti tenanta. Při horizontálním dělení jednoho tenanta je každá databáze přidružená ke konkrétní hodnotě ID tenanta (nebo hodnotě klíče zákazníka), ale tento klíč nemusí být vždy k dispozici v samotných datech. Za směrování jednotlivých požadavků do příslušné databáze zodpovídá aplikace a klientská knihovna to může zjednodušit.

Jeden tenant versus více tenantů

V jiných scénářích se více tenantů zabalí do databází, místo aby je izoloval do samostatných databází. Tento model je typickým vzorem horizontálního dělení s více tenanty a může být řízen skutečností, že aplikace spravuje velké počty malých tenantů. V horizontálním dělení s více tenanty jsou všechny řádky v databázových tabulkách navržené tak, aby nesly klíč identifikující ID tenanta nebo klíč horizontálního dělení. Aplikační vrstva je opět zodpovědná za směrování požadavků tenanta do příslušné databáze, kterou může podporovat klientská knihovna elastické databáze. Zabezpečení na úrovni řádků je navíc možné použít k filtrování řádků, ke kterým má každý tenant přístup – podrobnosti najdete v tématu Více tenantské aplikace s nástroji elastické databáze a zabezpečení na úrovni řádků. S modelem horizontálního dělení s více tenanty může být potřeba distribuovat data mezi databázemi a usnadňuje ho nástroj pro dělení a slučování elastické databáze. Další informace o návrhových schématech aplikací SaaS využívajících elastické fondy najdete v tématu Návrhová schémata pro víceklientské aplikace SaaS využívající službu Azure SQL Database.

Přesun dat z více databází s jednouancy

Při vytváření aplikace SaaS je typické nabízet potenciálním zákazníkům zkušební verzi softwaru. V tomto případě je nákladově efektivní použít pro data databázi s více tenanty. Pokud se ale potenciální zákazník stane zákazníkem, je databáze s jedním tenantem lepší, protože poskytuje lepší výkon. Pokud zákazník vytvořil data během zkušebního období, přesuňte data z více tenantů do nové databáze s jedním tenantem pomocí nástroje pro dělení a slučování.

Další kroky

Ukázkovou aplikaci, která předvede klientskou knihovnu, najdete v tématu Začínáme s elastická databáze nástroji.

Pokud chcete převést existující databáze na nástroje, podívejte se na stránku Migrace existujících databází pro horizontální navýšení velikosti.

Konkrétní informace o elastickém fondu najdete v tématu Cenové a výkonové požadavky elastického fondu nebo v tématu Vytvoření nového fondu s elastickými fondy.

Další zdroje informací

Nepoužíváte ještě nástroje elastické databáze? Podívejte se na náš Začínáme Průvodce. pokud máte nějaké otázky, kontaktujte nás na stránce s dotazem k Microsoft Q&, kde najdete SQL Database a žádosti o funkce. přidejte nové nápady nebo hlasujte pro stávající nápady ve fóru pro SQL Database názory.