Prise en charge du flux de modification dans Stockage Blob Azure

L’objectif du flux de modification est de fournir des journaux des transactions de toutes les modifications apportées aux objets blob et aux métadonnées d’objets blob dans votre compte de stockage. Le flux de modification fournit un journal ordonné, garanti, durable, immuable et en lecture seule de ces changements. Les applications clientes peuvent lire ces journaux à tout moment, soit en diffusion en continu, soit en mode de traitement par lot. Le flux de modification vous permet de créer des solutions efficaces et évolutives qui traitent les événements de modification qui se produisent dans votre compte Stockage Blob à moindre coût.

Comment fonctionne le flux de modification

Les enregistrements de flux de modification sont stockés en tant qu’objets blob dans un conteneur spécial dans votre compte de stockage au tarif standard des objets blob. Vous pouvez contrôler la période de rétention de ces fichiers en fonction de vos exigences (voir les conditions de la version actuelle). Les événements de modification sont ajoutés au flux de modification sous forme d’enregistrements dans la spécification de format Apache Avro : un format binaire, compact et rapide qui fournit des structures de données enrichies avec un schéma inlined. Ce format est largement utilisé dans l’écosystème Hadoop, Stream Analytics et Azure Data Factory.

Vous pouvez traiter ces journaux de manière asynchrone, incrémentielle ou complète. Un nombre quelconque d’applications clientes peuvent lire indépendamment le flux de modification, en parallèle, et à leur propre rythme. Les applications d’analytique que sont notamment Apache Drill ou Apache Spark peuvent utiliser des journaux directement comme fichiers Avro, ce qui vous permet de les traiter à très faible coût, avec une bande passante élevée et sans avoir à écrire une application personnalisée.

Le diagramme suivant montre comment des enregistrements sont ajoutés au flux de modification :

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

La prise en charge des flux de modification convient parfaitement aux scénarios qui traitent les données en fonction d’objets qui ont été modifiés. Par exemple, les applications peuvent :

  • Mettre à jour un index secondaire, se synchroniser avec un cache, un moteur de recherche ou tout autre scénario de gestion de contenu.
  • Extraire des informations et des métriques d’analytique métier, en fonction des modifications apportées à vos objets, en mode de diffusion en continu ou de traitement par lot.
  • Stocker, auditer et analyser les modifications apportées à vos objets, sur n’importe quelle période de temps, à des fins de sécurité, de conformité ou de renseignement pour la gestion des données d’entreprise.
  • Créer des solutions pour sauvegarder, mettre en miroir ou répliquer l’état des objets dans votre compte pour la gestion d’urgence ou la conformité.
  • Créer des pipelines d’application connectés qui réagissent aux événements de modification ou planifier des exécutions en fonction de l’objet créé ou modifié.

Le flux de modification est une fonctionnalité prérequise pour la réplication d’objets et la restauration dans le temps pour les objets blob de blocs.

Notes

Le flux de modification fournit un modèle de journal durable et ordonné des modifications apportées à un objet blob. Les modifications sont écrites et mises à disposition dans votre journal de flux de modification quelques minutes après la modification. Si votre application doit réagir aux événements plus rapidement que cela, envisagez d’utiliser des événements Stockage Blob à la place. Les événements Stockage Blob sont des événements uniques en temps réel qui permettent à vos fonctions ou applications Azure de réagir rapidement aux modifications apportées à un objet blob.

Activer et désactiver le flux de modification

Vous devez activer le flux de modification sur votre compte de stockage pour commencer la capture et l’enregistrement des modifications. Désactivez le flux de modification pour arrêter la capture des modifications. Vous pouvez activer et désactiver les modifications à l’aide de modèles Azure Resource Manager sur le Portail ou sur PowerShell.

Voici quelques éléments à prendre en compte lorsque vous activez le flux de modification.

  • Il n’existe qu’un seul flux de modification pour le service blob dans chaque compte de stockage. Les enregistrements de flux de modification sont stockés dans le conteneur $blobchangefeed.

  • Les modifications de création, de mise à jour et de suppression sont capturées uniquement au niveau du service blob.

  • Le flux de modification capture toutes les modifications pour tous les événements disponibles qui se produisent sur le compte. Les applications clientes peuvent filtrer les types d’événements selon les besoins. (Voir les conditions de la version actuelle).

  • Seuls des comptes de stockage Blob, d’objets blob de blocs Premium et de type v2 universel Standard peuvent activer le flux de modification. Les comptes ayant un espace de noms hiérarchique ne sont pas pris en charge actuellement. Les comptes de stockage de type v1 universel ne sont pas pris en charge, mais peuvent être mis à niveau vers le type v2 universel sans temps d’arrêt. Pour plus d’informations, consultez Mettre à niveau vers un compte de stockage GPv2.

Activez le flux de modification sur votre compte de stockage à l’aide du portail Azure :

  1. Dans le Portail Azure, sélectionnez votre compte de stockage.

  2. Accédez à l’option Protection des données sous Gestion des données.

  3. Sous Suivi, sélectionnez Activer le flux de modification des objets blob.

  4. Choisissez le bouton Enregistrer pour confirmer vos paramètres de protection des données.

    Screenshot showing how to enable change feed in Azure portal

Utiliser le flux de modification

Le flux de modification produit plusieurs métadonnées et fichiers journaux. Ces fichiers se trouvent dans le conteneur $blobchangefeed du compte de stockage.

Notes

Dans la version actuelle, le conteneur $blobchangefeed est visible uniquement sur le portail Azure, il n’est pas visible dans l’Explorateur Stockage Azure. Actuellement, vous ne pouvez pas voir le conteneur $blobchangefeed lorsque vous appelez l’API ListContainers, mais vous pouvez appeler l’API ListBlobs directement sur le conteneur pour voir les objets blob.

Vos applications clientes peuvent consommer le flux de modification en utilisant la bibliothèque du processeur de flux de modification d’objets blob fournie avec le kit SDK du processeur de flux de modification.

Consultez Traiter les journaux de flux de modification dans Stockage Blob Azure.

Segments de flux de modification

Le flux de changements est un journal de changements qui sont organisés en segmentshoraires, mais ajoutés et mis à jour à intervalles réguliers de quelques minutes. Ces segments sont créés uniquement quand des événements de modification d’objet blob se produisent dans l’heure. Cela permet à votre application cliente de consommer des modifications qui se produisent dans des plages de temps spécifiques sans avoir à effectuer une recherche dans le journal entier. Pour en savoir plus, consultez Spécifications.

Un segment horaire disponible du flux de modification est décrit dans un fichier manifeste qui spécifie les chemins d’accès aux fichiers de flux de modification pour ce segment. La liste du répertoire virtuel $blobchangefeed/idx/segments/ montre ces segments dans l’ordre chronologique. Le chemin d’accès du segment décrit le début de l’intervalle horaire représenté par le segment. Vous pouvez utiliser cette liste pour filtrer les segments de journaux qui vous intéressent.

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

Notes

Le fichier $blobchangefeed/idx/segments/1601/01/01/0000/meta.json est automatiquement créé lorsque vous activez le flux de modification. Vous pouvez ignorer sans risque ce fichier. Il s’agit d’un fichier d’initialisation toujours vide.

Le fichier manifeste de segment (meta.json) affiche le chemin d’accès des fichiers de flux de modification pour ce segment dans la propriété chunkFilePaths. Voici un exemple d’un fichier manifeste de segment.

{
    "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"
        }
    }
}

Notes

Le conteneur $blobchangefeed s’affiche uniquement une fois que vous avez activé la fonctionnalité du flux de modification sur votre compte. Vous devrez patienter quelques minutes après avoir activé le flux de modification pour pouvoir énumérer les objets blob du conteneur.

Enregistrements d’événements de modification

Les fichiers de flux de modification contiennent une série d’enregistrements d’événements de modification. Chaque enregistrement d’événement de modification correspond à une modification apportée à un objet blob individuel. Les enregistrements sont sérialisés et écrits dans le fichier à l’aide de la spécification du format Apache Avro. Les enregistrements peuvent être lus à l’aide de la spécification de format de fichier Avro. Plusieurs bibliothèques sont disponibles pour traiter les fichiers dans ce format.

Les fichiers de flux de modification sont stockés dans le répertoire virtuel $blobchangefeed/log/ sous forme de blobs ajoutés. Le premier fichier de flux de modification sous chaque chemin d’accès comportera 00000 dans le nom de fichier (par exemple 00000.avro). Le nom de chaque fichier journal suivant ajouté à ce chemin d’accès est incrémenté de 1 (par exemple : 00001.avro).

Schémas d’enregistrement des événements

Pour obtenir une description de chaque propriété, consultez Schéma d’événement Azure Event Grid pour Stockage Blob. Les événements BlobPropertiesUpdated et BlobSnapshotCreated sont actuellement exclusifs pour le flux de modification et ne sont pas encore pris en charge pour les événements de stockage Blob.

Notes

Les fichiers de flux de modification d’un segment n’apparaissent pas immédiatement après la création d’un segment. La durée du délai est comprise dans l’intervalle normal de latence de publication du flux de modification, ce qui représente quelques minutes après la modification.

Version du schéma 1

Les types d’événements suivants peuvent être capturés dans les enregistrements de flux de modification avec la version du schéma 1 :

  • BlobCreated
  • BlobDeleted
  • BlobPropertiesUpdated
  • BlobSnapshotCreated

L’exemple suivant montre un enregistrement d’événement de modification au format JSON qui utilise la version du schéma d’événement 1 :

{
    "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"
        }
    }
}

Version du schéma 3

Les types d’événements suivants peuvent être capturés dans les enregistrements de flux de modification avec la version du schéma 3 :

  • BlobCreated
  • BlobDeleted
  • BlobPropertiesUpdated
  • BlobSnapshotCreated

L’exemple suivant montre un enregistrement d’événement de modification au format JSON qui utilise la version du schéma d’événement 3 :

{
    "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"
        }
    }
}

Version du schéma 4

Les types d’événements suivants peuvent être capturés dans les enregistrements de flux de modification avec la version du schéma 4 :

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

L’exemple suivant montre un enregistrement d’événement de modification au format JSON qui utilise la version du schéma d’événement 4 :

{
    "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"
        }
    }
}

Version du schéma 5

Les types d’événements suivants peuvent être capturés dans les enregistrements de flux de modification avec la version du schéma 5 :

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

L’exemple suivant montre un enregistrement d’événement de modification au format JSON qui utilise la version du schéma d’événement 5 :

{
    "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"
        }
    }
}

Spécifications

  • Les enregistrements d’événements de modification sont uniquement ajoutés au flux de modification. Une fois ces enregistrements ajoutés, ils sont immuables et la position d’enregistrement est stable. Les applications clientes peuvent conserver leur propre point de contrôle à la position de lecture du flux de modification.

  • Les enregistrements d’événements de modification sont ajoutés dans l’ordre de quelques minutes après la modification. Les applications clientes peuvent choisir de consommer des enregistrements à mesure qu’ils sont ajoutés pour un accès en continu ou en bloc à un autre moment.

  • Les enregistrements d’événements de modification sont classés par ordre de modification par blob. L’ordre des modifications entre les objets blob n’est pas défini dans Stockage Blob Azure. Toutes les modifications apportées à un segment précédent sont antérieures à toute modification apportée aux segments suivants.

  • Les enregistrements d’événements de modification sont sérialisés dans le fichier journal à l’aide de la spécification de format Apache Avro 1.8.2.

  • Les enregistrements d’événements de modification pour lesquelles eventTypea une valeur de Control sont des enregistrements système internes et ne reflètent pas une modification apportée aux objets de votre compte. Vous pouvez ignorer ces enregistrements sans risque.

  • Les valeurs du conteneur des propriétés storageDiagnostics sont destinées à un usage interne uniquement et ne sont pas conçues pour être utilisées par votre application. Vos applications ne doivent pas avoir de dépendance contractuelle sur ces données. Vous pouvez ignorer ces propriétés sans risque.

  • Le temps représenté par le segment est approximatif avec des limites de 15 minutes. Ainsi, pour garantir l’utilisation de tous les enregistrements dans un intervalle de temps spécifié, utilisez le segment consécutif de l’heure précédente et de l’heure suivante.

  • Chaque segment peut avoir un nombre différent de chunkFilePaths en raison du partitionnement interne du flux de journaux pour gérer le débit de publication. Les fichiers journaux de chaque chunkFilePath sont assurés de contenir des objets blob mutuellement exclusifs et peuvent être utilisés et traités en parallèle sans violer l’ordre des modifications par blob pendant l’itération.

  • Les segments commencent avec l’état Publishing. Une fois que l’ajout des enregistrements au segment est terminé, l’état est Finalized. Les fichiers journaux d’un segment dont la date est postérieure à celle de la propriété LastConsumable du fichier $blobchangefeed/meta/Segments.json ne doivent pas être consommés par votre application. Voici un exemple de la propriété LastConsumabledans un fichier $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"
        }
    }
}

Conditions et problèmes connus

Cette section décrit les problèmes connus et les conditions de la version actuelle du flux de modification.

  • La propriété url du fichier journal est actuellement toujours vide.
  • La propriété LastConsumable du fichier segments.json ne répertorie pas le tout premier segment que le flux de modification finalise. Ce problème se produit uniquement après la finalisation du premier segment. Tous les segments suivants après la première heure sont capturés avec précision dans la propriété LastConsumable.
  • Actuellement, vous ne pouvez pas voir le conteneur $blobchangefeed quand vous appelez l’API ListContainers, et le conteneur n’apparaît pas dans le Portail Azure ou l’Explorateur Stockage. Vous pouvez afficher le contenu en appelant l’API ListBlobs directement sur le conteneur $blobchangefeed.
  • Les comptes de stockage qui ont lancé précédemment un basculement de compte peuvent rencontrer des problèmes de non-affichage du fichier journal. Tout basculement de compte ultérieur peut également avoir un impact sur le fichier journal.

Prise en charge des fonctionnalités

Ce tableau montre comment cette fonctionnalité est prise en charge dans votre compte ainsi que l’impact sur la prise en charge lorsque vous activez certaines fonctionnalités.

Type de compte de stockage Stockage Blob (prise en charge par défaut) Data Lake Storage Gen2 1 NFS 3.0 1 SFTP 1
Usage général v2 Standard Yes No No No
Objets blob de blocs Premium Yes No No No

1 Data Lake Storage Gen2, le protocole Network File System (NFS) 3.0 et le support SSH File Transfer Protocol (SFTP) requièrent tous un compte de stockage avec un espace de noms hiérarchique activé

Questions fréquentes (FAQ)

Quelle est la différence entre le flux de modification et la journalisation Storage Analytics ?

Les journaux d’analytique contiennent des enregistrements sur toutes les opérations de lecture, d’écriture, d’énumération et de suppression, avec une indication de réussite ou d’échec de requête pour toutes les opérations. Les journaux d’analytique sont régis par le principe du « meilleur effort », et aucun classement n’est garanti.

Le flux de modification est une solution qui fournit un journal transactionnel des mutations réussies ou des modifications apportées à votre compte, telles que la création, la modification et la suppression de blobs. Le flux de modification garantit l’enregistrement et l’affichage de tous les événements dans l’ordre des modifications réussies par blob. Vous n’avez donc pas besoin de filtrer le bruit d’un énorme volume d’opérations de lecture ou de requêtes ayant échoué. Le flux de modification est essentiellement conçu et optimisé pour une développement d’application exigeant certaines garanties.

Dois-je utiliser le flux de modification ou les événements de stockage ?

Vous pouvez tirer parti des deux, car le flux de modification et les événements Stockage Blob fournissent les mêmes informations avec la même garantie de fiabilité de remise. Leurs principales différences sont la latence, le classement et le stockage des enregistrements d’événements. Le flux de modification publie des enregistrements dans le journal dans les quelques minutes qui suivent la modification, et garantit l’ordre des opérations de modification par objet blob. Les événements de stockage sont envoyés (push) en temps réel et peuvent ne pas être classés. Les événements de flux de modification sont stockés durablement dans votre compte de stockage en tant que journaux stables en lecture seule avec vos propres paramètres de conservation définis, tandis que les événements de stockage sont temporaires et consommés par le gestionnaire d’événements, sauf si vous les stockez de façon explicite. Avec le flux de modification, toutes vos applications peuvent utiliser les journaux à leur convenance à l’aide d’API Blob ou de Kits de développement logiciel (SDK).

Étapes suivantes