时序数据库:InfluxDB命令行操作

学习 InfluxDB 的命令行操作至关重要,它不仅是与数据库直接交互的工具,也是理解 InfluxDB 核心概念的关键途径。通过命令行,用户可以高效地执行数据库管理、数据查询和插入等任务,深入掌握 InfluxQL 的语法及功能。这对于调试、快速验证想法以及日常运维来说不可或缺。此外,熟练使用命令行有助于提升对 InfluxDB 工作原理的理解,为更复杂的应用开发和系统优化打下坚实基础。

目录

数据库操作

数据库表操作

新建表

显示所有表

删除表 

数据保存策略

查看保存策略

创建保存策略

修改保存策略

删除保存策略

数据查询操作

普通数据查询

聚合函数查询

分页查询


数据库操作

连接InfluxDB

进入InfluxDB的命令行终端,再连接InfluxDB

# 进入InfluxDB的命令行终端
docker exec -it influxdb /bin/bash# 连接InfluxDB
influx

对于数据库的操作:

# 显示数据库
show databases# 创建数据库
create database MyBase# 删除数据库
drop database MyBase# 使用数据库
use MyBase

操作效果如下:

数据库表操作

在InfluxDB当中,并没有表(table)这个概念,取而代之的是MEASUREMENTS,MEASUREMENTS的功能与传统数据库中的表一致,因此我们也可以将MEASUREMENTS称为InfluxDB中的表。

# 显示所有的 measurement
show measurements

新建表

InfluxDB中没有显式的新建表的语句,只能通过insert数据的方式来建立新表。语法如下:

insert measurement+","+tag1=value1,tag2=value2 + 空格 + field1=value1,field2=values2-- 例如:对measurement为tb_user的插入数据;有一个tag索引名为region,值为北京;有三个field分别是age,high,weight 对应的值分别为25、175、130
insert tb_user,region=北京 name="萧炎",age=25,high=175,weight=130

注意:

  • measurement与 tag 之间使用逗号分隔

  • 如果有多个tag,那么tag之间使用逗号分隔

  • tag 与 field 之间使用空格分隔

  • tag的值都是string类型,value不需要引号包裹

  • field如果是string类型的值,需要使用引号包裹

显示所有表

# 显示所有的 measurement
show measurements

删除表 

-- 删除语法
drop measurement 表名-- 例如:删除名为 tb_user 的measurement
drop measurement tb_user

数据库表操作效果如下:

数据保存策略

InfluxDB是一般不建议直接删除数据记录的;其提供数据保存策略,主要用于指定数据保留时间,超过指定时间,就删除这部分数据。

查看保存策略

show retention policies on 数据库名称-- 例如:查看 MyBase 数据库的保存策略
show retention policies on MyBase

  1. name:这是保留策略的名称。每个数据库可以有多个保留策略,autogen 是默认的保留策略名称,如果你没有为特定的数据点指定保留策略,它将自动使用 autogen。用户也可以自定义其他名称的保留策略。

  2. duration:表示数据保留的时间长度。这个值决定了数据在数据库中最多能保存多久。时间单位通常是小时(h)、分钟(m)、秒(s),如 72h 表示数据将被保留72小时。如果设置为 0s,则表示数据保留期无限制。

  3. shardGroupDuration:分片组的持续时间。InfluxDB使用分片组来组织和存储数据,每个分片组覆盖一个特定的时间范围,这个值定义了每个分片组的时间跨度。查询效率和资源管理在很大程度上取决于这个参数的设定,因为它影响着数据如何被索引和分布(不影响数据的删除与否)。时间单位同样使用小时、分钟、秒。168h 表示 168小时也就是一周

  4. replicaN:副本数量。这表示数据在集群中的复制份数。例如,如果设置为 1,则每份数据只有一份副本(数据只存在一份,没有其它);如果是 2,则每份数据会有两个副本,以此类推。增加副本数量可以提高数据的持久性和可用性,但也会增加存储需求。

  5. default:标记此保留策略是否为数据库的默认策略。如果此列为 true,则表示当写入数据时未明确指定保留策略,则会使用这个作为默认策略。如果为 false,则表明这是一个非默认策略,需要在写入数据时显式指定才会应用。

​​​​​​​创建保存策略

-- 语法
create retention policy 策略名 on 数据库名 duration 保留时长 replication 副本个数 [default]-- 示例:创建MyBase数据库的默认保存策略名字为 my_retention ,保留时长为24小时,副本数1个
create retention policy my_retention on MyBase duration 24h replication 1 default-- 示例:同样的,但是保存时长设置为3天,但是不设置为默认的保存策略的话就不加default
create retention policy my_retention2 on MyBase duration 3d replication 1

修改保存策略

-- 语法
alter retention policy 策略名 on 数据库名 duration 时长 default(可选)-- 例如:修改MyBase数据库中的my_retention策略,保留时长为2天,并设置为默认
alter retention policy my_retention on MyBase duration 2d default

删除保存策略

drop retention policy 策略名 on 数据库名-- 例如:删除MyBase数据库中策略名为 my_retention 的策略
drop retention policy my_retention on MyBase--- 删除保存策略如果是默认的;则不会自动的指定一个策略为默认;不过可以修改
alter retention policy autogen on MyBase default

数据查询操作

普通数据查询

InfluxDB基本查询操作和MySQL的基本查询是类似,综合使用如下所示:

#----综合使用
书写顺序
select distinct * from '表名' where '限制条件'  group by '分组依据' having '过滤条件' order by  limit '展示条数'
执行顺序
from       -- 查询(来源)
where      -- 限制条件 使用单引号,否则无数据返回或报错
group by   -- 分组 只能对tags和time进行分组
having     -- 过滤条件--》对分组内的数据
select     -- 查询的结果
distinct   -- 去重
order by   -- 排序 只能对time进行排序
limit      -- 展示条数

数据查询演示效果如下:

聚合函数查询

其实和MYSQL差不多,使用一些函数进行查询,修改查询范围与结果。

count()函数:返回一个(field)字段中的非空值的数量。

mean() 函数:返回一个字段(field)中的值的算术平均值(平均值)。字段类型必须是长整型或float64。

median()函数:从单个字段(field)中的排序值返回中间值(中位数)。用于计算一组数值的中位数。中位数是将一组数值按大小顺序排列后处于中间位置的数。如果数值集合中有奇数个数,中位数就是正中间的那个数;如果有偶数个数,则中位数是中间两个数的平均值

spread()函数:返回字段的最小值和最大值之间的差值。数据的类型必须是长整型或float64。

sum()函数:返回一个字段中的所有值的和。字段的类型必须是长整型或float64。

分页查询

在InfluxDB中,要实现分页效果,通常你会使用 LIMITOFFSET 这两个关键字结合使用。LIMIT 用于限制返回的结果数量,而 OFFSET 用于指定从结果集中的哪一个位置开始返回结果。这种方式类似于在其他数据库系统中使用 LIMIT m, n 来实现分页,其中 m 是偏移量,n 是每页的数量。

-- 语法
SELECT * FROM measurement_name WHERE condition GROUP BY ... LIMIT n OFFSET m
  • measurement_name:你想要查询的measurement名称。

  • condition(可选):用于过滤数据的条件表达式。

  • GROUP BY ...(可选):根据需要对结果进行分组。

  • LIMIT n:每页显示的记录数。

  • OFFSET m:从结果集中的第 m 条记录开始返回,用于实现分页。

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

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

相关文章

Bootstrap 表格:高效布局与动态交互的实践指南

Bootstrap 表格:高效布局与动态交互的实践指南 引言 Bootstrap 是一个流行的前端框架,它为开发者提供了丰富的组件和工具,使得构建响应式、美观且功能丰富的网页变得更加简单。表格是网页中常见的元素,用于展示数据。Bootstrap 提供了强大的表格组件,可以帮助开发者轻松…

⑥ ACG-系统管理

上网管理行为是指对员工在工作时间内使用公司网络的行为进行管理和监督。在企业中,系统管理是实施上网管理行为的重要方式之一。系统管理包括以下几个方面: 1. 访问控制:通过设置网络访问权限,对员工访问特定网站或使用特定应用程…

【Docker】Dockerfile 优化工具 hadolint

本文内容均来自个人笔记并重新梳理,如有错误欢迎指正! 如果对您有帮助,烦请点赞、关注、转发、订阅专栏! 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】(全…

接口自动化——初识pytest

缩写单词含义.passed通过Ffailed失败(用例执行时报错)Eerror出错(fixture执行报错)sskipped跳过Xxpassed预期外的通过(不符合预期)xxfailed预期内的失败(符合预期) 1.pytest 配置 1…

leetcode日记(100)填充每个节点的下一个右侧节点指针

和层序遍历差不多的思路,将节点储存在队列里,一边取出节点一边放入取出节点的左右节点,直到队列空。 /* // Definition for a Node. class Node { public:int val;Node* left;Node* right;Node* next;Node() : val(0), left(NULL), right(NU…

MySQL配置文件my.cnf详解

目前使用的服务器系统是CentOS8.5 ,针对MySql8.4的配置示例,自己根据实际情况修改。 安装MySql8.4时,MySql8.4没有默认的my.cnf,需要用户根据需要自行配置my.cnf文件,大概可看到下面这样的参数列表,可能不同版本的mysql参数多少会…

【解决】XCode不支持旧版本的iOS设备

办法: 手动添加设备支持文件(暂时解决方式) 如果您无法立即升级 Xcode,也可以通过下载设备支持文件来暂时解决问题。 检查当前设备的 iOS 版本: 连接设备到 Mac,打开 Xcode 查看提示的 iOS 版本。例如&…

每日c/c++题 备战蓝桥杯(全排列问题)

题目描述 按照字典序输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。 输入格式 一个整数 n。 输出格式 由 1∼n 组成的所有不重复的数字序列,每行一个序列。 每个数字保留 5 个场…

注意力蒸馏技术

文章目录 摘要abstract论文摘要简介方法预备知识注意力蒸馏损失注意力引导采样 实验结论总结参考文献 摘要 本周阅读了一篇25年二月份发表于CVPR 的论文《Attention Distillation: A Unified Approach to Visual Characteristics Transfer》,论文开发了Attention Distillation…

flutter android端抓包工具

flutter做的android app,使用fiddler抓不了包,现介绍一款能支持flutter的抓包工具Reqable,使用方法如下: 1、下载电脑端安装包 下载地址为【https://reqable.com/zh-CN/download/】 2、还是在上述地址下载 android 端apk&#xf…

PyTorch单机多卡训练(DataParallel)

PyTorch单机多卡训练 nn.DataParallel 是 PyTorch 中用于多GPU并行训练的一个模块,它的主要作用是将一个模型自动拆分到多个GPU上,并行处理输入数据,从而加速训练过程。以下是它的核心功能和工作原理: 1、主要作用 数据并行&am…

PyTorch中的Tensor

PyTorch中的Tensor‌ 是核心数据结构,类似于 NumPy 的多维数组,但具备 GPU 加速和自动求导等深度学习特性。 一、基本概念 ‌核心数据结构‌ Tensor 是存储和操作数据的基础单元,支持标量(0D)、向量(1D&am…

基于Python的图书馆信息管理系统研发

标题:基于Python的图书馆信息管理系统研发 内容:1.摘要 在数字化信息快速发展的背景下,传统图书馆管理方式效率低下,难以满足日益增长的信息管理需求。本研究旨在研发一款基于Python的图书馆信息管理系统,以提高图书馆信息管理的效率和准确性…

RCE复现

1.过滤flag <?php error_reporting(0); if(isset($_GET[c])){$c $_GET[c];if(!preg_match("/flag/i", $c)){eval($c);}}else{highlight_file(__FILE__);代码审计过滤了"flag"关键词&#xff0c;但限制较弱&#xff0c;容易绕过 ?csystem("ls&…

FPGA_YOLO(四) 部署yolo HLS和Verilog 分别干什么

首先,YOLO作为深度学习模型,主要包括卷积层、池化层、全连接层等。其中,卷积层占据了大部分计算量,尤其适合在FPGA上进行并行加速。而像激活函数(如ReLU)和池化层相对简单,可能更容易用HLS实现。FPGA的优势在于并行处理和定制化硬件加速,因此在处理这些计算密集型任务时…

自动化发布工具CI/CD实践Jenkins介绍!

1. 认识Jenkins 1.1 Jenkins是什么&#xff1f; Jenkins 是一个开源的自动化服务器&#xff0c;主要用于持续集成和持续部署&#xff08;CI/CD&#xff09;。 它由Java编写&#xff0c;因此它可以在Windows、Linux和macOS等大多数操作系统上运行。 Jenkins 提供了一个易于使用…

【愚公系列】《高效使用DeepSeek》039-政务工作辅助

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…

深度学习篇---模型训练评估参数

文章目录 前言一、Precision&#xff08;精确率&#xff09;1.1定义1.2意义1.3数值接近11.4数值再0.5左右1.5数值接近0 二、Recall&#xff08;召回率&#xff09;2.1定义2.2意义2.3数值接近12.4数值在0.5左右2.5数值接近0 三、Accuracy&#xff08;准确率&#xff09;3.1定义3…

Windows 图形显示驱动开发-WDDM 2.4功能-GPU 半虚拟化(十一)

注册表设置 GPU虚拟化标志 GpuVirtualizationFlags 注册表项用于设置半虚拟化 GPU 的行为。 密钥位于&#xff1a; DWORD HKLM\System\CurrentControlSet\Control\GraphicsDrivers\GpuVirtualizationFlags 定义了以下位&#xff1a; 位描述0x1 ​ 为所有硬件适配器强制设置…

Vue 的 nextTick 是如何实现的?

参考答案&#xff1a; nextTick 的本质将回调函数包装为一个微任务放入到微任务队列&#xff0c;这样浏览器在完成渲染任务后会优先执行微任务。 nextTick 在 Vue2 和 Vue3 里的实现有一些不同&#xff1a; 1. Vue2 为了兼容旧浏览器&#xff0c;会根据不同的环境选择不同包装策…