设为首页 加入收藏

TOP

Hummer Time Series DB(蜂鸟时序数据库)技术介绍(二)
2015-07-24 11:10:16 来源: 作者: 【 】 浏览:7
Tags:Hummer Time Series 蜂鸟 时序 数据库 技术 介绍
讲:凡是具有公共服务特征的行业就离不开时序数据—— 或产生时序数据、或消费时序数据、或兼而有之(时序数据库的具体实践请见“最佳实践”一章)。

4. 系统运行环境要求

蜂鸟不需要高端存储设备和高性能小型机,而是使用配置SATA磁盘的普通PC服务器(组成计算存储一体化集群)。这种通用机型的配置要求其实正是大数据、云计算运行环境发展的主流趋势和必然结果。因为通用机型除了价格低廉和保护企业现有投资的原因外,更重要的原因是:可以使用私有云和公有云所提供的虚拟机部署系统。由此可见,蜂鸟系统可部署在提供虚拟机的“私有云”中,甚至还可被部署在EC2这种“公有云”上。

当然对于预算宽裕,或想要求最佳性能表现的客户,完全可以给出较高的环境配置 —— 更高的配置必然能带来更高的性能。

下面简要给出一个大众化的配置要求(可满足大多数要求),供大家参考:

CPU — 4-12 core(主频>2G) # 如果计算任务颇多,可尝试提升CPU主频档次, 另外核/core数最好比机器磁盘数多才好(如8盘,则12核最佳)

内存 — 16G-512G # 32G属于标配,内存越大缓存越多,处理数据也自然更快,所以有实力的可将内存容量扩充到32G、64G、128G、256G、甚至更高。

磁盘 — 2 - 12个STAT/SAS磁盘 # 一般大容量的SATA磁盘速度就足够了,但数量应尽可能多,因为越多的磁盘数量不仅仅是容量增加,更重要是写入和查询性能的提升(近线性提升),所以多盘是高性能性能的保证之一。

网络 — 千兆网络环境 # 千兆网络已能应对大多数场景了,如在万兆网环境下,则写入和查询性能(尤其是大表Join操作)都将显著提升。

OS — Centos6.5(64bit) # 我们推荐比较稳定的Centos系统,不过实际上Linux各种操作系统都予以支持

如果要求更高的处理性能和存储能力,则简单补充机器即可达到目的(性能的具体计算公式见章节10.2)

注:如果需要高可用性,则最少配置三台机器,以保证数据安全;

5. 体系架构

蜂鸟系统最重要的架构特点是分层结构 —— 每层各司其职,相互解耦,独立演化。最重要的两层分别是NOSQL数据层和SQL查询层。 而在NOSQL层于SQL层上分别选择了Shared Nothing和MPP两种分布式经典架构。

层次说明(见图1):

NOSQL数据层 : NOSQL层处于基础层,内部自下而上又分为 “数据存储层” 、“数据同步层”、 “对象检索层”。分别负责数据持久化、多副本数据传播、对象读写控制功能。该层采用NOSQL经典的Shared Nothing架构,具备高扩展性、高并发性、高可用性等优良特性。

SQL查询层 : SQL层依赖于 NOSQL层,内部自下而上又分为“并行SQL执行层” 和“JDBC/ODBC接口层”。该层采用SQL查询领域最成功的MPP架构,具备大吞吐、高并发等优良特性。

离线计算层 : 该层和SQL层一样都是依赖于NOSQL层,但同时也依赖于HADOOP 体系中得M/R组件。简单讲,离线计算原理是利用M/R框架就近(到数据所在机 执行计算任务)操作NOSQL数据层所管理的数据。 从编程接口一节可看到,蜂鸟支持M/R 程序,也支持PIG、HIVE等工具,都些无不得益于离线计算层。显然该层继承了HADOOP离线计算框架具有的大吞吐、高容错等优良特性。

\

?

图 1

6. 时序数据存储格式

近年来,经过在大数据项目中不断探索与实践,使得我们更“懂”时序数据。蜂鸟大胆抛弃了传统数据库的掣肘,针对时序数据设计了专有数据格式和执行计划,以求最佳性能。在展开时序数据存储格式前,重申时序数据处理的主要特征 : 时间断面(区间)上进行精确、模糊、条件检索 —— 例如 : 查找国庆期间查询给定嫌疑人通讯踪迹(精确查询) ; 查春节期间具有“陕A”车牌号字样的进京车辆/总数(模糊前缀查询) ; 查询大年初一北京望京地区用电量最高的电表(地域条件查询);除时间区间上基本检索外,很多场景更需要在时间段面(区间)上进行各种统计分析计算 —— 例如 : 如,总量统计、同比、环比计算等。

我们针对上述时序数据处理的两大场景 : “区间内个体回放”和“区间内统计分析”(前者是在时间区间上进行给定key的检索;后者是在时间区间上进行分析计算),分别设计了KT和TK两种针对性存储格式。如果应用场景同时有统计分析和个体回放两类需求,则可使用蜂鸟专有的PKT格式兼顾这两类需求 —— PKT格式属于TK格式和KT格式之间的一种“折中”选择。若场景确定时,优先考虑使用KT或TK场格式 —— 比如,侦查员追查嫌疑车辆轨迹,或疑犯的通话记录等场景,属标准的个体回放需求,应优先考虑KT格式;路况车流等指标计算则属于区间内统计分析运算需求,应优先考虑TK格式;但当你既想查看给定车轨迹,又想统计路况信息时,则最好选择PKT格式了。

?

我们以示例数据做样本,分别按照三种不同存储格式组织时序数据,通过对比展示几种格式之间的区别。

示例数据:

时间从2012-06-19 20:30:00到2012-06-21 02:30:00三个小时区间为例,共到来9个时序数据,内容分别如下:

2012-06-19 20:30:00(1340109000000) K1,V1(内部包含colume1,colume2,colume3,....)

2012-06-19 20:40:00(1340109600000) K3,V2

2012-06-19 21:10:00(1340111400000) K2,V3

2012-06-19 21:35:00(1340112900000) K1,V4

2012-06-19 21:45:00(1340113500000) K3,V5

2012-06-19 22:15:00(1340115300000) K1,V6

2012-06-19 22:45:00(1340117100000) K3,V7

2012-06-19 22:55:00(1340117700000) K2,V8

2012-06-19 22:58:00(1340117880000) K1,V9

?

TK 格式(即 TIMESTAMP-KEY 格式) —— 该格式首先按照事件发生时间排序,当时间相同时,则再按照事件ID(key)排序。具体 Layout 见表 6.1:
表6.1

Timestamp

Key

Colume1

Colume2

Colume3

....

1340109000000

K1

?

?

?

?

1340109600000

K3

?

?

?

?

1340111400000

K2

?

?

?

?

1340112900000

k1

?

?

?

?

1340113500000

K3

?

?

?

?

1340115300000

K1

?

?

?

?

1340117100000

K3

?

?

?

?

1340117700000

K2

?

?

?

?

1340117880000

K1

?

?

?

?

...

...

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?







KT 格式(即 KEY-TIMESTAMP 格式) —— 该格式首先按照key排序。当在key相同时,则再按照事件发生时间再排序。具体 Layout 见表 6.2:
表6.2

Key

Timestamp

Colume1

首页 上一页 1 2 3 4 5 6 下一页 尾页 2/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)