1、FlashTsDB时序数据库介绍

 

FlashTsDB时序数据库介绍

1、What is FlashTsDB

1.1 背景

随着互联网、物联网的不断发展,对于海量具有时序特征数据的存储需求日益增多,TSDB(时序数据库)开始受到更多的关注。传统的商业时序数据库(例如OSI-PI)价格昂贵;Influxdb作为目前开源排名最高的时序数据库,集群版已经闭源商业化,开源版仅支持单机模式;OpenTsDB集群方案成熟(Hbase),但实测压缩比不高,性能也是差强人意。
在这样的大环境下,当前市面上无论是开源时序库还是商业时序库都有各自的问题,很难找到一款免费、稳定、高压缩比、高性能、可扩展的时序数据库软件。
在这里插入图片描述

1.2 FlashTsDB

FlashTsDB是本人自研的开源时序数据库软件,开发语言主要为Java,其基于SDT压缩算法、Hbase及Redis实现,具有可配置压缩比,高性能,可扩展等特性,FlashTsDB设计之初主要面对纯粹的设备类(例如传感器)数据,主要追求高压缩率、高性能、可扩展和支持线性插值等特性,根据性能测试结果,在同等硬件环境下,其存储和查询性能均优于influxdb。

FlashTsDB同时支持单机和集群模式。单机模式下,可以直接通过docker镜像部署,整个部署过程非常简单,性能也足以满足一般场景下的需求。

同时,FLashDB基于开源模式开发,开源地址:https://github.com/amon1991/flashdb

1.3 时序数据库概念

FlashTsDB定位于时序数据库。

时序数据是基于时间的一系列的数据。在有时间的坐标中将这些数据点连成线,往过去看可以做成多纬度报表,揭示其趋势性、规律性、异常性;往未来看可以做大数据分析,机器学习,实现预测和预警。
时序数据库就是存放时序数据的数据库,并且需要支持时序数据的快速写入、持久化、多纬度的聚合查询等基本功能。

2、Why FlashTsDB

FlashTsDB着眼于解决时序库的最核心问题,目前提供了如下特性:

  • 自定义压缩率、支持插值查询

    • FlashTsDB支持SDT压缩算法,可以自定义旋转门大小,控制数据实际压缩率;
    • 支持线性插值算法,可插值查询任意时刻的测点数值
  • 分布式存储

    • FlashTsDB底层使用hbase进行数据持久化,支持分布式存储
    • 测点的实时数据存储在Redis中,查询实时数据性能高
  • web端查询

    • FlashTsDB支持在web端进行测点删选、历史数据查询、实时数据查询
    • 历史数据查询的结果通过趋势图展示
  • 提供开放平台API

    • FlashTsDB支持Restful API新增测点、插入测点数据、查询测点数据
  • 高性能

    • 经测试,在千兆网络情况下,单进程模式下的FlashTsDB写入即可打满40%的网络带宽,查询可打满90%的网络带宽
    • 在高并发场景下,FlashTsDB表现稳定,除平均响应时延增加外,无失败请求
  • 部署简单

    • FlashTsDB仅依赖hbase集群和redis数据库
    • 可基于docker方式直接部署,部署方便

3、FlashTsDB at a glance

3.1 界面概览

在这里插入图片描述

上图是FlashTsDB的主界面

  • 在页面左上方可查询当前数据库中的测点列表(支持模糊查询)
  • 在页面右上方可新建测点
  • 对于每个测点,可查询详情
    在这里插入图片描述

上图为新建测点界面,其中可通过设置accuracy(精确度)设置压缩时旋转门的大小

3.2 查询测点实时/历史数据

在这里插入图片描述

  • 在上图中,可查询测点的实时数据和历史数据
  • 历史数据查询支持查询实际数据和插值数据
3.3 Restful API

在这里插入图片描述

用户可通过swagger界面查询和测试FlashTsDB支持的客户端API,具体支持的API功能如下所示:

3.3.1 创建测点元数据

URL

  • /apis/flashtsdb/tags

请求类型

  • POST

请求示例

[
  {
   
    "accuracyE": 5,
    "tagCode": "testSensorCode",
    "tagDescription": "testSensor Des",
    "tagName": "testSensorName",
    "tagUnit": "ka"
  }
]

请求参数说明

参数名 类型 说明
accuracyE 数值 测点精确度(decimals,greater than 0)
tagCode 字符串 测点编码 (limit 200 characters)
tagDescription 字符串 测点描述 (limit 200 characters)
tagName 字符串 测点名称(limit 200 characters)
tagUnit 字符串 测点单位 (limit 50 characters)

返回示例

{
   
  "success": true,
  "msg": "create tags successfully"
}

返回参数说明

参数名 类型 说明
succes
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值