Csatornamódok módosítása az Azure Cosmos DB-ben
A KÖVETKEZŐRE VONATKOZIK: NoSQL
Az Azure Cosmos DB két változáscsatorna-módot kínál. Minden mód ugyanazokat az alapvető funkciókat kínálja. A különbségek közé tartoznak a hírcsatornában rögzített műveletek, az egyes módosításokhoz elérhető metaadatok és a módosítások megőrzési időtartama. A változáscsatornát különböző módokon használhatja fel ugyanazon Azure Cosmos DB-tároló több alkalmazásában az egyes számítási feladatok követelményeinek megfelelően. Minden egyes változáscsatorna-alkalmazás csak úgy konfigurálható, hogy egyetlen módban olvassa be a változáscsatornát. A változáscsatorna egy módban való használata nem tiltja meg, hogy a változáscsatornát egy másik módban használja egy másik alkalmazásban.
Feljegyzés
Van visszajelzése a változáscsatorna-módokkal kapcsolatban? Hallani akarjuk! Nyugodtan megoszthatja visszajelzéseit közvetlenül az Azure Cosmos DB mérnöki csapatával: cosmoschangefeed@microsoft.com.
Legújabb verziómódosítási mód
A legújabb verziómód a létrehozásokból és frissítésekből származó elemek módosításainak állandó rekordja. A tároló minden elemének legújabb verzióját kapja meg. Ha például létrehoz egy elemet, majd frissíti a módosítási hírcsatornát, akkor csak a frissített verzió jelenik meg a változáscsatornában. A rendszer nem rögzíti a törléseket módosításként, és ha töröl egy elemet, az már nem érhető el a hírcsatornában. A legújabb verziómódosítási mód alapértelmezés szerint engedélyezve van, és minden Azure Cosmos DB-fiókkal kompatibilis, kivéve a Table API-t és a PostgreSQL API-t. Korábban ez a mód volt az alapértelmezett módja a változáscsatorna felhasználásának.
Az összes verzió és törlés módosítja a hírcsatorna üzemmódját (előzetes verzió)
Az összes verzió és törlési mód (előzetes verzió) állandó rekord az elemek létrehozási, frissítési és törlési műveleteinek minden módosításáról. Az elemek minden egyes módosításáról a bekövetkezett sorrendben kap rekordot, beleértve az elemek köztes módosításait a változáscsatorna olvasásai között. Ha például egy elem létrejön, majd frissül a változáscsatorna elolvasása előtt, az elem létrehozási és frissítési verziói is megjelennek a változáscsatornában. Ha az összes verzióban és törlési módban szeretne olvasni a változáscsatornából, folyamatos biztonsági mentéseket kell konfigurálnia az Azure Cosmos DB-fiókhoz. A folyamatos biztonsági mentések bekapcsolása létrehozza az összes verziót, és törli a változáscsatornát. A változáscsatorna mód használatakor csak a folyamatos biztonsági mentési időszakon belül történt módosításokat olvashatja. Ez a mód csak az Azure Cosmos DB for NoSQL-fiókokkal kompatibilis. További információ az előzetes verzióra való regisztrációról.
Változáscsatorna használati esetei
A legújabb verziómód segítségével egyszerűen feldolgozhatja a tároló elemeinek valós idejű és korábbi módosításait is, így a tároló elejétől visszaléphet a változásokhoz.
Az alábbi forgatókönyvek jól illeszkednek ehhez a módhoz:
Egy teljes tároló áttelepítése másodlagos helyre.
A változások újrafeldolgozásának képessége a tároló elejétől kezdve.
A tároló elemeinek változásainak valós idejű feldolgozása létrehozási és frissítési műveletek eredményeként.
Olyan számítási feladatok, amelyeknek nem kell rögzíteni a törléseket vagy az olvasások közötti köztes változásokat.
Az egyes üzemmódok funkciói
A változáscsatorna-üzemmódok gyakori funkciói mellett minden változáscsatorna mód a következő jellemzőkkel rendelkezik:
A változáscsatorna tartalmazza a tároló elemeire végrehajtott beszúrási és frissítési műveleteket.
A változáscsatorna ezen módja nem naplózza a törléseket. A törléseket úgy rögzítheti, hogy a törlés helyett egy "helyreállítható törlés" jelzőt állít be az elemeken belül. Hozzáadhat például egy attribútumot a hívott
deleted
elemhez az értékkeltrue
, majd beállíthat egy élettartamot (TTL) az elemen. A változáscsatorna frissítésként rögzíti, és a TTL lejártakor az elem automatikusan törlődik. Azt is megteheti, hogy a TTL-funkcióval véges lejárati időt állít be az elemekhez. Ezzel a megoldással a TTL lejárati időszakánál rövidebb időintervallumon belül kell feldolgoznia a módosításokat.A változáscsatorna csak az adott elem legutóbbi módosítását tartalmazza. Előfordulhat, hogy a köztes módosítások nem érhetők el.
Ha töröl egy elemet, az már nem érhető el a változáscsatornában.
A módosítások bármikor szinkronizálhatók, és nincs rögzített adatmegőrzési időszak, amelyre a módosítások elérhetők.
A változáscsatorna nem szűrhető egy adott művelettípusra. Az egyik lehetséges alternatíva, ha hozzáad egy "helyreállítható jelölőt" az elemhez a frissítésekhez, és a változáscsatorna elemeinek feldolgozásakor a jelölő alapján szűr.
A változáscsatorna olvasásának kiindulópontja lehet a tároló elejétől, egy időponttól, egy "mostantól" vagy egy adott ellenőrzőponttól. A kezdési idő pontossága körülbelül öt másodperc.
A változáscsatorna működése
Minden mód kompatibilis különböző módszerekkel az egyes nyelvek változáscsatornájának olvasásához.
A változáscsatorna módosításait a következő módokon használhatja a legújabb verzió módban:
A változáscsatorna olvasásának módja | .NET | Java | Python | Node.js |
---|---|---|---|---|
Adatcsatorna lekérési modelljének módosítása | Igen | Igen | Igen | Igen |
Adatcsatorna processzorának módosítása | Igen | Igen | Nem | Nem |
Azure Functions-eseményindító | Igen | Igen | Igen | Igen |
A válaszobjektum elemzése
A legújabb verzió módban az alapértelmezett válaszobjektum a módosított elemek tömbje. Minden elem tartalmazza az Azure Cosmos DB-elemek szabványos metaadatait, beleértve _etag
és _ts
egy új tulajdonság _lsn
hozzáadásával együtt.
A _etag
formátum belső, és nem szabad függőséget vállalnia, mert bármikor megváltozhat. _ts
módosítás vagy létrehozási időbélyeg. Időrendi összehasonlításhoz használható _ts
. _lsn
egy olyan kötegazonosító, amely csak a tranzakcióazonosítót képviselő változáscsatornához van hozzáadva. Sok elem rendelkezhet ugyanazokkal _lsn
.
ETag
a FeedResponse
az elemen láthatótól eltérő. _etag
egy belső azonosító, amely az egyidejűség-vezérléshez használatos. A _etag
tulajdonság az elem verzióját jelöli, míg a ETag
tulajdonság a hírcsatorna sorrendbe tételére szolgál.
Következő lépések
További információ a változáscsatornáról az alábbi cikkekben: