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.
Umístěte velké tabulky na stejné místo pomocí klíče horizontálního dělení
Pokud chcete vybrat klíč úlomku pro aplikaci provozní analýzy v reálném čase, postupujte podle těchto pokynů:
- Volba sloupce, který je u velkých tabulek společný
- Zvolte sloupec, který je přirozeným rozměrem v datech, nebo centrální částí aplikace. Příklady:
- Ve finančním světě by pravděpodobně používala
security_idaplikace, která analyzuje trendy zabezpečení . - V úloze analýzy uživatelů, ve které chcete analyzovat metriky využití webu,
user_idby byl dobrým distribučním sloupcem.
- Ve finančním světě by pravděpodobně používala
Přidělením velkých tabulek můžete odesílat dotazy SQL paralelně do pracovních uzlů. Posunování dotazů dolů brání přesouvání dat mezi uzly po síti. Operace, jako jsou JOINy, agregace, souhrny, filtry, LIMITy, lze efektivně provádět.
Pokud chcete vizualizovat paralelní distribuované dotazy u spolumístěných tabulek, podívejte se na tento diagram:
Tabulky users a events jsou obě horizontálně dělené podle user_id, takže řádky související se stejným ID uživatele jsou umístěny společně na stejném výpočetním uzlu. K SQL JOIN může dojít bez vyžádání informací mezi pracovníky.
Optimální datový model pro aplikace v reálném čase
Pojďme pokračovat v příkladu aplikace, která analyzuje návštěvy a metriky webu uživatelů. Existují dvě tabulky faktů – uživatelé a události – a další menší tabulky dimenzí.
Pokud chcete použít super výkon distribuovaných tabulek ve službě Azure Cosmos DB for PostgreSQL, postupujte následovně:
- Rozmístit velké tabulky faktů ve společném sloupci V našem případě jsou uživatelé a události distribuovány na
user_id. - Označte tabulky malých dimenzí (
device_typescountriesa "event_types") jako referenční tabulky. - Nezapomeňte zahrnout distribuční sloupec do omezení primárního, jedinečného a cizího klíče v distribuovaných tabulkách. Zahrnutí sloupce může vyžadovat, aby byly klíče složené. Pro referenční tabulky je potřeba aktualizovat klíče.
- Nezapomeňte spojovat velké distribuované tabulky pomocí klíče pro dělení.
-- Distribute the fact tables
SELECT create_distributed_table('users', 'user_id');
SELECT create_distributed_table('products', 'user_id', colocate_with => 'users');
-- Turn dimension tables into reference tables, with synchronized copies
-- maintained on every worker node
SELECT create_reference_table('countries');
-- similarly for device_types and event_types...
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.