当前位置: 首页 > news >正文

【2024】InfluxDB v2 介绍和安装使用(1)

目录💻

  • 一、介绍
    • 1、时序数据库介绍
      • 特点:
      • 常见的时序数据库
      • 时序库受欢迎度排名
    • 2、InfluxDB介绍
      • **InfluxDB 1.x 和 2.0 的主要区别**
      • InfluxDB行协议
  • 二、docker安装 InfluxDB v2
  • 三. Web UI常用功能介绍以及使用
    • 1、页面介绍
    • 2、功能使用
      • 2.1、创建bucket
      • 2.2、添加数据
    • 2.3、Data Explorer 查询数据

一、介绍

1、时序数据库介绍

时序数据库全称为时间序列数据库。时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。时序数据的兴起还是榜上了物联网的大风。物联网(Internet of Things,简称IOT)是指通过各种信息传感器实时采集任何需要管理设备的信息,并进行管理。物联网的基础数据具有数据量大、结构单一、时间属性强、查询简单等特点,传统的关系型数据库在面对物联网数据时,显得应对发力,基本上属于功能过剩但性能不足。目前火热的新能源汽车的车联网也一样需要使用到时序数据库。

特点:

  • 时间戳索引:时序数据库通常对时间戳进行优化索引,以便快速查询。
  • 高并发写入:能够处理高并发写入操作,适用于实时数据收集。
  • 数据压缩:通常采用高效的数据压缩技术,减少存储空间需求。
  • 数据聚合:支持数据聚合操作,如求平均值、最大值、最小值等。
  • 保留策略:可以设置数据的保留期限,自动清理旧数据

常见的时序数据库

  • InfluxDB:一个开源的时序数据库,适用于存储和查询大量时间序列数据。流行度很高,支持Go语言,社区活跃度高,也是我们接下来要介绍使用的。是当下使用使用量最多的时序数据库

  • TDengine: 是一款国内涛思数据推出的开源、高性能、分布式、支持 SQL 的时序数据库,其时序数据库核心代码包括集群功能全部开源,同时 TDengine 还带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少研发和运维的复杂度。在几年时间就可以使用量进入前十。

  • Prometheus:一个开源监控系统,自带时序数据库功能。

  • TimescaleDB:一个基于PostgreSQL的时序数据库插件,将关系数据库的功能与时间序列数据库的性能相结合。

时序库受欢迎度排名

排名取自于https://db-engines.com
在这里插入图片描述

2、InfluxDB介绍

InfluxDB是一种由InfluxData公司开发的开源时序数据库(Time-Series Database,TSDB),专门设计用来处理高并发的时序数据写入和查询。它非常适合用于存储涉及大量时间戳的数据,例如服务器指标、传感器数据、实时分析报告、应用程序性能监控等。

InfluxDB目前市面上使用的有两个主要的版本为1.x和2.x的还有在进行维护,InfluxDB在2.x版本的时候进行了重大的更新。

  • InfluxDB 1.x
    InfluxDB 1.x 是 InfluxDB 的第一个主要版本,于 2013 年发布。它使用 Go 语言编写,支持多种数据类型,包括整数、浮点数、字符串和布尔值。InfluxDB 1.x 支持 SQL 查询语言,用户可以使用 SQL 语句查询和分析数据。

  • InfluxDB 2.0
    InfluxDB 2.0 是 InfluxDB 的第二个主要版本,于 2019 年发布。具有更好的性能、安全性和可靠性。InfluxDB 2.0 引入了一个新的时序数据模型,支持更灵活的数据结构和更高效的数据存储。InfluxDB 2.0 支持 Flux 查询语言,Flux 是一种专门为时序数据设计的查询语言,提供了更强大的数据分析能力。

InfluxDB 1.x 和 2.0 的主要区别

以下是 InfluxDB 1.x 和 2.0 的主要区别:

  • 编程语言:InfluxDB 1.x 使用 Go 语言编写,而 InfluxDB 2.0 使用 Rust 语言编写。
  • 数据模型:InfluxDB 1.x 使用一个基于列的数据模型,而 InfluxDB 2.0 引入了一个新的时序数据模型,支持更灵活的数据结构和更高效的数据存储。
  • 查询语言:InfluxDB 1.x 支持 SQL 查询语言,而 InfluxDB 2.0 支持 Flux 查询语言。
  • 性能:InfluxDB 2.0 具有更好的性能、安全性和可靠性。
  • 存储:InfluxDB 2.0 支持更高效的数据存储和压缩。
  • 集成:InfluxDB 2.0 支持更多的集成,包括 Grafana、Telegraf、Kapacitor 等。
  • 监控和告警:InfluxDB 2.0 提供了监控和告警功能,能够实时监控数据并发送告警通知。

总的来说,InfluxDB 2.0 是一个更强大的、更灵活的、更高效的时间序列数据库,与 InfluxDB 1.x 相比具有许多新的特性和改进。

InfluxDB行协议

要想了解一个数据库,我们首先得先了解该数据库的数据是如何进行存储的。和一些关键概念指标。
与csv相似,在lnfluxDB 行协议中,一条数据和另外一条数据之间使用换行符分隔,所以一行就是一条数据。另外,在时序库领域,一行数据由下面的4种元素构成。

measurement、tags、field、time。前面三个字段就可以定义一个序列
在这里插入图片描述
除了上面四种在lnfluxDB中还有其他的一些含义。

  • database 代表含义:数据库
  • bucket 代表含义:存储桶
  • measurement 代表含义:数据库中的表
  • point 代表含义:表里面的一行数据,由下面的类型组成
    • 时间戳(time):每个数据记录时间,是数据库中的主索引(会自动生成)
    • 数据(field):各种记录值(没有索引的属性)
    • 标签(tags):各种有索引的属性
  • series 代表含义:所有在数据库中的数据,

二、docker安装 InfluxDB v2

  • 下拉镜像
# 从官方镜像仓库拉取
docker pull influxdb:2.7.6
# 由于docker的官方仓库被禁了,上面的可能拉取不下来,可以到我的阿里镜像仓库拉取
docker pull registry.cn-hangzhou.aliyuncs.com/zhengfp_images/influxdb:2.7.6
  • 创建容器
    docker run -d -p 8083:8083 -p 8086:8086 -v /home/influxdb/data:/var/lib/influxdb2 --name influxdb2.7.6 influxdb:2.7.6

    • 把镜像换为你下拉下来的镜像名
    • 把-v 映射的地址也换为自己的本地存储的目录实际地址,避免容器销毁后数据就没了
  • 创建成功后访问web端UI地址
    http://localhost:8086/signin

  1. 点击中间的按钮
    在这里插入图片描述
  2. 设置个人的基础登陆信息和Bucket
    在这里插入图片描述
  3. 进入该页面代表执行成功,创建好了自己的web UI的登陆账号和第一个bucket存储桶,会给你一串连接凭证,需要自己保存起来,用于后续连接访问使用。
    在这里插入图片描述
  4. 点击ADVANCED就进入主页面了。后面在介绍Web UI中常用到的地方
    在这里插入图片描述

三. Web UI常用功能介绍以及使用

1、页面介绍

  • Load Data功能页
  • 查询页
    在这里插入图片描述
  • flux语言写法
    在这里插入图片描述

2、功能使用

2.1、创建bucket

  1. 点击load data页面的buckets
    在这里插入图片描述
  2. 创建在这里插入图片描述

2.2、添加数据

  1. 选择sources,因为是测试,直接通过line写测试数据,实际开发中,肯定是不会去手动写入的。
    在这里插入图片描述
  2. 编写对应行协议数据,格式不能错,遵照👆写的格式

    people,name=tony age=12
    people,name=xiaohong age=13
    people,name=xiaobai age=14
    people,name=xiaohei age=15
    people,name=xiaohua age=12

在这里插入图片描述
点击wrlte data则会提示保存成功

2.3、Data Explorer 查询数据

  1. 使用puery实现查询
  • 下面的query部分是查询条件
    • from:是选择要查询的bucket存储桶
    • filter:是过滤筛选的条件
    • _field:是通过什么字段进行筛选,筛选_field为age的数据
    • view Raw Data:开启表示数据的方式展现,不开启,表示图表的方式展现
    • Past:表示查询什么时间段段数据,如同,是Past 6h则表示查询最近6小时的数据
    • SCRIPT EDITO:表示切换为flux语言编写的方式执行查询。
    • SUBMIT:开始查询

在这里插入图片描述

- 筛选`name`字段包括 **tony1**和**xiaobai1**的数据

在这里插入图片描述

  1. 使用FLUX实现查询
    下面是使用flux实现的简单查询,flux语言使用起来也非常简单易懂,基本上会sql的人上手速度都会比较快,下面简单解释一下

FLUX在InfluxDB使用

  • from(bucket: "test01"):表示查询test01存储桶中的数据
  • |> range(start: -6h):表示查询的时间范围,为最近六小时的数据
  • |> filter(fn: (r) => r["name"] == "tony1" or r["name"] == "xiaohong1" or r["name"] == "xiaohei"):表示查询name字段等tony1、xiaohong1、xiaohei三个值的数据,在使用上也是使用的和sql一样,使用or表示或者。

FLUX在InfluxDB中使用查询,基本上是由三部分组成指定存储桶,指定查询时间,然后就是使用filter进行过滤了(包括使用一些函数),后续会详细介绍FLUX的使用,这就不过多介绍了

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Thread-Caching Malloc 简介
  • 第十九天内容
  • 君正T41开发板环境搭建_串口登陆_配置IP_telnet登陆_mount挂载_安装交叉编译工具链
  • Redis篇之持久化数据恢复
  • Native Programs(本机程序)
  • Python爬虫-中国汽车市场月销量数据
  • 服务器并发模型
  • 互联网家政小程序,为大众带来高效、便捷的服务
  • 多个线程同时调用接口
  • 【Canvas与艺术】六角大楼
  • Windows重装系统「统信UOS」+家庭版专业版选择
  • Python基础知识笔记——特殊符号
  • SQL常用函数
  • W1R3S靶机全通详细教程
  • 【Git】Git概述
  • docker-consul
  • ECMAScript入门(七)--Module语法
  • Electron入门介绍
  • Java,console输出实时的转向GUI textbox
  • JavaScript 一些 DOM 的知识点
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • markdown编辑器简评
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 大数据与云计算学习:数据分析(二)
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 每天10道Java面试题,跟我走,offer有!
  • 排序算法之--选择排序
  • 项目实战-Api的解决方案
  • 硬币翻转问题,区间操作
  • ionic异常记录
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ###C语言程序设计-----C语言学习(3)#
  • #职场发展#其他
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (a /b)*c的值
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (python)数据结构---字典
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (一)UDP基本编程步骤
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (轉貼) UML中文FAQ (OO) (UML)
  • .Net 4.0并行库实用性演练
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET 回调、接口回调、 委托
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET程序集编辑器/调试器 dnSpy 使用介绍
  • .NET正则基础之——正则委托
  • .so文件(linux系统)