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


Gyűjtemények

Az Azure Cosmos DB egy globálisan elosztott többmodelles adatbázis, amely támogatja a dokumentum-, gráf- és kulcsértékű adatmodelleket. Ebben a szakaszban a gyűjtemény erőforrásainak létrehozására, lekérdezésére és kezelésére van lehetőség az SQL API REST-en keresztüli használatával.

A REST API támogatja az adatbázisfiókban lévő erőforrások alapszintű CRUD-műveleteit. A gyűjtemény JSON-dokumentumok és a hozzá tartozó JavaScript-alkalmazáslogika tárolója, azaz tárolt eljárások, eseményindítók és felhasználó által definiált függvények. Ez a témakör a dokumentumgyűjtemények kezeléséhez használt REST-műveleteket ismerteti.

Megjegyzés

Ezek az API-referenciacikkek bemutatják, hogyan hozhat létre erőforrásokat az Azure Cosmos DB adatsík API-val. Az adatsík API-val olyan alapvető beállításokat konfigurálhat, mint például az indexelési szabályzat, a partíciókulcsok ugyanúgy, mint a Cosmos DB SDK-k esetében. Ha teljes körű szolgáltatástámogatásra van szüksége az összes Azure Cosmos DB-erőforráshoz, javasoljuk, hogy használja a Cosmos DB erőforrás-szolgáltatót.

A gyűjtemény egy Azure Cosmos DB-tárolóra van leképzve. Ezért ez egy számlázható entitás, ahol a költségeket a másodpercenkénti kérelemegységekben kifejezett kiosztott átviteli sebesség határozza meg. A gyűjtemények egy vagy több partícióra/kiszolgálóra terjedhetnek ki, és vertikálisan fel- és leskálázhatók az átviteli sebesség tekintetében. A gyűjteményeket az Azure Cosmos DB automatikusan particionálja egy vagy több fizikai kiszolgálóra.

Mivel a gyűjtemény rendszererőforrás, rögzített sémával rendelkezik. A gyűjtemény URI-útvonalát az erőforrásmodellben lévő collok jelölik.

Az alábbi példa egy gyűjtemény JSON-definícióját szemlélteti:

{  
  "id": "testcoll",  
  "indexingPolicy": {  
    "indexingMode": "consistent",  
    "automatic": true,  
    "includedPaths": [  
      {  
        "path": "/*",  
        "indexes": [  
          {  
            "kind": "Range",  
            "dataType": "String",  
            "precision": -1  
          },  
          {  
            "kind": "Range",  
            "dataType": "Number",  
            "precision": -1  
          }  
        ]  
      }  
    ],  
    "excludedPaths": []  
  },  
  "partitionKey": {  
    "paths": [  
      "/AccountNumber"  
    ],  
    "kind": "Hash"  
  },  
  "_rid": "PD5DALigDgw=",  
  "_ts": 1459200611,  
  "_self": "dbs/PD5DAA==/colls/PD5DALigDgw=/",  
  "_etag": "\"00005900-0000-0000-0000-56f9a2630000\"",  
  "_docs": "docs/",  
  "_sprocs": "sprocs/",  
  "_triggers": "triggers/",  
  "_udfs": "udfs/",  
  "_conflicts": "conflicts/"  
}  
  
Tulajdonság Leírás
id Ez az új gyűjteményt azonosító egyedi név.
indexelésPolicy Ez a gyűjtemény indexelési házirend-beállításai.
partitionKey Ez a gyűjtemény particionálási konfigurációs beállításai.
_Megszabadulni Ez egy rendszer által létrehozott tulajdonság. Az erőforrás-azonosító (_rid) egy egyedi azonosító, amely az erőforrás-modell erőforrás-verménként is hierarchikus. Belsőleg használják az engedélyerőforrás elhelyezésére és navigációjára.
_Ts Ez egy rendszer által létrehozott tulajdonság. Meghatározza az erőforrás utolsó frissített időbélyegét. Az érték egy időbélyeg.
_Önálló Ez egy rendszer által létrehozott tulajdonság. Ez az erőforrás egyedi címezhető URI-ja.
_Etag Ez egy rendszer által létrehozott tulajdonság, amely az optimista egyidejűség-vezérléshez szükséges erőforrás-etagot jelöli.
_Bizonylat Ez egy rendszer által létrehozott tulajdonság, amely meghatározza a dokumentum-erőforrás címzhető elérési útját.
_sprocs Ez egy rendszer által létrehozott tulajdonság, amely meghatározza a tárolt eljárások (sprocs) erőforrásának címezhető elérési útját.
_Eseményindítók Ez egy rendszer által létrehozott tulajdonság, amely meghatározza az eseményindítók erőforrásának címezhető elérési útját.
_udfs Ez egy rendszer által létrehozott tulajdonság, amely meghatározza a felhasználó által definiált függvények (udfs) erőforrásának címezhető elérési útját.
_Konfliktusok Ez egy rendszer által létrehozott tulajdonság, amely meghatározza az ütközések erőforrásának címezhető elérési útját. Egy gyűjteményen belüli erőforráson végzett művelet során, ha ütközés történik, a felhasználók megvizsgálhatják az ütköző erőforrásokat egy GET művelet végrehajtásával az ütközések URI-útvonalán.

Tulajdonságok az Indexelési szabályzat alatt

Tulajdonság Leírás
automatikus Azt jelzi, hogy az automatikus indexelés be van-e kapcsolva vagy ki van-e kapcsolva. Az alapértelmezett érték Igaz, így minden dokumentum indexelve van. Ha hamis értékre állítja az értéket, az lehetővé teszi az indexelési útvonalak manuális konfigurálását.
indexelésMode Alapértelmezés szerint az indexelési mód Konzisztens. Ez azt jelenti, hogy az indexelés szinkron módon történik a dokumentumok beszúrása, cseréje vagy törlése során. Ha azt szeretné, hogy az indexelés aszinkron módon történjen, állítsa az indexelési módot lusta értékre.
includedPaths Az indexelendő dokumentumútvonalakat tartalmazó tömb. Alapértelmezés szerint két elérési út található: a / elérési út, amely meghatározza, hogy az összes dokumentumútvonalat indexelni kell, és a _ts elérési utat, amely indexel egy időbélyegtartomány összehasonlításához.
excludedPaths Az indexelésből kizárandó dokumentumútvonalakat tartalmazó tömb.

Tulajdonságok a Belefoglalt elérési utak területen

Tulajdonság Leírás
Elérési út Elérési út, amelyre az indexelési viselkedés vonatkozik. Az indexelési útvonalak a gyökérrel (/) kezdődnek, és általában a ? helyettesítő karakter operátor, amely azt jelöli, hogy az előtagnak több lehetséges értéke is lehet. Ha például a SELECT * FROM Families F WHERE F.familyName = "Andersen" parancsot szeretné kiszolgálni, a /familyName/? a gyűjtemény indexszabályzatában.

Az index elérési útjai a * helyettesítő karakter operátorral is megadhatják az előtag alatti rekurzív elérési utak viselkedését. A /payload/* például az indexelésből származó hasznos adattulajdonság alá tartozó összes adat belefoglalására használható.
Adattípus Ez az az adattípus, amelyre az indexelési viselkedést alkalmazza a rendszer. Lehet sztring, szám, pont, sokszög vagy vonalsztring. A logikai értékeket és a null értékeket a rendszer automatikusan indexeli
Fajta Az index típusa. A kivonatindexek egyenlőségi összehasonlításokhoz hasznosak, míg a tartományindexek az egyenlőség, a tartomány-összehasonlítás és a rendezés szempontjából hasznosak. A térbeli indexek hasznosak térbeli lekérdezésekhez.
Precíziós Az index pontossága. A maximális pontosság érdekében a -1 értékre, a Szám értéknél 1–8, a Sztring esetében pedig 1–100 értékre állítható be. Pont-, sokszög- és LineString-adattípusokhoz nem alkalmazható.

Tulajdonságok a Kizárt elérési utak területen

Tulajdonság Leírás
Elérési út Az indexelésből kizárt elérési út. Az indexútvonalak a gyökérrel (/) kezdődnek, és általában a * helyettesítő karakterrel végződnek. A /payload/* például a hasznos adat tulajdonság alatt lévő összes elem kizárására használható az indexelésből.

Tulajdonságok a partíciókulcs alatt

Tulajdonság Leírás
Elérési út Olyan elérési utak tömbje, amelyek segítségével a gyűjteményen belüli adatok particionálhatók. Az elérési utak nem tartalmazhatnak helyettesítő karaktert vagy záró perjelet. Az "AccountNumber" JSON-tulajdonság például "/AccountNumber" néven van megadva. A tömbnek csak egyetlen értéket kell tartalmaznia.
Fajta A particionáláshoz használt algoritmus. Csak a kivonatok támogatottak.

Indexelési szabályzat

A dokumentumok gyűjteményhez való hozzáadásakor a Cosmos DB alapértelmezés szerint automatikusan indexeli a dokumentumokat, így lehetővé teszi a dokumentumok lekérdezését. A gyűjtemény szintjén konfigurálja az indexelési szabályzatot. Mivel az indexelési szabályzat a gyűjtemény szintjén van beállítva, az adatbázison belüli összes gyűjtemény különböző indexelési szabályzatokkal rendelkezhet.

A gyűjtemény indexelési szabályzata a következő beállításokat adhatja meg:

  • Automatikus: Megadhatja, hogy a gyűjtemény automatikusan indexelje-e az összes dokumentumot. Alapértelmezés szerint a rendszer minden dokumentumot automatikusan indexel, de kikapcsolhatja azt. Ha az indexelés ki van kapcsolva, a dokumentumok csak az önhivatkozásaikon vagy az azonosítót használó lekérdezéseken keresztül érhetők el.

  • Indexelési mód: Választhat a szinkron (konzisztens), az aszinkron (lusta) indexfrissítések és a nincs indexelés között. Alapértelmezés szerint az index szinkron módon frissül a gyűjtemény egy dokumentumán végrehajtott minden beszúrási, csere- vagy törlési műveletnél. Ez a frissítés lehetővé teszi, hogy a lekérdezések ugyanolyan konzisztenciaszintet érhessenek el, mint a dokumentum beolvasotté, és az index késlekedés nélkül felzárkózik.

  • Indextípusok és pontosság: Az indexbejegyzésekhez használt típus vagy séma közvetlen hatással van az indextárolásra és a teljesítményre. A nagyobb pontosságot használó sémák esetében a lekérdezések általában gyorsabbak. Az index tárolási többletterhelése azonban magasabb. Ha kisebb pontosságot ad meg, az azt jelenti, hogy több dokumentumot kell feldolgozni a lekérdezés végrehajtása során, de a tárterület többletterhelése alacsonyabb lesz.

  • Indexelési útvonalak: A dokumentumokban kiválaszthatja, hogy mely elérési utakat kell belefoglalni vagy kizárni az indexelésből, ami jobb írási teljesítményt és alacsonyabb indextárolást kínálhat olyan esetekben, amikor a lekérdezési minták előre ismertek.

Az alábbi táblázatok néhány indexelési mintaútvonalat mutatnak be, és azt, hogy hogyan használják őket a lekérdezésekben.

Tulajdonság Leírás
/* A gyűjtemény alapértelmezett elérési útja. Rekurzív, és a teljes dokumentumfára vonatkozik.
/Prop/? Az alábbihoz hasonló lekérdezések kiszolgálásához szükséges indexútvonal (kivonat vagy tartománytípus esetén):

SELECT * FROM gyűjtemény c WHERE c.prop = "value"

SELECT * FROM collection c WHERE c.prop > 5

SELECT * FROM collection c ORDER BY c.prop
/Prop/* A megadott címke alatti összes elérési út indexelési útvonala. A következő lekérdezésekkel működik:

SELECT * FROM gyűjtemény c WHERE c.prop = "value"

SELECT * FROM collection c WHERE c.prop.subprop > 5

SELECT * FROM collection c WHERE c.prop.subprop.nextprop = "value"

SELECT * FROM collection c ORDER BY c.prop
/props/[]/? Indexútvonal szükséges az iteráció és a JOIN lekérdezések skaláris tömbök, például

["a", "b", "c"]:

SELECT tag FROM tag IN collection.props WHERE tag = "value"

SELECT tag FROM collection c JOIN tag IN c.props WHERE tag > 5
/props/[]/subprop/? Az iteráció és a JOIN lekérdezések olyan objektumtömbökhöz való kiszolgálásához szükséges indexútvonal, mint a

[{subprop: "a"}, {subprop: "b"}]:

SELECT címke FROM címke IN collection.props WHERE tag.subprop = "value"

SELECT tag FROM collection c JOIN tag IN c.props WHERE tag.subprop = "value"
/prop/subprop/? A lekérdezések kiszolgálásához szükséges indexútvonal (kivonat vagy tartománytípus esetén):

SELECT * FROM collection c WHERE c.prop.subprop = "value"

SELECT * FROM collection c WHERE c.prop.subprop > 5

SELECT * FROM collection c ORDER BY c.prop.subprop

További információ a Cosmos DB indexelési szabályzatairól: Cosmos DB indexelési szabályzatok. A REST API dokumentációjának alkalmazásában minden példa automatikus indexelést használ.

Ajánlatok és teljesítményszintek

A gyűjtemény létrehozásakor létrejön egy Ajánlat erőforrás is, amely a létrehozott gyűjteményre hivatkozik. Az Ajánlat erőforrás konfigurációs információkat tartalmaz a gyűjtemény átviteli sebességéről a kérelemegységek másodpercenkénti és a kérelemegységek percenkénti mennyiségében.

A gyűjtemény teljesítményszintje az Ajánlat cseréje funkcióval módosítható.

Feladatok

Dokumentumgyűjteményekkel a következőket teheti: