Förstå distribuerade relationsdatabaser

GÄLLER FÖR: Azure Cosmos DB for PostgreSQL (drivs av Citus-databastillägget till PostgreSQL)

Azure Cosmos DB är en globalt distribuerad databasplattform för både NoSQL och relationsdatabaser i valfri skala. Den här artikeln utforskar distribuerade relationsdatabaser i kontexten för relationella API-alternativ i Azure Cosmos DB.

Mer information om andra alternativ för datalagring i Azure finns i Välja rätt datalager i Azure Architecture Center.

Utmaningar

Många gånger när du läser om stora volymer eller höga transaktionsarbetsbelastningar är det lätt att tro att dessa arbetsbelastningar är mycket större än något som ditt program kan stöta på. Antagandet att din arbetsbelastning förblir liten kan vara ett säkert antagande i början av ett projekt, en idé eller en organisation. Det antagandet kan dock snabbt leda till ett scenario där programmets arbetsbelastning växer långt utöver de förutsägelser du har gjort. Det är inte ovanligt att höra historier om arbetsbelastningar som uppfyller det maximala dataflödet eller bearbetningskraften för databasen med en instans som var ekonomisk och högpresterande i början av ett projekt.

Relationsdatabaser

Relationsdatabaser organiserar data i tabellformat (rad/kolumn) med relationer mellan olika tabeller i databaserna. Relationsdatabaser är vanliga i olika företag. Dessa företag har ofta en mängd programutvecklare som har skrivit kod mot en relationsdatabas eller administratörer som utformar scheman och hanterar relationsdatabasplattformar. Relationsdatabaser stöder också ofta transaktioner med ACID-garantier.

Tyvärr konfigureras många relationsdatabassystem inledningsvis av organisationer på ett sätt med en enda nod med övre begränsningar för beräknings-, minnes- och nätverksresurser. Den här kontexten kan leda till ett felaktigt antagande att alla relationsdatabaser är en enda nod av sin natur.

Distribuerade databaser

Med många molnbaserade faktablad är det vanligt att höra om fördelarna med NoSQL-databaser, vilket gör att det verkar som om relationsdatabaser inte är ett rimligt val för storskaliga databaser eller distribuerade arbetsbelastningar. Många distribuerade databaser är icke-relationella, men det är alternativ där ute för distribuerade relationsdatabasarbetsbelastningar.

Många av dessa alternativ för distribuerade relationsdatabaser kräver att din organisation planerar för storskalighet och distribution från början av projektet. Det här planeringskravet kan öka komplexiteten i början av ett projekt för att se till att alla relevanta servernoder konfigureras, hanteras och underhålls av ditt team. Planerings-, implementerings- och nätverkskraven för en globalt distribuerad relationsdatabas kan enkelt bli mycket mer komplexa än att stå upp för en enda instans (eller nod).

Azure Cosmos DB

Azure Cosmos DB är en databasplattform som erbjuder distribuerade data-API:er i både NoSQL och relationsvarianter. Mer specifikt baseras relations-API:et för Azure Cosmos DB på PostgreSQL och Citus-tillägget.

Citus är ett PostgreSQL-tillägg som lägger till stöd för Postgres för distribution av data och transaktioner. Azure Cosmos DB for PostgreSQL är en fullständigt hanterad tjänst med Citus som automatiskt ger dig hög tillgänglighet utan att du behöver planera, hantera och underhålla enskilda servernoder manuellt. Med API:et för PostgreSQL kan du börja med ett fullständigt hanterat kluster med en nod, skapa din databaslösning och sedan skala den på ett nyckelfärdigt sätt när programmets behov växer med tiden. Med API:et för PostgreSQL behöver du inte planera ett komplext distributionsprojekt i förväg eller planera ett projekt för att migrera dina data från en enskild nod till en distribuerad databas längre fram.

Nästa steg

Vill du komma igång med Azure Cosmos DB?