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

news2024/12/22 19:46:22

目录

​编辑

引言

数据库(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.coloradmin.cn/o/1308562.html

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

相关文章

052:vue重新发布,软件热更新方面的一点经验示例

第052个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

Excel: Python 如何干掉 VBA 系列 乙

以下内容为本人的学习笔记&#xff0c;如需要转载&#xff0c;请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/k2XtfXS3GUt4r2QhizMOVg 创建工作表格 创建表格 xlwings 就可以协助创建插入了宏的 excel 表格。 先找到一个心满意足的目录&#xff0c;一般我…

随记-nginx docker + SSL 配置 - 配置等资源挂宿主机

随记-Nginx docker SSL 配置 - 配置等资源挂宿主机等 笔者动手配置&#xff0c;随手写的笔者&#xff0c;保证可操作 话说现在padmon是不是已经有代替docker的趋势了&#xff0c;谁能告诉我一把&#xff1f; 配置前准备 # 拉取nginx镜像 docker pull nginx #启动(暂时) doc…

DevEco Studio 鸿蒙(HarmonyOS)项目结构

DevEco Studio 鸿蒙&#xff08;HarmonyOS&#xff09;项目结构 一、操作环境 操作系统: Windows 10 专业版 IDE:DevEco Studio 3.1 SDK:HarmonyOS 3.1 二、项目结构 创建简单的Hello World移动应用项目结构如下图 由上到下说明各个文件夹的作用 .hvigor&#xff1a;存…

【已解决】ModuleNotFoundError: No module named ‘tensorflow‘

问题描述 Traceback (most recent call last): File "dataset_tool.py", line 16, in <module> import tensorflow as tf ModuleNotFoundError: No module named tensorflow 如果直接pip install tensorflow&#xff0c;还会报错 解决办法 方法一 pip i…

【华为数据之道学习笔记】4-3信息架构建设核心要素:基于业务对象进行设计和落地

4.3.1 按业务对象进行架构设计 业务对象是指业务领域中重要的人、事、物对象。业务对象承载了业务运作和管理涉及的重要信息&#xff0c;是信息架构中最重要的管理要素。 业务对象同时还是业务和IT的关键连接点&#xff0c;也是实现IA&#xff08;信息架构&#xff09;、BA&…

IntelliJ IDEA 自带HTTP Client接口插件上传文件示例

如何使用IntelliJ IDEA自带的HTTP Client接口插件进行文件上传的示例。在这个示例中&#xff0c;我们将关注Controller代码、HTTP请求文件&#xff08;xxx.http&#xff09;&#xff0c;以及文件的上传和处理。 Controller代码 首先&#xff0c;让我们看一下处理文件上传的Co…

持续集成交付CICD:Jenkins使用GitLab共享库实现自动上传前后端项目Nexus制品

目录 一、实验 1.GitLab本地导入前后端项目 2.Jenkins新建前后端项目流水线 3.Sonarqube录入质量阈与质量配置 4.修改GitLab共享库代码 5.Jenkins手动构建前后端项目流水线 6.Nexus查看制品上传情况 7.优化代码获取RELEASE分支 8.优化Jenkins流水线项目名称 一、实验 …

SpringBoot对PDF进行模板内容填充、电子签名合并

1. 依赖引入–这里只包含额外引入的包 原有项目包不含括在内 <!-- pdf编辑相关--> <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.3</version> </dependency><de…

【ARM Trace32(劳特巴赫) 使用介绍 6 -- 通用寄存器查看与修改】

请阅读【Trace32 ARM 专栏导读】 文章目录 通用寄存器查看与修改Rester 命令语法Register.InitRegister.RELOAD高亮显示Register变化的值多核寄存器显示设置寄存器的值修改 通用寄存器查看与修改 在使用Trace32进行调试时&#xff0c;有时候需要查看并修改通用寄存器、PC指针、…

拼接不同文件夹中同名图片的方法

有时候为了方便对比不同文件夹中同名图片&#xff0c;需要拼接在一起&#xff0c;这里提供一个拼接方法&#xff0c;当然不同命文件也可以实现拼接&#xff0c;稍微改改就能实现 如下图&#xff0c;在文件夹中有五个文件夹中的图片需要拼接&#xff0c;拼接后的图片存放在img_…

TSINGSEE青犀基于opencv的安全帽/反光衣/工作服AI检测算法自动识别及应用

安全帽/反光衣/工作服自动识别检测算法可以通过opencvyolo网络对现场画面中人员穿戴着装进行实时分析检测&#xff0c;判断人员是否穿着反光衣/安全帽。在应用场景中&#xff0c;安全帽/反光衣/工作服检测应用十分重要&#xff0c;通过对人员的规范着装进行实时监测与预警&…

diag_service的GLINK_IST是怎么来的

背景 平台&#xff1a;SA8155,QA 1.2.1 8155上集成了很多IP核&#xff0c;其中有不少的IP本质上是arm M核或者R核&#xff0c;这些模块在开发或者使用过程中也是需要监控和诊断的&#xff0c;但是他们并没有外部的调试接口&#xff0c;高通设计了整套诊断框架通过APSS&#x…

GBASE南大通用携手宇信科技打造“一表通”全链路解决方案

什么是“一表通”&#xff1f; “一表通”是国家金融监督管理总局为发挥统计监督效能、完善银行保险监管统计制度、推进监管数据标准化建设、打破数据壁垒&#xff0c;而制定的新型监管数据统计规范。相较于以往的报送接口&#xff0c;“一表通”提高了对报送时效性、校验准确性…

【Linux服务器Java环境搭建】09 在CentOS系统中安装和配置clickhouse数据库

一、安装环境 CentOS7 二、官网安装参考文档 官网安装参考文档 不同系统请参考如下建议 从RPM软件包安装&#xff1a; 建议在CentOS、RedHat和所有其他基于rpm的Linux发行版上使用官方预编译的rpm软件包从DEB软件包安装&#xff1a; 建议在Debian或Ubuntu上使用官方预编译…

深圳移动与大富科技助力深圳人工智能教育高质量发展

12月12日&#xff0c;中国移动通信集团广东有限公司深圳分公司(以下简称“深圳移动”) 与大富科技&#xff08;安徽&#xff09;股份有限公司&#xff08;以下简称“大富科技”&#xff09;在中国移动深圳信息大厦签署“战略合作框架协议”&#xff0c;共同推进人工智能教育、I…

物联网与低代码:构建智能化的连接世界

物联网&#xff08;IoT&#xff09;是指通过互联网将各种物理设备、传感器、车辆等连接起来&#xff0c;从而实现数据交互和智能化控制的技术领域。而低代码开发平台则是一种快速构建应用程序的方法&#xff0c;通过简化开发过程&#xff0c;使开发人员能够更迅速地实现创意和创…

数据结构学习 快速幂

看了这一篇很好的文章&#xff1a;快速幂&#xff0c;学习了一下快速幂。如果你看到这篇文章想要学习快速幂&#xff0c;我建议你直接去看这篇文章吧&#xff0c;下面的都是我个人的笔记和碎碎念。 重拾我的考研线性代数&#xff0c;非常有趣呢&#xff01; 基本的快速幂&…

Flutter之Android Studio No connected devices found

看图1. 是有显示有Redmi虚拟机的。 看图2. 没有Redmi虚拟机可选择&#xff0c;继续往下看解决方案。 看图3.点开项目结构设置SDK确定。 看图4.它来了

基于JavaWeb+SSM+Vue实习记录微信小程序系统的设计和实现

基于JavaWebSSMVue实习记录微信小程序系统的设计和实现 源码获取入口Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 Lun文目录 目 录 摘 要 III Abstract 1 1 系统概述 1 1.1 概述 2 1.2课题意义 3 1.3 主要内…