Azure Blob 存储的文件计数限制

Limits on File Count for Azure Blob Storage

目前,我有一大组文本文件,其中包含来自各种传感器的(历史)原始数据。每天都会接收和处理新文件。我想将其从本地解决方案转移到云端。

Azure 的 Blob 存储是否适合这种小型私人文件?还是我应该追求另一个 Azure 解决方案?

相关数据(无双关语意)和要求-

让我详细说明 David 的评论。

正如 David 所提到的,您可以在 Azure Blob 存储中存储的对象(文件)数量没有限制。该限制是当前为 500TB 的存储帐户的大小。只要你保持在这个限制内,你就会很好。此外,您可以在一个 Azure 订阅中拥有 100 个存储帐户,因此您实际上能够存储的数据量实际上是无限的。

不过我还想再提一件事。似乎在 blob 存储中上传的文件一旦被处理然后就被归档了。为此,我建议您看一下 Azure Cool Blob Storage。它本质上仅用于此目的,您希望存储不经常访问的对象,但当您需要这些对象时,它们几乎可以立即访问。使用 Cool Blob Storage 的优势在于,与 Hot Blob Storage 帐户相比,写入和存储成本更低,但读取成本更高(考虑到它们的预期用例,这是有道理的)。

因此,一个可能的解决方案是将文件保存在您的 Hot Blob 存储帐户中。处理完文件后,它们将移至 Cool Blob Storage。此 Cool Blob 存储帐户可以在相同或不同的 Azure 订阅中。

I'm guessing it CAN be used as a file system, is the right (best) tool for the job.

是的,Azure Blobs Storage 可以用作云文件系统。

The data set contains a millions files of mostly small files, for a total of near 400gb. The average file size is around 50kb, but some files could exceed 40mb.

正如 David 和 Gaurav Mantri 提到的,Azure Blob 存储可以满足这一要求。

I need to maintain the existing data set for posterity's sake.

Azure Blob 存储中的数据是持久的。您可以参考 SERVICE LEVEL AGREEMENTS of Storage.

New files would be uploaded daily, and then processed once. Processing would be handled by Background Workers reading files off a queue.

您可以使用Azure Function 来完成文件处理工作。由于它将每天执行一次,因此您可以添加一个 TimerTrigger 函数。

//This function will be executed once a day
public static void TimerJob([TimerTrigger("0 0 0 * * *")] TimerInfo timerInfo)
{
    //write the processing job here
}

Certain files would be downloaded / reviewed / reprocessed after the initial processing.

Blob 可以随时下载或更新。

此外,如果您的数据处理工作非常复杂,您也可以将数据存储在Azure Data Lake Store 中,然后使用Hadoop 分析框架(如MapReduce 或Hive)进行数据处理工作。可以供应和配置 Microsoft Azure HDInsight 集群以直接访问存储在 Data Lake Store 中的数据。

这是 Azure Data Lake Store 和 Azure Blob Storage 之间的区别。

Comparing Azure Data Lake Store and Azure Blob Storage