Adatbázisok, tárolók és elemek az Azure Cosmos DB-ben

A KÖVETKEZŐKRE VONATKOZIK: Nosql MongoDB Cassandra Gremlin Táblázat

Az Azure Cosmos DB egy teljes körűen felügyelt platform szolgáltatásként (PaaS). Az Azure Cosmos DB használatának megkezdéséhez hozzon létre egy Azure Cosmos DB-fiókot egy Azure-erőforráscsoportban az előfizetésében. Ezután hozzon létre adatbázisokat és tárolókat a fiókon belül.

Az Azure Cosmos DB-fiók egy egyedi DNS-nevet tartalmaz. A DNS-nevet számos eszközzel kezelheti, például:

  • Azure Portal
  • Azure Resource Manager-sablonok
  • Bicep-sablonok
  • Azure PowerShell
  • Azure CLI
  • Azure Management SDK-k
  • Azure REST API

Ha több Azure-régióban szeretné replikálni az adatokat és az átviteli sebességet, bármikor hozzáadhat és eltávolíthat Azure-régiókat a fiókjához. A fiókját úgy konfigurálhatja, hogy egyetlen vagy több írási régióval rendelkezzen. További információ: Azure Cosmos DB-fiók kezelése az Azure Portal használatával. Az alapértelmezett konzisztenciaszintet egy fiókon is konzisztenciaszinten konfigurálhatja.

Azure Cosmos DB-fiók elemei

Jelenleg legfeljebb 50 Azure Cosmos DB-fiókot hozhat létre egy Azure-előfizetésben. Ezt a korlátot támogatási kéréssel növelheti.

Egyetlen Azure Cosmos DB-fiók használatával gyakorlatilag korlátlan mennyiségű adatot és kiosztott átviteli sebességet kezelhet. Az adatok kezeléséhez és a kiosztott átviteli sebességhez hozzon létre egy vagy több adatbázist a fiókjában, majd hozzon létre egy vagy több tárolót az adatok tárolásához.

Az alábbi képen egy Azure Cosmos DB-fiók elemeinek hierarchiája látható.

Diagram of the hierarchy of an Azure Cosmos DB account, including an account, database, and container.

Az alábbi képen egy Azure Cosmos DB-fiók entitásainak hierarchiája látható.

Diagram of the relationship between a container and items, including sibling entities such as stored procedures, user-defined functions, and triggers.

Azure Cosmos DB-adatbázisok

Az Azure Cosmos DB-ben az adatbázis hasonló a névtérhez. Az adatbázis egyszerűen tárolók csoportja. Az alábbi táblázat bemutatja, hogyan van leképezve egy adatbázis különböző API-specifikus entitásokra:

Azure Cosmos DB-entitás API a NoSQL-hez API az Apache Cassandra-hoz API a MongoDB-hez API az Apache Gremlinhez API for Table
Azure Cosmos DB-adatbázis Adatbázis Kulcstér Adatbázis Adatbázis Nem alkalmazható

Feljegyzés

A Table-fiókokHOZ készült API-val az Azure Cosmos DB-ben a táblák fiókszinten jönnek létre az Azure Table Storage-ral való kompatibilitás fenntartása érdekében.

Azure Cosmos DB-tárolók

Egy Azure Cosmos DB-tárolóban tárolják az adatokat. A legtöbb relációs adatbázistól eltérően, amelyek nagyobb méretű virtuális gépekkel skálázhatók fel, az Azure Cosmos DB felskálázható.

Az adatok tárolása egy vagy több, partíciónak nevezett kiszolgálón történik. A partíciók növeléséhez növelheti az átviteli sebességet, vagy automatikusan növekednek a tárterület növekedésével. Ez a kapcsolat gyakorlatilag korlátlan mennyiségű átviteli sebességet és tárterületet biztosít egy tároló számára.

Tároló létrehozásakor meg kell adnia egy partíciókulcsot. A partíciókulcs egy olyan tulajdonság, amelyet az elemek közül kiválasztva segíthet az Azure Cosmos DB-nek az adatok hatékony elosztásában a partíciók között. Az Azure Cosmos DB ennek a tulajdonságnak az értékével irányítja át az adatokat a megfelelő partícióra íráshoz, frissítéshez vagy törléshez. A záradék partíciókulcsát WHERE a lekérdezésekben is használhatja a hatékony adatlekéréshez.

Az Azure Cosmos DB-ben lévő adatok mögöttes tárolási mechanizmusát fizikai partíciónak nevezzük. A fizikai partíciók átviteli sebessége másodpercenként akár 10 000 kérelemegységet is tartalmazhat, és akár 50 GB adat tárolására is képesek. Az Azure Cosmos DB ezt a particionálási koncepciót egy logikai partícióval absztrakciója, amely akár 20 GB adat tárolására is képes.

A logikai partíciók lehetővé teszik, hogy a szolgáltatás nagyobb rugalmasságot és jobb adatkezelést biztosítson a mögöttes fizikai partíciókon, miközben további partíciókat ad hozzá. További információ a particionálásról és a partíciókulcsokról: Particionálás és horizontális skálázás az Azure Cosmos DB-ben.

Tároló létrehozásakor az átviteli sebességet az alábbi módok egyikében konfigurálhatja:

  • Dedikált átviteli sebesség: A tároló átviteli sebessége kizárólag az adott tárolóhoz van fenntartva. A dedikált átviteli sebességnek két típusa van: standard és automatikus skálázás. További információ: Standard (manuális) átviteli sebesség kiépítése egy Azure Cosmos DB-tárolón.

  • Megosztott átviteli sebesség: Az átviteli sebesség az adatbázis szintjén van megadva, majd legfeljebb 25 tárolóval van megosztva az adatbázisban. Az átviteli sebesség megosztása kizárja azokat a tárolókat, amelyek saját dedikált átviteli sebességgel vannak konfigurálva.

    A megosztott átviteli sebesség akkor lehet jó megoldás, ha az adatbázis összes tárolója hasonló kérésekkel és tárolási igényekkel rendelkezik, vagy ha nincs szüksége az adatok kiszámítható teljesítményére. További információ: Standard (manuális) átviteli sebesség kiépítése az Azure Cosmos DB-ben lévő adatbázisokon.

Feljegyzés

Nem válthat a dedikált és a megosztott átviteli sebesség között. A megosztott átviteli sebességű adatbázisban létrehozott tárolók nem frissíthetők dedikált átviteli sebességre. Ha egy tárolót megosztottról dedikált átviteli sebességre szeretne módosítani, létre kell hoznia egy új tárolót, és adatokat kell másolnia. Az Azure Cosmos DB tárolómásolási funkciója megkönnyíti ezt a folyamatot.

A tárolók sémafüggetlenek. A tárolóban lévő elemek tetszőleges sémákkal vagy különböző entitásokkal rendelkezhetnek, feltéve, hogy ugyanazzal a partíciókulcszal rendelkeznek. A tárolók tartalmazhatnak például egy olyan elemet vagy dokumentumot, amely ügyfélprofil-információkkal rendelkezik, valamint egy vagy több olyan tételt vagy dokumentumot, amely az ügyfél összes értékesítési rendelését képviseli. Hasonló információkat helyezhet el az összes ügyfél számára ugyanabban a tárolóban.

Alapértelmezés szerint a tárolóhoz hozzáadott összes adat automatikusan indexelve lesz explicit indexelés nélkül. Az indexelési szabályzat konfigurálásával testre szabhatja egy tároló indexelését.

A teljesítmény befolyásolásának elkerülése érdekében beállíthat egy élettartamot (TTL) egy tároló kijelölt elemein vagy a teljes tárolón, hogy ezeket az elemeket automatikusan törölje a háttérben a nem használt átviteli sebességgel. Ha azonban a lejárt adatok nem törlődnek, akkor sem jelennek meg olvasási műveletekben. További információ: Az Azure Cosmos DB-ben való életidő konfigurálása.

Az Azure Cosmos DB beépített képességet biztosít a változásadat-rögzítéshez, amelyet változáscsatornának hívunk. Ezzel előfizethet a tárolóban lévő összes adatmódosításra.

Regisztrálhat tárolt eljárásokat, eseményindítókat, felhasználó által definiált függvényeket (UDF-eket) és egyesítheti a tároló eljárásait .

A tárolón belüli minden dokumentumnak rendelkeznie kell egy id olyan tulajdonságsal, amely egyedi a logikai kulcs tulajdonságértékén belül az adott tárolóhoz. A tulajdonságok ezen kombinációjával egyedi korlátozást biztosíthat egy tárolón belül anélkül, hogy explicit módon definiálnia kellene egyet.

Egyedi kulcskorlátozást is megadhat az Azure Cosmos DB-tárolón, amely egy vagy több tulajdonságot használ. Az egyedi kulcskényszer biztosítja egy vagy több érték egyediségét logikai partíciókulcsonként. Ha egyedi kulcsszabályzattal hoz létre tárolót, nem hozhat létre olyan új vagy frissített elemeket, amelyek az egyedi kulcskényszer által megadott értékeket duplikálják.

A tárolók API-specifikus entitásokra specializáltak, ahogy az az alábbi táblázatban is látható:

Azure Cosmos DB-entitás API a NoSQL-hez API a Cassandra-hoz API a MongoDB-hez API a Gremlinhez API for Table
Azure Cosmos DB-tároló Tároló Tábla Gyűjtemény Grafikon Tábla

Feljegyzés

Győződjön meg arról, hogy nem két olyan tárolót hoz létre, amelyek neve azonos, de eltérő burkolattal rendelkezik. Az Azure-platform egyes részei nem érzékenyek a kis- és nagybetűkre, és az ilyen elnevezések a diagnosztikai adatok és műveletek összekeverését vagy ütközését eredményezhetik a tárolókon.

Az Azure Cosmos DB-tároló tulajdonságai

Az Azure Cosmos DB-tárolók rendszer által meghatározott tulajdonságokkal rendelkeznek. Attól függően, hogy melyik API-t használja, előfordulhat, hogy egyes tulajdonságok nem lesznek közvetlenül elérhetővé téve. Az alábbi táblázat a rendszer által definiált tulajdonságokat ismerteti:

Rendszer által definiált tulajdonság Rendszer generálva vagy felhasználó által konfigurálható Cél API a NoSQL-hez API a Cassandra-hoz API a MongoDB-hez API a Gremlinhez API for Table
_rid Rendszer generálva Tároló egyedi azonosítója. Igen Nem Nem Nem Nem
_etag Rendszer generálva Az optimista egyidejűség-vezérléshez használt entitáscímke. Igen Nem Nem Nem Nem
_ts Rendszer generálva A tároló utolsó frissített időbélyege. Igen Nem Nem Nem Nem
_self Rendszer generálva A tároló címezhető URI-ja. Igen Nem Nem Nem Nem
id Felhasználó konfigurálható A tároló neve. Igen Igen Igen Igen Igen
indexingPolicy Felhasználó konfigurálható Szabályzat a tároló indexének létrehozásához. Igen Nem Igen Igen Igen
TimeToLive Felhasználó konfigurálható Egy elem automatikus törlése egy tárolóból egy megadott idő elteltével. További részletekért lásd : Élettartam. Igen Nem Nem Nem Igen
changeFeedPolicy Felhasználó konfigurálható Házirend a tároló elemein végrehajtott módosítások olvasásához. További részletekért lásd: Változáscsatorna. Igen Nem Nem Nem Igen
uniqueKeyPolicy Felhasználó konfigurálható Szabályzat egy vagy több érték egyediségének biztosítására egy logikai partícióban. További információ: Egyedi kulcskorlátozások. Igen Nem Nem Nem Igen
AnalyticalTimeToLive Felhasználó konfigurálható Egy elem automatikus törlése egy tárolóból egy meghatározott időszak után, egy elemzési tár kontextusában. További részletekért lásd az Elemzési tárat. Igen Nem Igen Nem Nem

Azure Cosmos DB-elemek

Attól függően, hogy melyik API-t használja, az egyes adatentitások többféleképpen is megjeleníthetők:

Azure Cosmos DB-entitás API a NoSQL-hez API a Cassandra-hoz API a MongoDB-hez API a Gremlinhez API for Table
Azure Cosmos DB-elem Elem Sor Bizonylat Csomópont vagy él Elem

Elem tulajdonságai

Minden Azure Cosmos DB-elem a következő rendszer által meghatározott tulajdonságokkal rendelkezik. Attól függően, hogy melyik API-t használja, előfordulhat, hogy némelyik nem lesz közvetlenül elérhetővé téve.

Rendszer által definiált tulajdonság Rendszer generált vagy felhasználó által definiált Cél API a NoSQL-hez API a Cassandra-hoz DB API a MongoDB-hez API a Gremlinhez API for Table
_rid Rendszer generálva Az elem egyedi azonosítója Igen Nem Nem Nem Nem
_etag Rendszer generálva Optimista egyidejűség-vezérléshez használt entitáscímke Igen Nem Nem Nem Nem
_ts Rendszer generálva Az elem utolsó frissítésének időbélyege Igen Nem Nem Nem Nem
_self Rendszer generálva Az elem címezhető URI-ja Igen Nem Nem Nem Nem
id Bármelyik Felhasználó által definiált egyedi név logikai partícióban Igen Igen Igen Igen Igen
Tetszőleges felhasználó által definiált tulajdonságok Felhasználó által definiált Felhasználó által definiált tulajdonságok az API natív ábrázolásában (beleértve a JSON-t, a BSON-t és a CQL-t) Igen Igen Igen Igen Igen

Feljegyzés

A tulajdonság egyedisége minden id logikai partíción belül érvényesül. Több dokumentum is rendelkezhet ugyanazzal id a tulajdonságértékkel különböző partíciókulcs-értékekkel.

Műveletek elemeken

Az Azure Cosmos DB-elemek a következő műveleteket támogatják. A műveletek végrehajtásához az Azure Cosmos DB API-k bármelyikét használhatja.

Művelet API a NoSQL-hez API a Cassandra-hoz API a MongoDB-hez API a Gremlinhez API for Table
Beszúrás, csere, törlés, írásvédett, olvasás Igen Igen Igen Igen Igen

Következő lépések

További információ az Azure Cosmos DB-fiók kezeléséről és egyéb fogalmakról: