我的编程空间,编程开发者的网络收藏夹
学习永远不晚

influxdb的原理和用法是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

influxdb的原理和用法是什么

今天就跟大家聊聊有关influxdb的原理和用法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

influxdb是什么

influxdb是一个由go语言开发的、用于存储和分析时间序列数据的开源数据库。特点如下:

  内置HTTP接口,使用方便

  数据可以打标记,查让查询可以很灵活

  类SQL的查询语句

  安装管理很简单,并且读写数据很高效

  能够实时查询,数据在写入时被索引后就能够被立即查出

  支持数据存储策略(RP)和数据归档(CQ)

  更多的描述,可以看influxdb官方描述。

influxdb安装

我们可以直接从官方下载二进制安装,也可以基于docker镜像来安装。基于docker镜像安装,执行如下命令即可

  docker run -d --name influxdb -p 8860:8086 \

  -v $PWD/influxdb.conf:/usr/local/influxdb/influxdb.conf:ro \

  -v $PWD:/data/influxdb \

  influxdb -config /usr/local/influxdb/influxdb.conf

参数描述:

  -d :在后台运行容器,并打印出容器id

  --name influxdb 指定容器的名字

  -p 8081:8082 指定端口映射,将宿主机的8860端口,映射到容器的8086端口

  -v $PWD/influxdb.conf:/usr/local/influxdb/influxdb.conf:ro 将当前目录下面influxdb.conf挂载到容器的/usr/local/influxdb/influxdb.conf目录。因为默认挂载的路径权限为读写,通过ro,可以限制权限为只读,防止容器中修改配置文件。

  -v $PWD:/data/influxdb 将当前目录,挂载到容器的 /data/infludb目录。这样,我们可以指定infludb的数据文件,写到 /data/infludb这个目录,这样可以实现数据的落盘。

influxdb相关概念

  在使用infludb之前,我们先了解一波它的一些概念,比如database、Retention Policy、measurement、Continuous Query、point、field、tag等。首先,整体认识一下:

  1、database

  database即数据库,可以类比mysql、mongo等数据库。

  create database "test" --创建数据库

  show databases --展示所有数据库

  use test --选择使用的数据库

  2、Retention Policy

  retention policy,即存储策略,简称RP,用来控制数据库的存储时间。 InfluxDB会比较服务器本地的时间戳和你数据的时间戳,并删除比RP里面的持续时间更老的数据。单个数据库中可以有多个RP,但是每个数据的RP是唯一的。RP的相关操作如下:

  查看数据库 test的rp

  SHOW RETENTION POLICIES ON "test"

  给test数据库创建新的rp

  CREATE RETENTION POLICY "rp_name" ON "db_name" DURATION 3w REPLICATION 1 DEFAULT

  rp_name:RP策略名

  db_name:具体的数据库名

  3w:设置数据保存3个星期,3个星期之前的数据将被删除,infludb它具有各种时间参数,比如:h(小时), d(天),w(星期)

  REPLICATION 1:副本个数,这里填1就可以了。

  DEFAULT 设为默认的策略。

  修改数据库的rp

  修改rp使用如下命令:

  CREATE RETENTION POLICY "rp_name" ON "db_name" DURATION 3d DEFAULT

  删除数据库的rp

  DROP RETENTION POLICY "rp_name" ON "db_name"

  3、measurement

  measurement,可以类比传统数据库中的表。传统额数据库,支持增删改查,infludb仅仅支持增和查,删除可以同RP来实现。

  数据的插入

  influxdb支持http和rpc方式来插入数据,当然也支持命令行方式插入数据,如下:

  use test --使用 test数据库

  insert weather,altitude=1000,area=北 temperature=11,humidity=-4

  其中:

  weather : 表名,即measurement的名字

  altitude=1000,area=北 为tag,可以把tag理解为mysql中带索引的列。

  temperature=11,humidity=-4 为field,,可以把field理解为mysql中不带索引的列。

  针对每条插入的数据,influxdb,会自动加一列,列的名字为time,用于记录当前数据的时间。

  数据的查询

  influxdb支持 where、group、order、limit等字句。如下:

  select * from weather order by time desc limit 5

  4、连续查询(Continuous Queries)

  influxdb中的数据,当超过保存策略里指定的时间之后,就会被删除。如果我们不想删除掉,但是又担心容量过大怎么办呢?可以对数据采用更大的粒度,进行归档,即以降低精度为代价。比如把原先每秒的数据,归档存为分钟的数据,把原先分钟的数据,归档存为每小时或每天的数据等,这样在容量固定的情况下,可以存储更多的数据。在influxdb中,这种操作,叫连续查询(Continuous Queries)。

  查看数据库的Continuous Queries

  SHOW CONTINUOUS QUERIES

  创建Continuous Queries

  1CREATE CONTINUOUS QUERY cq_3d ON testDb BEGIN SELECT mean(age) as age INTO test_3days FROM test GROUP BY time(3d), * END

其中:cq_3d:连续查询的名字

  testDb:具体的数据库名。

  mean(age) as age: 计算age的平均值,后并字段名改为age

  test: measurement名称,即基数据库哪个表进行归档

  test_3days: measurement名称,数据归档后,存储的表名。

  3d:归档的频率,即每间隔3天,归档一次。

  * :针对所有的tag进行group by操作,当然我们也可以基于特定的tag来group by操作。需要注意,针对哪些tags进行group by操作,那么归档后的表test_3days中,就会有哪些tags。

  删除Continuous Queries

  删除操作命令如下:

  DROP CONTINUOUS QUERY ON

看完上述内容,你们对influxdb的原理和用法是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

influxdb的原理和用法是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

c#中influxdb调用的方法是什么

在C#中调用InfluxDB的方法通常是通过使用InfluxDB的官方C#客户端库。该库提供了一些API方法来连接、查询和操作InfluxDB数据库。一些常用的方法包括:连接到InfluxDB数据库:通过指定数据库的连接信息(如URL、用户
c#中influxdb调用的方法是什么
2024-04-08

Java中ThreadLocal的用法和原理是什么

这篇文章主要介绍“Java中ThreadLocal的用法和原理是什么”,在日常操作中,相信很多人在Java中ThreadLocal的用法和原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中Th
2023-07-06

JavaScript promise的使用方法和原理是什么

这篇“JavaScript promise的使用方法和原理是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScr
2023-07-06

.Net 6中WebApplicationBuilder原理和用法是什么

这篇文章将为大家详细讲解有关.Net 6中WebApplicationBuilder原理和用法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。介绍.Net 6为我们带来的一种全新的引导程
2023-06-22

struts框架的原理和应用方法是什么

Struts框架是一个用于开发Java Web应用程序的MVC(模型-视图-控制器)框架。它提供了一种结构化的方式来组织和管理Web应用程序的代码。下面是Struts框架的工作原理和应用方法:工作原理:请求到达服务器后,Struts的前端
2023-10-26

SSH的原理及用法是什么

这篇文章将为大家详细讲解有关SSH的原理及用法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。SSH的英文全称是Secure SHell。通过使用SSH,你可以把所有传输的数据进行加密,
2023-06-13

JWT的原理及用法是什么

本篇内容介绍了“JWT的原理及用法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、跨域认证的问题互联网服务离不开用户认证。一般流程是
2023-07-04

CRM和Hybris的原理是什么

这篇文章主要介绍“CRM和Hybris的原理是什么”,在日常操作中,相信很多人在CRM和Hybris的原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CRM和Hybris的原理是什么”的疑惑有所帮助!
2023-06-04

golang定时器Timer的用法和实现原理是什么

本篇内容介绍了“golang定时器Timer的用法和实现原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!TimerTimer是一种单
2023-07-06

MySQL复制的原理和作用是什么

本篇内容主要讲解“MySQL复制的原理和作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL复制的原理和作用是什么”吧!目录一、MySQL复制相关概念二、简单的一主一从架构实现1、
2023-06-20

ThreadLocal的原理和使用场景是什么

ThreadLocal是Java中的一个类,用于在多线程环境中实现线程内部的数据共享。它提供了一个线程局部变量,每个线程都可以独立地改变该变量的值,而不会影响其他线程的该变量的值。ThreadLocal的原理是通过为每个线程创建一个独立的变
2023-09-12

chatgpt的算法原理是什么

这篇“chatgpt的算法原理是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“chatgpt的算法原理是什么”文章吧。I
2023-07-05

Springmvc ModelAndView原理及用法是什么

Spring MVC 是一个基于Java的实现了MVC设计模式的Web框架,它使用了ModelAndView对象来封装视图和模型数据。原理:1. 当控制器方法处理完请求后,它会返回一个ModelAndView对象。2. ModelAndVi
2023-08-18

ajax的原理和流程是什么

Ajax的全称是Asynchronous JavaScript and XML,即异步JavaScript和XML。它是一种在Web应用程序中创建交互式用户界面的技术,其主要特点是无需刷新整个页面即可更新部分页面内容。Ajax的工作流程如下
2023-05-13

nginx作用和工作原理是什么

nginx是一种高性能的开源Web服务器和反向代理服务器。它可以用于处理静态和动态的HTTP、HTTPS、SMTP、POP3和IMAP协议,并具有负载均衡、反向代理、缓存、压缩等功能。nginx的工作原理如下:1. 当客户端发送请求时,先到
2023-10-07

ThreadLocal的set方法原理是什么

这篇文章主要介绍了ThreadLocal的set方法原理是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ThreadLocal的set方法原理是什么文章都会有所收获,下面我们一起来看看吧。前沿知识Threa
2023-07-05

Vue的diff算法原理是什么

这篇文章将为大家详细讲解有关Vue的diff算法原理是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。思维导图0. 从常见问题引入虚拟dom是什么?如何创建虚拟dom?虚拟dom如何渲染成真是dom?虚
2023-06-29

编程热搜

目录