Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Azure Cosmos DB for PostgreSQL se už pro nové projekty nepodporuje. Tuto službu nepoužívejte pro nové projekty. Místo toho použijte jednu z těchto dvou služeb:
Azure Cosmos DB for NoSQL můžete použít pro distribuované databázové řešení navržené pro vysoce škálovatelné scénáře s 99,999% smlouvou o úrovni služeb (SLA), okamžitým automatickým škálováním a automatickým převzetím služeb při selhání napříč několika oblastmi.
Použijte funkci Elastic Clusters služby Azure Database for PostgreSQL pro horizontálně dělené PostgreSQL pomocí opensourcového rozšíření Citus.
Běžný filtr jako klíč rozdělení na části
Pokud chcete vybrat klíč shardu 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 na bázi IoT je
device_iddobrý distribuční sloupec.
- V úloze na bázi IoT je
Volba dobrého klíče pro rozdělení databáze pomáhá optimalizovat síťové skoky a umožňuje maximální využití paměti a výpočetních prostředků k dosažení latence v milisekundách.
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. Mohou existovat i jiné tabulky, ale nejsou v tomto příkladu zahrnuty.
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 IOT aplikace,
device_idje ten sloupec, který soustředí 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. Můžete použít nativní funkce časových řad služby Azure Cosmos DB pro PostgreSQL k vytváření a údržbě oddílů.
- 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á tabulka událostí sloupec
detail, který je typu JSONB.
- V našem příkladu má tabulka událostí sloupec
- 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.