Azure Blob Depolama'de değişiklik akışı desteği
Değişiklik akışının amacı, depolama hesabınızdaki bloblarda ve blob meta verilerinde gerçekleşen tüm değişikliklerin işlem günlüklerini sağlamaktır. Değişiklik akışı, bu değişikliklerin sıralı, garantili, dayanıklı, sabit, salt okunur günlüğünü sağlar. İstemci uygulamaları bu günlükleri istedikleri zaman akış veya toplu iş modunda okuyabilir. Her değişiklik tam olarak bir işlem günlüğü girişi oluşturur, bu nedenle aynı değişiklik için birden çok günlük girdisini yönetmeniz gerekmez. Değişiklik akışı, Blob Depolama hesabınızda gerçekleşen değişiklik olaylarını düşük maliyetle işleyen verimli ve ölçeklenebilir çözümler oluşturmanıza olanak tanır.
Değişiklik akışındaki kayıtları işlemeyi öğrenmek için bkz. Azure Blob Depolama'da değişiklik akışını işleme.
Değişiklik akışı nasıl çalışır?
Değişiklik akışı kayıtları, standart blob fiyatlandırma maliyetiyle depolama hesabınızdaki özel bir kapsayıcıda blob olarak depolanır. Gereksinimlerinize göre bu dosyaların saklama süresini denetleyebilirsiniz (Geçerli sürümün koşullarına bakın). Değişiklik olayları, değişiklik akışına Apache Avro biçim belirtiminde kayıt olarak eklenir: satır içi şemaya sahip zengin veri yapıları sağlayan sıkıştırılmış, hızlı, ikili biçim. Bu biçim Hadoop ekosisteminde, Stream Analytics'te ve Azure Data Factory'de yaygın olarak kullanılır.
Bu günlükleri zaman uyumsuz, artımlı veya tam olarak işleyebilirsiniz. Herhangi bir sayıda istemci uygulaması değişiklik akışını paralel olarak ve kendi hızlarında bağımsız olarak okuyabilir. Apache Drill veya Apache Spark gibi analiz uygulamaları günlükleri doğrudan Avro dosyaları olarak kullanabilir ve bu da günlükleri düşük maliyetli, yüksek bant genişliğine sahip ve özel bir uygulama yazmak zorunda kalmadan işlemenize olanak tanır.
Aşağıdaki diyagramda kayıtların değişiklik akışına nasıl eklendiği gösterilmektedir:
Değişiklik akışı desteği, değişen nesnelere göre verileri işleyen senaryolar için uygundur. Örneğin, uygulamalar şunları yapabilir:
- İkincil dizini güncelleştirme, önbellek ile eşitleme, arama motoru veya diğer içerik yönetim senaryoları.
- Akış şeklinde veya toplu iş modunda nesnelerinize yapılan değişikliklere göre iş analizi içgörülerini ve ölçümlerini ayıklama.
- Kurumsal veri yönetimi için güvenlik, uyumluluk veya iş zekası amacıyla nesnelerinizde zaman içinde gerçekleşen değişiklikleri depolama, denetleme ve analiz etme.
- Olağanüstü durum yönetimi veya uyumluluk için hesabınızda nesne durumunu yedeklemek, yansıtmak veya çoğaltmak için çözümler oluşturun.
- Oluşturulan veya değiştirilen nesneye göre değişiklik olaylarına tepki veren veya yürütmeleri zamanlayan bağlı uygulama işlem hatları oluşturun.
Değişiklik akışı, Blok blobları için Nesne Çoğaltma ve Belirli bir noktaya geri yükleme için önkoşul bir özelliktir.
Not
Değişiklik akışı, bir blobda gerçekleşen değişikliklerin dayanıklı, sıralı bir günlük modelini sağlar. Değişiklikler, değişiklikten birkaç dakika sonra değişiklik akışı günlüğünüzde yazılır ve kullanılabilir hale getirilir. Uygulamanızın olaylara bundan çok daha hızlı tepki vermesi gerekiyorsa, bunun yerine Blob Depolama olaylarını kullanmayı göz önünde bulundurun. Blob Depolama Olayları, Azure İşlevleri veya uygulamalarınızın blobda gerçekleşen değişikliklere hızla tepki vermelerini sağlayan gerçek zamanlı tek seferlik olaylar sağlar.
Değişiklik akışını etkinleştirme ve devre dışı bırakma
Değişiklikleri yakalamaya ve kaydetmeye başlamak için depolama hesabınızda değişiklik akışını etkinleştirmeniz gerekir. Değişiklikleri yakalamayı durdurmak için değişiklik akışını devre dışı bırakın. Portal veya PowerShell'de Azure Resource Manager şablonlarını kullanarak değişiklikleri etkinleştirebilir ve devre dışı bırakabilirsiniz.
Değişiklik akışını etkinleştirirken aklınızda bulundurmanız gereken birkaç şey aşağıdadır.
Her depolama hesabında blob hizmeti için yalnızca bir değişiklik akışı vardır. Değişiklik akışı kayıtları $blobchangefeed kapsayıcısında depolanır.
Oluşturma, Güncelleştirme ve Silme değişiklikleri yalnızca blob hizmeti düzeyinde yakalanır.
Değişiklik akışı, hesapta gerçekleşen tüm kullanılabilir olaylar için tüm değişiklikleri yakalar. İstemci uygulamaları olay türlerini gerektiği gibi filtreleyebilir. (Geçerli sürümün koşullarına bakın).
Değişiklik akışını yalnızca standart genel amaçlı v2, premium blok blobu ve Blob depolama hesapları etkinleştirebilir. Hiyerarşik ad alanı etkinleştirilmiş hesaplar şu anda desteklenmiyor. Genel amaçlı v1 depolama hesapları desteklenmez ancak kapalı kalma süresi olmadan genel amaçlı v2'ye yükseltilebilir. Daha fazla bilgi için bkz . GPv2 depolama hesabına yükseltme.
Azure portalını kullanarak depolama hesabınızda değişiklik akışını etkinleştirin:
Değişiklik akışını kullanma
Değişiklik akışı birkaç meta veri ve günlük dosyası oluşturur. Bu dosyalar depolama hesabının $blobchangefeed kapsayıcısında bulunur. $blobchangefeed kapsayıcısı Azure portalı veya Azure Depolama Gezgini aracılığıyla görüntülenebilir.
İstemci uygulamalarınız, değişiklik akışı işlemci SDK'sı ile birlikte sağlanan blob değişiklik akışı işlemci kitaplığını kullanarak değişiklik akışını kullanabilir. Değişiklik akışındaki kayıtları işlemeyi öğrenmek için bkz. Azure Blob Depolama değişiklik akışı günlüklerini işleme.
Akış kesimlerini değiştirme
Değişiklik akışı, saatlik segmentler halinde düzenlenmiş ancak her birkaç dakikada bir eklenen ve güncelleştirilen değişikliklerin günlüğüdür. Bu segmentler yalnızca o saat içinde gerçekleşen blob değişikliği olayları olduğunda oluşturulur. Bu, istemci uygulamanızın günlüğün tamamında arama yapmak zorunda kalmadan belirli aralıklarda gerçekleşen değişiklikleri kullanmasına olanak tanır. Daha fazla bilgi edinmek için Bkz . Belirtimler.
Değişiklik akışının kullanılabilir saatlik bir kesimi, söz konusu segment için değişiklik akışı dosyalarının yollarını belirten bir bildirim dosyasında açıklanmıştır. Sanal dizinin listesi $blobchangefeed/idx/segments/
, bu segmentleri zamana göre sıralanmış olarak gösterir. Segmentin yolu, segmentin temsil ettiği saatlik zaman aralığının başlangıcını açıklar. İlginizi çekebilecek günlük segmentlerini filtrelemek için bu listeyi kullanabilirsiniz.
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
Not
$blobchangefeed/idx/segments/1601/01/01/0000/meta.json
, değişiklik akışını etkinleştirdiğinizde otomatik olarak oluşturulur. Bu dosyayı güvenle yoksayabilirsiniz. Her zaman boş bir başlatma dosyasıdır.
Segment bildirim dosyası (meta.json
), özelliğindeki ilgili segment için değişiklik akışı dosyalarının chunkFilePaths
yolunu gösterir. Aşağıda bir segment bildirim dosyası örneği verilmiştır.
{
"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"
}
}
}
Not
Kapsayıcı $blobchangefeed
yalnızca hesabınızda değişiklik akışı özelliğini etkinleştirdikten sonra görünür. Kapsayıcıdaki blobları listelemeden önce değişiklik akışını etkinleştirdikten sonra birkaç dakika beklemeniz gerekir.
Olay kayıtlarını değiştirme
Değişiklik akışı dosyaları bir dizi değişiklik olayı kaydı içerir. Her değişiklik olay kaydı, tek bir blobda yapılan bir değişikliğe karşılık gelir. Kayıtlar, Apache Avro biçim belirtimi kullanılarak serileştirilir ve dosyaya yazılır. Kayıtlar Avro dosya biçimi belirtimi kullanılarak okunabilir. Dosyaları bu biçimde işlemek için kullanılabilecek birkaç kitaplık vardır.
Değişiklik akışı dosyaları, ekleme blobları olarak sanal dizinde $blobchangefeed/log/
depolanır. Her yolun altındaki ilk değişiklik akışı dosyası dosya adında (örneğin00000.avro
) yer 00000
alır. Bu yola eklenen sonraki her günlük dosyasının adı 1 artar (Örneğin: 00001.avro
).
Olay kaydı şemaları
Her özelliğin açıklaması için bkz . Blob Depolama için Azure Event Grid olay şeması. BlobPropertiesUpdated ve BlobSnapshotCreated olayları şu anda değişiklik akışına özeldir ve Blob Depolama Olayları için henüz desteklenmemektedir.
Not
Bir segmentin değişiklik akışı dosyaları, bir segment oluşturulduktan hemen sonra görünmez. Gecikme süresi, değişiklik akışının yayımlanma gecikmesinin normal aralığı içindedir ve değişiklik birkaç dakika içinde gerçekleşir.
Şema sürüm 1
Şema sürüm 1 ile değişiklik akışı kayıtlarında aşağıdaki olay türleri yakalanabilir:
- BlobOluştur
- BlobDeleted
- BlobPropertiesUpdated
- BlobSnapshotCreated
Aşağıdaki örnekte, olay şeması sürüm 1'i kullanan JSON biçiminde bir değişiklik olay kaydı gösterilmektedir:
{
"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"
}
}
}
Şema sürüm 3
Şema sürüm 3 ile değişiklik akışı kayıtlarında aşağıdaki olay türleri yakalanabilir:
- BlobOluştur
- BlobDeleted
- BlobPropertiesUpdated
- BlobSnapshotCreated
Aşağıdaki örnekte, olay şeması sürüm 3 kullanan JSON biçiminde bir değişiklik olay kaydı gösterilmektedir:
{
"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"
}
}
}
Şema sürüm 4
Şema sürüm 4 ile değişiklik akışı kayıtlarında aşağıdaki olay türleri yakalanabilir:
- BlobOluştur
- BlobDeleted
- BlobPropertiesUpdated
- BlobSnapshotCreated
- BlobTierChanged
- BlobAsyncOperationInitiated
- RestorePointMarkerCreated
Aşağıdaki örnekte, olay şeması sürüm 4 kullanan JSON biçiminde bir değişiklik olay kaydı gösterilmektedir:
{
"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"
}
}
}
Şema sürüm 5
Şema sürüm 5 ile değişiklik akışı kayıtlarında aşağıdaki olay türleri yakalanabilir:
- BlobOluştur
- BlobDeleted
- BlobPropertiesUpdated
- BlobSnapshotCreated
- BlobTierChanged
- BlobAsyncOperationInitiated
Aşağıdaki örnekte, olay şeması sürüm 5'i kullanan JSON biçiminde bir değişiklik olay kaydı gösterilmektedir:
{
"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"
}
}
}
Şema sürüm 6
Şema sürüm 6 ile değişiklik akışı kayıtlarında aşağıdaki olay türleri yakalanabilir:
- BlobOluştur
- BlobDeleted
- BlobPropertiesUpdated
- BlobSnapshotCreated
- BlobTierChanged
- BlobAsyncOperationInitiated
Şema sürüm 6, soğuk katman için destek ekler.
Aşağıdaki örnekte, olay şeması sürüm 6'nın kullanıldığı JSON biçiminde bir değişiklik olay kaydı gösterilmektedir:
{
"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"
}
}
}
Belirtimler
Değişiklik olayları kayıtları yalnızca değişiklik akışına eklenir. Bu kayıtlar eklendikten sonra sabittir ve kayıt konumu kararlıdır. İstemci uygulamaları, değişiklik akışının okuma konumunda kendi denetim noktalarını koruyabilir.
Değişiklik olay kayıtları, değişikliğin birkaç dakikası içinde eklenir. İstemci uygulamaları, akış erişimi için eklendiği veya başka bir zamanda toplu olarak kayıtları tüketmeyi seçebilir.
Değişiklik olay kayıtları blob başına değişiklik sırasına göre sıralanır. Bloblar arasındaki değişikliklerin sırası Azure Blob Depolama tanımlanmamıştır. Önceki segmentteki tüm değişiklikler, sonraki segmentlerde yapılan değişikliklerden öncedir.
Değişiklik olay kayıtları Apache Avro 1.8.2 biçim belirtimi kullanılarak günlük dosyasında serileştirilir.
değerinin
eventType
Control
iç sistem kayıtları olduğu ve hesabınızdaki nesnelere yapılan bir değişikliği yansıtmadığı olay kayıtlarını değiştirin. Bu kayıtları güvenle yoksayabilirsiniz.Özellik paketindeki
storageDiagnostics
değerler yalnızca dahili kullanım içindir ve uygulamanız tarafından kullanılmak üzere tasarlanmamıştır. Uygulamalarınızın bu verilere sözleşmeye dayalı bağımlılığı olmamalıdır. Bu özellikleri güvenle yoksayabilirsiniz.Segment tarafından temsil edilen süre yaklaşık 15 dakikalık sınırlarla gösterilir. Bu nedenle, tüm kayıtların belirli bir süre içinde tüketilmesini sağlamak için ardışık önceki ve sonraki saat segmentini tüketin.
Yayımlama aktarım hızını yönetmek için günlük akışının
chunkFilePaths
iç bölümlenmesi nedeniyle her kesimin sayısı farklı olabilir. HerchunkFilePath
birindeki günlük dosyalarının birbirini dışlayan bloblar içermesi garanti edilir ve yineleme sırasında blob başına değişiklik sırası ihlal edilmeden paralel olarak kullanılabilir ve işlenebilir.Segmentler durum olarak
Publishing
başlar. Kayıtların segmente eklenmesi tamamlandıktan sonra olurFinalized
. Dosyadaki özelliğin tarihindenLastConsumable
sonra tarihli herhangi bir kesimdeki$blobchangefeed/meta/Segments.json
günlük dosyaları uygulamanız tarafından kullanılmamalıdır. Bir dosyadaki özelliğinLastConsumable
bir örneği aşağıda verilmiştir$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"
}
}
}
Koşullar ve bilinen sorunlar
Bu bölümde, değişiklik akışının geçerli sürümündeki bilinen sorunlar ve koşullar açıklanmaktadır.
- Depolama hesabınız için güvenlik duvarı kurallarını etkinleştirirseniz, $blobchangefeed kapsayıcı içindeki blobları silmeye yönelik yaşam döngüsü yönetimi istekleri engellenebilir. Güvenilen Microsoft hizmetleri için özel durumlar sağlayarak bu isteklerin engellemesini kaldırabilirsiniz. Daha fazla bilgi için Güvenlik duvarlarını ve sanal ağları yapılandırma bölümündeki Özel Durumlar bölümüne bakın.
LastConsumable
segments.json dosyasının özelliği, değişiklik akışının sonlandırdığı ilk kesimi listelemez. Bu sorun yalnızca ilk kesim sonlandırıldıktan sonra oluşur. İlk saatten sonraki sonraki tüm segmentler özelliğindeLastConsumable
doğru şekilde yakalanır.- ListContainers API'sini çağırdığınızda şu anda $blobchangefeed kapsayıcısını göremiyorsunuz. doğrudan $blobchangefeed kapsayıcıda ListBlobs API'sini çağırarak içeriği görüntüleyebilirsiniz.
- Değişiklik akışı etkinken coğrafi olarak yedekli depolama hesaplarının depolama hesabı yük devretmesi, değişiklik akışı günlükleri ile blob verileri ve/veya meta verileri arasında tutarsızlıklara neden olabilir. Bu tür tutarsızlıklar hakkında daha fazla bilgi için bkz . Değişiklik akışı ve blob veri tutarsızlıkları.
- $blobchangefeed ve $blobchangefeedsys kapsayıcılarında 404 (Bulunamadı) ve 412 (Önkoşul Başarısız) hataları bildirilmiş olabilir. Bu hataları güvenle yoksayabilirsiniz.
- Blob sürümleri veya anlık görüntüler silindiğinde BlobDeleted olayları oluşturulmaz. BlobDeleted olayı yalnızca bir temel (kök) blob silindiğinde eklenir.
- Olay kayıtları yalnızca Blob Hizmeti uç noktasına (
blob.core.windows.net
) yapılan isteklerden kaynaklanan bloblarda yapılan değişiklikler için eklenir. Data Lake Storage uç noktasına (dfs.core.windows.net
) yapılan isteklerden kaynaklanan değişiklikler günlüğe kaydedilmez ve değişiklik akışı kayıtlarında görünmez.
Sık sorulan sorular (SSS)
Bkz . Değişiklik akışı desteği hakkında SSS.
Özellik desteği
Bu özellik için destek, Data Lake Storage 2. Nesil, Ağ Dosya Sistemi (NFS) 3.0 protokolü veya SSH Dosya Aktarım Protokolü (SFTP) etkinleştirilerek etkilenebilir. Bu özelliklerden herhangi birini etkinleştirdiyseniz bu özelliğin desteğini değerlendirmek için bkz . Azure Depolama hesaplarında Blob Depolama özelliği desteği.