This is the Trace Id: c07a068e0d009e4456c2c5b3193fc6a0
Overslaan naar hoofdinhoud
Azure

Wat is database-sharding?

Database-sharding is een methode van horizontale schaalvergroting die de prestaties en beschikbaarheid van oplossingen verbetert in wereldwijde, gedistribueerde systemen.

Definitie van database-sharding

Database-sharding verwijst naar het proces waarbij een grote database wordt verdeeld in kleinere, beter beheersbare segmenten, bekend als shards. Het ondersteunt horizontale schaalvergroting zodat apps en systemen groeiende hoeveelheden data en gebruikers aankunnen zonder dat dit ten koste gaat van prestaties of beschikbaarheid. Organisaties gebruiken sharding-strategieën om opslagbeperkingen en andere uitdagingen bij het schalen van databases in moderne cloudomgevingen te overwinnen.

  • Database-sharding wordt gedefinieerd als een methode van horizontale schaalvergroting waarbij een database wordt opgesplitst in onafhankelijke shards die draaien op een shared-nothing-architectuur (SNA).
  • Data wordt verdeeld over shards met behulp van shard-sleutels, waarmee apps verzoeken naar de juiste shards kunnen sturen.
  • Gegevens worden doorgaans verdeeld over shards met behulp van numerieke waarden, hash-functies, opzoekmappen of geografische locaties.
  • Voordelen van database-sharding zijn onder andere verbeterde queryprestaties, ondersteuning voor horizontale schaalbaarheid en grotere fouttolerantie.
  • Sharding wordt gebruikt in sectoren zoals bankwezen, e-commerce en sociale media platforms, die vaak snelle groei of pieken in data of gebruikers moeten verwerken.

Hoe werkt database-sharding?

Database-sharding is een techniek om grote databases horizontaal te schalen door ze op te splitsen in kleinere, onafhankelijke delen die shards worden genoemd. Elke shard functioneert als een aparte database met een eigen deel van de totale data, maar met hetzelfde schema. Dit maakt het mogelijk dat de shards samen één logische database vormen, ook al draaien ze op aparte servers.

Database-sharding volgt een shared-nothing-architectuur (SNA), een gedistribueerd computermodel waarbij elke shard zelfstandig werkt zonder verwerkte, geheugen- of opslagmiddelen te delen met andere shards.

Een shard-sleutel, een specifiek veld of combinatie van velden in de data, bepaalt welke data op elke shard wordt opgeslagen. Wanneer een app data moet lezen of schrijven, gebruikt het de shard-sleutel om het verzoek naar de juiste shard te sturen.

Sharding-strategieën

Organisaties beheren data die over meerdere shards verdeeld is op verschillende manieren. Hier zijn enkele veelvoorkomende strategieën:

  • Bereik of dynamische sharding: gegevens worden gedeeld door waardenbereiken in de shard-sleutel. Bijvoorbeeld, één shard in een e-commerce database kan klant-ID nummers 1–1.000.000 toegewezen krijgen, en een andere shard-klant-ID nummers 1.000.001–2.000.000. Deze methode is efficiënt voor bereikquery's, maar kan leiden tot ongelijke verdeling als bepaalde bereiken vaker worden geopend.
  • Sharding op basis van hash:gegevens worden gelijkmatig verdeeld over shards door een wiskundige formule, een hash-functie, toe te passen op elke shard-sleutel. Deze aanpak helpt overbelasting te voorkomen, maar kan gerelateerde gegevens over meerdere shards verspreiden, waardoor bereikquery's minder efficiënt zijn.
  • Sharding op basis van mappen of opzoeken: Een shard-toewijzing geeft aan welke shard-sleutels overeenkomen met welke gegevens. Deze strategie biedt flexibiliteit om indien nodig snel meer shard-sleutels toe te voegen, maar voegt complexiteit en potentiële overhead toe.
  • Geo-sharding: gegevens worden gepartitioneerd op basis van geografische locatie, waardoor de latentie voor gebruikers in verschillende regio's wordt verminderd en gegevenslocatievereisten worden ondersteund. Veel platforms combineren geo-sharding met database-replicatie voor meer veerkracht.

Meer informatie over databases.

Wat zijn de belangrijkste voordelen van database-sharding?

Voor database-sharding is een zorgvuldige selectie van shard-sleutels, een sharding-strategie en optimalisatie van queryroutering vereist. Hier zijn enkele belangrijke voordelen van database-sharding:

  • Verbetert queryprestaties: Door data over meerdere shards te verdelen, kunnen databases sneller de benodigde dataset ophalen om elke query uit te voeren. Dit zorgt voor snellere reactietijden.
  • Ondersteunt horizontale schaalbaarheid: In plaats van de capaciteit van één server te vergroten, kunnen organisaties groeiende data- en werklastvolumes opvangen door uit te breiden met meer shards (en servers). Meer informatie over omhoog schalen versusuitschalen.
  • Versterkt fouttolerantie: Omdat sharding een SNA-benadering gebruikt, is elke shard geïsoleerd van de anderen. Een probleem dat één shard treft, heeft geen invloed op de andere, wat de betrouwbaarheid van het systeem verhoogt. Datareplicatie over shards beschermt de beschikbaarheid verder.
  • Bevordert kostenefficiëntie:Data-shards hebben minder hardware- en softwarevereisten dan grote databases, die vaak dure, high-end-servers nodig hebben.

Helpt AI-werklasten te optimaliseren: Complexe, monolithische databases kunnen de toegang van AI tot data, voorspellingen en het leerproces vertragen. Sharding ondersteunt het creëren van een gedistribueerde, data-rijke omgeving waarin AI effectiever kan functioneren.

Industriespecifieke voorbeelden van database-sharding

Database-sharding is vooral waardevol voor cloudoplossingen die snelle groei of onvoorspelbare pieken in data- of gebruikersverkeer ervaren. De volgende gebruiksvoorbeelden laten zien hoe sharding in verschillende sectoren kan worden toegepast:

  • E-commerce: Retailplatforms verdelen klant- en orderdata over shards, wat zorgt voor snelle productzoekopdrachten en soepele afrekenervaringen tijdens drukke periodes.
  • Financiële dienstverlening: Bank- en andere financiële transacties worden gesplitst op datum of rekeningnummer, wat efficiënte queries en veilige, schaalbare opslag mogelijk maakt.
  • Online gaming: Speler- of sessiegegevens worden verdeeld op regio en gebruikers-ID, wat de belasting over shards balanceert en latentie (de tijd die data nodig heeft om zijn bestemming te bereiken) voor een wereldwijd publiek minimaliseert.
  • Sociale media: Sociale mediaplatforms verdelen gebruikersprofiel- en activiteitendata op gebruikers-ID of tijdsbereik. Deze aanpak maakt het platform mogelijk om snel recente berichten op te vragen en miljoenen gelijktijdige gebruikers te ondersteunen.
  • Software-as-a-service (SaaS): SaaS-apps met meerdere tenants verdelen data vaak op tenant-ID, wat klantdata isoleert en beheer vereenvoudigt naarmate het aantal gebruikers groeit. Ze kunnen het ook verdelen op tenant workload of geografische locatie.

Meer informatie over hoe big data analytics werkt.

De toekomst van database-sharding

Door data over meerdere, onafhankelijke servers te verdelen, vermindert sharding de belasting op één server, minimaliseert knelpunten en verbetert de beschikbaarheid en responsiviteit van het systeem. De voordelen van database-sharding in moderne cloudomgevingen zullen alleen maar toenemen naarmate AI en andere gerelateerde technologieën zich verder ontwikkelen.

Trends om te bekijken zijn onder andere:

Door AI ondersteunde sharding-werkstromen

Intelligente functies, zoals geautomatiseerde selectie van shard-selectie, workload-herverdeling en queryrouting, worden steeds gebruikelijker.

Voordeel: Vereenvoudigde en geoptimaliseerde operaties en ongekende schaalbaarheid

Sharding zonder downtime herverdelen

Moderne dataplatforms zullen steeds vaker shard-sleutelwijzigingen ondersteunen zonder dat er downtime of complexe datamigraties nodig zijn.

Voordeel: Meer flexibiliteit om sharding-strategieën aan te passen naarmate workloads veranderen

Sharding gecombineerd met serverloze databases

Serverloze databases voorzien en beheren servers onafhankelijk voor elke shard. Ze schalen ook de capaciteit op aanvraag omhoog of omlaag op basis van gebeurtenisgestuurde query's.

Voordeel: vermindering van operationele overhead

Adaptieve, beleidsgestuurde geosharding

Geautomatiseerde sharding-workflows routeren data automatisch over geografische shards op basis van geo-specifieke beleidsregels die in code zijn ingebed. Voordeel: Snellere naleving van veranderende regelgeving en privacy-eisen

Krijg meer informatie over cloud computing.

Veelgestelde vragen

  • Database-sharding is het proces van horizontaal schalen van een grote database over meerdere servers, waarbij elke server een shard met een uniek deel van de totale data host. Sharding wordt gebruikt om groeiende datavolumes en gebruikersverkeer efficiënt te verwerken door queries en opslag over meerdere machines te verdelen in plaats van te vertrouwen op één grote server.
  • Zowel sharding als partitionering optimaliseren databasebewerkingen door een grote database op te splitsen in kleinere subsets. Tijdens het partitioneren worden gegevens echter gesplitst op dezelfde server, maar met sharding worden de gegevens over meerdere servers verdeeld. Replicatie betekent dat er meerdere kopieën van dezelfde dataset op verschillende servers worden bewaard voor redundantie. 
  • Ja, database-sharding verbetert de prestaties en schaalbaarheid van applicaties. Door data en workloads over shards te verdelen, vermindert sharding de responstijd van queries en verhoogt het de fouttolerantie. Organisaties kunnen apps ook horizontaal schalen. De keuze van shard-sleutels en shard-strategieën is essentieel voor het optimaliseren van datasharding.
  • Ja, Azure en andere cloudplatforms bieden ingebouwde ondersteuning voor database-sharding. Azure SQL Database biedt bijvoorbeeld verschillende hulpprogramma's om database-scaling te optimaliseren, waaronder een clientbibliotheek die het maken en beheren van shards vereenvoudigt.