将数据更快或并行加载到单个 Azure Blob

Faster or parallel loading data into single Azure Blob

场景:

我有大约 37k 个项目,对于每个项目,我从外部 API 下载一些数据,执行一些数据修改,然后放入单个 azure 块 blob。最终的 blob 大小约为 900mb。此外,我正在分批加载数据,以免达到 4mb 块限制。所以所有的项目都是线性处理的,一个接一个。

你现在有什么办法可以加快这个过程吗?我考虑过将数据并行加载到 blob 中,例如将这些 37k 项分成 5 个块并同时处理所有这些块,但据我所知,同时从多个来源加载到单个 blob 中并不是完全有可能。

另一种情况是从这 5 个块中的每一个创建不同的 blob,最后将它们组合成一个最终的 blob。但这需要从每个单个 blob 读取数据以将其写入最后一个 - 有没有什么方法可以更快地组合包含 json 格式的 blob?

您当然可以通过并行上传块来加快该过程。块 blob 是理想的选择。

考虑到您有 37k 个项目,您可以做的是将每个项目作为一个块上传(即基本上您将上传 37k 个块)。您将为每个块分配一个唯一的块 ID。

上传完所有 37k 块后,您需要做的是发送块 ID 列表以创建 blob。

要了解更多信息,请阅读 REST API 文档:

放置方块 - https://docs.microsoft.com/en-us/rest/api/storageservices/put-block

放入阻止列表 - https://docs.microsoft.com/en-us/rest/api/storageservices/put-block-list