当前位置: 首页 > 知识库问答 >
问题:

用于查询Azure blob名称的快速机制

黎承颜
2023-03-14

我正在尝试在Azure中获取blob名称列表,并且我正在寻找使此操作显着更快的方法。在给定的子文件夹中,blob的数量可以超过150000个元素。Blob的文件名是一个编码的ID,这正是我真正需要得到的,但如果有一种方法只查询元数据或元数据的单个字段,我可以将其存储为某种元数据。

我发现一些简单的事情如下:

var blobList = container.ListBlobs(null, false);

从桌面运行可能需要 60 秒以上,在 Azure 中托管的 VM 上运行时通常需要大约 15 秒。这些时间是基于对一个空容器中125k blob的测试,并且在上传几个小时后,所以它们可以这么说,它们肯定有时间“解决”。

我尝试了多种变体,并尝试使用ListBlobSegmented,但它没有真正的帮助,因为该函数返回了许多我根本不需要的额外信息。我只需要blob名称,这样我就可以得到编码的ID,看看当前存储了什么,没有存储什么。

查询blob名称和提取编码Id有点时间敏感,因此如果我能将其缩短到1秒以下,我会很高兴。如果我将文件存储在本地,我可以在几毫秒内获得整个文件列表,但我必须为此使用Azure存储,因此这不是一个选项。

为了能够减少识别可用 Blob 所需的时间,我唯一能想到的就是跟踪要在给定文件夹中添加或删除的 blob 的名称,并将其存储在单独的 blob 中。然后,当我需要知道该文件夹中的 blob 名称时,我会使用元数据读取 blob,而不是使用 ListBlobs。我想另一种方法是以类似的方式使用Azure表存储,但似乎我被迫缓存有关容器中给定文件夹的信息。

有没有更好的方法来做到这一点,或者当你在一个文件夹中有成千上万的 blob 时,这通常是人们最终会做的事情?

共有1个答案

席宜修
2023-03-14

如前所述,Azure Blob存储是一个存储系统,无法帮助您对内容进行索引。我们现在有了Azure搜索索引器,它对上传到Azure Blob存储的内容进行索引,请参阅https://azure.microsoft.com/en-us/documentation/articles/search-howto-indexing-azure-blob-storage/有了它,您可以执行Azure Search支持的所有功能,例如列表、搜索、分页、排序等。希望这有帮助。

 类似资料:
  • 问题内容: 这是我网址的一部分 用户输入城市名称,例如:我想获取其ID。对于id是。 下面,我发布了我的无效代码。 毕竟,我想将id传递给另一个URL文件并进行解析。我是否需要创建另一个Swift类并以某种方式将其与第一个连接? 问题答案: 构建[city:id]字典可以为您提供解决方案。我基于http://www.codeproject.com/Articles/248883/Objective

  • 问题内容: 我有以下查询: 目前,此查询大约需要93分钟才能完成。我想找到使它更快一点的方法。 该表大约有506,000行,其中大约490,000行包含的值,因此我怀疑我是否可以利用此处的任何索引。 该表(未压缩时)中包含约46 gigs的数据,但是该数据的大部分位于名为的文本字段中。我相信简单地加载和卸载许多页面会导致速度下降。一个想法是做一个新表 只是 在和现场,并保持尽可能小。但是,测试该理

  • 我需要将动态查询参数发送到 REST Web 服务 GET 方法[如下所示]。 主机:端口/应用程序?字段1=值1 消费者可以将参数发送到字段和值。每个字段都映射到值。 有了这种类型的要求,我无法在服务器端方法上编写一组有限的 QueryParams。 我在用python和fastapi 谢谢你。

  • 问题内容: 我有一个在列名中带有空格的数据框。我正在尝试使用方法来获得结果。在“ c”列中工作正常,但出现“ a b”错误 为此,我收到此错误: 我不想用’_’等其他字符填充空间。 有一种使用pandasql的黑客将变量名放在方括号内的示例: [ab] 问题答案: 从大熊猫开始,您将能够使用反引号转义列名称,因此您可以

  • 问题内容: 我有一张表: 如果为is ,则表示该用户当前具有该计划。 我想查询的是:(a)他当前正在使用的计划,或(b)他所参与的最新计划。对于每个给定的用户,我只需要返回一行。 现在,我设法通过使用联合和子查询做到了这一点,但是碰巧表很大,而且效率不高。你们中的每个人都可以有一种更快的查询方式吗? 谢谢, [编辑]多数答案在这里返回单个值。那是我的坏事。我的意思是为每个用户返回一个值,但一次返回

  • 问题内容: 在两个具有相同列名的表上创建VIEW时,如何避免MySQL中的dup列名错误,如下所示 问题答案: 使用别名作为列名