近年来,由于IOT,APM等系统的需求,一种以时间戳为主键的数据模型,越来越流行,存储该数据模型的数据库被称为时序数据库。
若干年中,市面上出现了很多种不同的时序数据库,他们或数据模型不同,或生态不同,或存储架构不同。经过数年的发展,InfluxDB一枝独秀,在DB-Engines中,遥遥领先其他的时序数据库,成为最受用户欢迎的数据库之一。
阿里云时序数据库InfluxDB®️版上线
为了满足广大物联网企业客户的对于InfluxDB的商业化需求, 阿里云时序数据库团队正式推出时序数据InfluxDB®️版。 时序数据InfluxDB®️版是基于开源InfluxDB提供的商业化时序数据库服务,免部署,零运维,高可靠,提供7*24小时专家答疑服务。
现在已经开始全面公测。
公测购买页面:
https://common-buy.aliyun.com/?spm=5176.11451019.0.0.144575d16d7RE1&commodityCode=hitsdb_influxdb_pre&accounttraceid=7545ae3e-f0e4-4df9-a0fc-b931328048fd#/buy
InfluxDB场景
InfluxDB是因为物联网而兴起的数据库,其天生具有IOT的特性。几乎所有的物联网数据都可以通过InfluxDB存储,分析与展示。
InfluxDB的具体使用场景包括:智慧物联网监控分析系统,传统石油化工、采矿以及制造企业设备数据采集与分析,医疗数据采集与分析,车联网,智慧交通等。InfluxDB同时还可以用于日志数据存储与分析,各种服务、软件以及系统监控数据采集、分析与报警,金融数据采集与分析等。
总之,只要符合写多读少、无事务要求、海量高并发持续写入、基于时间区间聚合分析以及基于时间区间快速查询的数据都可以使用InfluxDB。
InfluxDB介绍
InfluxDB之所以能在众多时序数据库中成为DB-Engines中排名第一的时序数据库,来源它的几大优势:
- 完整的生态
- 易用性
完整的生态TICK
InfluxDB不仅仅只提供存储服务,还提供了周边的工具,他们包括Telegraf, Chronograf以及Kapacitor。加上InfluxDB,他们的首字母恰好组成一个秒钟跳动一次的英文单词TICK。
Telegraf: Telegraf是一个开源的时序数据收集器。它收集各种不同的时序数据,并把数据通过InfluxDB标准API发送给InfluxDB。Telegraf采用插件的方式,目前支持100多种不同服务的时序数据收集,用户可以开发自定义的插件收集数据。
Chronograf: Chronograf是整个TICK生态的UI界面层。它让用户可以通过图形界面展现InfluxDB中的数据,同时它可以配置InfluxDB参数以及收集Kapacitor发送的报警信息
Kapacitor: Kapacitor是一个事件处理及报警引擎,它能够根据建立的规则对异常时序数据进行报警,同时能够将这些警告发送给其他系统。
通过使用TICK生态,用户能轻松构建一个时序数据收集,存储,分析以及告警的完整系统。
InfluxDB易用性
InfluxDB数据写入以及数据查询特别方便,其读写采用的是Restful API,用户可以通过HTTP/HTTPS方式直接读写数据。
数据写入
InfluxDB数据采用行协议方式写入。下面是一个行协议的示例数据:
InfluxDB支持通过curl直接将数据写入InfluxDB:
curl -i -XPOST 'https://localhost:8086/write?db=mydb' --data-binary 'temperature,machine=unit42,type=assembly >external=25,internal=37 1434055562000000000'
同时,用户也可以通过InfluxDB提供Command Line Interface(命令行界面)写入数据:
INSERT weather,location=us-midwest temperature=82 1465839830100400200
InfluxDB提供的多样化数据插入方式,可以让用户在不同平台快速的插入数据。
数据查询
InfluxDB提供SQL-like的查询语句:InfluxQL。InfluxSQL支持SQL风格的查询操作,关系型数据库的用户可以无缝切换到InfluxDB的使用。例如:从measurement h2o_feet查询5条记录:
SELECT * FROM h2o_feet LIMIT 5
name: h2o_feettime level description location water_level
2015-08-18T00:00:00Z below 3 feet santa_monica 2.064
2015-08-18T00:00:00Z between 6 and 9 feet coyote_creek 8.12
2015-08-18T00:06:00Z between 6 and 9 feet coyote_creek 8.005
2015-08-18T00:06:00Z below 3 feet santa_monica 2.116
2015-08-18T00:12:00Z between 6 and 9 feet coyote_creek 7.887
关于InfluxQL的具体用法,可以参考阿里云时序数据库InfluxDB®️的文档:数据探索
(https://help.aliyun.com/document_detail/113131.html)
InfluxQL支持按照时间戳对数据分组的查询方式,只需要在influxQL后加上group by(分组时间间隔)即可:
SELECT MAX("water_level") FROM "h2o_feet" WHERE "location"='coyote_creek' AND time >= '2015-09-18T16:00:00Z' AND time <= '2015-09-18T16:42:00Z' GROUP BY time(12m)
name: h2o_feettime max
2015-09-18T16:00:00Z 3.599
2015-09-18T16:12:00Z 3.402
2015-09-18T16:24:00Z 3.235
2015-09-18T16:36:00Z
group by的具体用法请参考:数据探索
先进的时序数据分析技术
InfluxQL除了支持SQL-like的查询语句,提供了大量的函数支持对时序数据进行分析。这些分析函数分为四大类:
Aggregation(聚合),Selector(选择),Transformation(转换)和预测(Prediction)。这些分析函数能够帮助用户轻松地时序数据转化为有用的信息。
除此之外,InfluxDB提供8种不同的分析技术,用户无需自己用InfluxQL实现这几种分析技术,可以直接使用这些分析技术进行金融以及投资方面的数据分析。
InfluxQL函数以及分析技术的具体用法请参考:InfluxQL函数
(https://help.aliyun.com/document_detail/113126.html)
阿里云时序数据库InfluxDB®️版优势
阿里云时序数据库InfluxDB®️版,在完全兼容InfluxDB行协议以及InfluxQL的基础上做了很多改进,给用户更多稳定、可靠、方便的服务。
数据高可靠
阿里云时序数据库InfluxDB®️版的数据存储在阿里云的高效云盘上,高效云盘提供99.9999999%数据高可靠的保障。这样可以保障InfluxDB中数据一旦写入,就永远不会丢失。
高稳定性
阿里云时序数据库InfluxDB®️版实现了对内存,硬盘等资源的有效管理,可以极大地减少由于硬件资源不够引起的InfluxDB不稳定的情况。
数据图形化展示
阿里云时序数据库InfluxDB®️版与grafana,chronograf等图形展示平台无缝链接,用户购买阿里云时序数据库InfluxDB®️,阿里云自动为用户配置好图形展示平台的数据源,用户直接到图形展示平台完成自己需要的图形化dashboard。(公测结束后提供该功能)
全自动化数据迁移工具
阿里云时序数据库InfluxDB®️版提供全自动的数据迁移工具,用户“一键式”将自建的InfluxDB迁移到阿里云时序数据库InfluxDB®️版。
全自动Failover
阿里云时序数据库InfluxDB®️版提供全自动Failover机制,一旦所在硬件发生不可恢复的故障,InfluxDB会在非常短的时间内使用其他硬件替换故障硬件,然后重启InfluxDB。这样可以减少因为不可控故障引发的服务中断时间。该Failover是全自动的,无需人工干预,即使是在节假日以及午夜,用户也无需担心服务由于硬件故障造成的长时间不可用。(全自动Failover公测期间暂时不可用)
高可用版InfluxDB®️
阿里云时序数据库InfluxDB®️版将在公测结束以后提供高可用版本。高可用版将提供更加稳定的服务,对稳定性要求比较高的用户,将会从中感受到无限稳定的服务。