This is the Trace Id: d570167eb1188ad6797c96ac7d331ed2
Gå til hovedindholdet
Azure

Hvad er databasesharding?

Databasesharding er en metode til horisontal skalering, der øger løsningens ydeevne og tilgængelighed på tværs af globale, distribuerede systemer.

Definition af databasesharding

Databasesharding refererer til processen med at opdele en stor database i mindre, mere håndterbare segmenter kendt som shards. Det understøtter horisontal skalering, så programmer og systemer kan håndtere voksende datamængder og brugerantal uden at påvirke ydeevne eller tilgængelighed. Organisationer bruger sharding-strategier til at overvinde lagerbegrænsninger og andre udfordringer forbundet med skalering af databaser i moderne cloudmiljøer.

  • Databasesharding defineres som en metode til vandret skalering, der opdeler en database i uafhængige shards, der kører på en SNA (Shared-Nothing Architecture).
  • Data fordeles på shards ved hjælp af shard-nøgler, som gør det muligt for applikationer at videresende anmodninger til de relevante shards.
  • Data opdeles ofte mellem shards ved hjælp af numeriske værdier, hash-funktioner, indeks eller geografiske placeringer.
  • Fordele ved databasesharding inkluderer forbedret forespørgselsydelse, understøttelse af horisontal skalerbarhed og større fejltolerance.
  • Use cases for sharding inkluderer bankvæsen, e-handel og sociale medieplatforme, som ofte skal håndtere hurtig vækst eller stigninger i data eller brugere.

Hvordan fungerer databasesharding?

Databasesharding er en teknik, der bruges til at skalere store databaser horisontalt ved at opdele dem i mindre, uafhængige dele kaldet shards. Hver shard fungerer som en separat database, der indeholder et særskilt datasæt af den samlede data, men bevarer det samme skema. Dette gør det muligt for shards samlet at danne en enkelt, logisk database, selvom de kører på separate servere.

Databasesharding følger en SNA (Shared Nothing Architecture), en distribueret beregningsmodel, hvor hver shard fungerer separat uden at dele behandlings-, hukommelses- eller lagerressourcer med andre shards.

En shard-nøgle – et specifikt felt eller en kombination af felter i dataene – bestemmer, hvilken data der gemmes på hver shard. Når et program skal læse eller skrive data, bruger den shard-nøglen til at dirigere forespørgslen til den relevante shard.

Sharding-strategier

Organisationer administrerer data, der distribueres på tværs af flere shards på forskellige måder. Her er nogle almindelige strategier:

  • Intervalbaseret eller dynamisk sharding: Data opdeles efter værdiernes intervaller i shard-nøglen. En shard i en e-handelsdatabase kan f.eks. tildeles kunde-id-numre 1 til 1.000.000, og en anden shard kan tildeles kunde-id-numre 1.000.001 til 2.000.000. Denne metode er effektiv til intervalforespørgsler, men kan resultere i ujævn fordeling, hvis visse intervaller tilgås oftere.
  • Hash-baseret sharding:Data fordeles jævnt på tværs af shards ved at anvende en matematisk formel kaldet en hash-funktion på hver shard-nøgle. Denne tilgang hjælper med at forhindre overbelastning, men kan sprede relaterede data på flere shards, hvilket gør intervalforespørgsler mindre effektive.
  • Mappebaseret eller opslagsbaseret sharding: En shardtilknytning angiver, hvilke shardnøgler der svarer til hvilke data. Denne strategi giver fleksibilitet til hurtigt at tilføje flere shard-nøgler efter behov, men øger kompleksiteten og potentielt overhead.
  • Geo-sharding: Data partitioneres baseret på geografisk placering, hvilket reducerer ventetiden for brugere i forskellige områder og understøtter krav til dataopbevaring. Mange platforme kombinerer geosharding med databasereplikering for større robusthed.

Få mere at vide om databaser.

Hvad er de største fordele ved databasesharding?

Databasesharding kræver omhyggeligt valg af shard-nøgler og en sharding-strategi samt optimering af forespørgselsdirigering. Her er nogle vigtige fordele ved databasesharding:

  • Forbedrer forespørgselsydeevnen:Ved at distribuere data på tværs af flere shards kan databaser hurtigere hente det datasæt, der er nødvendigt for at udføre hver forespørgsel. Dette resulterer i hurtigere svartider.
  • Understøtter vandret skalerbarhed: I stedet for at skalere ressourcekapaciteten op på en enkelt server kan organisationer imødekomme voksende data- og arbejdsbelastningsmængder ved at skalere ud og tilføje flere shards (og servere). Få mere at vide om opskalering i forhold til udskalering.
  • Styrker fejltolerancen: Da sharding anvender en SNA-tilgang, isoleres hver shard fra de andre. Enhver fejl, der påvirker én shard, påvirker ikke de andre, hvilket øger systemets pålidelighed. Datareplikering på tværs af shards beskytter yderligere tilgængeligheden.
  • Øger omkostningseffektivitet:Datashards har færre hardware- og softwarekrav end store databaser, hvilket ofte kræver dyre, avancerede servere.

Hjælper med at optimere AI-arbejdsbelastninger: komplekse, monolitiske databaser kan gøre AI i stand til at få adgang til data, foretage forudsigelser og lære med tiden. Sharding muliggør oprettelsen af et distribueret miljø med store datamængder, hvor kunstig intelligens kan fungere mere effektivt.

Branchespecifikke eksempler på databasesharding

Databasesharding er især værdifuld for skybaserede løsninger, der oplever hurtig vækst eller uforudsigelige stigninger i data- eller brugertrafik. Følgende use cases viser måder, hvorpå sharding kan anvendes på tværs af brancher:

  • e-handel: Detailplatforme opdeler kunde- og ordredata på tværs af shards, hvilket hjælper med at sikre hurtige produktsøgninger og problemfrie betalingsoplevelse i spidsbelastningsperioder.
  • Finansielle tjenester: Poster til bankvirksomhed og andre finansielle transaktioner opdeles efter dato eller kontonummer, hvilket muliggør effektive forespørgsler og sikkert, skalerbart lager.
  • Online gaming: Spiller- eller sessionsdata er opdelt efter område- og bruger-id, justering af belastninger på tværs af shards og minimering af ventetid (den tid, der kræves for data at rejse til destinationen) for globale målgrupper.
  • Sociale medier: Sociale medieplatforme opdeler brugerprofiler og aktivitetsfeeds efter bruger-id eller tidsinterval. Denne tilgang gør det muligt for platformen hurtigt at forespørge nylige opslag og understøtte millioner af samtidige brugere.
  • SaaS (Software-as-a-service): SaaS-apps med flere lejere opdeler ofte data efter lejer-id, hvilket isolerer kundedata og forenkler administrationen, efterhånden som brugerbasen vokser. De kan også opdele data efter lejerens arbejdsbelastning eller geografiske placering.

Få mere at vide om, hvordan analyse af big data fungerer.

Fremtiden for databasesharding

Ved at distribuere data på tværs af flere uafhængige servere reducerer sharding belastningen på en enkelt server, minimerer flaskehalse og forbedrer systemets tilgængelighed og reaktionsevne. Fordelene ved at bruge databasesharding i moderne cloudmiljøer øges kun i takt med, at kunstig intelligens og andre relaterede teknologier fortsætter med at udvikle sig.

Tendenser, du skal holde øje med, inkluderer følgende:

Arbejdsprocesser til AI-assisteret sharding

Intelligente funktioner, såsom automatisk valg af shard-nøgler, omfordeling af arbejdsbyrden og routing af forespørgsler, vil blive mere udbredte.

Fordel: Forenklede og optimerede handlinger og uovertruffen skalerbarhed

Resharding uden nedetid

Moderne dataplatforme vil i stigende grad understøtte ændringer af shard-nøgler uden at kræve nedetid eller komplicerede datamigreringer.

Fordel: Større fleksibilitet til at opdatere sharding-strategier, efterhånden som arbejdsbelastninger udvikler sig

Sharding kombineret med serveruafhængige databaser

Serveruafhængige databaser klargører og administrerer selvstændigt servere for hver shard. De skalerer også kapaciteten op eller ned efter behov baseret på hændelsesdrevne forespørgsler.

Fordel: Reduktion af driftsomkostningerne

Tilpasset, politikdrevet geosharding

Arbejdsprocesser med automatiseret sharding dirigerer automatisk data på tværs af geografiske shards baseret på geo-specifikke politikregler indlejret i koden. Fordel: Hurtigere overholdelse af ændrede krav til lovgivningen og beskyttelse af personlige oplysninger

Få mere at vide om cloudcomputing.

Ofte stillede spørgsmål

  • Databasesharding er processen med vandret skalering af en stor database på tværs af flere servere, der hver især er vært for en shard med et særskilt undersæt af de overordnede data. Sharding bruges til effektivt at håndtere voksende datamængder og brugertrafik ved at sprede forespørgsler og lager på tværs af maskiner i stedet for at være afhængig af en enkelt stor server.
  • Både sharding og partitionering optimerer databaseoperationer ved at opdele en stor database i mindre delmængder. Men hvor partitionering splitter data på samme server, fordeler sharding data på tværs af flere servere. Replikering betyder, at der opbevares flere kopier af det samme datasæt på forskellige servere for at sikre redundans. 
  • Ja, databasesharding forbedrer programmets ydeevne og skalerbarhed. Ved at fordele data og arbejdsbelastninger på tværs af shards reducerer sharding svartider på forespørgsler og øger fejltolerance. Organisationer kan også skalere apps horisontalt. Valg af shard-nøgler og shard-strategier er afgørende for at optimere datasharding.
  • Ja, Azure og andre cloudplatforme tilbyder indbygget understøttelse af databasesharding. Azure SQL Database indeholder f.eks. flere værktøjer til optimering af databaseskalering, herunder et klientbibliotek, der forenkler oprettelse og administration af shards.