【转载请注明出处: https://leytton.blog.csdn.net/article/details/120806860

1 背景

目前对于时序大数据的存储和处理往往采用关系型数据库的方式进行处理,但由于关系型数据库天生的劣势导致其无法进行高效的存储和数据的查询。时序大数据解决方案通过使用特殊的存储方式,使得时序大数据可以高效存储和快速处理海量时序大数据,是解决海量数据处理的一项重要技术。该技术采用特殊数据存储方式,极大提高了时间相关数据的处理能力,相对于关系型数据库它的存储空间减半,查询速度极大的提高。【1】

时序数据库主要用于存储基于时间序列的指标数据,例如一个Web页面的PV、UV等指标,将其定期采集,并打上时间戳,就是一份基于时间序列的指标。时序数据库通常用来配合前端页面来展示一段时间的指标曲线。【2】

2 技术选型

打开数据库排名网站DB-Engines Ranking,左侧选择时序数据库(Time Series DBMS),如下图所示:
在这里插入图片描述
可见,InfluxDB遥遥领先,其他数据库也可以去查找相关资料了解其特性,比如说:

Apache Druid,国内很多大厂都有使用,如阿里、土豆、优酷、微博、小米、滴滴、有赞等,参考 http://druid.apache.org/druid-powered
比较常见的使用场景【3】:

  • 点击流分析(web 和 mobile 分析)
  • 风控分析
  • 网路遥测分析(网络性能监控)
  • 服务器指标存储
  • 供应链分析(制造业指标)
  • 应用性能指标
  • 商业智能/实时在线分析系统 OLAP

TDengine,国产数据库,据官网介绍,性能碾压大部分时序数据库,参考https://www.taosdata.com/cn/documentation

更多可以参考这篇文章:《时间序列数据库(TSDB)初识与选择》

本文着重关注InfluxDB。

3 InfluxDB

InfluxDB是一款Go语言写的时序数据库,开源版不支持集群。但单机性能强、生态好,SDK以及文档丰富。

安装

打开官方文档,里面有各种系统的安装方式,本文测试环境为CentOS7,在此我们使用docker安装体验:

docker run --name influxdb -p 8086:8086 influxdb:2.0.9

Web控制台

打开Web控制台 http://localhost:8086,填入账号密码、团队组织信息、以及初始化桶名称(将用于存储数据保留策略等系统信息)
Web控制台
进入控制台后,分三步开始,采集加载数据->创建观察面板->设置预警
在这里插入图片描述

加载数据源

加载数据源可以是采用丰富的客户端库进行数据写入,也可以直接使用各种各样的Telegraf插件采集数据。Telegraf是一个数据采集代理,类似与ElasticSearch的Logstash,需要安装才能使用。
在这里插入图片描述
比如我们要采集CPU信息,提示需要安装Telegraf,如下图:
在这里插入图片描述

4 Telegraf的使用

Telegraf的使用分三步:

  1. 安装Telegraf
  2. 配置插件
  3. 启动服务

安装Telegraf

打开Telegraf文档,查看安装和使用手册。

执行以下命令:

cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF
sudo yum install telegraf

配置插件

打开/etc/telegraf/telegraf.conf文件,配置CPU信息采集(默认已配置)。
在这里插入图片描述

我们创建一个桶用于存储测试数据,可以设置数据自动删除的时间:
在这里插入图片描述
配置采集到的数据输出到创建的桶里:
在这里插入图片描述

启动服务

sudo systemctl start telegraf

创建Dashboard,并把数据添加进来即可直观查看图表:
在这里插入图片描述
后续再测试客户端SDK。

5 参考文献

【1】时序数据库简介
【2】InfluxDB引擎浅析
【3】十分钟了解 Apache Druid

Logo

尧米是由西云算力与CSDN联合运营的AI算力和模型开源社区品牌,为基于DaModel智算平台的AI应用企业和泛AI开发者提供技术交流与成果转化平台。

更多推荐