基于Azure Blob冷存储的数据压缩算法测试对比分析
背景说明:
近期公司的数据增量迅速增长,存储的成本太高,需要采用生命周期进行管理,热存储中的数据或者被删除,或者备份至冷存储。但是冷备时是否要压缩,需要进行验证。Azure本身没有提供压缩的接口,只能自己处理。以下是测试的结论。
备份压缩步骤
采用压缩流。验证了两种方式,方式一在文件较大时(>3G)会超时报错,方式二可行。
1、方式一:将源stream直接压缩包装输出到目标stream。不经过本地磁盘(测试应用服务器)。
这种方式在测试环境中,当文件>3G时,会报超时错误。
2、方式二:先将源文件下载到本地磁盘(测试应用服务器),然后通过压缩流写入目标stream。
基于这种方式,备份的文件操作步骤如下:
说明:
逐个将blob下载到应用服务器,压缩上传后立即删除,再下载next blob,保证在任一时刻,应用服务器上只有一个blob文件,以减少对应用服务器带来的存储压力和存储成本。
压缩算法测试
测试环境
应用服务器
测试应用服务器:App2(虚拟机)
内存:7G
CPU:Interl Xeon E5-2660 2.20GHz,4个虚拟处理器
操作系统:64位,windows server 2012R2
测试数据:Task_Log目录,包括99个blob,大小从1k至5.5G不等,总大小为20G (20553082991 B)。
热存储
AccountName:hdptest
AccountContainer:backup
冷存储
同热存储。通过热存储进行模拟,重点在于压缩算法的测试。
说明:
热存储、冷存储、应用服务器在同一区域内,不会产生传输费用
测试结果
操作耗时说明:
文件下载时间:539.9651764 s
从存储中删除文件时间:0.2446082 s
删除本地文件时间:1.1063126 s
压缩上传时间:见下表
测试失败的算法:
关于以上压缩算法或格式的说明,后附。
分析报告
1、压缩率与压缩速度成反比。压缩速度的差异 > 压缩率的差异
1)压缩率与压缩速度前三名
压缩率前三:7z-高压缩比,Gzip-优化,Gzip-普通
压缩速度前三:LZ4-普通,Deflate-快速,Gzip-快速
2) 在以上几种算法中,LZ4(普通模式)更新适合目前的备份压缩应用场景。
压缩率=28%,20G压缩时间=256s。相对来说,LZ4(普通模式)的磁盘IO较高。
以1T数据量为例,LZ4(普通模式)压缩后的大小估计284G,压缩时间估计3.5小时。
2、基于压缩传输的时间较长,所以备份的数据量要尽量控制,建议按周或更小的粒度来进行表的分区操作。
3、应用服务器、热存储、冷存储三者必须保证在同一个区域内,否则会产生网络传输费用。
4、关于Block Blob的说明:
1)Azure存储中,单个Block Blob最大4.75TB,追加Blob最大195G,Page Blob最大1T。
2)HBase的单个Block Blob 不超过200G,用的是追加Blob。
是否采用压缩的存储费用对比
对比分析前提说明
1、需要进行冷存储的数据为XX日志,目前总量47T,日增量0.5T,月增量15T。XX日志按月分表,每月备份一次,每次备份的数据量为15T。
XX日志生命周期参考如下:
2、热存储中需要常驻4个月的数据,所以假设备份的日期在2017.12(4个月后)。此时,需要冷备的数据量为47T,热存储中数据量为60T。
3、假设采用算法为LZ4(普通模式),压缩率28.42%,压缩时间3.5h/TB。该算法压缩率较高,但速度最快。
4、存储冗余级别为LRS(本地冗余存储),应用服务器、热存储、冷存储在同一数据中心。
压缩时需要将文件下载到应用服务器,由于是逐个下载,上传完毕即删,然后再下载另一个,所以在应用服务器上产生的存储费用忽略。
Blob存储费用说明:
参考:https://www.azure.cn/pricing/calculator/storage/
https://www.azure.cn/pricing/details/storage/
不冷备时的费用
每个月的固定费用:15943 ,并且每月增长 2235
冷备不压缩时的费用
第一次冷备产生的一次性费用:771
每个月的固定费用:8940+5170+246 = 14356 ,并且每月增长 1650
冷备压缩时的费用
第一次冷备产生的一次性费用:219
每个月的固定费用:8940+1469+70 = 10479 ,并且每月增长 469
三种费用对比
三种存储方式下的费用对比:
三种存储方式下的费用对比示例:
压缩算法简介
基于Azure Blob冷存储的数据压缩算法测试对比分析的更多相关文章
- 基于Azure Blob冷存储的数据压缩备份总结
基于上一篇的压缩算法对比分析报告,选择了LZ4算法的普通模式,其测试压缩率为28%,20G压缩时间为256s,估计1T的冷备时间为3.5h. 接下来,将23T的HBase历史数据进行了压缩冷备,压缩后 ...
- Windows Azure HandBook (6) Azure带宽与Azure Blob云存储
<Windows Azure Platform 系列文章目录> 在笔者这几年Azure售前工作中,经常会遇到客户提同样的问题:Azure 虚拟机的带宽是多少?Azure提供独享带宽吗?这个 ...
- 基于Azure blob storage T级别HBase表恢复
为减少Hbase集群压力,提高性能,我们将HBase库中的数据移到另外的存储,下面记录当我需要对数据进行计算时,数据恢复的过程 目录: Azure storage explorer 工具 数据复制 元 ...
- 基于mybatis向oracle中插入数据的性能对比
数据库表结构: 逐条插入sql语句: <insert id="insert" parameterType="com.Structure"> INSE ...
- [AWS vs Azure] 云计算里AWS和Azure的探究(6) - Amazon Simple Storage Service 和 Microsoft Azure Blob Storage
这几天Nasuni公司出了一份报告,分析了各个云厂商的云存储的性能,包括Amazon S3,Azure Blob Storage, Google Drive, HP以及Rackspace.其中性能上A ...
- presto访问 Azure blob storage
当集群使用Azure Blog Storage时,prestoDB无法获取返回结果,在此记录下 如下,hive里面的两个表,一个使用的是本地的hdfs,一个是使用 azure blob storage ...
- Azure Blob (三)参数设置说明
一,引言 上一篇将 Azure Blob 存储的时候,有使用到一个 .NET Core Web 项目,通过代码的方式进行操作 Azure Blob 的数据,接着上一篇的内容,今天继续看一下代码,具体 ...
- 使用Azure Blob存储
可以通过多种方式来对Azure Blob进行操作.在此我们介绍通过VS的客户端及代码两种方式来操作Blob. 一.通过VS来操作Blob. 1.首先下载publish settings 文件:打开“h ...
- 通过 PHP 连接China Azure Blob 存储
问题说明 Azure Blob 存储是一种将非结构化数据作为对象/Blob存储在云中的服务.Blob存储可以存储任何类型的文本或二进制数据,例如文档.媒体文件或应用程序安装程序.Blob存储也称为对象 ...
随机推荐
- 最简单应用的时间日期选择插件---My97DatePicker
最简单的应用:http://www.my97.net/dp/demo/resource/2.1.asp
- redis集群的远程管理与监控
一.redis集群的重要性 目前大部分的互联网平台,都会用到Redis内存数据库,以提高响应速度,提升用户使用体验. 为了实现Redis的高可用,通常都会布署Redis集群,使用Redis-Senti ...
- HDU 2045 RPG难题
http://acm.hdu.edu.cn/showproblem.php?pid=2045 这道题也是用倒推: 先假设前n-2个块都已经涂好,涂第n-1块时有以下两种情况: 1.n-1和1相同,则n ...
- Working C# code for MySql5.5 Stored Procedures IN parameters
MySQL5.5存储过程: #插入一条 涂聚文 DELIMITER $$ DROP PROCEDURE IF EXISTS `geovindu`.`proc_Insert_BookKindList` ...
- jQuery自适应-3D旋转轮播图
3D旋转轮播图 本例源于(站长之家实例http://sc.chinaz.com/jiaoben/170215391070.htm) 其他相似示例(https://www.cnblogs.com/inc ...
- BZOJ3193: [JLOI2013]地形生成
传送门 Sol 第一问可以考虑按照山的高度从大到小放 但是这样如果遇到高度相同的就不好考虑,那么同时要求数量限制从小到大 这样每次放的时候后面的一定不会影响前面,并且高度相同的时候前面能放的位置后面的 ...
- xshell5 可用注册码
101210-450789-147200(可以激活Xshell5,而且可以升级) 亲测可用 只能用于xshell5
- win10_64位系统下安装ALM12.01(QC),笔者只在Win10平台上试过,大家也可以在win7的平台上试一下,一个道理!(Alpha)
HP的ALM是一个非常全面的缺陷管理系统,但安装学习的非常的麻烦,以前学的是ALM,好久没用带今天想学习一下发现安装的非常的困难 !发现网上对ALM的系统安装的介绍非常少,也非常琐碎!今天就借着自己学 ...
- 使用wm_concat函数导致字符串过长
场景:使用select wm_concat(xxxxx) from table 的时候 返回的字符串过长 解决方案 :使用to_clob 将字符串转成 clob类型,但是由于使用的前端框架不能解析cl ...
- js作用域链以及全局变量和局部变量
> [带var] > 在当前作用于中声明了一个变量,如果当前是全局作用域,也相当于给全局作用域设置了一个属性叫做a ```javascript //=>变量提升:var a; < ...