Určení typu aplikace pro Azure Cosmos DB for PostgreSQL

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

Spouštění efektivních dotazů v clusteru vyžaduje správnou distribuci tabulek mezi servery. Doporučená distribuce se liší podle typu aplikace a jejích vzorů dotazů.

Ve službě Azure Cosmos DB for PostgreSQL fungují v podstatě dva druhy aplikací. Prvním krokem při modelování dat je identifikace toho, která z nich se více podobá vaší aplikaci.

Na první pohled

Aplikace s více tenanty Aplikace v reálném čase
V některých případech schéma zahrnuje desítky nebo stovky tabulek Malý počet tabulek
Dotazy týkající se jednoho klienta (společnosti/úložiště) najednou Relativně jednoduché analytické dotazy s agregacemi
Úlohy OLTP pro obsluhu webových klientů Velké množství přijímaných převážně neměnných dat
Úlohy OLAP obsluhující analytické dotazy pro jednotlivé klienty Úlohy se často týkají velkých tabulek událostí

Příklady a charakteristiky

Aplikace s více tenanty

Obvykle se jedná o aplikace SaaS, které obsluhují jiné společnosti, účty nebo organizace. Většina aplikací SaaS je ze své podstaty relační. Mají přirozenou dimenzi, ve které se distribuují data mezi uzly: stačí horizontální dělení podle tenant_id.

Azure Cosmos DB for PostgreSQL umožňuje škálovat databázi na miliony tenantů, aniž byste museli předělovat architekturu aplikace. Můžete zachovat relační sémantiku, kterou potřebujete, jako jsou spojení, omezení cizího klíče, transakce, ACID a konzistence.

  • Příklady: Weby, které hostují prodejny pro jiné firmy, například řešení digitálního marketingu nebo nástroj pro automatizaci prodeje.
  • Charakteristiky: Dotazy týkající se jednoho tenanta, nikoli spojování informací mezi tenanty. To zahrnuje úlohy OLTP pro obsluhu webových klientů a úlohy OLAP, které obsluhují analytické dotazy pro jednotlivé tenanty. To, že máte ve schématu databáze desítky nebo stovky tabulek, je také indikátorem víceklientského datového modelu.

Škálování aplikace s více tenanty pomocí služby Azure Cosmos DB for PostgreSQL také vyžaduje minimální změny kódu aplikace. Máme podporu pro oblíbené architektury, jako je Ruby on Rails a Django.

Analýzy v reálném čase

Aplikace, které potřebují masivní paralelismus, koordinují stovky jader pro rychlé výsledky s číselnými, statistickými nebo počítanými dotazy. Díky horizontálnímu dělení a paralelizaci dotazů SQL na více uzlech umožňuje Služba Azure Cosmos DB for PostgreSQL provádět dotazy v reálném čase napříč miliardami záznamů za méně než sekundu.

Tabulky v analytických datových modelech v reálném čase se obvykle distribuují podle sloupců, jako jsou user_id, host_id nebo device_id.

  • Příklady: Řídicí panely analýzy pro zákazníky, které vyžadují dobu odezvy v subsekundách.
  • Charakteristika: Několik tabulek, které se často soustředí kolem velké tabulky událostí zařízení, webu nebo uživatelů a vyžadují vysoký ingestovaný objem většinou neměnných dat. Relativně jednoduché (ale výpočetně náročné) analytické dotazy zahrnující několik agregací a SKUPIN BY.

Pokud se vaše situace podobá některému z výše uvedených případů, pak dalším krokem je rozhodnout, jak se mají data v clusteru horizontálně dělit. Výběr distribučních sloupců správcem databáze musí odpovídat vzorům přístupu typických dotazů, aby byl zajištěn výkon.

Další kroky