This is the Trace Id: 803424d7708adb031cd7a51db2f846da
Přeskočit na hlavní obsah
Azure

Co je horizontální dělení databází?

Horizontální dělení databází představuje způsob horizontálního škálování, který zlepšuje výkon a dostupnost řešení v globálně distribuovaných systémech.

Definice horizontálního dělení databází

Horizontální dělení databází je proces, při kterém se velká databáze rozděluje na menší, snadněji spravovatelné segmenty označované jako shardy. Podporuje horizontální škálování, takže aplikace a systémy zvládají rostoucí objemy dat i počet uživatelů bez negativního dopadu na výkon a dostupnost. Organizace využívají strategie horizontálního dělení databází k odstranění omezení úložiště a dalších výzev spojených se škálováním databází v moderních cloudových prostředích.

  • Horizontální dělení databází je metoda horizontálního škálování, která rozděluje databázi na nezávislé shardy běžící na architektuře SNA (Shared-Nothing Architecture).
  • Data jsou mezi shardy rozdělována pomocí klíčů shardů (horizontálního dělení), které aplikacím umožňují směrovat požadavky na příslušné shardy.
  • Data se mezi shardy běžně rozdělují na základě číselných hodnot, funkcí hash, adresářů pro vyhledávání nebo geografické polohy.
  • Mezi výhody horizontálního dělení databází patří vyšší výkon dotazů, podpora horizontálního škálování a větší odolnost proti chybám.
  • Horizontální dělení databází se využívá například v bankovnictví, e-commerce a na platformách sociálních sítí, které musí často zvládat rychlý růst nebo špičky v objemu dat či počtu uživatelů.

Jak funguje horizontální dělení databází?

Horizontální dělení databází představuje techniku pro horizontální škálování velkých databází jejich rozdělením na menší, samostatné části označované jako shardy. Každý shard funguje jako samostatná databáze, která obsahuje odlišnou část celkových dat, ale zachovává stejné schéma. Díky tomu shardy společně tvoří jednu logickou databázi, i když běží na samostatných serverech.

Horizontální dělení databází je založeno na architektuře SNA (Shared-Nothing Architecture), tedy modelu distribuovaného zpracovaní dat, ve kterém každý shard pracuje nezávisle a nesdílí s ostatními shardy výpočetní prostředky, paměť ani úložiště.

Klíč horizontálního dělení, tedy konkrétní pole nebo kombinace polí v datech, určuje, která data budou uložena na jednotlivých shardech. Když aplikace potřebuje číst nebo zapisovat data, využije klíč horizontálního dělení ke směrování požadavku na příslušný shard.

Strategie horizontálního dělení

Organizace spravují data rozdělená mezi více shardů různými způsoby. Tady jsou některé běžné strategie:

  • Horizontální dělení podle rozsahů nebo dynamické dělení: Data se rozdělují podle rozsahů hodnot klíče horizontálního dělení. Například jeden shard v databázi e-commerce může být přiřazen k zákaznickým ID v rozsahu 1 – 1 000 000 a jiný shard k zákaznickým ID v rozsahu 1 000 001 – 2 000 000. Tato metoda je efektivní pro dotazy podle rozsahů, ale může způsobit nerovnoměrné rozdělení dat, pokud se některé rozsahy používají častěji.
  • Horizontální dělení na základě hodnoty hash:Data se rovnoměrně rozdělují mezi shardy aplikováním matematického vzorce nazývaného hashovací funkce na každý klíč horizontálního dělení. Tento přístup pomáhá zabránit přetížení, ale může rozložit související data napříč více shardy, čímž se snižuje efektivita rozsahových dotazů.
  • Horizontální dělení na základě adresáře nebo vyhledávání: Mapa shardů určuje, který klíč horizontálního dělení odpovídá kterým datům. Tato strategie nabízí flexibilitu a umožňuje podle potřeby rychle přidávat další klíče horizontálního dělení, ale zvyšuje složitost a může znamenat dodatečnou režii.
  • Geografické horizontální dělení:Data se rozdělují podle geografické polohy, což snižuje latenci pro uživatele v různých oblastech a podporuje požadavky na rezidenci dat. Mnoho platforem kombinuje geografické horizontální dělení s replikací databáze pro zajištění vyšší odolnosti.

Zjistěte více o databázích.

Jaké jsou hlavní výhody horizontálního dělení databází?

Horizontální dělení databází vyžaduje pečlivý výběr klíčů horizontálního dělení, vhodnou strategii dělení a také optimalizaci směrování dotazů. Tady jsou některé klíčové výhody horizontálního dělení databází:

  • Zlepšuje výkon dotazů:Rozdělením dat mezi více shardů mohou databáze rychleji načíst potřebná data pro provedení každého dotazu. Výsledkem je rychlejší doba odezvy.
  • Podporuje horizontální škálovatelnost: Namísto vertikálního navyšování kapacity na jednom serveru mohou organizace zvládat rostoucí objemy dat a úloh škálováním na více instancí a přidáváním dalších shardů (a serverů). Zjistěte více o vertikálním navyšování kapacity a škálování na více instancí.
  • Posiluje odolnost proti chybám: Vzhledem k tomu, že horizontální dělení databází využívá přístup SNA, funguje každý shard nezávisle na ostatních. Problém postihující jeden shard neovlivní ostatní, čímž se zvyšuje spolehlivost systému. Replikace dat mezi shardy dále zvyšuje dostupnost.
  • Přispívá k nákladové efektivitě:Datové shardy vyžadují méně hardwarových a softwarových prostředků než velké databáze, které často vyžadují drahé, vysoce výkonné servery.

Pomáhá optimalizovat AI úlohy: Komplexní monolitické databáze mohou omezovat schopnost AI přistupovat k datům, vytvářet predikce a průběžně se učit. Horizontální dělení databází podporuje vytváření distribuovaného, datově bohatého prostředí, ve kterém může AI fungovat efektivněji.

Oborové příklady horizontálního dělení databází

Horizontální dělení databází je zvláště vhodné pro cloudová řešení s rychlým růstem nebo nepředvídatelnými nárůsty objemu dat či uživatelského provozu. Následující scénáře ukazují, jak se horizontální dělení databází uplatňuje v různých odvětvích:

  • Elektronické obchodování: Maloobchodní platformy rozdělují data o zákaznících a objednávkách mezi shardy, čímž zajišťují rychlé vyhledávání produktů a hladký průběh nákupu i v obdobích vysoké zátěže.
  • Finanční služby: Záznamy o bankovních a dalších finančních transakcích se rozdělují podle data nebo čísla účtu, což umožňuje efektivní dotazování a bezpečné, škálovatelné ukládání.
  • Online hraní her: Data o hráčích či relacích se dělí podle oblasti a ID uživatele, což pomáhá rovnoměrně rozložit zátěž mezi shardy a minimalizovat latenci (čas potřebný pro přenos dat do cílového umístění) pro uživatele po celém světě.
  • Sociální sítě: Platformy sociálních sítí rozdělují data uživatelských profilů a aktivit podle ID uživatele nebo časového rozsahu. Tento přístup umožňuje platformě rychle se dotazovat na nedávné příspěvky a podporovat miliony souběžných uživatelů.
  • Software jako služba (SaaS): Aplikace SaaS s více tenanty běžně rozdělují data podle ID tenanta, což odděluje data zákazníků a zjednodušuje správu s rostoucí uživatelskou základnou. Mohou je také dělit podle úlohy tenanta nebo geografické polohy.

Zjistěte více o tom, jak funguje analýza velkých objemů dat.

Budoucnost horizontálního dělení databází

Rozdělením dat mezi více nezávislých serverů snižuje horizontální dělení databází zátěž jednotlivých serverů, minimalizuje kritické body výkonu a zvyšuje dostupnost i odezvu systému. Výhody horizontálního dělení databází v moderních cloudových prostředích budou s dalším rozvojem AI a souvisejících technologií jen narůstat.

Mezi trendy, které stojí za to sledovat, patří:

Pracovní postupy horizontálního dělení s AI asistencí

Inteligentní funkce, například automatizovaný výběr klíče horizontálního dělení, vyrovnávání zatížení a směrování dotazů, se budou postupně stávat standardem.

Výhoda: Zjednodušené a optimalizované operace a bezprecedentní škálovatelnost

Horizontální dělení s nulovými výpadky

Moderní datové platformy budou stále častěji podporovat změny klíče horizontálního dělení bez výpadků dat a bez potřeby složitých migrací.

Výhoda: Vyšší flexibilita při přizpůsobování strategií horizontálního dělení podle měnícího se zatížení

Horizontální dělení v kombinaci s bezserverovými databázemi

Bezserverové databáze nezávisle zřizují a spravují servery pro jednotlivé shardy. Zároveň podle potřeby navyšují nebo snižují kapacitu na základě dotazů řízených událostmi.

Výhoda: Snížení provozní režie

Adaptivní geografické horizontální dělení řízené zásadami

Automatizované pracovní postupy horizontálního dělení automaticky směrují data mezi geografické shardy na základě geograficky specifických pravidel zásad vložených v kódu. Výhoda: Rychlejší zajištění souladu s měnícími se regulačními požadavky a požadavky na ochranu osobních údajů

Přečtěte si další informace o cloud computingu.

Časté otázky

  • Horizontální dělení databází představuje proces horizontálního škálování velké databáze mezi více serverů, přičemž každý server hostuje shard s vlastní podmnožinou celkových dat. Horizontální dělení databází umožňuje efektivně zvládat rostoucí objem dat i uživatelský provoz rozložením dotazů a ukládání dat mezi více servery namísto využívání jednoho velkého serveru.
  • Horizontální dělení databází i dělení na oddíly optimalizují databázové operace tím, že rozdělují velkou databázi na menší části. Nicméně dělení na oddíly rozděluje data na jednom serveru, zatímco horizontální dělení databází je rozděluje mezi více serverů. Replikace znamená udržování více kopií stejné datové sady na různých serverech kvůli redundanci. 
  • Ano, horizontální dělení databází zvyšuje výkon aplikací a jejich škálovatelnost. Rozdělením dat a zatížení mezi shardy horizontální dělení databází zkracuje dobu odezvy dotazů a zvyšuje odolnost proti chybám. Organizace mohou také škálovat aplikace horizontálně. Volba klíčů horizontálního dělení a strategií dělení je zásadní pro optimalizaci horizontálního dělení dat.
  • Ano, Azure i další cloudové platformy poskytují integrovanou podporu pro horizontální dělení databází. Azure SQL Database například nabízí řadu nástrojů pro optimalizaci škálování databází, včetně klientské knihovny, která usnadňuje vytváření a správu shardů.