如何在 Event Hub 的存储帐户中列出最新的 AVRO blob?
How to list the newest AVRO blobs in a storage account of Event Hub?
我们在 Microsoft Azure 中有一个事件中心实例,它以 AVRO 格式将数据捕获到 blob 存储帐户中:
Blob 名称是 container1/my-test-namespace/my-test-eventhub
后跟 0、1、2 或 3 - 然后是日期。
我可以使用 ContainerClient python class:
列出 blob
import os, uuid
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient, __version__
print("Azure Blob storage v" + __version__ + " - List blobs in my-test container1")
connect_str = 'DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net'
container_client = ContainerClient.from_connection_string(connect_str, 'container1')
blob_list = container_client.list_blobs()
i = 0
for blob in blob_list:
print(str(i) + ":\t" + blob.name)
i = i + 1
if i >= 10:
break
这很好用-
不过我想知道,如何显示 10 个 最新 blob?
我想列出 10 个最新的 blob,末尾有“.avro”。
我已经在 azure.storage.blob 文档中搜索过,但还没有找到方法。
如果你看上面的截图,有一个“修改”列,我想知道它是否可以从 python 脚本中使用。
很遗憾,azure blob storage sdk 中没有sort
方法。
有 2 个解决方法。
第一个是您可以创建一个 blob 触发的 azure 函数,当在该容器中创建一个新的 blob 时,将相关信息(如 blob_name、creation_time)写入一个数据库等。然后你可以通过访问数据库查询最新的10个blob。这是目前推荐的。
第二个是,你应该列出所有的 blob,然后编写你自己的代码按 creation time
属性.
对它们进行排序
我们在 Microsoft Azure 中有一个事件中心实例,它以 AVRO 格式将数据捕获到 blob 存储帐户中:
Blob 名称是 container1/my-test-namespace/my-test-eventhub
后跟 0、1、2 或 3 - 然后是日期。
我可以使用 ContainerClient python class:
列出 blobimport os, uuid
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient, __version__
print("Azure Blob storage v" + __version__ + " - List blobs in my-test container1")
connect_str = 'DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net'
container_client = ContainerClient.from_connection_string(connect_str, 'container1')
blob_list = container_client.list_blobs()
i = 0
for blob in blob_list:
print(str(i) + ":\t" + blob.name)
i = i + 1
if i >= 10:
break
这很好用-
不过我想知道,如何显示 10 个 最新 blob?
我想列出 10 个最新的 blob,末尾有“.avro”。
我已经在 azure.storage.blob 文档中搜索过,但还没有找到方法。
如果你看上面的截图,有一个“修改”列,我想知道它是否可以从 python 脚本中使用。
很遗憾,azure blob storage sdk 中没有sort
方法。
有 2 个解决方法。
第一个是您可以创建一个 blob 触发的 azure 函数,当在该容器中创建一个新的 blob 时,将相关信息(如 blob_name、creation_time)写入一个数据库等。然后你可以通过访问数据库查询最新的10个blob。这是目前推荐的。
第二个是,你应该列出所有的 blob,然后编写你自己的代码按 creation time
属性.