This is the Trace Id: 93e86a42a62b20d87f8c4092a4bfb01c
Gå till huvudinnehåll
Azure

Vad är horisontell databaspartitionering?

Horisontell partitionering av databas är en metod för horisontell skalning som ökar lösningens prestanda och tillgänglighet i globala, distribuerade system.

Horisontell partitionering av databas har definierats

Horisontell partitionering av databas syftar på processen att dela upp en stor databas i mindre, mer hanterbara segment som kallas shards. Den stöder horisontell skalning så att program och system kan hantera växande data- och användarvolymer utan att påverka prestanda eller tillgänglighet. Organisationer använder horisontell partitioneringsstrategier för att lösa lagringsbegränsningar och andra utmaningar som är kopplade till skalning av databaser i moderna molnmiljöer.

  • Horisontell partitionering av databas definieras som en metod för horisontell skalning som delar upp en databas i oberoende shards som körs på en SNA (shared-nothing architecture).
  • Data delas upp mellan shards med hjälp av shardnycklar, vilket gör att program kan dirigera begäranden till lämpliga shards.
  • Data delas ofta upp mellan shards med numeriska värden, hash-funktioner, uppslagskataloger eller geografiska platser.
  • Fördelarna med horisontell partitionering av databas är bland annat bättre frågeprestanda, stöd för horisontell skalbarhet och större feltolerans.
  • Användningsfall för horisontell partitionering omfattar bank-, e-handels- och sociala medieplattformar, som ofta måste hantera snabb tillväxt eller ökningar av data eller användare.

Hur fungerar horisontell partitionering av databas?

Horisontell partitionering av databas är en teknik som används för att skala stora databaser vågrätt genom att dela upp dem i mindre, oberoende delar som kallas shards. Varje fragment fungerar som en separat databas som innehåller en distinkt delmängd av övergripande data, men som har samma schema. Detta gör att fragmenten kan bilda en enda logisk databas samtidigt som de körs på separata servrar.

Horisontell partitionering av databas följer en SNA (shared-nothing architecture), en distribuerad databehandlingsmodell där varje fragment fungerar på egen hand utan att dela bearbetnings-, minnes- eller lagringsresurser med andra shards.

En shardnyckel – ett specifikt fält eller en kombination av fält i data – avgör vilka data som ska lagras på varje fragment. När ett program behöver läsa eller skriva data använder det shardnyckeln för att dirigera begäran till rätt shard.

Strategier för horisontell partitionering

Organisationer hanterar data som distribueras över flera shards på olika sätt. Här är några vanliga strategier:

  • Intervallbaserad eller dynamisk horisontell partitionering: Data divideras med intervall med värden i shardnyckeln. Till exempel kan en shard i en e-handelsdatabas tilldelas kund-ID nummer 1–1 000 000, och en annan shard kan tilldelas kund-ID-nummer 1 000 001–2 000 000. Den här metoden är effektiv för intervallfrågor, men kan resultera i ojämn fördelning om vissa intervall används oftare.
  • Hash-baserad horisontell partitionering:Data distribueras jämnt över shards genom att använda en matematisk formel som kallas en hashfunktion för varje shardnyckel. Den här metoden hjälper till att förhindra överlagring, men kan sprida relaterade data över flera shards, vilket gör intervallfrågor mindre effektiva.
  • Katalogbaserad eller uppslagsbaserad horisontell partitionering: En fragmentkarta anger vilka shardnycklar som motsvarar vilka data. Den här strategin ger flexibilitet att snabbt lägga till fler shardnycklar efter behov, men ökar komplexiteten och potentiella omkostnader.
  • Geo-horisontell partitionering: Data partitioneras baserat på geografisk plats, vilket minskar svarstiden för användare i olika regioner och stöder krav på datahemvist. Många plattformar kopplar geo-horisontell partitionering med databasreplikering för större motståndskraft.

Mer information om databaser.

Vilka är de största fördelarna med horisontell partitionering av databas?

Horisontell partitionering av databas kräver noggrant val av shardnycklar och en strategi för horisontell partitionering samt optimering av frågeroutning. Här är några viktiga fördelar med horisontell partitionering av databas:

  • Förbättrar frågeprestanda:Genom att distribuera data över flera shards kan databaser snabbare hämta den datauppsättning som behövs för att köra varje fråga. Detta resulterar i snabbare svarstider.
  • Stöder horisontell skalbarhet: I stället för att skala upp resurskapaciteten på en enskild server kan organisationer hantera växande data- och arbetsbelastningsvolymer genom att skala ut och lägga till fler shards (och servrar). Läs mer om att skala upp jämfört med att skala ut.
  • Stärker feltoleransen: Eftersom horisontell partitionering använder en SNA-metod isoleras varje shard från de andra. Alla problem som påverkar en shard påverkar inte de andra, vilket förbättrar systemets tillförlitlighet. Datareplikering mellan shards skyddar tillgängligheten ytterligare.
  • Driver kostnadseffektivitet:Datashards har färre maskinvaru- och programvarukrav än stora databaser, vilket ofta kräver dyra servrar med hög kvalitet.

Hjälper till att optimera AI-arbetsbelastningar: Komplexa, monolitiska databaser kan göra AI långsammare att komma åt data, göra förutsägelser och lära sig med tiden. Horisontell partitionering har stöd för att skapa en distribuerad, datarik miljö där AI kan fungera mer effektivt.

Branschspecifika exempel på horisontell partitionering av databas

Horisontell partitionering av databaser är särskilt värdefullt för molnbaserade lösningar som upplever snabb tillväxt eller oförutsägbara toppar i data- eller användartrafik. Följande användningsfall visar hur horisontell partitionering kan tillämpas i olika branscher:

  • E-handel: Detaljhandelsplattformar delar upp kund- och orderdata över shards, vilket hjälper till att säkerställa snabba produktsökningar och smidiga utcheckningsupplevelser under perioder med hög shopping.
  • Finansiella tjänster: Poster för banktransaktioner och andra finansiella transaktioner delas upp efter datum eller kontonummer, vilket möjliggör effektiva frågor och säker, skalbar lagring.
  • Onlinespel: Spelar- eller sessionsdata delas upp efter regions- och användar-ID, vilket balanserar belastningar över shards och minimerar svarstiden (den tid som krävs för att data ska resa till målet) för globala målgrupper.
  • Sociala medier: Plattformar för sociala medier delar upp användarprofils- och aktivitetsfeeddata efter användar-ID eller tidsintervall. Med den här metoden kan plattformen snabbt köra frågor mot de senaste inläggen och stödja miljontals samtidiga användare.
  • SaaS (Software-as-a-service): SaaS-appar med flera klientorganisationer delar ofta upp data efter klientorganisations-ID, vilket isolerar kunddata och förenklar hanteringen när användarbasen växer. De kan också dela upp den efter klientorganisationsarbetsbelastning eller geografisk plats.

Läs mer om hur stordataanalys fungerar.

Framtiden för horisontell partitionering av databas

Genom att distribuera data över flera oberoende servrar minskar horisontell partitionering belastningen på en enskild server, minimerar flaskhalsar och förbättrar systemets tillgänglighet och svarstider. Fördelarna med att använda horisontell partitionering av databas i moderna molnmiljöer ökar bara i takt med att AI och andra relaterade tekniker fortsätter att utvecklas.

Trender att titta på inkluderar följande:

Arbetsflöden för AI-assisterad horisontell partitionering

Intelligenta funktioner, till exempel automatiserad shardnyckelval, ombalansering av arbetsbelastningar och frågeroutning, blir mer mainstream.

Fördel: Förenklad och optimerad drift och oöverträffad skalbarhet

Resharding med noll stilleståndstid

Moderna dataplattformar kommer i allt högre grad att ha stöd för shardnyckeländringar utan att kräva dataavbrott eller komplexa datamigreringar.

Fördel: Större flexibilitet för att uppdatera strategier för horisontell partitionering när arbetsbelastningar utvecklas

Horisontell partitionering kombinerat med serverlösa databaser

Serverlösa databaser etablerar och hanterar oberoende servrar för varje shard. De skalar även upp eller ned kapaciteten på begäran baserat på händelsedrivna frågor.

Fördel: Minskning av driftkostnader

Anpassningsbar, principdriven geosharding

Automatiserade horisontell partitioneringsarbetsflöden dirigerar automatiskt data över geografiska shards baserat på geospecifika principregler som är inbäddade i kod. Fördel: Snabbare efterlevnad med ändrade regel- och sekretesskrav

Läs mer om molnbaserad databehandling.

Vanliga frågor och svar

  • Horisontell partitionering av databas är en process för horisontell skalning av en stor databas över flera servrar, där var och en är värd för en shard med en distinkt delmängd av övergripande data. Horisontell partitionering används för att effektivt hantera växande datavolymer och användartrafik genom att sprida frågor och lagring mellan datorer i stället för att förlita sig på en enda stor server.
  • Både horisontell partitionering och partitionering optimerar databasåtgärder genom att dela upp en stor databas i mindre delmängder. Partitionering delar dock data på samma server, men horisontell partitionering distribuerar data över flera servrar. Replikering syftar på att underhålla flera kopior av samma datauppsättning på olika servrar för redundans. 
  • Ja, horisontell partitionering av databas förbättrar programmets prestanda och skalbarhet. Genom att distribuera data och arbetsbelastningar mellan shards minskar horisontell partitionering svarstiderna för frågor och ökar feltoleransen. Organisationer kan också skala appar horisontellt Val av shardnycklar och shardstrategier är avgörande för att optimera datasharding.
  • Ja, Azure och andra molnplattformar har inbyggt stöd för horisontell partitionering av databas. Azure SQL Database innehåller till exempel flera verktyg för att optimera databasskalning, inklusive ett klientbibliotek som förenklar skapande och hantering av fragment.