Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Azure Cosmos DB for PostgreSQL stöds inte längre för nya projekt. Använd inte den här tjänsten för nya projekt. Använd i stället en av dessa två tjänster:
Använd Azure Cosmos DB för NoSQL för en distribuerad databaslösning som är utformad för storskaliga scenarier med ett serviceavtal på 99,999% tillgänglighet , omedelbar autoskalning och automatisk redundans i flera regioner.
Använd funktionen Elastiska kluster i Azure Database For PostgreSQL för fragmenterad PostgreSQL med citus-tillägget med öppen källkod.
För att köra effektiva frågor i ett kluster krävs att tabellerna distribueras korrekt mellan servrarna. Den rekommenderade distributionen varierar beroende på typ av program och dess frågemönster.
Det finns i stort sett två typer av program som fungerar bra i Azure Cosmos DB för PostgreSQL. Det första steget i datamodellering är att identifiera vilken av dem som liknar ditt program närmare.
Vid en överblick
| Program för flera klientorganisationer | Applikationer i realtid |
|---|---|
| Ibland dussintals eller hundratals tabeller i ett schema | Små antal tabeller |
| Frågor som rör en klientorganisation (företag/butik) i taget | Relativt enkla analysfrågor med sammansättningar |
| OLTP-arbetsbelastningar för att betjäna webbklienter | Hög inmatningsvolym av främst oföränderliga data |
| OLAP-arbetsbelastningar som hanterar analysfrågor per klient | Centreras ofta runt stor händelsetabell |
Exempel och egenskaper
Applikation för flera hyresgäster
Det här är vanligtvis SaaS-program som betjänar andra företag, konton eller organisationer. De flesta SaaS-program är till sin natur relationella. De har en naturlig dimension för att distribuera data mellan noder: dela upp efter tenant_id.
Med Azure Cosmos DB for PostgreSQL kan du skala ut databasen till miljontals klienter utan att behöva skapa programmet på nytt. Du kan behålla den relationssemantik som du behöver, till exempel kopplingar, begränsningar för sekundärnyckel, transaktioner, ACID och konsekvens.
- Exempel: Webbplatser som är värdar för butiksfronter för andra företag, till exempel en digital marknadsföringslösning eller ett verktyg för försäljningsautomatisering.
- Egenskaper: Frågor som rör en enskild hyresgäst istället för att samköra information mellan hyresgäster. Detta inkluderar OLTP-arbetsbelastningar för servering av webbklienter och OLAP-arbetsbelastningar som hanterar analysfrågor per klientorganisation. Att ha dussintals eller hundratals tabeller i databasschemat är också en indikator för datamodellen för flera klientorganisationer.
Att skala en app för flera klientorganisationer med Azure Cosmos DB for PostgreSQL kräver också minimala ändringar i programkoden. Vi har stöd för populära ramverk som Ruby on Rails och Django.
Realtidsanalys
Program som behöver massiv parallellitet, samordnar hundratals kärnor för snabba resultat till numeriska, statistiska eller räknande frågor. Genom att partitionera och parallellisera SQL-frågor mellan flera noder gör Azure Cosmos DB for PostgreSQL det möjligt att köra realtidsfrågor över miljarder poster på under en sekund.
Tabeller i realtidsanalysdatamodeller distribueras vanligtvis av kolumner som user_id, host_id eller device_id.
- Exempel: Instrumentpaneler för kundriktad analys som kräver svarstider under sekunden.
- Egenskaper: Få tabeller, som ofta centreras kring en stor tabell med enhets-, plats- eller användarhändelser och som kräver hög inmatningsvolym av mestadels oföränderliga data. Relativt enkla (men beräkningsintensiva) analysfrågor som omfattar flera sammansättningar och GRUPP-BY:er.
Om din situation liknar något av fallen ovan är nästa steg att bestämma hur du ska fragmentera dina data i klustret. Databasadministratörens val av distributionskolumner måste matcha åtkomstmönstren för vanliga frågor för att säkerställa prestanda.
Nästa steg
- Välj en distributionskolumn för tabeller i ditt program för att distribuera data effektivt