从零到一:influxdb时序性数据库的基本概念与操作指南

目录

​编辑

引言

数据库(database)

创建数据库

删除数据库

进入数据库

展示influxdb中所有数据库

测量(measurement)

写入测量

展示测量

总结


引言

InfluxDB是一个开源的时序数据库,专门设计用于处理时间序列数据。它是由InfluxData公司开发的,并且被广泛用于监控、分析和存储具有时间戳的数据,例如应用程序指标、系统性能数据、传感器数据等。以下是InfluxDB的一些关键特点和概念:

  1. 时序数据库: InfluxDB专注于存储和查询时间序列数据,这使得它非常适合处理按时间顺序生成的数据流,如传感器数据、日志文件、应用程序指标等。

  2. 数据模型: InfluxDB采用了一种灵活的数据模型,其中数据被组织成测量(Measurements)、标签(Tags)、字段(Fields)和时间戳。这种模型使用户能够高效地存储和查询不同类型的时间序列数据。

    • 测量(Measurements): 表示一类相似的时间序列数据。
    • 标签(Tags): 用于标识和过滤数据,提供了额外的元数据。标签是键值对的形式,附加在测量上。
    • 字段(Fields): 包含实际的数据值,可以是数字、字符串或布尔类型。
    • 时间戳: 表示数据点生成的时间。
  3. 查询语言: InfluxDB使用类似于SQL的查询语言(InfluxQL),允许用户执行各种查询、过滤和聚合操作。用户可以根据时间范围、标签等条件来检索数据。

  4. 连续查询和聚合: InfluxDB支持连续查询,允许用户定期计算和存储聚合数据,以加速后续查询。这对于处理大量数据并提供实时分析非常有用。

  5. 保留策略: 用户可以定义数据的保留策略,以控制存储在数据库中的数据的保留时间。这有助于有效地管理存储空间。

  6. 插件和集成: InfluxDB具有丰富的插件生态系统,可以与各种其他工具和系统集成,如Grafana、Telegraf、Kapacitor等,以提供更全面的解决方案。

  7. 集群支持: InfluxDB具有内置的集群支持,可以横向扩展以处理大规模的数据。

  8. Telegraf: Telegraf是InfluxDB的插件驱动的代理,用于从各种源收集数据,并将其写入InfluxDB。它是一个开源项目,支持多种输入和输出插件。

  9. 开源和社区支持: InfluxDB是开源的,拥有活跃的社区,用户可以在GitHub上找到其源代码和文档。

官网链接:InfluxDB | InfluxData

数据库(database)

创建数据库

create database <database_name>

这里<database_name>应该替换为你的数据库名称

删除数据库

drop database <database_name>

进入数据库

use <database_name>

展示influxdb中所有数据库

show databases;

测量(measurement)

结构: measurement 由以下组成:

  • 名称(Name,可以理解为关系型数据库中的表名称): measurement 的名称标识了存储的数据类型或事件。例如,一个气象站可能有一个 measurement 名称为 "weather",用于存储与天气相关的数据。
  • 标签(Tags,可以理解为关系型数据库中的索引列): 可选的标签是键值对,用于为数据点添加元数据,以便更容易过滤和查询。标签通常用于标识数据的来源或其他维度信息。
  • 字段(Fields,可以理解为关系型数据库中的非索引字段,主要用来存储数据): 字段包含实际的数值或测量数据。每个字段都有一个名称和相应的数值。字段的类型可以是整数、浮点数、字符串等
  • 时间戳(Time,可以理解为关系型数据库中的主键,可以自己生成、也可以由influxdb自动生成):表示数据点生成的时间。

写入测量

influxdb在插入数据的时候不需要像关系型数据库一样先创建表,在插入数据的时候制定measurement的名字会自动创建相应的measurement

INSERT measurement_name,tag_key=tag_value field_key=field_value

例如:

INSERT weather,location=us-west temperature=75,humidity=40

展示测量

show measurements
-- 类似与mysql中的show tables;

查询测量

  1. 基本查询:

    SELECT * FROM <measurement_name>
  2. 范围查询:

    SELECT * FROM measurement_name WHERE time > start_time AND time < end_time

    例如:

    SELECT * FROM weather WHERE time > '2023-01-01T00:00:00Z' AND time < '2023-01-02T00:00:00Z'

    注意如果插入的时候未自定义时间戳,则无法按照国际时间进行时间戳查询,需要进行计算机时间纳秒转换。

  3. 选择查询:

    SELECT field1, field2 FROM measurement_name

    例如:

    SELECT temperature, humidity FROM weather

  4. 条件查询:

    SELECT * FROM measurement_name WHERE tag_key = 'tag_value' AND field_key > 50

    例如:

    SELECT * FROM weather WHERE location = 'us-west' AND temperature > 70

聚合函数:

SELECT COUNT(field_key) FROM measurement_name WHERE time > start_time GROUP BY time(interval), tag_key

例如:

SELECT COUNT(temperature) FROM weather WHERE time > '2023-01-01T00:00:00Z' GROUP BY time(1h), location

总结

InfluxDB是一款专为处理时间序列数据而设计的开源时序数据库。其核心概念包括测量(Measurements)、标签(Tags)、字段(Fields)和时间戳,这些元素共同构建了灵活而高效的数据存储和查询系统。测量代表一类相似的时间序列数据,而标签和字段则提供了元数据和实际数值的存储。时间戳则用于表示数据点生成的时间。通过插入数据时自动创建测量,InfluxDB简化了数据库结构的管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/219469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 两个日期比较大小

文章目录 C# 两个日期比较大小直接比较大小工具类DateTime.Compare C# 两个日期比较大小 直接比较大小 string ed "2023-12-13 09:27:59.000";//过去式DateTime nowDateTime DateTime.Now;DateTime expirationDate Convert.ToDateTime(ed);//质保期 长日期DateT…

一行奇异代码,解决transition过渡动画无效问题!

一行奇异代码&#xff0c;解决transition过渡动画无效问题&#xff01; 无效的transition过渡动画 你是否遇到过这种情况&#xff1a;在css中设置了transition过渡动画&#xff0c;但使用时&#xff0c;确无效。 例如以下代码&#xff0c;便是一例&#xff1a; 在此代码中&a…

【云原生kubernets】Service 的功能与应用

一、Service介绍 在kubernetes中&#xff0c;pod是应用程序的载体&#xff0c;我们可以通过pod的ip来访问应用程序&#xff0c;但是pod的ip地址不是固定的&#xff0c;这也就意味着不方便直接采用pod的ip对服务进行访问。为了解决这个问题&#xff0c;kubernetes提供了Service资…

慎用,Mybatis-Plus这个方法可能导致死锁

1 场景还原 1.1 版本信息 MySQL版本&#xff1a;5.6.36-82.1-log Mybatis-Plus的starter版本&#xff1a;3.3.2 存储引擎&#xff1a;InnoDB1.2 死锁现象 A同学在生产环境使用了Mybatis-Plus提供的 com.baomidou.mybatisplus.extension.service.IService#saveOrUpdate(T, co…

Linux下常用的工具软件

这里我会为大家介绍Linux世界里最常用的几种工具软件&#xff0c;包括&#xff1a;vi, tar, gzip, rpm。 1.文字编辑 vi是Linux(UNIX)世界最强大的文本编辑工具&#xff0c;我在第一讲中提到过它&#xff0c;现在我把它的一些基本使用方法介绍给大家。 Vi的三种状态 Comman…

Linux中使用podman管理容器

本章主要介绍使用podman管理容器 了解什么是容器&#xff0c;容器和镜像的关系安装和配置podman拉取和删除镜像给镜像打标签导出和导入镜像创建和删除镜像数据卷的使用管理容器的命令使用普通用户管理容器 对于初学者来说&#xff0c;不太容易理解什么是容器&#xff0c;这里…

挑战与创新:光学字符识别技术在处理复杂表格结构中的应用

OCR&#xff08;Optical Character Recognition&#xff09;光学字符识别技术是指通过计算机软硬件将印刷或手写的字符转化为可编辑和搜索的文本。这项技术已经被广泛应用于各个领域&#xff0c;例如扫描文档、自动化数据输入、图书数字化等。但是&#xff0c;当涉及到处理复杂…

利用websockify将websocket通信转换成tcp

文章目录 前言websockifywebsockify 介绍websockify 使用 探索的过程提供基础TCP服务测试可用 实现Websocket客户端开始测试websockify功能再次启动websockify单独实现一个js版本websocket客户端 什么是VNC总结 前言 目前遇到一个问题&#xff0c;原本的服务都是利用tcp通信的…

​glob --- Unix 风格路径名模式扩展​

源代码: Lib/glob.py glob 模块会按照 Unix shell 所使用的规则找出所有匹配特定模式的路径名称&#xff0c;但返回结果的顺序是不确定的。 波浪号扩展不会生效&#xff0c;但 *, ? 以及用 [] 表示的字符范围将被正确地匹配。 这是通过配合使用 os.scandir() 和 fnmatch.fnmat…

“ABCD“[(int)qrand() % 4]作用

ABCD[(int)qrand() % 4] 作用 具体来说&#xff1a; qrand() 是一个函数&#xff0c;通常在C中用于生成一个随机整数。% 4 会取 qrand() 生成的随机数除以4的余数。因为4只有四个不同的余数&#xff08;0, 1, 2, 3&#xff09;&#xff0c;所以这实际上会生成一个0到3之间的随…

java方法引用语法规则以及简单案例

目录 一、方法引用1.1 什么是方法引用1.2 方法引用的语法规则1.3 构造器引用1.4 方法引用的简单案例 参考资料 一、方法引用 1.1 什么是方法引用 方法引用是 Lambda 表达式的一种简写形式&#xff0c;用于表示已有方法的直接引用。 类似于lambda表达式&#xff0c;方法引用也…

window系统使用ESP8266开发板(CP2102)

连接开发板到电脑 虚拟机中选择连接的开发板硬件 查看设备管理器 更新驱动: CP210x USB to UART Bridge VCP Drivers - Silicon Labs 驱动安装成功

day03、关系模型之基本概念

关系模型之基本概念 1.关系模型概述1.1 关系模型三要素基本结构&#xff1a;relation/Table基本操作:relation operator 2.什么是关系3.关系模型中的完整性约束 本视频来源于B站&#xff0c;战德臣老师 1.关系模型概述 1.1 关系模型三要素 基本结构&#xff1a;relation/Table…

could not find a ready tiller pod

是 kubelet 的一个bug&#xff0c;在多container pod 的情况下有可能出现&#xff08;概率很小&#xff09; github 上已经有 PR&#xff0c;但是官方尚未合入代码 重启pod可恢复。长期来看&#xff0c;需要等待官方合入代码&#xff0c;更新版本。 解决&#xff1a; kubect…

水仙花数.

//水仙花数 #include<stdio.h> int main() { int i,a,b,c; for(i100;i<999;i) { int ai%10; int b(i/10)%10; int ci/100; if(ia*a*ab*b*bc*c*c) printf("%d ",i); } return 0; } 所谓“水仙花数”是指一个3位数&#xff0c;其各位数字立方之和等于该数本身…

使用docker实现logstash同步mysql到es

准备工作&#xff1a; 1.有mysql的连接方式&#xff0c;并且可以连接成功 2.有es的连接方式&#xff0c;并且可以连接成功 3.安装了docker 环境是Ubuntu中安装了docker 一、创建配置文件&#xff0c;用于容器卷挂载 # 切换目录&#xff0c;可自定义 cd /home/test/ # 创建lo…

FlieZilla服务器配置与数据访问、传输

概述 手机apk当初服务器&#xff0c;PC端访问手机端的数据&#xff0c;再没有数据线的情况下&#xff0c;非常方便。希望各位同仁搞起来&#xff0c;在此做个笔录。 安装包下载链接&#xff1a;https://download.csdn.net/download/qq_36075612/88577274 一、下载安装包&…

2023.12.12 关于 Java 反射详解

目录 基本概念 定义 用途 反射相关的类 反射基本原理 Class 类中的相关方法 常用获得类相关的方法 常用获得类中属性相关的方法 常用获得类中构造器相关的方法 常用获得类中方法相关的方法 实例理解 反射优缺点 基本概念 定义 Java 的反射&#xff08;reflection&a…

C++学习-2023/12/13-C++类型转换

C类型转换 static_cast 类似C语言强制类型转换 1.可以用做基本数据类型转换 2.把空类型的指针转换为目标指针类型 3.不能转换带有const属性指针 const_cast 提供一个常属性的接口 reinterpret_cast 说基本没用到 dynamic_cast:多态才会接触到 #include <iostream>…

MFC(Microsoft Foundation Classes)中 MessageBox

在MFC&#xff08;Microsoft Foundation Classes&#xff09;中&#xff0c;MessageBox是一个常用的对话框类&#xff0c;用于显示消息框并与用户进行交互。MessageBox类提供了多种用法和选项&#xff0c;以下是一些常见的用法和示例说明&#xff1a; 显示简单的消息框&#x…