Megosztás a következőn keresztül:


Horizontális skálázási modellek

Fontos

Az Azure Cosmos DB for PostgreSQL már nem támogatott új projektek esetén. Ne használja ezt a szolgáltatást új projektekhez. Ehelyett használja az alábbi két szolgáltatás egyikét:

  • Az Azure Cosmos DB for NoSQL használata nagy léptékű forgatókönyvekhez tervezett elosztott adatbázis-megoldáshoz 99,999% rendelkezésre állási szolgáltatásiszint-szerződéssel (SLA), azonnali automatikus skálázással és automatikus feladatátvétellel több régióban.

  • Használja az Azure Database For PostgreSQL Rugalmas fürtök funkcióját a megosztott PostgreSQL-hez a nyílt forráskódú Citus-bővítmény használatával.

A horizontális skálázás az adatbázisrendszerekben és az elosztott számítástechnikában használt technika, amellyel több kiszolgáló vagy csomópont között horizontálisan particionálhatók az adatok. Ez magában foglalja egy nagy adatbázis vagy adatkészlet kisebb, kezelhetőbb részekre, úgynevezett szegmensekre való felosztását. A szegmensek az adatok egy részhalmazát tartalmazzák, és a szegmensek együttesen alkotják a teljes adathalmazt.

Az Azure Cosmos DB for PostgreSQL kétféle adathardingot kínál, azaz soralapú és sémaalapú skálázást. Mindegyik lehetőség saját felosztási kompromisszumokkal rendelkezik, így kiválaszthatja az alkalmazás követelményeinek leginkább megfelelő megközelítést.

Sor alapú shardolás

Az Azure Cosmos DB for PostgreSQL táblák szegmentálásának hagyományos módja az egyetlen adatbázis és megosztott sémamodell, amelyet soralapú horizontális skálázásnak is nevezünk; a bérlők ugyanazon táblán belüli sorokként léteznek együtt. A bérlőt egy elosztó oszlop definiálásával határozzuk meg, amely lehetővé teszi egy tábla vízszintes felosztását.

A soralapú elosztás a leghatékonyabb hardveres megoldás. A bérlők sűrűn helyezkednek el és vannak elosztva a fürt csomópontjai között. Ehhez a megközelítéshez azonban gondoskodnia kell arról, hogy a séma összes táblája tartalmazza a terjesztési oszlopot, és hogy az alkalmazás összes lekérdezése szűrje azt. A soralapú horizontális skálázás az IoT-számítási feladatokban és a legjobb hardverhasználati árrést nyújtja.

Előnyök:

  • Legjobb teljesítmény
  • A legjobb bérlői sűrűség csomópontonként

Hátránya:

  • Sémamódosítást igényel
  • Alkalmazás lekérdezésének módosítására van szükség
  • Minden bérlőnek ugyanazzal a sémával kell rendelkeznie

Sémaalapú horizontális skálázás

A Citus 12.0-val elérhető az Azure Cosmos DB for PostgreSQL-ben, a sémaalapú horizontális skálázás a megosztott adatbázis, külön sémamodell, a séma az adatbázis logikai szegmensévé válik. A több-bérlős alkalmazások bérlőnként egy sémát használhatnak a bérlői dimenzió mentén történő könnyű feldaraboláshoz. A lekérdezési módosításokra nincs szükség, és az alkalmazásnak csak egy kis módosításra van szüksége a bérlőváltáskor a megfelelő search_path beállításához. A sémaalapú horizontális skálázás ideális megoldás mikroszolgáltatásokhoz, valamint olyan alkalmazásokat üzembe helyező ISV-k számára, amelyek nem tudják elvégezni a soralapú horizontális skálázáshoz szükséges módosításokat.

Előnyök:

  • A bérlők heterogén sémákkal rendelkezhetnek
  • Nincs szükség sémamódosításra
  • Nincs szükség alkalmazás-lekérdezés-módosításra
  • A sémaalapú horizontális skálázási SQL-kompatibilitás jobb a soralapú horizontális skálázáshoz képest

Hátránya:

  • Kevesebb bérlő jut egy csomópontra a soralapú particionáláshoz képest.

Horizontális skálázási kompromisszumok

Sémaalapú horizontális skálázás Sor alapú shardolás
Több-bérlős (multi-tenancy) modell Séma elkülönítése bérlőnként Megosztott táblák bérlőazonosító-oszlopokkal
Citus verzió 12.0+ Az összes verzió
További lépések a Vanilla PostgreSQL-hez képest Nincs, csak a konfiguráció módosítása Használja a create_distributed_table parancsot minden táblán a táblák bérlőazonosító alapján történő elosztására és elhelyezésére.
Bérlők száma 1-10 ezer 1-1 M+
Adatmodellezési követelmény Nincs idegen kulcs az elosztott sémák között Minden táblában szerepelnie kell egy bérlőazonosító oszlopnak (egy terjesztési oszlopnak, más néven horizontális kulcsnak), valamint az elsődleges kulcsokban és a külső kulcsokban.
Sql-követelmény egycsomópontos lekérdezésekhez Egyetlen elosztott séma használata lekérdezésenként Az illesztéseknek és a WHERE záradékoknak tartalmazniuk kell tenant_id oszlopot
Párhuzamos bérlőközi lekérdezések Nem Igen
Testreszabott tábladefiníciók bérlőnként Igen Nem
Hozzáférés-vezérlés Sémaengedélyek Sémaengedélyek
Bérlők közötti adatmegosztás Igen, hivatkozástáblák használata (külön sémában) Igen, referenciatáblák használatával
Bérlő és szegmens elkülönítése Minden bérlő saját szegmenscsoporttal rendelkezik definíció szerint Külön bérlői azonosítóknak saját shard-csoportot adhat a "isolate_tenant_to_new_shard" funkcióval.