Horizontális skálázási modellek
A KÖVETKEZŐKRE VONATKOZIK: Azure Cosmos DB for PostgreSQL (a Citus adatbázisbővítménye a PostgreSQL-re)
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 horizontális horizontális felosztással rendelkezik, így kiválaszthatja az alkalmazás követelményeinek leginkább megfelelő megközelítést.
Soralapú horizontális skálázás
Az Azure Cosmos DB for PostgreSQL szegmenstábláinak hagyományos módja az önálló adatbázis, a megosztott sémamodell, más néven soralapú horizontális skálázás, a bérlők pedig egy táblán belüli sorokként működnek együtt. A bérlőt egy terjesztési oszlop definiálásával határozzuk meg, amely lehetővé teszi a táblák vízszintes felosztását.
A soralapú a horizontális skálázás leghatékonyabb hardveres módja. A bérlők sűrűn vannak csomagolva és 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ű szilánkolá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:
- Csomópontonként kevesebb bérlő a soralapú horizontális skálázáshoz képest
Horizontális skálázási kompromisszumok
Sémaalapú horizontális skálázás | Soralapú horizontális skálázás | |
---|---|---|
Több-bérlős 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 | A create_distributed_table minden táblán a > bérlőazonosító alapján oszthatja el a táblákat |
Bérlők száma | 1-10k | 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 az idegen kulcsok |
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 |
Egyéni 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 | Adott bérlői azonosítóknak saját szegmenscsoportot adhat a isolate_tenant_to_new_shard |
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: