为物联网而生:高性能时间序列数据库HiTSDB商业化首发!

时间:2023-01-10 10:23:27

摘要: 近日,阿里云宣布高性能时间序列数据库 (High-Performance Time Series Database , 简称 HiTSDB) 正式商业化。

近日,阿里云宣布高性能时间序列数据库 (High-Performance Time Series Database , 简称 HiTSDB) 正式商业化。

先跟大家聊一下什么叫时序数据。简单的说,就是时间上分布的一系列数值,关键字是数值,我们一般认为的时序数据是什么时间发生了什么事情,但是在时序数据这个领域里定义的时序数据全都是跟数值有关的。也就是说,如果只是一个带有时间戳的一条数据并不能叫做时序数据。举个例子,比如像我早上8点半上楼吃了个饭这条记录,相当于一个日志,这个本身不构成一个时序数据,但是如果某个餐厅早上8点半同时有50个人在那里吃饭,这个50加上餐厅的信息再加这个时间点就构成了一个时序数据。

单值与多值建模

实际上通用的建模方式有两种,其中的一种是单值。实际上我们是针对不同的东西来建模的,多值的模型是针对数据源建模,我们每一行数据针对的是一个数据源,它的三个被测量的指标在同一列上,所以每一个数据源,数据的来源在每一个时间点上都有一行,这就是多值的模型。

为物联网而生:高性能时间序列数据库HiTSDB商业化首发!

还有一种模型是单值的模型,单值的模型我们是把它测量的精确到时间序列上,也就在时间序列的每个时间点上只有一个值,所以是个单值,也就是说对于多值模型来说它每一行数据对应的是一个数据源,对于单值模型来说它对应的是一个时间序列,实际上多值模型对应的是一个数据源在一个时间点上就会产生一行数据,而在单值模型里一个数据源上面的每一个指标会产生一行数据。

什么是插值和降精度?

如上前面所讲,时间序列会分布在一些时间线上,数据源和测量指标确定了的话,时间序列是随着时间轴往后分布的,实际上它的采样在一个典型的场景里是固定时间间隔的,它中间一些点做处理会牵扯到插值和降精度处理。比如说中间丢失了一个点,比较简单的方法是中间插一个值,常用的方法是线性插值,就是在时间轴上画一个直线中间的点就插出来了。

为物联网而生:高性能时间序列数据库HiTSDB商业化首发!

另一个叫降精度,例如我们有个按秒采样的时间序列,显示时间范围是一年的数据,为了便于查看,需要把时间精度降到一天。比如我们只选这一天中的最大值或者最小值或者平均值,作为这一天的气温,也就是最高气温,最低气温和平均气温的概念。用算法或者把时序数据转换成精度比较低的时间序列以便于观察和理解它,这是在传统数据库里没有的一种方式。

为物联网而生:高性能时间序列数据库HiTSDB商业化首发!

再一个就是数据聚合,也是非常典型的基于设备的数据统计,比如这里有很多设备指标数据构成的时间线,时序数据的聚合是在时间线的维度上的,而不是按点的,在处理平时处理的空间聚合的话,一般是把很多数据点按照一个个聚合起来,而实际数据处理的时候一般会把它抽象的点连成线就是刚才看的时间序列,每个数据源在一个测量值上会产生一行时间线,加上时间序列,如果是根据某一个维度上的测量的话,在同一维度就能调成线就把时间序列处理出来了。

举个例子, 智慧园区的业务系统需要查看一个楼宇的某盏灯的耗电量情况,那么就需要把这盏灯的耗电量数据从数据库中查询并展示出来,如果由于采集的故障导致某个时刻用电量数据缺失,那么需要通过特定算法来近似的估算出这个数据,这个计算补全数据的过程就是“插值”。而当需要查看这盏灯一年的耗电趋势情况时,通常只需要计算出每一天的耗电量,进行查看,而不需要把每一个时刻采集的数据全部输出出来,这个将原始精度转化为业务需求精度的过程就是“降精度”。而如果要统计某一个楼层或者楼宇的用耗电量整体趋势数据时,就需要将所有统计范围内的灯具的耗电量数据做“合并统计”,这个类似的统计过程就是Aggregation。

时序数据降精度是在时间序列维度上做的。对于关系数据库来说,首先要把时间序列维度拿出来,然后在中间插值,而实际上 SQL 是按点来操作的。所以如果要做降精度的话,需要用一个值查询把整条时间序列上的数据查询出来,插好值之后才能做时间序列之间的聚合,那么服务和 SQL 服务器之间的吞吐量非常大,相当于 SQL 只是一个数据通道需要把所有值都拉出来运算一遍,这个查询性能会非常慢,并且每一次计算都需要重新拉取数据,相对 HiTSDB,这个性就能差了几百倍,在空间聚合 Aggregator 支持也非常全面,支持 ADhoc 查询,HiTSDB 通过引入倒排索引和数据分片提升检索时间序列的效率,通过并行计算架构,整体计算性能提升非常明显。

HiTSDB高压缩技术 存储成本降低90%

物联网领域是最典型的时序数据产生和应用的场景,这些场景具备一些特征,技术数据量特别大,比如某个智能设备的温度传感器,首先第一是时间序列会持续的产生大量的数据,持续的产生什么意思呢?因为我们往往对时间序列来说是定时采样功能,如果每秒测量一次,一天是86400秒,如果24小时都要用,平均每一个传感器仪表在一个时间点上产生一个数据点,一个仪表就产生86400个数据,如果把全国各个县都布一个采样点,那一天数据就上亿了,实际上大家作为气象采样来说每一个县对应一个温度传感器显然有点不够的,可能我们是每一个街道甚至每个小区都有这样的传感器,那么这个数据加起来实际上是一个非常惊人的数字。

利用HiTSDB 的高压缩技术,相比较 OpenTSDB 提升10倍左右,通常原始时序数据的大小在 200-300 Byte,OpenTSDB 单数据点消耗约20 Byte,HiTSDB 单数据点消耗约 2Byte,通过 HiTSDB 可以节约90%以上的数据库存储成本。

对于物联网平台企业可以利用HiTSDB 和阿里云的产品能力基于如下的架构构建云上的物联网平台。

为物联网而生:高性能时间序列数据库HiTSDB商业化首发!

HiTSDB 除了在云上提供高效的时序数据服务能力,企业可以也可以利用HiTSDB 结合阿里云工业大脑和城市大脑的大数据方案实现智能制造生产和智慧城市。 利用HiTSDB 的“边缘+ 中心”的解决方案,可以满足工业物联网IoT尤其是电力能源行业的数据边缘端本地存储分析,逐级数据上报 ,以及网络不稳态的数据数据稳定上报和中心端的全局设备数据监控分析,打通智慧大脑的数据通道。
为物联网而生:高性能时间序列数据库HiTSDB商业化首发!

转载于:https://my.oschina.net/yunqi/blog/1648709

为物联网而生:高性能时间序列数据库HiTSDB商业化首发!的更多相关文章

  1. 时间序列数据库(TSDB)初识与选择

    时间序列数据库(TSDB)初识与选择 本文作者由 MageByte 团队的 「借来方向」编写,关注公众号 给你更多硬核技术 背景 这两年互联网行业掀着一股新风,总是听着各种高大上的新名词.大数据.人工 ...

  2. 时间序列数据库(TSDB)初识与选择(InfluxDB、OpenTSDB、Druid、Elasticsearch对比)

    背景 这两年互联网行业掀着一股新风,总是听着各种高大上的新名词.大数据.人工智能.物联网.机器学习.商业智能.智能预警啊等等. 以前的系统,做数据可视化,信息管理,流程控制.现在业务已经不仅仅满足于这 ...

  3. 重新定义数据库历史的时刻——时间序列数据库Schwartz认为InfluxDB最有前途,Elasticsearch也不错

    转自:http://www.infoq.com/cn/news/2017/04/redefine-database-history 提起VividCortex公司的创建者兼CEO Baron Schw ...

  4. [转帖]时间序列数据库 (TSDB)

    时间序列数据库 (TSDB) https://www.jianshu.com/p/31afb8492eff 0.3392019.01.28 10:51:33字数 5598阅读 4030 背景 2017 ...

  5. Android高性能ORM数据库DBFlow入门

    DBFlow,综合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等库的优点.同时不是基于反射,所以性能也是非常高,效率紧跟greenDAO其后.基于注解,使用 ...

  6. Akumuli时间序列数据库——列存储,LSM,MVCC

    Features Column-oriented time-series database. Log-structured append-only B+tree with multiversion c ...

  7. OpenTSDB介绍——基于Hbase的分布式的,可伸缩的时间序列数据库,而Hbase本质是列存储

    原文链接:http://www.jianshu.com/p/0bafd0168647 OpenTSDB介绍 1.1.OpenTSDB是什么?主要用途是什么? 官方文档这样描述:OpenTSDB is ...

  8. 时间序列数据库选型——本质是列存储,B-tree索引,抑或是搜索引擎中的倒排索引

    时间序列数据库最多,使用也最广泛.一般人们谈论时间序列数据库的时候指代的就是这一类存储.按照底层技术不同可以划分为三类. 直接基于文件的简单存储:RRD Tool,Graphite Whisper.这 ...

  9. 时间序列数据库武斗大会之 KairosDB 篇

    [编者按] 刘斌,OneAPM后端研发工程师,拥有10多年编程经验,参与过大型金融.通信以及Android手机操作系的开发,熟悉Linux及后台开发技术.曾参与翻译过<第一本Docker书&gt ...

随机推荐

  1. img及父元素&lpar;容器&rpar;实现类似css3中的background-size&colon;contain &sol; background-size&colon;cover

    img及父元素(容器)实现类似css3中的background-size:contain / background-size:cover <!DOCTYPE html> <html ...

  2. Sharepoint学习笔记—习题系列--70-576习题解析 -&lpar;Q52-Q55&rpar;

    Question 52You are responsible for rebranding the My Sites section of a corporate SharePoint 2010 fa ...

  3. Unity开发之NGUI系列

    Unity插件收集 在Unity开发过程中会收集一些插件,收集这些插件的目的并不是我喜欢在开发中使用插件,而是本着喜欢的态度去收集的,就像我喜欢收集模型一样: 还有一点就是通过了解插件能让我知道Uni ...

  4. 安装java开发环境jdk&comma;安装JDK

    JDK可以理解为翻译官,它将Java高级语言翻译为二进制执行. JDK可以编译文件,编译后的文件扩展名为.class. 只要能支持JDK的地方,JAVA就可以运行,这就是JAVA跨平台的性质. 我的是 ...

  5. Linux Shell——流程控制

    1. 创建交互式脚本 使用 echo命令的选项 关于各种命令的使用,可以使用man 命令来查看命令的详细用法介绍.例如,我想看下 echo 的用法和各种选项.可以执行 man echo.执行结果如下: ...

  6. centos6&period;5 ssh免密码登陆

    ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop1

  7. sysctl -p 报错问题的解决方法

    最近执行sysctl -p 命令时一直报错,类似这种格式: error: permission denied on key...... 经过网上搜索, 原来这些问题都是因为openvz模版的问题,要进 ...

  8. java字符串转义&comma;把&amp&semi;lt&semi;&amp&semi;gt&semi;转换成&lt&semi;&gt&semi;等字符【原】

    java字符串转义,把<>转换成<>等字符 使用的是commons-lang3-3.4 中的StringEscapeUtils类 package test; import ja ...

  9. GO语言基础之method

    方法 method 1. Go 中虽没有 class,但依旧有 method 2. 通过显示说明 receiver 来实现与某个类型的组合 3. 只能为同一个包中的类型定义方法 4. Receiver ...

  10. 技术的正宗与野路子 c&num;&comma; AOP动态代理实现动态权限控制(一) 探索基于&period;NET下实现一句话木马之asmx篇 asp&period;net core 系列 9 环境&lpar;Development、Staging 、Production&rpar;

    黄衫女子的武功似乎与周芷若乃是一路,飘忽灵动,变幻无方,但举手抬足之间却是正而不邪,如说周芷若形似鬼魅,那黄衫女子便是态拟神仙. 这段描写出自<倚天屠龙记>第三十八回. “九阴神抓”本是& ...