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ékkel true, 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 olyan elemek tömbje, amelyek megváltoztak. Minden elem tartalmazza az Azure Cosmos DB-elemek szabványos metaadatait, beleértve _etag és _tsegy új tulajdonság _lsnhozzá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.

ETaga _etag/> 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: