【InfluxDB】InfluxDB学习实践笔记

 

InfluxDB是用Go编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。它与Elasticsearch、Graphite等相似。比较适用于与事件紧密相关的数据,例如实时日志数据、实时监控数据等,详细信息能够自行网上搜索。html

0x00 环境信息

基本信息:linux

  • 系统:CentOS7.2
  • IP地址:xx.xx.xx.xx
  • 端口号:30040
  • 运行环境:K8S测试集群中
  • InfluxDB版本:1.5.1(该版本再也不提供web界面)
  • InfluxDB用户名:admin
  • InfluxDB密码:admin

0x01 基本操做

InfluxDB支持三种方式的通讯方式:web

  • InfluxDB客户端命令行
  • HTTP API
  • 各编程语言库

下面演示采用InfluxDB客户端命令行方式。数据库

一、链接、认证

在windows系统中使用InfluxDB客户端命令行链接数据库,并进行认证:
编程

注意,本地必须存在influxdb的一套指令程序,包括下面几个:
windows

二、数据库操做

  • show databases 查看数据库
  • create database db_name 建立数据库
  • drop database db_name 删除数据库
  • use db_name 选择数据库

其中db_name表示具体的数据库名。
实际操做以下:服务器

三、measurement操做

InfluxDB中的measurement相似于关系数据库中的数据表,后文中所有称其为数据表。编程语言

  • show measurements 查看表
  • insert measurement_name,tags fields timestamp 由于没有显示的建立表语句,因此经过向表中插入数据来建立表
  • drop measurement measurement_name 删除表

其中,measurement_name表明具体的表名。在插入数据时有特定的格式要求,例如:分布式

insert server_info,server_name=server1 cpu=intel,ram_capacity=64 timestamp

其中,从左到右依次为表名、逗号、tags<key-value,可多个>、空格、fields<key-value,可多个>、空格、timestamp,其中多个tags之间使用逗号分隔,多个fields之间使用逗号分隔。测试

四、数据操做(增删改查)

(1)新增数据

假设数据表格式以下面语句所示:

insert server_info,server_name=server1 cpu=intel,ram_capacity=64 timestamp

由上图结果可知,在插入数据时,能够不指定timestamp,此时数据库会自动添加。

(2)查询数据

查询数据使用SQL语句实现,同关系型数据库的查询方式几乎相同。如上图中所示。

(3)修改和删除数据

因为InfluxDB是时序数据库,因此未提供修改和删除数据的操做。不过,数据删除能够经过数据保存策略(Retention Policies)来自动实现。

五、series操做

series表示数据表中特定tags对应的数据,好比上面的表server_info,该表中保存了多个服务器的数据,不一样服务器经过tags中的server_name不一样值来表示,假如如今表中数据以下:

则此时series则表示不一样服务器的cpu、ram_capacity随时间变化的一系列值。

六、帐号管理

  • 查看帐号:show users
  • 建立普通帐号:create user “username”/username with password ‘password’,貌似建立的普通帐号并无什么数据库操做权限
  • 建立管理和帐号:create user “username”/username with password ‘password’ with all privileges
  • 删除帐号:drop user “username”/username
  • 设置帐号密码:set password for username=’password’

其中,帐号支持两种书写方式:英文双引号括起来、直接帐号字符串,而密码则必须以英文单引号括起来,不然会出错。

0x02 参考连接

相关文章
相关标签/搜索