当我最近开始与Windows Azure
混在一起的时候,我已经找到了这样一种情况:Block Blob
& Page Blob
。我目前正在将一些text,csv或dat文件上传到blob存储,然后使用我的C#程序为它执行MapReduce
程序。是的,我已经阅读了一些文章,例如article1,article2。
但无法从他们那里得到一个清晰的想法。缩短,Block Blob vs Page Blob
。任何帮助将不胜感激。
答案 0 :(得分:79)
这些差异在msdn,here上有很好的记录。 TL; DR:
注意:高级页面blob具有特定的大小(与常规页面blob不同,可以是任何大小,最高可达8TB)。
高级存储提供有保证的IOPS和吞吐量,具体取决于所选的页面blob大小(从120 IOPS + 25MB / s @ 32GB到7500 IOPS + 250MB / s @ 2048GB和4096GB)。有关IOPS +吞吐量详细信息的具体详细信息,请记录here。
答案 1 :(得分:12)
Davids answer指出了页面和块blob之间的差异。但是也有附加Blob 。简而言之:
答案 2 :(得分:9)
阻止blob可以让你有效地上传大blob。块blob由块组成,每个块由块ID标识。您可以通过编写一组块并按块ID提交块来创建或修改块blob。每个块可以是不同的大小,最大为100 MB(2016-05-31之前使用REST版本的请求为4 MB),块blob最多可包含50,000个块。因此,块blob的最大大小略大于4.75 TB(100 MB X 50,000块)。对于2016-05-31之前的REST版本,块blob的最大大小略大于195 GB(4 MB X 50,000块)。
Page blobs是一组512字节页面,针对随机读写操作进行了优化。要创建页面blob,请初始化页面blob并指定页面blob将增长的最大大小。要添加或更新页面blob的内容,可以通过指定偏移量和与512字节页边界对齐的范围来编写一个或多个页面。对页面blob的写入只能覆盖一个页面,一些页面或最多4 MB的页面blob。写入页面blob就地发生并立即提交到blob。页面blob的最大大小为1 TB。
答案 3 :(得分:5)
块Blob
块Blob用于保存大小约为〜5 TB(50,000个100 MB块)的文本或二进制文件。块Blob的主要用例是存储从头到尾读取的文件,例如网站的媒体文件或图像文件。之所以将它们命名为block blobs
,是因为必须将大于100 MB的文件作为小块上传,然后将其合并(或提交)到最终的blob中。
页面Blob
页面Blob用于保存最大8 TB大小的随机访问文件。页面Blob主要用作VHD的后备存储,用于为Azure虚拟机(Azure VM)提供持久磁盘。它们之所以命名为page blobs
,是因为它们提供了对512字节页面的随机读/写访问权限。
附加Blob
附加blob由类似于块blob的块组成,但已针对附加操作进行了优化。这些通常用于将来自一个或多个源的信息记录到同一个Blob中。例如,对于在多个VM上运行的应用程序,您可能会将所有跟踪日志记录都写入相同的append Blob。单个附加Blob最多可容纳195 GB
答案 4 :(得分:2)
从我的角度来看,另一个答案是
块Blob
附加Blob
页面Blob
答案 5 :(得分:0)
来自Microsoft 块Blob 包含有助于您通过网络管理大型文件的功能。使用块Blob,您可以并行上传多个块,以减少上传时间。每个区块都可以包含MD5哈希值以验证传输,因此您可以跟踪上传进度并根据需要重新发送区块。
何时使用
Azure文件提供一个SMB接口,客户端库和一个REST接口,该接口允许从任何位置访问存储的文件。您想将一个应用程序“举升并转移”到云中,而该云已经使用本机文件系统API在它和Azure中运行的其他应用程序之间共享数据。
Azure Blob提供客户端库和REST接口,允许在块Blob中大规模存储和访问非结构化数据。
Azure磁盘提供客户端库和REST接口,该接口允许持久地存储数据并从连接的虚拟硬盘访问数据。您想提升和转移使用本机文件系统API来将数据读写到永久磁盘的应用程序。