【问题标题】:How to delete the contents of a blob that are stored in snowflake when the blob is deleted删除 blob 时如何删除存储在雪花中的 blob 内容
【发布时间】:2022-01-13 08:28:42
【问题描述】:

我正在构建一个数据管道,我使用了一个 azure 函数,当一个 blob(一个 json 文件)上传到 Azure 容器时会触发它,然后将数据生成到 kafka 中,json 数据最终将存储在雪花中.当有人从容器中删除 blob 时,有什么方法可以获取 blob 的内容,以便我也可以从雪花中删除已删除 blob 的内容?我在考虑使用 eventthub,但我不是很熟悉。

【问题讨论】:

    标签: python azure apache-kafka azure-blob-storage delete-file


    【解决方案1】:

    删除的 blob 对 blob 触发器没有影响。您应该看看带有 blob 事件的事件网格触发器。

    您可以按照此Document 在删除 blob 时触发触发器。

    这是您的事件网格的示例事件:

    [{
      "topic": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
      "subject": "/blobServices/default/containers/testcontainer/blobs/file-to-delete.txt",
      "eventType": "Microsoft.Storage.BlobDeleted",
      "eventTime": "2017-11-07T20:09:22.5674003Z",
      "id": "4c2359fe-001e-00ba-0e04-58586806d298",
      "data": {
        "api": "DeleteBlob",
        "requestId": "4c2359fe-001e-00ba-0e04-585868000000",
        "contentType": "text/plain",
        "blobType": "BlockBlob",
        "url": "https://my-storage-account.blob.core.windows.net/testcontainer/file-to-delete.txt",
        "sequencer": "0000000000000281000000000002F5CA",
        "storageDiagnostics": {
          "batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
        }
      },
      "dataVersion": "",
      "metadataVersion": "1"
    }]
    

    要直接从门户添加事件,您可以导航到存储帐户 -> 事件(从左侧窗格)-> 新事件订阅 -> 设置事件并添加端点详细信息以选择事件。

    有关更多信息,您可以关注此tutorial,以便在删除 blob 时收到通知。

    参考: c# - Azure Storage event triggers - capturing a blob being deleted

    【讨论】:

    • 感谢您的回答。我尝试使用事件网格作为触发器,但我也无法获取数据以将其从雪花中删除。有什么方法可以获取已删除 blob 的内容,以便我可以将其从雪花中删除?
    猜你喜欢
    • 2020-04-09
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 2016-03-25
    相关资源
    最近更新 更多