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:
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.
Feljegyzé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:
Az Azure Portalon válassza ki a tárfiókot.
Lépjen a adatkezelés alatt található Adatvédelmi beállításra.
A Nyomon követés csoportban válassza a Blob-változáscsatorna engedélyezése lehetőséget.
A Mentés gombra kattintva erősítse meg az adatvédelmi beállításokat.
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énti szegmensekbe 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
Feljegyzé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"
}
}
}
Feljegyzé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.
Feljegyzé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ékeControl
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 egyeschunkFilePath
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 leszFinalized
. Az alkalmazás nem használja fel a naplófájlokat olyan szegmensekben, amelyek a fájl tulajdonságánakLastConsumable
$blobchangefeed/meta/Segments.json
dátuma után vannak dátummal elosztva. Íme egy példa egyLastConsumable
fá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. A kérések blokkolását úgy oldhatja fel, ha kivételeket ad meg a megbízható Microsoft-szolgáltatásokra vonatkozóan. 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 sorolja fel 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 aLastConsumable
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.
Gyakori kérdések (GYIK)
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.