设为首页 加入收藏

TOP

Hummer Time Series DB(蜂鸟时序数据库)技术介绍(五)
2015-07-24 11:10:16 来源: 作者: 【 】 浏览:4
Tags:Hummer Time Series 蜂鸟 时序 数据库 技术 介绍
00)等特有聚合语法。

?

7.5. 节约空间

蜂鸟系统存储时序数据相比传统数据库更节约空间。其主要原因如下:

数据压缩存储 :蜂鸟支持面向行和列的压缩,数据压缩比可达到3 – 20 (具体压缩比和数据内容密切相关)

无需额外索引 :蜂鸟避免了像传统数据库那样,在时间列和事件id上建立b树索引,而是将“时间”和“事件ID/Key”撮合为组合KEY,借助LSM树维护有序记录(见数据存储格式一章)。这种“前缀”索引结构以来不但便于时序处理,而且无需额外索引文件,节约了大量存储空间。

相对于多数传统数据库,蜂鸟至少能节约3-4倍以上的存储空间。比如我们在基准测试一章中提到的120亿、大约600G的气象原始文本数据。如果在关系数据库(如mysql)中存储,数据本身,再加上索引(需要在key、timestamp、key+timestamp上分别建立索引)大约需要近2*600 = 1.2T存储空间,而在蜂鸟系统中无须额外建索引,且有至少3-4倍的压缩比,所以实际存储空间只需要600/3 = 0.2 T存储空间。

7.6. 在线离线处理一体化(混合负载支持)

在传统的大数据处理流程中,在线系统(如OLTP、AD HOC)与离线系统(如报表、OLAP 、数据挖掘)往往被部署成相互独立的的两个集群 —— 在线集群负责数据检索,离线集群负责数据分析。之所以将数据划分到不同集群,是为了避免离线分析对在线数据查询带来负载干扰,妨碍在线系统使用。但如此划分,无疑需要额外的数据搬迁和数据抽取,即ETL过程 —— 数据需要“定期”从在线系统中导入到离线系统。 在工程中运维人员一般会在每天夜间进行ETL操作。但这种传统做法有几个弊端:

1. 因为离线集群中的数据总要落后于在线集群,所以“新鲜”数据不能及时被分析,从而数据的时效性较差,分析价值也大打折扣。

2. ETL操作和维护两个集群都需要额外的软件和操作人员,无形增加了软件和人员成本。

那么理想情况应该将离线集群与在线集群合并,避免不必要的ETL工作,也无需再维护两个集群。为了达到”在线\离线一体化”目的着重需要解决的技术问题是如何避免在线任务和离线任务的负载隔离。具体技术是:

数据多副本异构同步存储 —— 同一份数据需要存储为多个不同副本,副本之间要求数据同步,副本各自可拥有自己的格式。不同副本将应对不同类型的任务,如列存格式的副本应对分析类任务,排序行存格式应对检索任务。

任务智能调度,根据任务的不同类型、和集群负载情况,动态选择合适的机器和数据副本执行任务。要求达到最大的资源利用率和性能。

?

\

图3

7.7. 灵活的数据一致性

根据不同业务需求,用户可选择不同的数据一致性约束。蜂鸟支持如下一致性:

数据“强一致性”:在线检索多使用强一致性

数据“弱一致性”(最终一致性):离线分析时常使用最终一致性。

Session一致性 :

7.8. 高可用性和高数据安全性

首先蜂鸟实现了磁盘粒度的故障处理,即当某个磁盘故障时,所在机器其余磁盘负责的数据服务不受影响;另外根据实践统计,存储型机器硬盘年故障率约为3%(网络故障率和机器其他硬件故障率相比磁盘故障要低1-2个数量级别,故下面计算可忽略不计),系统故障切换(Failover)的时间为20秒,系统恢复一块故障硬盘上所存数据最多需要1小时。根据上述条件,我们可计算出“系统可用性”和”数据安全性”这两个衡量系统健壮性的典型指标。

可用性量化计算

假设一个table只要有一个分片(fragment)不可用,则认为该table不可用。我们只考虑因disk故障(最主要因素)引起的不可用。按含有10台机器的典型集群计算,每台机器8块数据盘,每块数据盘10个副本,分片冗余数为3 —— 即每个分片3 个副本(replica)。一个table在一年内有分片不可用的累计时间是:10*8*3% /20≈0.2小时,有分片有两个副本同时因disk故障丢失的时间为: 10*8*10*2/3*3%*3%/365/24≈0.001826时,因此可得可用性为 1- (0.2 + 0.001826)/365/24≈99.999%。

可靠性量化计算

一个key-value对成功写入系统后,在一年内丢失的概率为:3%*3%/365/24*3%/365/24≈3.5*10-13,即可靠性为99.99999999996%。

7.9. 可扩展性优势

当数据过多造成容量不足时,或检索分析过程发现性能不足时,蜂鸟只需简单增加硬件即可让系统容量,同时性能也会线性提升—— 增加硬件应优先考虑增加机器中的磁盘,然后才是增加机器。

7.10. 高并发优势

蜂鸟设计上重点考虑了多用户并发读写需求,因此相比传统数据库而言,蜂鸟系统在并发性上可以说优势显著 ——SQL接口可支持到数百级别并发读写 ;NOSQL接口单机可支持到数万级别并发读写。

高并发度的根本原因在于数据负载和查询负载能保持均衡(无数据倾斜和计算倾斜)。因为蜂鸟在时序数据存储时,会将记录按KEY均衡分布到集群中各机器上,在机器内部还会被均分到各磁盘上;而对于分析计算任务,按照数据就近原则,子查询任务将被派发到各段数据所在机器的所在磁盘上并行执行。这种数据分布和计算分布策略对于时序数据处理场景能做做到最大均衡,不存在数据或计算“热点”问题。(Hbase虽然也常用于时序存储,但只能做到数据均衡而无法做到计算均衡)

7.11. 互联互通性

除了接口上符合 SQL92 和 M/R 标准外 (见章节8),在互联互通性方面蜂鸟进一步做了两个努力: ?

兼容 Mysql协议 :其目的是为了让蜂鸟继承Mysql 客户端的最大优势 ——支持多平台(Linux,Windows,Mac OS)工具访问。但更重要的好处则是:蜂鸟可以借助Mysql协议支持第三方BI软件(因为多数BI软件都支持Mysql)。 ?

蜂鸟提供了自身与传统关系数据库之间的数据高速迁移工具:可以高效的从传统关系数据库(如 Oracle、Mysql)将数据迁移到蜂鸟时序数据库中,反之亦然。

7.12.丰富的分析函数

方便和强大的分析函数是分析型数据库不可或缺的功能—— 既能简化繁琐的SQL表达式,又能提高分析效率。因此蜂鸟系统也努力提供了如下分析函数:

一些列内置的分析函数(兼容Oralce分析函数,如lag,lead,over等窗口函数)

允许用户自定义分析函数

提供特定行业(如交通、电力)的业务分析函数

7.13. 简单易用的管理界面

蜂鸟管理中断简单易用,功能完善。支持:一键安装、SQL编辑、结果可视化、故障恢复扩容、缩容等操作。

7.14. 其它优势

支持跨数据中心部署:蜂鸟可应对数据高安全性要求,支持跨机房(地域)部署。

支持数据超期淘汰(OldOut) :蜂鸟支持过期数据自动淘汰,以腾出存储空间用于存储近期数据(如,只存储最近半年的数据)。

支持在线备份:无需停机可在线备份数据(如磁带机)。

支持非时序表:除了时序表外,码表和结果表都是典型非时序表。因此蜂鸟除了重点支持时序表外,同时也支持非时序表的支持。从而予用户使用上的最大方便—— 如,用户可以将时序表和码表进行join,还可以将join结果写入到结果表中。

支持按需动态健表、删表:用户可针对不同场景,在建表语句中指定表类型(时序、非时序)和分布属性(副本数、分布广度等);建表语句可由管理员手动执行,也可在程序中通过

首页 上一页 2 3 4 5 6 下一页 尾页 5/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ADO.NET之6-使用Command修改数据.. 下一篇HummerTimeSeriesDB技术架构介绍

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·数据库:推荐几款 Re (2025-12-25 12:17:11)
·如何最简单、通俗地 (2025-12-25 12:17:09)
·什么是Redis?为什么 (2025-12-25 12:17:06)
·对于一个想入坑Linux (2025-12-25 11:49:07)
·Linux 怎么读? (2025-12-25 11:49:04)