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

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

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

单值与多值建模

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

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

什么是插值和降精度?

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

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

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

举个例子, 智慧园区的业务系统需要查看一个楼宇的某盏灯的耗电量情况,那么就需要把这盏灯的耗电量数据从数据库中查询并展示出来,如果由于采集的故障导致某个时刻用电量数据缺失,那么需要通过特定算法来近似的估算出这个数据,这个计算补全数据的过程就是“插值”。而当需要查看这盏灯一年的耗电趋势情况时,通常只需要计算出每一天的耗电量,进行查看,而不需要把每一个时刻采集的数据全部输出出来,这个将原始精度转化为业务需求精度的过程就是“降精度”。而如果要统计某一个楼层或者楼宇的用耗电量整体趋势数据时,就需要将所有统计范围内的灯具的耗电量数据做“合并统计”,这个类似的统计过程就是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 的“边缘+ 中心”的解决方案,可以满足工业物联网IoT尤其是电力能源行业的数据边缘端本地存储分析,逐级数据上报 ,以及网络不稳态的数据数据稳定上报和中心端的全局设备数据监控分析,打通智慧大脑的数据通道。

转载于: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书> ...

随机推荐

  1. 项目组件:分页(pagination)

    此分页组件可以辅助完成项目中前端页面分页展示 """ 分页组件应用: 1. 在视图函数中 queryset = models.Issues.objects.filter( ...

  2. 基于 HTML5 WebGL 的 水泥工厂可视化系统

    前言 如今的制造行业,基于数据进行生产策略制定与管理已经成为一种趋势,特别是 工业4.0 的浪潮下,数据战略已经成为很多制造企业的优先战略,而数据可视化以更直观的方式,帮助指导决策,成为数据分析传递信 ...

  3. 详细解析 HBASE 配置的各种要点

    文章更新于:2020-04-06 安装惯例,需要的文件附上链接放在文首. 文件名:hbase-2.2.4-bin.tar.gz 文件大小:213.24 MB 下载链接:http://download. ...

  4. spring的jdbc具名参数

    在jdbc的模板中使用具名参数: 1.就需要在之前的jdbc的例子中进行修改:需要在xml文件中重新配置一个bean.这是固定的格式.如下 对于使用具名参数而言.配置NamedParameterJdb ...

  5. 大O表示法是什么?

    1.什么是大O表示法: 1.在算法描述中,我们用这种方式来描述计算机算法的效率. 2.在计算机中,这种粗略的量度叫做 "大O" 表示法. 3.在具体的情境中,利用大O表示法来描述具 ...

  6. 文本表格文件指定分隔符分列转Excel(java实现)

    我的需求: 嗯,实习中遇到,需要过滤数据然后以指定的列名输出为excel 我是这样解决的: 写出到一个文本或者表格文件然后指定分隔符分列的输出excel,因为要设计去重处理. 我需要做的: 写一个文本 ...

  7. centOS7常用操作命令

    大多和DOS命令差不多 文件与目录操作 命令 解析 cd /home 进入 ‘/home’ 目录 cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd - 返回上次所在目录 cp fil ...

  8. 实时OLAP分析利器Druid介绍

    文章目录 前言 Druid介绍 主要特性 基础概念 数据格式 数据摄入 数据存储 数据查询 查询类型 架构 运维 OLAP方案对比 使用场景 使用建议 参考 近期主题 前言 项目早期.数据(报表分析) ...

  9. java 泛型实例详解(普通泛型、 通配符、 泛型接口)

    java 泛型详解(普通泛型. 通配符. 泛型接口) 2013-02-04 19:49:49| 分类: JAVA | 标签:java |举报|字号 订阅 下载LOFTER客户端 JDK1.5 令我们期 ...

  10. 对象中属性 加锁 用:volatile 关键词修饰 而 不用 synchronized 加锁

    一个对象中有一个状态 属性,现在业务需求 存在多线程来修改 和 拿去 这个状态 的值,这种情况如果加锁怎么加? 一种是 在 set 和get 这个状态的 方法那加 synchronized . 还有一 ...