鼎鼎知识库
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

16.InfluxDB操作.md 5.4KB

基本概念

  • database 数据库
  • measurement 数据库中的表
  • points 表里面的一行数据
  • point 由时间戳(Time)、数据(field)、标签(tags)组成
    • Time:每个数据记录时间,是数据库中的主索引(会自动生成)
    • fields:各种记录值(没有索引的属性)也就是记录的值
    • tags:各种有索引的属性
  • measurement看成是一个SQL表格,其中,时间戳始终是主索引,tag和field是表格中的列,tag会被建索引,而field则不会。与SQL表格的不同之处在于,使用TSDB For InfluxDB®,您可以有数百万的measurement,无需预先定义数据的schema,并且不会存储空值。 > 具体操作

启动Influx

  • 执行命令语句 ./influx -ssl -username influxuser -password user@influxDB -host ts-uf60ncdtuve8d41w3.influxdata.rds.aliyuncs.com -port 3242
    • 执行不需要制定数据库的查询 influx -ssl -username influxuser -password user@influxDB -host ts-uf60ncdtuve8d41w3.influxdata.rds.aliyuncs.com -port 3242 -execute 'SHOW DATABASES'
    • 执行需要指定数据库的查询,同时,改变时间戳精度: influx -ssl -username influxuser -password user@influxDB -host ts-uf60ncdtuve8d41w3.influxdata.rds.aliyuncs.com -port 3242 -execute 'SELECT * FROM "h2o_feet" LIMIT 3' -database="NOAA_water_database" -precision=rfc3339
  • 使用-format指定服务器返回结果的格式
    • 默认的格式是column: influx -ssl -username influxuser -password user@influxDB -host ts-uf60ncdtuve8d41w3.influxdata.rds.aliyuncs.com -port 3242 -format=column
    • 将格式改为csv: influx -ssl -username influxuser -password user@influxDB -host ts-uf60ncdtuve8d41w3.influxdata.rds.aliyuncs.com -port 3242 -format=csv
    • 将格式改为json: influx -ssl -username influxuser -password user@influxDB -host ts-uf60ncdtuve8d41w3.influxdata.rds.aliyuncs.com -port 3242 -format=json
    • 将格式改为json并开启美观的输出: influx -ssl -username influxuser -password user@influxDB -host ts-uf60ncdtuve8d41w3.influxdata.rds.aliyuncs.com -port 3242 -format=json -pretty

显示购买的数据库名称

  • 执行命令语句 show databases 使用该数据库
  • 执行命令语句 use <该数据库的名称>
  • 显示 Using databases 数据库名称

往数据库中插入表(measurement)

- 执行命令语句:
  insert  cpu_usage,ip=192.168.0.1 value=30 15226580942111
  cpu_usage 代表表名,ip是tag索引,value=xx是记录值键值对,记录值可以有多个
  • 显示所有的表
    • 查询命令:show measurements
  • 查询插入的数据

    select * from cpu_usage
    
    • 输入命令后显示出的内容 name: cpu_usage time ip value ---- -- ----- 15226580942111 192.168.0.1 30 往表中插入数据
    • 输入命令 INSERT cpu,host=serverA,region=us_west value=0.64 一个measurement为cpu,tag为host和region,测量值value为0.64的数据点已经写入数据库
    • 查询刚插入的数据 SELECT “host”, “region”, “value” FROM cpu
    • 输入命令后显示的界面 ``` > name: cpu time host region value
      1564026380 serverA us_west 0.64

    ```

  • 注释:前面我们在写入数据点的时候没有提供时间戳。如果写入没有带时间戳的数据点,TSDB For InfluxDB®会在获取该点时,把本地当前时间分配给该数据点,作为该数据点的时间戳。这意味着您的时间戳跟上面的会有所不同。

  • 写入另一种类型的数据,同一个measurement有两个field

    • 输入命令 ``` INSERT temperature,machine=unit42,type=assembly external=25,internal=37

创建了表temperature,machine为tag-key,type和external为field-key


**删除数据库**

DROP DATABASE

**从索引中删除序列**

从单个测量中删除所有系列: DROP SERIES FROM “h2o_feet” 从单个测量中删除具有特定标记对的系列: DROP SERIES FROM “h2o_feet” WHERE “location” = ‘santa_monica’ 从数据库中的所有度量中删除系列中具有特定标记对的所有点: DROP SERIES WHERE “location” = ‘santa_monica’ 成功的DROP SERIES查询返回空结果。

**使用Delete删除系列**

删除与测量相关的所有数据h2o_feet: DELETE FROM “h2o_feet” 删除与测量相关的所有数据h2o_quality以及标记randtag等于的位置3: DELETE FROM “h2o_quality” WHERE “randtag” = ‘3’ 删除2016年1月1日之前发生的数据库中的所有数据: DELETE WHERE time < ‘2016-01-01’

**使用Drop measurement 删除测量值**

DROP MEASUREMENT

**创建保留策略**

CREATE RETENTION POLICY “one_day_only” ON “NOAA_water_database” DURATION 23h60m REPLICATION 1 DEFAULT

**修改保留策略**

创建策略 CREATE RETENTION POLICY “what_is_time” ON “NOAA_water_database” DURATION 2d REPLICATION 1

修改策略 ALTER RETENTION POLICY “what_is_time” ON “NOAA_water_database” DURATION 3w SHARD DURATION 2h DEFAULT

**删除保留策略**

DROP RETENTION POLICY ON

删除保留策略what_is_time的NOAA_water_database数据库: DROP RETENTION POLICY “what_is_time” ON “NOAA_water_database” ```