Adatbázisok, tárolók és elemek az Azure Cosmos DB-ben
A KÖVETKEZŐKRE VONATKOZIK: NoSQL
MongoDB
Cassandra
Gremlin
Asztal
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ó.
Az alábbi képen egy Azure Cosmos DB-fiók entitásainak hierarchiája látható.
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 |