InfluxDB 简介、安装和简单使用

简介

InfluxDB是一个由InfluxData开发的开源时序型数据库。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。可以理解为按时间记录一些数据(常用的监控数据、埋点统计数据等),然后做统计
  • 与传统数据库的概念对比
influxDB中的名词传统数据库中的概念
database数据库
measurement数据库中的表
points表中的一行数据
  • Point

    Point由时间戳(time)、数据(field)、标签(tags)组成。
    
Point属性传统数据库中的概念
time每个数据记录时间,是数据库中的主索引(会自动生成)
field各种记录值(没有索引的属性)
tags各种有索引的属性
  • Series

    Series 相当于是 InfluxDB 中一些数据的集合。
    在同一个 database 中,retention policy、measurement、tag sets 完全相同的数据同属于一个 series。
    同一个 series 的数据在物理上会按照时间顺序排列存储在一起。
    
  • 组件

    TSM 存储引擎主要由几个部分组成: cache、wal、tsm file、compactor。
    
  1. Cache:

    cache 相当于是 LSM Tree 中的 memtabl。插入数据时,实际上是同时往 cache 与 wal 中写入数据,可以认为 cache 是 wal 文件中数据在内存中的缓存。当 InfluxDB 启动时,会遍历所有的 wal 文件,重新构造 cache,这样即使系统出现故障,也不会导致数据的丢失。

    cache 中的数据并不是无限增长的,有一个 maxSize 参数(默认为 25MB)用于控制当 cache 中的数据占用多少内存后就会将数据写入 tsm 文件。每当 cache 中的数据达到阀值后,会将当前的 cache 进行一次快照,之后清空当前 cache 中的内容,再创建一个新的 wal 文件用于写入,剩下的 wal 文件最后会被删除,快照中的数据会经过排序写入一个新的 tsm 文件中。

  2. WAL

    wal 文件的内容与内存中的 cache 相同,其作用就是为了持久化数据,当系统崩溃后可以通过 wal 文件恢复还没有写入到 tsm 文件中的数据。

  3. TSM File

    单个 tsm file 大小最大为 2GB,用于存放数据。

  4. Compactor

    compactor 组件在后台持续运行,每隔 1 秒会检查一次是否有需要压缩合并的数据。

    主要进行两种操作,一种是 cache 中的数据大小达到阀值后,进行快照,之后转存到一个新的 tsm 文件中。

    另外一种就是合并当前的 tsm 文件,将多个小的 tsm 文件合并成一个,使每一个文件尽量达到单个文件的最大大小,减少文件的数量,并且一些数据的删除操作也是在这个时候完成。

  • 目录与文件结构

    InfluxDB 的数据存储主要有三个目录。默认情况下是 meta, wal 以及 data。

    meta 用于存储数据库的一些元数据,meta 目录下有一个 meta.db 文件。

    wal 目录存放预写日志文件。

    data 目录存放实际存储的数据文件。

安装及配置

  • 环境

    ubuntu 20.04

  • 安装

    sudo apt install influxdb

    sudo apt install influxdb-client

  • 查看状态、启动、关闭

    // 查看状态 q退出 / 启动 / 关闭 / 重启
    sudo service influxdb status / start / stop / restart

    以服务方式启动 sudo service influxdb start

    以非服务方式启动 sudo influxd

  • 查看配置文件

    influxd config

    在这里插入图片描述

influxdb默认使用内存索引,所以在使用过程中内存占用会越来越大,并且导致查询越来越慢
修改为tsi 磁盘索引: index-version="tsi1"

在这里插入图片描述
官方详细配置文件

  • 进入命令行客户端
influxinflux -precision rfc3339  (数据显示时间而非时间戳)

简单使用

  • 数据库与表的操作
# 查询所有数据库
show databases# 创建数据库
create database testDb;
# 删除数据库
drop database testDb;
# 选择数据库
use testDb1;# 查看该数据库下的全部表
show measurements;# 创建表,直接在插入数据的时候指定表名
insert test,host=127.0.0.1,monitor_name=test count=1
# 删除表
drop measurement "test"
  • 增查
# 增
insert test,host=127.0.0.1,monitor_name=test count=1表名:test
tag :(只能为字符串类型)host=127.0.0.1,monitor_name=test
field :(类型无限制)count=1# 查
select * from test order by time desc
  • 数据保存策略(Retention Policies)
# InfluxDB本身不提供数据的删除操作,因此用来控制数据量的方式就是定义数据保留策略。
# 查看当前数据库 Retention Policies
show retention policies on "db_name"

在这里插入图片描述

# name--名称,此示例名称为 autogen
# duration--持续时间,0代表无限制
# shardGroupDuration--shardGroup的存储时间,shardGroup是InfluxDB的一个基本储存结构,应该大于这个时间的数据在查询效率上应该有所降低。
# replicaN--全称是REPLICATION,副本个数
# default--是否是默认策略# 创建新的Retention Policies
create retention policy "rp_name" on "db_name" duration 3w replication 1 default# rp_name:策略名;
# db_name:具体的数据库名;
# 3w:保存3周,3周之前的数据将被删除,influxdb具有各种事件参数,比如:h(小时),d(天),w(星期);
# replication 1:副本个数,一般为1就可以了;
# default:设置为默认策略# 修改Retention Policies
alter retention policy "rp_name" on "db_name" duration 30d default# 删除Retention Policies
drop retention policy "rp_name" on "db_name"注:
# 策略这个关键词“POLICY”在使用时应该大写,小写会出粗。
# 当一个表使用的策略不是默认策略时,在进行操作时一定要显式的指定策略名称,否则会出现错误。
  • 连续查询(Continuous Queries)
# 当数据超过保存策略里指定的时间之后就会被删除,但是这时候可能并不想数据被完全删掉,怎么办?
# influxdb提供了连续查询,可以做数据统计采样。
# InfluxDB的连续查询是在数据库中自动定时启动的一组语句,语句中必须包含 SELECT 关键词和 GROUP BY time() 关键词。
# 查看数据库的Continous Queries
show continuous queries# 创建新的Continous Queries
create continous query cq_name on db_name begin select sum(count) into new_table_name from table_name group by time(30m) end# cq_name:连续查询名
# group by time(30m) 每三十分钟取一个 sum(count)
# InfluxDB会将查询结果放在指定的数据表中:new_table_name# 删除Continous Queries
drop continous query cp_name on db_name

添加用户认证

  • 首先创建一个admin用户
# 显示用户
SHOW USERS# 创建用户
CREATE USER "username" WITH PASSWORD 'password'# 创建管理员权限的用户
CREATE USER "username" WITH PASSWORD 'password' WITH ALL PRIVILEGES# 修改用户(密码) 
SET PASSWORD FOR "username" = 'new_password'# 删除用户
DROP USER "username"
  • 默认情况下,认证在配置文件是禁用的

    需要在配置文件里把 [http] 下的 auth-enabled 选项设置为 true 。
    在这里插入图片描述

  • 重启 influxd

    进入influx : influx -username username -password password

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

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

相关文章

4)机器学习基石笔记 Lecture4:Feasibility of Learning

目录 1)Learning is Impossible 2)Probability to the Rescue 3)Connection to Learning 4)Connection to Real Learning 上节课我们主要介绍了机器学习问题的类型,主要是二元分类和回归问题。本节课,我…

Java注解全面解析

1.基本语法 注解定义看起来很像接口的定义。事实上,与其他任何接口一样,注解也将会编译成class文件。 Target(ElementType.Method)Retention(RetentionPolicy.RUNTIME)public interface Test {} 除了符号以外,Test的定义很像一个空的接口。…

ubuntu18.04下安装grafana6和简单使用

ubuntu18.04下安装grafana6 环境 ubuntu18.04 下载 sudo apt-get install -y adduser libfontconfig1 # 使用wget 下载会很慢 # 推荐百度网盘:链接:https://pan.baidu.com/s/1y2I4LwuslB5kHAZwV8RNxw 提取码:o19t # 或者csdn:[gr…

【POJ - 1364】King(差分约束判无解)

题干: Once, in one kingdom, there was a queen and that queen was expecting a baby. The queen prayed: If my child was a son and if only he was a sound king. After nine months her child was born, and indeed, she gave birth to a nice son. Unfortu…

VMware虚拟机下安装Ubuntu16.04镜像完整教程

目录 1)安装前准备 2)安装Ubuntu 16.04镜像 3)One More Thing 1)安装前准备 PC电脑操作系统是WIN7,已正确安装虚拟机VMware 12。 2)安装Ubuntu 16.04镜像 下载Ubuntu镜像文件,下载链接为…

JAVA 注解的基本原理

以前,『XML』是各大框架的青睐者,它以松耦合的方式完成了框架中几乎所有的配置,但是随着项目越来越庞大,『XML』的内容也越来越复杂,维护成本变高。 于是就有人提出来一种标记式高耦合的配置方式,『注解』…

查看ubuntu系统的版本信息

目录 1)查看linux内核、gcc版本、ubuntu版本 2)显示linux的内核版本和系统是多少位 1)查看linux内核、gcc版本、ubuntu版本 显示如下 Linux version 4.15.0-29-generic (builddlcy01-amd64-024) linux内核版本号 gcc version 5.4…

数字证书原理

基础知识 1. 公钥密码体制 公钥密码体制分为三个部分,公钥、私钥、加密解密算法,它的加密解密过程如下: 加密:通过加密算法和公钥对明文进行加密,得到密文。解密:通过解密算法和私钥对密文进行解密&…

【POJ - 1087】A Plug for UNIX(建图,网络流最大流)

题干: You are in charge of setting up the press room for the inaugural meeting of the United Nations Internet eXecutive (UNIX), which has an international mandate to make the free flow of information and ideas on the Internet as cumbersome and …

框架基础——全面解析Java注解

阅读目录 一、概念二、Java中的常见注解三、注解的分类四、自定义注解五、注解的项目实战六、注解总结 为什么学习注解? 学习注解有什么好处? 学完能做什么? 答:1. 能够读懂别人写的代码,特别是框架相关的代码&…

CS231n Convolutional Neural Networks for Visual Recognition------Scipy and MatplotlibTutorial

源链接为:http://cs231n.github.io/python-numpy-tutorial/。 这篇指导书是由Justin Johnson编写的。 在这门课程中我们将使用Python语言完成所有变成任务!Python本身就是一种很棒的通用编程语言,但是在一些流行的库帮助下(numpy&…

自签名CA认证

自签名CA认证 用openssl命令生成自己的根证书,让用户安装信任它,之后所有用这个根证书签名的证书,就可以被信任。 生成根证书 创建文件并配置环境mkdir /root/ca cd /root/ca mkdir certs crl newcerts private chmod 700 private touch i…

注解由谁读取并解析的?

问题: 注解由谁读取并解析的?描述: java web 开发,使用ssh框架。在dao层,定义的类的头上有Component("GzDAO")注解,在service层, 定义的类的头上有Service(value "GzService")&…

Python之Numpy入门实战教程(1):基础篇

Numpy、Pandas、Matplotlib是Python的三个重要科学计算库,今天整理了Numpy的入门实战教程。NumPy是使用Python进行科学计算的基础库。 NumPy以强大的N维数组对象为中心,它还包含有用的线性代数,傅里叶变换和随机数函数。 强烈建议大家将本文中…

Go初识与问题

变量&常量 变量 命名 由字母、数字、下划线组成,首个字符不能是数字关键字、保留字不能作为变量名变量名字区分大小写驼峰命名声明 1. var : 全局变量var 变量名称 类型var 变量名称1,变量名称2 类型 (同一种类型)var (变量名称1 类型1变量名称2 类型…

【HDU - 4597】Play Game(博弈dp)

题干: Alice and Bob are playing a game. There are two piles of cards. There are N cards in each pile, and each card has a score. They take turns to pick up the top or bottom card from either pile, and the score of the card will be added to his …

1.3)深度学习笔记------浅层神经网络

目录 1)Neural Network Overview 2)Neural Network Representation 3)Computing a Neural Network’s Output(重点) 4)Vectorizing across multiple examples 5)Activation functions 6&a…

git 实战

配置ssh git config --global user.name "用户名" git config --global user.email "邮箱"ssh-keygen -t rsa -C "邮箱"需要进行确认:1. 确认秘钥的保存路径(不需要改直接回车)2. 如果上一步置顶的保存路径下已经有秘钥文件&…

SpringMVC 的执行流程

SpringMVC 的执行流程 1)用户向服务器发送请求,请求被 Spring 前端控制 Servelt DispatcherServlet捕获; 2)DispatcherServlet 对请求 URL 进行解析,得到请求资源标识符(URI)。然后根据该 URI&…

【POJ - 2987】Firing(最大权闭合图,网络流最小割,输出方案最小,放大权值法tricks)

题干: You’ve finally got mad at “the world’s most stupid” employees of yours and decided to do some firings. You’re now simply too mad to give response to questions like “Don’t you think it is an even more stupid decision to have signed …