Toepassingstype voor Azure Cosmos DB for PostgreSQL bepalen

VAN TOEPASSING OP: Azure Cosmos DB for PostgreSQL (mogelijk gemaakt door de Citus-databaseextensie voor PostgreSQL)

Voor het uitvoeren van efficiënte query's op een cluster moeten tabellen correct worden verdeeld over servers. De aanbevolen distributie verschilt per type toepassing en de querypatronen.

Er zijn grofweg twee soorten toepassingen die goed werken in Azure Cosmos DB for PostgreSQL. De eerste stap in gegevensmodellering is om te bepalen welke van deze meer lijkt op uw toepassing.

In één oogopslag

Toepassingen met meerdere tenants Realtime toepassingen
Soms wel tientallen of honderden tabellen in schema Klein aantal tabellen
Query's met betrekking tot één tenant (bedrijf/winkel) tegelijk Relatief eenvoudige analysequery's met aggregaties
OLTP-workloads voor het leveren van webclients Hoog opnamevolume van vooral onveranderbare gegevens
OLAP-workloads die analytische query's per tenant uitvoeren Vaak gecentreerd rondom een grote tabel met gebeurtenissen

Voorbeelden en kenmerken

Toepassing met meerdere tenants

Dit zijn doorgaans SaaS-toepassingen die andere bedrijven, accounts of organisaties bedienen. De meeste SaaS-toepassingen zijn inherent relationeel. Ze hebben een natuurlijke dimensie voor het distribueren van gegevens over knooppunten: alleen shard per tenant_id.

Met Azure Cosmos DB for PostgreSQL kunt u uw database uitschalen naar miljoenen tenants zonder dat u uw toepassing opnieuw hoeft te ontwerpen. U kunt de relationele semantiek behouden die u nodig hebt, zoals joins, beperkingen voor refererende sleutels, transacties, ACID en consistentie.

  • Voorbeelden: Websites waarop winkels voor andere bedrijven worden gehost, zoals een digitale marketingoplossing of een hulpprogramma voor verkoopautomatisering.
  • Kenmerken: Query's die betrekking hebben op één tenant in plaats van gegevens tussen tenants samen te voegen. Dit omvat OLTP-workloads voor het bedienen van webclients en OLAP-workloads die analytische query's per tenant uitvoeren. Het hebben van tientallen of honderden tabellen in uw databaseschema is ook een indicator voor het gegevensmodel met meerdere tenants.

Voor het schalen van een app met meerdere tenants met Azure Cosmos DB for PostgreSQL zijn ook minimale wijzigingen in de toepassingscode vereist. We bieden ondersteuning voor populaire frameworks zoals Ruby on Rails en Django.

Realtime analyse

Toepassingen die veel parallellisme nodig hebben, waarbij honderden kernen voor snelle resultaten worden gecoördineerd naar numerieke, statistische of telquery's. Door sharding en parallellisatie van SQL-query's op meerdere knooppunten, maakt Azure Cosmos DB for PostgreSQL het mogelijk om in minder dan een seconde realtime query's uit te voeren op miljarden records.

Tabellen in gegevensmodellen voor realtimeanalyses worden doorgaans gedistribueerd door kolommen zoals user_id, host_id of device_id.

  • Voorbeelden: Klantgerichte analysedashboards die reactietijden van een seconde vereisen.
  • Kenmerken: weinig tabellen, die vaak rond een grote tabel met apparaat-, site- of gebruikersgebeurtenissen zijn gecentreerd en een hoog opnamevolume van meestal onveranderbare gegevens vereisen. Relatief eenvoudige (maar rekenintensieve) analysequery's met verschillende aggregaties en GROUP BY's.

Als uw situatie lijkt op een van de bovenstaande gevallen, is de volgende stap om te bepalen hoe u uw gegevens in het cluster moet sharden. De keuze van distributiekolommen van de databasebeheerder moet overeenkomen met de toegangspatronen van typische query's om de prestaties te garanderen.

Volgende stappen