[TOC] # InfluxDB安装和简单使用小结 # InfluxDB是一个时序性数据库,因为工作需求,安装后使用测试下是否支持大数据下的业务场景 **说明:** * 安装版本 v1.6.0 * 集群版本要收费,单机版本免费 * 内部集成的web控制台被ko掉了 ## I. 安装 ## 直接到官网,查询对应的下载安装方式 * [Installing InfluxDB OSS](https://docs.influxdata.com/influxdb/v1.6/introduction/installation/ "Installing InfluxDB OSS") 安装方式 `````````` SHA256: fa118d657151b6de7c79592cf7516b3d9fada813262d5ebe16516f5c0bf62039 wget https://dl.influxdata.com/influxdb/releases/influxdb-1.6.0.x86_64.rpm sudo yum localinstall influxdb-1.6.0.x86_64.rpm `````````` 服务启动命令 `````````` # 启动命令 service influxdb start # 关闭命令 service influxdb stop `````````` **注意** 默认占用8086/8088两个端口号,可以根据自己的实际场景进行替换,进入配置文件 `/etc/influxdb/influxdb.conf` 查询 bind-address,其中端口号对应的用处说明如下 `````````` # Bind address to use for the RPC service for backup and restore. bind-address = "127.0.0.1:8088" ... [http] # Determines whether HTTP endpoint is enabled. # enabled = true # The bind address used by the HTTP service. bind-address = ":8086" `````````` ## II. 控制台简单使用 ## influx提供了一个控制台进行简单的操作,下面给出基本的使用姿势,对于influxdb的一些概念性问题,放在下一篇专门给与说明 首先进入控制台 `````````` influx # 如果修改了端口号,则需要显示指定 # influx -port xxx `````````` ### 1. database相关 ### 这个数据库和我们平常接触比较多的mysql中的数据库差不多,使用姿势也相差无几 #### a. 显示所有的数据库 #### 说明: `>后面跟的是命令,后面的是输出结果` `````````` > show databases name: databases name ---- _internal hh_test `````````` #### b. 创建数据库 #### 和mysql语法一致, `create database xxx` `````````` > create database mytest > show databases name: databases name ---- _internal hh_test mytest `````````` #### c. 删除数据库 #### 使用drop进行删除,`drop database xxx` `````````` > drop database mytest > show databases name: databases name ---- _internal hh_test `````````` #### d. 选择数据库 #### `````````` > use hh_test Using database hh_test `````````` ### 2. 表相关 ### 在influxDB中,表不是我们传统理解的table,在这里,专业术语叫做 `measurement` (度量?) 查看所有的measurement的命令 `````````` show measurements; name: measurements name ---- trade `````````` 不同于mysql,没有提供专门的创建表,新插入数据,就会自动创建一个不存在的表 ### 1. 新增数据 ### `````````` insert <tbname>,<tags> <values> [timestamp] `````````` 说明: * tbname : 数据表名称 * tags : 表的tag域 * values : 表的value域 * timestamp :当前数据的时间戳(可选,没有提供的话系统会自带添加) `````````` > insert students,addr=wuhan phone=124 > select * from students name: students time addr phone ---- ---- ----- 1532514647456815845 wuhan 124 `````````` ### 2. 查询 ### 查询和sql类似,基本结构如下,但是有很多的限制,后面详解 `select * from table where condition group by xxx order by time asc limit 10` 一个实例case `````````` > insert students,addr=wuhan phone=124 > insert students,addr=wuhan phone=123 > insert students,addr=changsha phone=15 > select * from students where phone>0 group by addr order by time desc limit 10; name: students tags: addr=wuhan time phone ---- ----- 1532515056470523491 123 1532515052664001894 124 name: students tags: addr=changsha time phone ---- ----- 1532515064351295620 15 `````````` ### 3. 更新与删除 ### 当需要更新一个记录时,直接覆盖一个时间戳+所有的tag相等的即可 `````````` > select * from students name: students time addr phone ---- ---- ----- 1532515052664001894 wuhan 124 1532515056470523491 wuhan 123 1532515064351295620 changsha 15 > insert students,addr=wuhan phone=111123 1532515052664001894 > select * from students name: students time addr phone ---- ---- ----- 1532515052664001894 wuhan 111123 1532515056470523491 wuhan 123 1532515064351295620 changsha 15 `````````` 删除一条记录,用delete命令 `````````` > select * from students name: students time addr phone ---- ---- ----- 1532515052664001894 wuhan 111123 1532515056470523491 changsha 123 1532515056470523491 wuhan 123 > delete from students where time=1532515056470523491 > select * from students name: students time addr phone ---- ---- ----- 1532515052664001894 wuhan 111123 `````````` ### 4. 删除表 ### `````````` drop measurement students `````````` 注:本内容转载自 https://my.oschina.net/u/566591/blog/1863108