Influxdb基础概念及常用命令

Influxdb

InfluxDB专为时间序列数据编写的定制高性能数据存储, TSM引擎可实现高摄取速度和数据压缩,类似于SQL的富有表现力的查询语言,旨在轻松查询聚合数据,完全用Go编写。它可以编译为一个没有外部依赖项的二进制文件。

常用命令

-- 查看所有的数据库
show databases;
-- 使用特定的数据库
use database_name;
-- 删除数据库;
drop database database_name;
-- 查看所有的measurement
show measurements;
-- 删除measurement
drop measurement measurement_name;
-- 查询10条数据
select * from measurement_name limit 10;
-- 数据中的时间字段默认显示的是一个纳秒时间戳,改成可读格式
precision rfc3339;
-- 之后再查询,时间就是rfc3339标准格式
-- 或可以在连接数据库的时候,直接带该参数
influx -precision rfc3339
-- 查看一个measurement中所有的tag key
show tag keys
-- 查看一个measurement中所有的field key
show field keys
-- 查看一个measurement中所有的保存策略(可以有多个,一个标识为default)
show retention policies;

基本概念及对照

  • database:数据库,不同数据库中的数据文件是隔离存放的,存放在磁盘上的不同目录;
  • measurement:数据库中的表;
  • points:表里面的一行数据,point由时间戳(time)、数据(field)和标签(tags)组成;
  • time:每条数据记录的时间,也是数据库自动生成的主索引;
  • fields:各种记录的值;
  • tags:各种有索引的属性;
  • tag set:不同的每组tag key和tag value的集合;
  • field set:每组field key和field value的集合;
  • retention policy:数据存储策略(默认策略为autogen,数据保留时间为永久)InfluxDB没有删除数据操作,规定数据的保留时间达到清除数据的目的;
  • series: Series 相当于是 InfluxDB 中一些数据的集合,在同一个 database 中,retention policy、measurement、tag sets 完全相同的数据同属于一个 series,同一个 series 的数据在物理上会按照时间顺序排列存储在一起。
  • Shard: 与retention policy 相关联,每一个存储策略下会存在许多 shard,每一个 shard 存储一个指定时间段内的数据,并且不重复,例如 7点-8点 的数据落入 shard0 中,8点-9点的数据则落入 shard1 中。每一个 shard 都对应一个底层的 tsm 存储引擎,有独立的 cache、wal、tsm file。
  • 组件:TSM 存储引擎主要由几个部分组成: cache、wal、tsm file、compactor。
    在这里插入图片描述

与Mysql对照

概念MysqlInfluxdb
数据库databasedatabase
表(不同)tablemeasurement
列(不同)cloumntags

注意点

* tag 只能为字符串类型
* field 类型无限制
* 不支持join
* 支持连续查询操作(汇总统计数据):CONTINUOUS QUERY
* 配合Telegraf服务(Telegraf可以监控系统CPU、内存、网络等数据)
* 配合Grafana服务(数据展现的图像界面,将influxdb中的数据可视化)
* InfluxDB默认使用以下网络端口:
 	TCP端口8086用于通过InfluxDB的HTTP API进行客户端-服务器通信
    TCP端口8088用于RPC服务以进行备份和还原
  • 网络时间协议(NTP)
    InfluxDB使用主机的UTC本地时间为数据分配时间戳并用于协调目的。使用网络时间协议(NTP)同步主机之间的时间; 如果主机的时钟与NTP不同步,写入InfluxDB的数据的时间戳可能不准确。
  • 在influxdb中,字段必须存在。注意,字段是没有索引的。如果使用字段作为查询条件,会扫描符合查询条件的所有字段值,性能不及tag。类比一下,fields相当于SQL的没有索引的列。

目录与文件结构

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

  • meta 用于存储数据库的一些元数据,meta 目录下有一个 meta.db 文件。
  • wal 目录存放预写日志文件,以 .wal 结尾。
  • data 目录存放实际存储的数据文件,以 .tsm 结尾。

操作方式

  1. 客户端命令行方式

  2. HTTP API接口

  3. 各语言API库

  4. 基于WEB管理页面操作

策略相关

--策略相关
    --查询策略
     --可以通过如下语句查看数据库的现有策略:
show retention policies on telegraf
     --新建策略
CREATE RETENTION POLICY "2_hours" ON "telegraf" DURATION 2h REPLICATION 1 DEFAULT
    --通过上面的语句可以添加策略, 本例在telegraf库添加了一个2小时的策略, 名字叫做2_hours,duration为2小时, 副本为1, 设置为默认策略.因为名为default的策略不再是默认策略, 因此, 在查询使用default策略的表时要显示的加上策略名"defalut"
select * from "default".cpu limit 2
    --修改策略
ALTER RETENTION POLICY "2_hours" ON "telegraf" DURATION 4h DEFAULT
     --删除策略
drop retention POLICY "2_HOURS" ON "telegraf"
    --说明:
        --策略这个关键词"POLICY"在使用时应该大写,小写应该会出错.
        --当一个表使用的策略不是默认策略时, 在进行操作时一定要显示的指定策略名称, 否则会出现错误.

参考资料:
1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值