Dela via


Fastställa programtyp för Azure Cosmos DB for PostgreSQL

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

Att köra effektiva frågor i ett kluster kräver att tabeller distribueras korrekt mellan servrar. 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 for PostgreSQL. Det första steget i datamodellering är att identifiera vilken av dem som liknar ditt program närmare.

En snabb överblick

Program för flera klientorganisationer Realtidsprogram
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 betjänar analysfrågor per klient Centreras ofta runt stor händelsetabell

Exempel och egenskaper

Program för flera klientorganisationer

Det här är vanligtvis SaaS-program som betjänar andra företag, konton eller organisationer. De flesta SaaS-program är relationella. De har en naturlig dimension där du kan distribuera data mellan noder: bara shard efter tenant_id.

Med Azure Cosmos DB for PostgreSQL kan du skala ut databasen till miljontals klienter utan att behöva skapa om programmet. Du kan behålla den relationssemantik som du behöver, till exempel kopplingar, begränsningar för sekundärnycklar, 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 klientorganisation i stället för att koppla information mellan klienter. Detta inkluderar OLTP-arbetsbelastningar för att hantera 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 över flera noder gör Azure Cosmos DB for PostgreSQL det möjligt att utföra realtidsfrågor över flera 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 sekund.
  • 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:n.

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