Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.
Nagyméretű táblák elhelyezése szilánkkulccsal
Ha egy valós idejű operatív elemzési alkalmazás szegmenskulcsát szeretné kiválasztani, kövesse az alábbi irányelveket:
- Nagyméretű táblákon gyakran használt oszlop kiválasztása
- Válasszon egy olyan oszlopot, amely az adatok természetes dimenziója, vagy az alkalmazás központi eleme. Néhány példa:
- A pénzügyi világban a biztonsági trendeket elemző alkalmazás valószínűleg használna
security_id. - A webhelyhasználati metrikák elemzésére szolgáló felhasználói analitika munkafolyamatában az
user_idegy megfelelő elosztási oszlop lenne.
- A pénzügyi világban a biztonsági trendeket elemző alkalmazás valószínűleg használna
Nagy táblák áthelyezésével az SQL-lekérdezéseket leküldheti a munkavégző csomópontokra párhuzamosan. A lekérdezések leküldése elkerüli az adatok hálózati csomópontok közötti egyesítését. Az olyan műveletek, mint a JOIN-ek, az összesítések, a rollupok, a szűrők és a LIMIT-ek hatékonyan végrehajthatók.
Ha párhuzamos elosztott lekérdezéseket szeretne vizualizálni a megosztott táblákon, tekintse meg ezt a diagramot:
A users táblák és events a táblák horizontálisan vannak skálázva user_id, így az ugyanahhoz a felhasználói azonosítóhoz tartozó kapcsolódó sorok ugyanazon a munkavégző csomóponton vannak elhelyezve. Az SQL JOIN-ek végrehajthatók anélkül, hogy információt vonna össze a munkafolyamatok között.
Optimális adatmodell valós idejű alkalmazásokhoz
Vizsgáljuk meg a felhasználói webhelylátogatások és metrikák elemzését végző alkalmazás példáját. Két "tény" tábla van - felhasználók és események -, és más kisebb "dimenzió" táblák.
Az elosztott táblák szuperhatékonyságának az Azure Cosmos DB for PostgreSQL-en való használatához kövesse az alábbi lépéseket:
- Nagyméretű ténytáblák elosztása egy közös oszlopban. Esetünkben a felhasználók és események a következő helyen
user_idvannak elosztva: . - Jelölje meg a kis-/dimenziótáblákat (
device_types,countriesés az `event_types`) referenciatáblákként. - Ügyeljen arra, hogy a terjesztési oszlopot az elosztott táblák elsődleges, egyedi és idegen kulcskorlátjai közé foglalja. Az oszlop hozzáadása szükségessé teheti a kulcsok összetetté tételét. Frissíteni kell a referenciatáblák kulcsait.
- Amikor nagy elosztott táblákat csatol össze, mindenképpen a shard kulcs használatával végezze a csatolást.
-- 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...
Következő lépések
Most befejeztük a méretezhető alkalmazások adatmodellezésének feltárását. A következő lépés az adatbázis csatlakoztatása és lekérdezése a választott programozási nyelvvel.