iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >influxdb的原理和用法是什么
  • 584
分享到

influxdb的原理和用法是什么

2024-04-02 19:04:59 584人浏览 泡泡鱼
摘要

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

今天就跟大家聊聊有关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的原理和用法是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网数据库频道,感谢大家的支持。

您可能感兴趣的文档:

--结束END--

本文标题: influxdb的原理和用法是什么

本文链接: https://www.lsjlt.com/news/68857.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • oracle怎么查询当前用户所有的表
    要查询当前用户拥有的所有表,可以使用以下 sql 命令:select * from user_tables; 如何查询当前用户拥有的所有表 要查询当前用户拥有的所有表,可以使...
    99+
    2024-05-15
    oracle
  • oracle怎么备份表中数据
    oracle 表数据备份的方法包括:导出数据 (exp):将表数据导出到外部文件。导入数据 (imp):将导出文件中的数据导入表中。用户管理的备份 (umr):允许用户控制备份和恢复过程...
    99+
    2024-05-15
    oracle
  • oracle怎么做到数据实时备份
    oracle 实时备份通过持续保持数据库和事务日志的副本来实现数据保护,提供快速恢复。实现机制主要包括归档重做日志和 asm 卷管理系统。它最小化数据丢失、加快恢复时间、消除手动备份任务...
    99+
    2024-05-15
    oracle 数据丢失
  • oracle怎么查询所有的表空间
    要查询 oracle 中的所有表空间,可以使用 sql 语句 "select tablespace_name from dba_tablespaces",其中 dba_tabl...
    99+
    2024-05-15
    oracle
  • oracle怎么创建新用户并赋予权限设置
    答案:要创建 oracle 新用户,请执行以下步骤:以具有 create user 权限的用户身份登录;在 sql*plus 窗口中输入 create user identified ...
    99+
    2024-05-15
    oracle
  • oracle怎么建立新用户
    在 oracle 数据库中创建用户的方法:使用 sql*plus 连接数据库;使用 create user 语法创建新用户;根据用户需要授予权限;注销并重新登录以使更改生效。 如何在 ...
    99+
    2024-05-15
    oracle
  • oracle怎么创建新用户并赋予权限密码
    本教程详细介绍了如何使用 oracle 创建一个新用户并授予其权限:创建新用户并设置密码。授予对特定表的读写权限。授予创建序列的权限。根据需要授予其他权限。 如何使用 Oracle 创...
    99+
    2024-05-15
    oracle
  • oracle怎么查询时间段内的数据记录表
    在 oracle 数据库中查询指定时间段内的数据记录表,可以使用 between 操作符,用于比较日期或时间的范围。语法:select * from table_name wh...
    99+
    2024-05-15
    oracle
  • oracle怎么查看表的分区
    问题:如何查看 oracle 表的分区?步骤:查询数据字典视图 all_tab_partitions,指定表名。结果显示分区名称、上边界值和下边界值。 如何查看 Oracle 表的分区...
    99+
    2024-05-15
    oracle
  • oracle怎么导入dump文件
    要导入 dump 文件,请先停止 oracle 服务,然后使用 impdp 命令。步骤包括:停止 oracle 数据库服务。导航到 oracle 数据泵工具目录。使用 impdp 命令导...
    99+
    2024-05-15
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作