>基本概念 - 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 1564026380476736485 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" ```