Sdílet prostřednictvím


Modelování transakčních aplikací s vysokou propustností ve službě Azure Cosmos DB for PostgreSQL

PLATÍ PRO: Azure Cosmos DB for PostgreSQL (využívající rozšíření databáze Citus do PostgreSQL)

Běžný filtr jako klíč horizontálního dělení

Pokud chcete vybrat klíč horizontálního oddílu pro transakční aplikaci s vysokou propustností, postupujte podle těchto pokynů:

  • Zvolte sloupec, který se používá pro vyhledávání bodů a nachází se ve většině operací vytváření, čtení, aktualizace a odstraňování.
  • Zvolte sloupec, který je přirozeným rozměrem v datech, nebo centrální částí aplikace. Příklad:
    • V úloze device_id IOT je dobrý distribuční sloupec.

Volba dobrého klíče horizontálního dělení pomáhá optimalizovat segmenty směrování sítě a současně využívat paměť a výpočetní prostředky k dosažení latence milisekund.

Optimální datový model pro aplikace s vysokou propustností

Níže je příklad ukázkového datového modelu pro aplikaci IoT, která zachycuje telemetrická data (data časových řad) ze zařízení. Pro zachytávání telemetrie existují dvě tabulky: devices a events. V tomto příkladu můžou být i jiné tabulky, ale nejsou pokryté.

Diagram tabulek událostí a zařízení a oddílů událostí

Při vytváření aplikace s vysokou propustností mějte na paměti určitou optimalizaci.

  • Distribuce velkých tabulek do společného sloupce, který je centrální částí aplikace, a sloupce, na který se aplikace většinou dotazuje. Ve výše uvedeném příkladu aplikace device_id IOT je tento sloupec a společně vyhledá tabulky událostí a zařízení.
  • Zbývající malé tabulky můžou být referenčními tabulkami.
  • Vzhledem k tomu, že aplikace IOT mají časovou dimenzi, rozdělte distribuované tabulky podle času. K vytváření a údržbě oddílů můžete použít nativní funkce časové řady Azure Cosmos DB for PostgreSQL.
    • Dělení pomáhá efektivně filtrovat data pro dotazy s časovými filtry.
    • Vypršení platnosti starých dat je také rychlé pomocí příkazu DROP vs DELETE.
    • Tabulka událostí v našem příkladu je rozdělená podle měsíců.
  • K ukládání částečně strukturovaných dat použijte datový typ JSONB. Telemetrická data zařízení obvykle nejsou strukturovaná, každé zařízení má vlastní metriky.
    • V našem příkladu má detail tabulka událostí sloupec, což je JSONB.
  • Pokud vaše aplikace IoT vyžaduje geoprostorové funkce, můžete použít rozšíření PostGIS, které Azure Cosmos DB for PostgreSQL nativně podporuje.

Další kroky

Teď jsme dokončili zkoumání modelování dat pro škálovatelné aplikace. Dalším krokem je připojení a dotazování databáze s použitím zvoleného programovacího jazyka.