Toepassingstype bepalen voor Azure Cosmos DB for PostgreSQL
VAN TOEPASSING OP: Azure Cosmos DB for PostgreSQL (mogelijk gemaakt door de Citus-database-extensie naar 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 bijbehorende querypatronen.
Er zijn breed 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 door 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 die u nodig hebt behouden, zoals joins, beperkingen voor refererende sleutels, transacties, ACID en consistentie.
- Voorbeelden: Websites die winkel-fronts hosten voor andere bedrijven, zoals een digitale marketingoplossing of een hulpprogramma voor verkoopautomatisering.
- Kenmerken: Query's met betrekking tot één tenant in plaats van informatie over tenants te koppelen. Dit omvat OLTP-workloads voor het bedienen van webclients en OLAP-workloads die analytische query's per tenant leveren. 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 toepassingscode vereist. We hebben ondersteuning voor populaire frameworks zoals Ruby on Rails en Django.
Realtime analyse
Toepassingen die enorme parallelle uitvoering nodig hebben, honderden kernen coördineren voor snelle resultaten naar numerieke, statistische of telquery's. Door sql-query's op meerdere knooppunten te sharden en parallelliseren, maakt Azure Cosmos DB voor PostgreSQL het mogelijk om realtime query's uit te voeren op miljarden records in minder dan een seconde.
Tabellen in realtime analysegegevensmodellen worden doorgaans gedistribueerd door kolommen zoals user_id, host_id of device_id.
- Voorbeelden: klantgerichte analysedashboards vereisen sub-seconde reactietijden.
- Kenmerken: Weinig tabellen, die zich vaak centreren rond een grote tabel met apparaat-, site- of gebruikersgebeurtenissen en waarvoor een hoog opnamevolume van meestal onveranderbare gegevens is vereist. Relatief eenvoudige (maar rekenintensieve) analysequery's met verschillende aggregaties en GROUP BY's.
Als uw situatie op een van de bovenstaande gevallen lijkt, is de volgende stap het bepalen hoe u uw gegevens in het cluster kunt sharden. De keuze van distributiekolommen van de databasebeheerder moet overeenkomen met de toegangspatronen van typische query's om de prestaties te garanderen.
Volgende stappen
- Kies een distributiekolom voor tabellen in uw toepassing om gegevens efficiënt te distribueren