您当前的位置:网站首页>中烟新商盟,小米正用时序数据库,处理这个“硬核”问题,uu跑腿

中烟新商盟,小米正用时序数据库,处理这个“硬核”问题,uu跑腿

2019-04-03 14:39:45 投稿作者:admin 围观人数:323 评论人数:0次

作者 | 许俊红

来历 | 小米云技能(id:mi-cloud-tech)

时序数据

依据维基百科的界说[1],时刻序列是一组依照时刻发作先后次序进行摆放的数据点序列。时序数据库(Time重生之盛世科技帝国 Ser枫桥经历ies Database,以下简称TSDB)便是寄存时序数据的数据库。近年来,跟着物联网等概念的盛行,TS查韦斯DB成为数据库一个相对独立的子范畴逐步受到重视,广泛运用于物联网、监控体系、金融、医疗和零售等多种场景。

时序数据

除了具有一般数据的一同特色外,受限于时刻的要素,时序数据有许多独有的特色:

依据上述特色,时序数据体系规划有以下考虑:

TSDB

如前所述,现在时序数据库遍及受到重视,各种TSDB也层出不穷[2],图1是闻名数据库排名网站db-engine[3]曩昔两年有关数据库的趋势排名,TSDB增速最为显着。时序数据由于其独有的宜化王在孝最新消息特色,很少直接运用联络型数据库或NoSQL数据库,而是经过独立规划、优化和完成的。

伤残等级鉴定规范及赔偿规范
怨气撞铃
中烟新商盟,小米正用时序数据库,处理这个“硬核”问题,uu跑腿
修水气候

图1 曩昔两年数据库趋势排名(2019年中森明菜现状3中烟新商盟,小米正用时序数据库,处理这个“硬核”问题,uu跑腿月)

OpenTSDB

OpenTSDB佐仓树里是一款能在不下降精度的情况下存储和处理海量数据的可扩展TSDB,其结构如图2所示[4]。此图以监控这个常用场景为例,展现了各个部分之间的联络。其间,Server节点为被监控的效劳器,一般露出一个HTTP接口供OpenTSDB调用、搜集状况信息。

TSD是OpenTSDB的一个实中烟新商盟,小米正用时序数据库,处理这个“硬核”问题,uu跑腿例,内部结合不来分不开构如空心箭头所示,首要分为两个部分,一部分是Netty,用来读取用户的恳求,以及回来用户操作的成果;另一部分是异步的Callback调用链,这些callback的首要作用是把用户参数转化为hbase client的scan或put的参数,包含参数校验、转化,HBase 91撸Client参数设置、读操作时赵一涵的过滤器设置,最终经过异步客户端读写HBajorkerse集群。这两部分都是异步的,使得OpenTSDB以相对较低的资源耗费确保高吞吐。此外,为了便利用户的交互和保护,OpenTSDB还供给了其他东西。

图2 OpenTSDB体系架构图

关于OpenTSDB,咱们比较重视的有Row key规划、compaction等几个方面。

RowKey规划

OpenTSDB运用外部NoSQL存储引擎存储数据,支撑HBase、BigTable等,由于NoSQL往往是schema-free或许semi-schema的key-value方式进行存储,所以其row key的规划关于读写功用有非常重要的影响。这儿以运用最广泛的HBase存储引擎为例进行分析。

Row Key的数据模型如图3所示[5],第一个字节表明是否敞开盐化,然后三个字节表明metric,接下来四个字节表明数据时刻戳,最终是数据的若干个tag,默许情况下OpenTSDB答应最多8个tag key。别的,需求留意的是,实践存入HBase数据表中的是各个metric、tag的uid,即OpenTSDB把metric映射为一个固定字节的id(即uid)存储HBase的另一张表中,而在数据表顶用uid标识某一个metric或许tag,这样做首要是为了节省空间。

图3 OpenTSDB存储在HBase中的Row Key规划

除了经过uid节省存储空间外,row key的构成也是很风趣的,即metric + timestamp + tagk1 + tagv1...,选用这种次序,是为了拜访形式和功用的考虑:

别的,这儿的timestamp是整点小时的时刻戳。qualifier是事情发作的时刻戳相对整点时刻的偏移,分为秒、毫秒和秒与毫秒混合三种类型。在某些场景下(比方下文的compaction),qualifier也支撑将多个时刻戳拼接在一同,构成一个qualifier,与拼接的value值一一对应。图4以秒为例展现了整个HBase数据表的结构[6]。

图4 OpenTSDB存储在HBase中的数据表结构

Compaction

OpenTSDB compaction是把存储在HBase数据表中的每一行中的多个qualifier依照时刻次序拼接成一个qualifier,多个value拼接成一个valu中烟新商盟,小米正用时序数据库,处理这个“硬核”问题,uu跑腿e,以节省存储空间、进步查询功率。这一规划,首要根据以下现实:

Compaction的完成是有一个独自的线程从HBase中把每行数据读出来,然后把这些数据进行兼并,写入新的qualifier和对应的value,最终把过期数据从HBase中删去。这一进程加剧了HBase客户端与HBase效劳器端的负载,会形成HBase功用的颤动,在出产环境中一般封闭这一特性,也能够在时序数据库地点的物理资源耗费相对低峰的时分,定时履行compaction,来完成数据压缩的意图。

最佳实践

OpenTSDB作为一款高功用TSDB,有许多长处,但运用不当也会形成意料之外的结果,以下是一些实践上的参阅:

小米时序数据库效劳

咱们运用Kubernetes来处理时序效劳的请求、创立、扩容和删去等繁琐的流程,快速呼应流量骤变等需求,提高功率、节省本钱,其结构如图5所示。整个结构分为两个部分,一部分是OpenTSDB的管陈乐荣理体系,一部分是OpenTSDB集群。两者都运行在Kubernetes的Pod里,运用的状况由Kubernetoweltes保护。

OpenTSDB办理体系担任创立、修改和删去OpenTSDB集群以及监控等办理功用。该体系对接了公司内部的身份认证体系,给不同的人物以不同的权限。办理体系共有三种人物:

另一部分是OpenTSDB的读写体系。用户可经过域名读写OpenTSDB,一同OpenTSDB中烟新商盟,小米正用时序数据库,处理这个“硬核”问题,uu跑腿集群天然承继了Kubernetes效劳管理的一整套机制和东西,包含日志、监控、主动重启等。咱们还将对每个OpenTSDB集群供给对应的图形化的拜访和监控界面Grafana。关于用户来说,拜访布置在Kubernetes上的OpenTSDB集群与拜访布置在物理机器上的集群没有体会上的不同。

现在内部产品现已上线,产品文档:http://docs.api.xiaomi.net/opentsdb-manager/ ,运用demo gitlab地址:git@v9.git.n.xiaomi.com:infra/opentsdb-demo.git。欢迎运用及反应,也欢迎公司外部的技能爱好者一同沟通评论。

图5 小米时序数据库效劳

展望

未来,咱们将在以下方面改善咱们的效劳:

总归,OpenTSDB自身的规划投合了核算与存储别离的趋势,并兼具高功用、高精度和易扩展等许多长处。咱们根据此开发的这个时序数据服中烟新商盟,小米正用时序数据库,处理这个“硬核”问题,uu跑腿务已于近来上线,欢迎试用。一同,咱们也梅州市气候预报将亲近重视时序数据库的技能潮流,拥抱开源,供给越来越好的用户体会。

李静安

参阅胃胀怎么办文献:

[1]https://大竹爱子zh.wikipedia.org/wiki/%E6%99%82%E9%96%93%E5%BA%8F%E5%88%97

[2]https://misfra.me/2016/04/09/tsdb-list/

[3]https://db-engines.com/en/ranking/time+series+dbms

[4] http://opentsdb.net/overview.html

[5] http://www.nosqlnotes.com/technotes/opentsdb-tabledesign/

[6] https://blog.csdn.net/b6ecl1k7bs8o/article/details/84207777

(本文为 AI科技大本营转载文章,转中烟新商盟,小米正用时序数据库,处理这个“硬核”问题,uu跑腿载请微信联络 1092722531)

公开课引荐

今晚8点

近年来,谈天机器人技能及产品得到了快速的开展,本课程将全面论述谈天机器人的技能结构及工程完成细节,并关于谈天机器人的下一代范式:虚拟生命,进行了具体的分析,一同,聚集常识图谱在完成认知智能进程中的重要作用,给出了常识图谱的落地实践。

规划 开发 技能
声明:该文观念仅代表作者自己,搜狐号系信息发布渠道,搜狐仅供给信息存储空间效劳。
the end
撒哈拉旅行计划,摩洛哥路线进发