Csatornatámogatás módosítása az Azure Blob Storage-ban

A változáscsatorna célja, hogy tranzakciónaplókat adjon meg a tárfiók blobjainak és blob-metaadatainak változásairól. A változáscsatorna rendezett, garantált, tartós, nem módosítható, írásvédett naplót biztosít ezekről a változásokról. Az ügyfélalkalmazások bármikor elolvashatják ezeket a naplókat streamelés vagy kötegelt módban. Minden módosítás pontosan egy tranzakciónapló-bejegyzést hoz létre, így nem kell több naplóbejegyzést kezelnie ugyanahhoz a változáshoz. A változáscsatorna lehetővé teszi, hogy hatékony és méretezhető megoldásokat hozzon létre, amelyek alacsony költséggel dolgozzák fel a Blob Storage-fiókban előforduló változáseseményeket.

A változáscsatorna rekordjainak feldolgozásáról az Azure Blob Storage változáscsatornájának feldolgozása című témakörben olvashat.

A változáscsatorna működése

A változáscsatornarekordok blobokként vannak tárolva a tárfiókban egy speciális tárolóban, normál blob díjszabási költséggel. A fájlok megőrzési idejét a követelmények alapján szabályozhatja (lásd az aktuális kiadás feltételeit ). A változási események az Apache Avro formátumspecifikáció rekordjaiként vannak hozzáfűzve a változáscsatornához: egy kompakt, gyors bináris formátum, amely részletes adatstruktúrákat és beágyazott sémákat biztosít. Ezt a formátumot széles körben használják a Hadoop-ökoszisztémában, a Stream Analyticsben és az Azure Data Factoryben.

Ezeket a naplókat aszinkron módon, növekményesen vagy teljes egészében is feldolgozhatja. Tetszőleges számú ügyfélalkalmazás képes egymástól függetlenül olvasni a változáscsatornát, párhuzamosan és a saját tempójukban. Az olyan elemzési alkalmazások, mint az Apache Drill vagy az Apache Spark , közvetlenül Avro-fájlokként használhatják a naplókat, így alacsony költséggel, nagy sávszélességgel és egyéni alkalmazás írása nélkül is feldolgozhatók.

Az alábbi diagram bemutatja, hogyan lesznek hozzáadva rekordok a változáscsatornához:

Diagram showing how the change feed works to provide an ordered log of changes to blobs

A változáscsatorna támogatása jól használható olyan forgatókönyvekhez, amelyek a módosított objektumok alapján dolgozzák fel az adatokat. Az alkalmazások például:

  • Másodlagos index frissítése, szinkronizálás gyorsítótárral, keresőmotorral vagy más tartalomkezelési forgatókönyvekkel.
  • Az objektumokon végrehajtott módosítások alapján kinyerheti az üzleti elemzési betekintő adatokat és metrikákat akár adatfolyammal, akár kötegelt módon.
  • Az objektumok módosításainak tárolása, naplózása és elemzése bármilyen időszakra, a biztonság, a megfelelőség vagy a vállalati adatkezelési intelligencia érdekében.
  • Megoldásokat hozhat létre az objektumállapot biztonsági mentésére, tükrözésére vagy replikálására a fiókjában a katasztrófavédelem vagy a megfelelőség érdekében.
  • Olyan csatlakoztatott alkalmazásfolyamatokat hozhat létre, amelyek reagálnak az események módosítására, vagy végrehajtásokat ütemeznek a létrehozott vagy módosított objektum alapján.

A változáscsatorna előfeltétele a blokkblobok objektumreplikációs és időponthoz kötött visszaállításának.

Megjegyzés:

A változáscsatorna tartós, rendezett naplómodellt biztosít a blobok változásairól. A módosítások írása és elérhetővé tehető a változáscsatorna naplójában a módosítástól számított néhány percen belül. Ha az alkalmazásnak ennél sokkal gyorsabban kell reagálnia az eseményekre, fontolja meg inkább a Blob Storage-események használatát. A Blob Storage-események valós idejű egyszeri eseményeket biztosítanak, amelyek lehetővé teszik, hogy az Azure Functions vagy az alkalmazások gyorsan reagáljanak a blobok változásaira.

A változáscsatorna engedélyezése és letiltása

A módosítások rögzítéséhez és rögzítéséhez engedélyeznie kell a tárfiók változáscsatornáját. Tiltsa le a változáscsatornát a módosítások rögzítésének leállításához. A módosításokat azure Resource Manager-sablonokkal engedélyezheti és tilthatja le a Portálon vagy a PowerShellben.

Az alábbiakban néhány dolgot érdemes szem előtt tartani a változáscsatorna engedélyezésekor.

  • Minden tárfiókban csak egy változáscsatorna található a blobszolgáltatáshoz. A változáscsatornarekordok a $blobchangefeed tárolóban vannak tárolva.

  • A módosítások létrehozása, frissítése és törlése csak a blobszolgáltatás szintjén lesz rögzítve.

  • A változáscsatorna rögzíti a fiókban előforduló összes elérhető esemény összes módosítását. Az ügyfélalkalmazások szükség szerint szűrhetik az eseménytípusokat. (Lásd az aktuális kiadás feltételeit ).

  • A változáscsatornát csak a standard általános célú v2-, prémium szintű blokkblob- és Blob Storage-fiókok engedélyezhetik. A hierarchikus névtérrel rendelkező fiókok jelenleg nem támogatottak. Az általános célú v1-tárfiókok nem támogatottak, de általános célú v2-re frissíthetők állásidő nélkül. További információt a GPv2-tárfiókra való frissítés című témakörben talál.

A tárfiók változáscsatornáinak engedélyezése az Azure Portal használatával:

  1. Az Azure Portalon válassza ki a tárfiókot.

  2. Lépjen a adatkezelés alatt található Adatvédelmi beállításra.

  3. A Nyomon követés csoportban válassza a Blob-változáscsatorna engedélyezése lehetőséget.

  4. A Mentés gombra kattintva erősítse meg az adatvédelmi beállításokat.

    Screenshot showing how to enable change feed in Azure portal

A változáscsatorna felhasználása

A változáscsatorna több metaadatot és naplófájlt hoz létre. Ezek a fájlok a tárfiók $blobchangefeed tárolójában találhatók. A $blobchangefeed tároló az Azure Portalon vagy az Azure Storage Exploreren keresztül tekinthető meg.

Az ügyfélalkalmazások a változáscsatornát a változáscsatorna-feldolgozó SDK-val biztosított blobmódosítás-adatcsatorna-feldolgozó kódtár használatával használhatják. A változáscsatorna rekordjainak feldolgozásáról további információt az Azure Blob Storage változáscsatorna-naplóinak feldolgozása című témakörben talál.

Csatornaszegmensek módosítása

A változáscsatorna a változások naplója, amely óránkéntiszegmensekbe van rendezve, de néhány percenként hozzá van fűzve és frissítve. Ezek a szegmensek csak akkor jönnek létre, ha az adott órában blobmódosítási események történnek. Ez lehetővé teszi az ügyfélalkalmazás számára, hogy bizonyos időtartományokon belül bekövetkező módosításokat használjon anélkül, hogy a teljes naplóban kellene keresnie. További információkért tekintse meg a specifikációkat.

A változáscsatorna rendelkezésre álló óránkénti szegmensét egy jegyzékfájl ismerteti, amely meghatározza az adott szegmens változáscsatornafájljainak elérési útját. A virtuális könyvtár listája $blobchangefeed/idx/segments/ az idő szerint rendezett szegmenseket jeleníti meg. A szegmens elérési útja a szegmens által képviselt óránkénti időtartomány kezdetét írja le. Ezzel a listával kiszűrheti az Önt érdeklő naplók szegmenseit.

Name                                                                    Blob Type    Blob Tier      Length  Content Type    
----------------------------------------------------------------------  -----------  -----------  --------  ----------------
$blobchangefeed/idx/segments/1601/01/01/0000/meta.json                  BlockBlob                      584  application/json
$blobchangefeed/idx/segments/2019/02/22/1810/meta.json                  BlockBlob                      584  application/json
$blobchangefeed/idx/segments/2019/02/22/1910/meta.json                  BlockBlob                      584  application/json
$blobchangefeed/idx/segments/2019/02/23/0110/meta.json                  BlockBlob                      584  application/json

Megjegyzés:

A $blobchangefeed/idx/segments/1601/01/01/0000/meta.json változáscsatorna engedélyezésekor a rendszer automatikusan létrehozza a elemet. Ezt a fájlt nyugodtan figyelmen kívül hagyhatja. Ez egy mindig üres inicializálási fájl.

A szegmens jegyzékfájlja (meta.json) a tulajdonságban az adott szegmens változáscsatornafájljainak elérési útját jeleníti meg chunkFilePaths . Íme egy példa egy szegmensjegyzékfájlra.

{
    "version": 0,
    "begin": "2019-02-22T18:10:00.000Z",
    "intervalSecs": 3600,
    "status": "Finalized",
    "config": {
        "version": 0,
        "configVersionEtag": "0x8d698f0fba563db",
        "numShards": 2,
        "recordsFormat": "avro",
        "formatSchemaVersion": 1,
        "shardDistFnVersion": 1
    },
    "chunkFilePaths": [
        "$blobchangefeed/log/00/2019/02/22/1810/",
        "$blobchangefeed/log/01/2019/02/22/1810/"
    ],
    "storageDiagnostics": {
        "version": 0,
        "lastModifiedTime": "2019-02-22T18:11:01.187Z",
        "data": {
            "aid": "55e507bf-8006-0000-00d9-ca346706b70c"
        }
    }
}

Megjegyzés:

A $blobchangefeed tároló csak akkor jelenik meg, ha engedélyezte a változáscsatorna funkciót a fiókjában. A változáscsatorna engedélyezése után néhány percet várnia kell, hogy listázhassa a tárolóban lévő blobokat.

Eseményrekordok módosítása

A változáscsatorna fájljai számos változásesemény-rekordot tartalmaznak. Minden változási eseményrekord egy adott blobhoz tartozó változásnak felel meg. A rekordok szerializálva vannak, és az Apache Avro formátumspecifikációval vannak megírva a fájlba. A rekordok az Avro fájlformátum-specifikációjának használatával olvashatók. Az ilyen formátumú fájlok feldolgozásához több kódtár is rendelkezésre áll.

A változáscsatornafájlok hozzáfűző blobokként vannak tárolva a $blobchangefeed/log/ virtuális könyvtárban. Az egyes elérési utak alatti első változáscsatornafájl a fájlnévben lesz 00000 (például 00000.avro). Az elérési úthoz hozzáadott minden további naplófájl neve 1-zel nő (például: 00001.avro).

Eseményrekord sémái

Az egyes tulajdonságok leírását a Blob Storage Azure Event Grid eseménysémában talál. A BlobPropertiesUpdated és a BlobSnapshotCreated események jelenleg kizárólag a hírcsatorna módosítására használhatók, és a Blob Storage-események esetében még nem támogatottak.

Megjegyzés:

A szegmensek változáscsatornafájljai nem jelennek meg azonnal egy szegmens létrehozása után. A késés hossza a változáscsatorna közzétételi késésének szokásos időközén belül van, amely a módosítástól számított néhány percen belül van.

Séma 1. verziója

Az alábbi eseménytípusok rögzíthetők a változáscsatorna rekordjaiban az 1. sémaverzióval:

  • BlobCreated
  • BlobDeleted
  • BlobPropertiesUpdated
  • BlobSnapshotCreated

Az alábbi példa egy JSON formátumú változásesemény-rekordot mutat be, amely az eseményséma 1-es verzióját használja:

{
    "schemaVersion": 1,
    "topic": "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>",
    "subject": "/blobServices/default/containers/<container>/blobs/<blob>",
    "eventType": "BlobCreated",
    "eventTime": "2022-02-17T12:59:41.4003102Z",
    "id": "322343e3-8020-0000-00fe-233467066726",
    "data": {
        "api": "PutBlob",
        "clientRequestId": "f0270546-168e-4398-8fa8-107a1ac214d2",
        "requestId": "322343e3-8020-0000-00fe-233467000000",
        "etag": "0x8D9F2155CBF7928",
        "contentType": "application/octet-stream",
        "contentLength": 128,
        "blobType": "BlockBlob",
        "url": "https://www.myurl.com",
        "sequencer": "00000000000000010000000000000002000000000000001d",
        "storageDiagnostics": {
            "bid": "9d725a00-8006-0000-00fe-233467000000",
            "seq": "(2,18446744073709551615,29,29)",
            "sid": "4cc94e71-f6be-75bf-e7b2-f9ac41458e5a"
        }
    }
}

Séma 3. verziója

A változáscsatorna rekordjaiban a következő eseménytípusok rögzíthetők a 3. sémaverzióval:

  • BlobCreated
  • BlobDeleted
  • BlobPropertiesUpdated
  • BlobSnapshotCreated

Az alábbi példa egy JSON formátumú változásesemény-rekordot mutat be, amely a 3. eseményséma verzióját használja:

{
    "schemaVersion": 3,
    "topic": "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>",
    "subject": "/blobServices/default/containers/<container>/blobs/<blob>",
    "eventType": "BlobCreated",
    "eventTime": "2022-02-17T13:05:19.6798242Z",
    "id": "eefe8fc8-8020-0000-00fe-23346706daaa",
    "data": {
        "api": "PutBlob",
        "clientRequestId": "00c0b6b7-bb67-4748-a3dc-86464863d267",
        "requestId": "eefe8fc8-8020-0000-00fe-233467000000",
        "etag": "0x8D9F216266170DC",
        "contentType": "application/octet-stream",
        "contentLength": 128,
        "blobType": "BlockBlob",
        "url": "https://www.myurl.com",
        "sequencer": "00000000000000010000000000000002000000000000001d",
        "previousInfo": {
            "SoftDeleteSnapshot": "2022-02-17T13:08:42.4825913Z",
            "WasBlobSoftDeleted": "true",
            "BlobVersion": "2024-02-17T16:11:52.0781797Z",
            "LastVersion" : "2022-02-17T16:11:52.0781797Z",
            "PreviousTier": "Hot"
        },
        "snapshot": "2022-02-17T16:09:16.7261278Z",
        "blobPropertiesUpdated" : {
            "ContentLanguage" : {
                "current" : "pl-Pl",
                "previous" : "nl-NL"
            },
            "CacheControl" : {
                "current" : "max-age=100",
                "previous" : "max-age=99"
            },
            "ContentEncoding" : {
                "current" : "gzip, identity",
                "previous" : "gzip"
            },
            "ContentMD5" : {
                "current" : "Q2h1Y2sgSW51ZwDIAXR5IQ==",
                "previous" : "Q2h1Y2sgSW="
            },
            "ContentDisposition" : {
                "current" : "attachment",
                "previous" : ""
            },
            "ContentType" : {
                "current" : "application/json",
                "previous" : "application/octet-stream"
            }
        },
        "storageDiagnostics": {
            "bid": "9d726370-8006-0000-00ff-233467000000",
            "seq": "(2,18446744073709551615,29,29)",
            "sid": "4cc94e71-f6be-75bf-e7b2-f9ac41458e5a"
        }
    }
}

Séma 4-es verziója

A változáscsatorna rekordjaiban a következő eseménytípusok rögzíthetők a 4-es sémaverzióval:

  • BlobCreated
  • BlobDeleted
  • BlobPropertiesUpdated
  • BlobSnapshotCreated
  • BlobTierChanged
  • BlobAsyncOperationInitiated
  • RestorePointMarkerCreated

Az alábbi példa egy JSON formátumú változásesemény-rekordot mutat be, amely az eseményséma 4-es verzióját használja:

{
    "schemaVersion": 4,
    "topic": "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>",
    "subject": "/blobServices/default/containers/<container>/blobs/<blob>",
    "eventType": "BlobCreated",
    "eventTime": "2022-02-17T13:08:42.4835902Z",
    "id": "ca76bce1-8020-0000-00ff-23346706e769",
    "data": {
        "api": "PutBlob",
        "clientRequestId": "58fbfee9-6cf5-4096-9666-c42980beee65",
        "requestId": "ca76bce1-8020-0000-00ff-233467000000",
        "etag": "0x8D9F2169F42D701",
        "contentType": "application/octet-stream",
        "contentLength": 128,
        "blobType": "BlockBlob",
        "blobVersion": "2022-02-17T16:11:52.5901564Z",
        "containerVersion": "0000000000000001",
        "blobTier": "Archive",
        "url": "https://www.myurl.com",
        "sequencer": "00000000000000010000000000000002000000000000001d",
        "previousInfo": {
            "SoftDeleteSnapshot": "2022-02-17T13:08:42.4825913Z",
            "WasBlobSoftDeleted": "true",
            "BlobVersion": "2024-02-17T16:11:52.0781797Z",
            "LastVersion" : "2022-02-17T16:11:52.0781797Z",
            "PreviousTier": "Hot"
        },
        "snapshot": "2022-02-17T16:09:16.7261278Z",
        "blobPropertiesUpdated" : {
            "ContentLanguage" : {
                "current" : "pl-Pl",
                "previous" : "nl-NL"
            },
            "CacheControl" : {
                "current" : "max-age=100",
                "previous" : "max-age=99"
            },
            "ContentEncoding" : {
                "current" : "gzip, identity",
                "previous" : "gzip"
            },
            "ContentMD5" : {
                "current" : "Q2h1Y2sgSW51ZwDIAXR5IQ==",
                "previous" : "Q2h1Y2sgSW="
            },
            "ContentDisposition" : {
                "current" : "attachment",
                "previous" : ""
            },
            "ContentType" : {
                "current" : "application/json",
                "previous" : "application/octet-stream"
            }
        },
        "asyncOperationInfo": {
            "DestinationTier": "Hot",
            "WasAsyncOperation": "true",
            "CopyId": "copyId"
        },
        "storageDiagnostics": {
            "bid": "9d72687f-8006-0000-00ff-233467000000",
            "seq": "(2,18446744073709551615,29,29)",
            "sid": "4cc94e71-f6be-75bf-e7b2-f9ac41458e5a"
        }
    }
}

Séma 5-ös verziója

Az alábbi eseménytípusok rögzíthetők a változáscsatorna rekordjaiban az 5. sémaverzióval:

  • BlobCreated
  • BlobDeleted
  • BlobPropertiesUpdated
  • BlobSnapshotCreated
  • BlobTierChanged
  • BlobAsyncOperationInitiated

Az alábbi példa egy JSON formátumú változásesemény-rekordot mutat be, amely az eseményséma 5-ös verzióját használja:

{
    "schemaVersion": 5,
    "topic": "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>",
    "subject": "/blobServices/default/containers/<container>/blobs/<blob>",
    "eventType": "BlobCreated",
    "eventTime": "2022-02-17T13:12:11.5746587Z",
    "id": "62616073-8020-0000-00ff-233467060cc0",
    "data": {
        "api": "PutBlob",
        "clientRequestId": "b3f9b39a-ae5a-45ac-afad-95ac9e9f2791",
        "requestId": "62616073-8020-0000-00ff-233467000000",
        "etag": "0x8D9F2171BE32588",
        "contentType": "application/octet-stream",
        "contentLength": 128,
        "blobType": "BlockBlob",
        "blobVersion": "2022-02-17T16:11:52.5901564Z",
        "containerVersion": "0000000000000001",
        "blobTier": "Archive",
        "url": "https://www.myurl.com",
        "sequencer": "00000000000000010000000000000002000000000000001d",
        "previousInfo": {
            "SoftDeleteSnapshot": "2022-02-17T13:12:11.5726507Z",
            "WasBlobSoftDeleted": "true",
            "BlobVersion": "2024-02-17T16:11:52.0781797Z",
            "LastVersion" : "2022-02-17T16:11:52.0781797Z",
            "PreviousTier": "Hot"
        },
        "snapshot" : "2022-02-17T16:09:16.7261278Z",
        "blobPropertiesUpdated" : {
            "ContentLanguage" : {
                "current" : "pl-Pl",
                "previous" : "nl-NL"
            },
            "CacheControl" : {
                "current" : "max-age=100",
                "previous" : "max-age=99"
            },
            "ContentEncoding" : {
                "current" : "gzip, identity",
                "previous" : "gzip"
            },
            "ContentMD5" : {
                "current" : "Q2h1Y2sgSW51ZwDIAXR5IQ==",
                "previous" : "Q2h1Y2sgSW="
            },
            "ContentDisposition" : {
                "current" : "attachment",
                "previous" : ""
            },
            "ContentType" : {
                "current" : "application/json",
                "previous" : "application/octet-stream"
            }
        },
        "asyncOperationInfo": {
            "DestinationTier": "Hot",
            "WasAsyncOperation": "true",
            "CopyId": "copyId"
        },
        "blobTagsUpdated": {
            "previous": {
                "Tag1": "Value1_3",
                "Tag2": "Value2_3"
            },
            "current": {
                "Tag1": "Value1_4",
                "Tag2": "Value2_4"
            }
        },
        "restorePointMarker": {
            "rpi": "cbd73e3d-f650-4700-b90c-2f067bce639c",
            "rpp": "cbd73e3d-f650-4700-b90c-2f067bce639c",
            "rpl": "test-restore-label",
            "rpt": "2022-02-17T13:56:09.3559772Z"
        },
        "storageDiagnostics": {
            "bid": "9d726db1-8006-0000-00ff-233467000000",
            "seq": "(2,18446744073709551615,29,29)",
            "sid": "4cc94e71-f6be-75bf-e7b2-f9ac41458e5a"
        }
    }
}

Séma 6-os verziója

A változáscsatorna rekordjaiban a következő eseménytípusok rögzíthetők a 6-os sémaverzióval:

  • BlobCreated
  • BlobDeleted
  • BlobPropertiesUpdated
  • BlobSnapshotCreated
  • BlobTierChanged
  • BlobAsyncOperationInitiated

A séma 6-os verziója támogatja a hideg réteget.

Az alábbi példa egy JSON formátumú változásesemény-rekordot mutat be, amely az eseményséma 6-os verzióját használja:

{
    "schemaVersion": 6,
    "topic": "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>",
    "subject": "/blobServices/default/containers/<container>/blobs/<blob>",
    "eventType": "BlobCreated",
    "eventTime": "2023-10-11T13:12:11.5746587Z",
    "id": "62616073-8020-0000-00ff-233467060cc0",
    "data": {
        "api": "PutBlob",
        "clientRequestId": "b3f9b39a-ae5a-45ac-afad-95ac9e9f2791",
        "requestId": "62616073-8020-0000-00ff-233467000000",
        "etag": "0x8D9F2171BE32588",
        "contentType": "application/octet-stream",
        "contentLength": 128,
        "blobType": "BlockBlob",
        "blobVersion": "2023-10-11T16:11:52.5901564Z",
        "containerVersion": "0000000000000001",
        "blobTier": "Archive",
        "url": "https://www.myurl.com",
        "sequencer": "00000000000000010000000000000002000000000000001d",
        "previousInfo": {
            "SoftDeleteSnapshot": "2023-10-11T13:12:11.5726507Z",
            "WasBlobSoftDeleted": "true",
            "BlobVersion": "2024-02-17T16:11:52.0781797Z",
            "LastVersion" : "2023-10-11T16:11:52.0781797Z",
            "PreviousTier": "Hot"
        },
        "snapshot" : "2023-10-11T16:09:16.7261278Z",
        "blobPropertiesUpdated" : {
            "ContentLanguage" : {
                "current" : "pl-Pl",
                "previous" : "nl-NL"
            },
            "CacheControl" : {
                "current" : "max-age=100",
                "previous" : "max-age=99"
            },
            "ContentEncoding" : {
                "current" : "gzip, identity",
                "previous" : "gzip"
            },
            "ContentMD5" : {
                "current" : "Q2h1Y2sgSW51ZwDIAXR5IQ==",
                "previous" : "Q2h1Y2sgSW="
            },
            "ContentDisposition" : {
                "current" : "attachment",
                "previous" : ""
            },
            "ContentType" : {
                "current" : "application/json",
                "previous" : "application/octet-stream"
            }
        },
        "asyncOperationInfo": {
            "DestinationTier": "Hot",
            "WasAsyncOperation": "true",
            "CopyId": "copyId"
        },
        "blobTagsUpdated": {
            "previous": {
                "Tag1": "Value1_3",
                "Tag2": "Value2_3"
            },
            "current": {
                "Tag1": "Value1_4",
                "Tag2": "Value2_4"
            }
        },
        "restorePointMarker": {
            "rpi": "cbd73e3d-f650-4700-b90c-2f067bce639c",
            "rpp": "cbd73e3d-f650-4700-b90c-2f067bce639c",
            "rpl": "test-restore-label",
            "rpt": "2023-10-11T13:56:09.3559772Z"
        },
        "storageDiagnostics": {
            "bid": "9d726db1-8006-0000-00ff-233467000000",
            "seq": "(2,18446744073709551615,29,29)",
            "sid": "4cc94e71-f6be-75bf-e7b2-f9ac41458e5a"
        }
    }
}

Specifikációk

  • A változásesemény-rekordok csak a változáscsatornához vannak hozzáfűzve. A rekordok hozzáfűzése után nem módosíthatók, és a rekord pozíciója stabil. Az ügyfélalkalmazások saját ellenőrzőpontot tarthatnak fenn a változáscsatorna olvasási pozíciójában.

  • A változási eseményrekordokat a rendszer a módosítástól számított néhány percen belül hozzáfűzi. Az ügyfélalkalmazások bármikor dönthetnek úgy, hogy a rekordokat a streamhez való hozzáféréshez fűzik, vagy tömegesen.

  • A módosítási eseményrekordok blobonkénti módosítási sorrend szerint vannak rendezve. A blobok változásainak sorrendje nincs meghatározva az Azure Blob Storage-ban. A korábbi szegmensek minden módosítása a későbbi szegmensekben bekövetkező változások előtt van.

  • Az eseményrekordok módosítása az Apache Avro 1.8.2 formátumspecifikációval szerializálva lesz a naplófájlban.

  • Olyan eseményrekordok módosítása, eventType amelyek értéke Control belső rendszerrekord, és nem tükrözi a fiók objektumainak módosítását. Ezeket a rekordokat nyugodtan figyelmen kívül hagyhatja.

  • A tulajdonságcsomag értékei storageDiagnostics csak belső használatra szolgálnak, és nem az alkalmazás által való használatra vannak kialakítva. Az alkalmazások nem függenek az adatoktól. Ezeket a tulajdonságokat nyugodtan figyelmen kívül hagyhatja.

  • A szegmens által képviselt idő körülbelül 15 perc. Annak érdekében, hogy az összes rekord felhasználása meghatározott időn belül történjen, használja fel az egymást követő előző és a következő óra szegmenst.

  • Minden szegmens eltérő számú chunkFilePaths lehet a naplóstream belső particionálása miatt a közzétételi átviteli sebesség kezeléséhez. Az egyes chunkFilePath naplófájlok garantáltan kölcsönösen kizáró blobokat tartalmaznak, és egyidejűleg felhasználhatók és feldolgozhatók anélkül, hogy megsértenék a blobonkénti módosítások sorrendjét az iteráció során.

  • A szegmensek állapotban kezdődnek Publishing . Ha a rekordok hozzáfűzése befejeződött a szegmenshez, az lesz Finalized. Az alkalmazás nem használja fel a naplófájlokat olyan szegmensekben, amelyek a fájl tulajdonságának LastConsumable$blobchangefeed/meta/Segments.json dátuma után vannak dátummal elosztva. Íme egy példa egy LastConsumablefájl tulajdonságára $blobchangefeed/meta/Segments.json :

{
    "version": 0,
    "lastConsumable": "2019-02-23T01:10:00.000Z",
    "storageDiagnostics": {
        "version": 0,
        "lastModifiedTime": "2019-02-23T02:24:00.556Z",
        "data": {
            "aid": "55e551e3-8006-0000-00da-ca346706bfe4",
            "lfz": "2019-02-22T19:10:00.000Z"
        }
    }
}

Feltételek és ismert problémák

Ez a szakasz a változáscsatorna aktuális kiadásának ismert problémáit és feltételeit ismerteti.

  • Ha engedélyezi a tárfiók tűzfalszabályait, az életciklus-felügyeleti kérések blokkolhatják $blobchangefeed tárolón belüli blobok törlését. You can unblock these requests by providing exceptions for trusted Microsoft services. További információ: A tűzfalak és virtuális hálózatok konfigurálása című kivételek szakasz.
  • A LastConsumable segments.json fájl tulajdonsága nem tartalmazza az első szegmenst, amelyet a változáscsatorna véglegesít. Ez a probléma csak az első szegmens véglegesítése után jelentkezik. Az első óra utáni összes további szegmens pontosan rögzítve lesz a LastConsumable tulajdonságban.
  • A ListContainers API meghívásakor jelenleg nem látja a $blobchangefeed tárolót. A tartalmat úgy tekintheti meg, hogy közvetlenül meghívja a ListBlobs API-t a $blobchangefeed tárolóban.
  • A georedundáns tárfiókok azon feladatátvétele, amelyen engedélyezve van a változáscsatorna, inkonzisztenciát okozhat a változáscsatorna naplói és a blobadatok és/vagy metaadatok között. Az ilyen inkonzisztenciákról további információt a változáscsatorna és a blobadatok inkonzisztenciák című témakörben talál.
  • Előfordulhat, hogy a $blobchangefeed és $blobchangefeedsys tárolókon 404 (Nem található) és 412 (előkondicionálási hiba) hiba jelenik meg. Ezeket a hibákat nyugodtan figyelmen kívül hagyhatja.
  • A BlobDeleted események nem jönnek létre a blobverziók vagy pillanatképek törlésekor. A BlobDeleted esemény csak alapszintű (gyökér) blob törlésekor lesz hozzáadva.
  • Az eseményrekordok csak a blobok azon módosításaihoz lesznek hozzáadva, amelyek a Blob Service-végpontra (blob.core.windows.net) irányuló kérelmekből erednek. A Data Lake Storage-végpontra (dfs.core.windows.net) irányuló kérelmekből eredő módosítások nincsenek naplózva, és nem jelennek meg a változáscsatorna-rekordokban.

Frequently asked questions (FAQ)

Lásd a Változáscsatorna támogatásával kapcsolatos gyakori kérdéseket.

Szolgáltatások támogatása

Ennek a funkciónak a támogatását befolyásolhatja a Data Lake Storage Gen2, a Network File System (NFS) 3.0 protokoll vagy az SSH File Transfer Protocol (SFTP) engedélyezése. Ha engedélyezte bármelyik funkciót, tekintse meg a Blob Storage szolgáltatástámogatását az Azure Storage-fiókokban a funkció támogatásának felméréséhez.