Szintetikus partíciókulcs létrehozása
A KÖVETKEZŐRE VONATKOZIK: NoSQL
Ajánlott olyan partíciókulcsot létrehozni, amely számos különböző értékkel rendelkezik, például több száz vagy ezres értékekkel. A cél az adatok és a számítási feladatok egyenletes elosztása az ezekhez a partíciókulcs-értékekhez társított elemek között. Ha egy ilyen tulajdonság nem létezik az adatokban, létrehozhat egy szintetikus partíciókulcsot. Ez a dokumentum számos alapvető technikát ismertet az Azure Cosmos DB-tároló szintetikus partíciókulcsának létrehozásához.
Egy elem több tulajdonságának összefűzése
Partíciókulcsot úgy hozhat létre, hogy több tulajdonságértéket egyetlen mesterséges partitionKey
tulajdonságba egyesít. Ezeket a kulcsokat szintetikus kulcsoknak nevezzük. Vegyük például a következő példadokumentumot:
{
"deviceId": "abc-123",
"date": 2018
}
Az előző dokumentum esetében az egyik lehetőség a /deviceId vagy a /date partíciókulcsként való beállítása. Ezt a lehetőséget akkor használja, ha a tárolót eszközazonosító vagy dátum alapján szeretné particionolni. Egy másik lehetőség, ha ezt a két értéket egy partíciókulcsként használt szintetikus partitionKey
tulajdonságba fűzi össze.
{
"deviceId": "abc-123",
"date": 2018,
"partitionKey": "abc-123-2018"
}
Valós helyzetekben több ezer elem lehet egy adatbázisban. A szintetikus kulcs manuális hozzáadása helyett definiáljon ügyféloldali logikát az értékek összefűzéséhez, és szúrja be a szintetikus kulcsot az Azure Cosmos DB-tárolók elemeibe.
Partíciókulcs használata véletlenszerű utótaggal
A számítási feladat egyenletesebb elosztásának másik lehetséges stratégiája egy véletlenszerű szám hozzáfűzése a partíciókulcs értékének végén. Ha így osztja el az elemeket, párhuzamos írási műveleteket hajthat végre a partíciók között.
Ilyen például, ha egy partíciókulcs dátumot jelöl. Választhat egy véletlenszerű számot 1 és 400 között, és összefűzheti a dátum utótagjaként. Ez a metódus olyan partíciókulcs-értékeket eredményez, mint a 2018-08-09.1
,2018-08-09.2
, és így tovább.2018-08-09.400
Mivel véletlenszerűen válogatja össze a partíciókulcsot, a tároló írási műveletei minden nap egyenletesen oszlanak el több partíció között. Ez a módszer jobb párhuzamosságot és általánosan magasabb átviteli sebességet eredményez.
Partíciókulcs használata előre számított utótagokkal
A véletlenszerű utótagstratégia nagy mértékben javíthatja az írási teljesítményt, de nehéz beolvasni egy adott elemet. Nem ismeri az elem írásakor használt utótagértéket. Az egyes elemek könnyebb olvashatóságához használja az előre kiszámított utótagok stratégiáját. Ahelyett, hogy véletlenszerű számot használna az elemek partíciók közötti elosztásához, használjon egy számot, amely a lekérdezés alapjául szolgáló érték alapján van kiszámítva.
Vegyük az előző példát, ahol egy tároló dátumot használ partíciókulcsként. Tegyük fel, hogy minden elem rendelkezik egy Vehicle-Identification-Number
(VIN
) attribútummal, amelyhez hozzá szeretnénk férni. Tegyük fel továbbá, hogy gyakran futtat lekérdezéseket az elemek dátum szerinti VIN
kereséséhez. Mielőtt az alkalmazás a tárolóba írja az elemet, kiszámíthat egy kivonat utótagot a VIN alapján, és hozzáfűzheti a partíciókulcs dátumához. A számítás egyenletesen elosztott 1 és 400 közötti számot eredményezhet. Ez az eredmény hasonló a véletlenszerű utótagstratégiával előállított eredményekhez. A partíciókulcs értéke ezután a számított eredménnyel összefűzött dátum.
Ezzel a stratégiával az írások egyenletesen oszlanak el a partíciókulcs értékei között és a partíciók között. Egyszerűen elolvashat egy adott elemet és dátumot, mert kiszámíthatja egy adott Vehicle-Identification-Number
elem partíciókulcs-értékét. Ennek a módszernek az az előnye, hogy elkerülheti egyetlen gyakori elérésű partíciókulcs, azaz egy olyan partíciókulcs létrehozását, amely az összes számítási feladatot igénybe veszi.
Következő lépések
A particionálás fogalmáról az alábbi cikkekben olvashat bővebben:
- További információ a logikai partíciókról.
- További információ arról, hogyan építhet ki átviteli sebességet az Azure Cosmos DB-tárolókon és -adatbázisokon.
- Megtudhatja, hogyan építhet ki átviteli sebességet egy Azure Cosmos DB-tárolón.
- Megtudhatja, hogyan építhet ki átviteli sebességet egy Azure Cosmos DB-adatbázison.
- Kapacitástervezést szeretne végezni az Azure Cosmos DB-be való migráláshoz? A kapacitástervezéshez használhatja a meglévő adatbázisfürt adatait.
- Ha csak annyit tud, hogy hány virtuális mag és kiszolgáló található a meglévő adatbázisfürtben, olvassa el a kérelemegységek becslését virtuális magok vagy vCPU-k használatával
- Ha ismeri az aktuális adatbázis számítási feladataira vonatkozó tipikus kérési arányokat, olvassa el a kérelemegységek becslését az Azure Cosmos DB kapacitástervezővel