##简单用法
在InfluxDB中的数据是通过“时间序列组织的“,包含一个测量变量,比如cpu_load或者温度。时间序列有无数的点,每个点都是metric的离散采样。
点包含time(一个时间戳)、一个measurement测量变量(比如是cpu_load),至少一个kv键值对`field`(测量变量的值,比如"value=0.64",或者"temperature=21.2"),还有很多的kv键值对`tags`。其中`tags`可以包含任何关于变量的元数据信息,比如"host=server01",“region=EMEA”, “dc=Frankfurt” 。
在概念上,你可以把一个`measurement`看做是一个SQL表,主索引一直都是时间。`tags`和`fields`实际上是表中的列。`tags`会被索引,但是`fields`不会。区别是,使用InfluxDB,你可以有百万个测量变量,但是不需要设计前面的架构,空值不会被存储。
点会被写入到InfluxDB,使用行协议(Line Protocol),格式如下:
```
<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]
```
下面是可以写入到InfluxDB的点的所有例子:
```
cpu,host=serverA,region=us_west value=0.64
payment,device=mobile,product=Notepad,method=credit billed=33,licenses=3i 1434067467100293230
stock,symbol=AAPL bid=127.46,ask=127.48
temperature,machine=unit42,type=assembly external=25,internal=37 1434067467000000000
```
使用influx命令行,可以插入一个个时间序列点,比如使用如下的语句:
```
> INSERT cpu,host=serverA,region=us_west value=0.64
>
```
这样,一个点——测量变量是`cpu`,tags是`host`和`region`,测量值`value`为0.64,被写入到数据库中了。
然后,我们可以通过如下语句查到这条数据记录:
```
> SELECT "host", "region", "value" FROM "cpu"
name: cpu
---------
time host region value
2015-10-21T19:28:07.580664347Z serverA us_west 0.64
```
我们尝试存储另外一种数据,在一个测量变量里含有两种fields:
```
> INSERT temperature,machine=unit42,type=assembly external=25,internal=37
>
```
一次查询操作中,可以使用`*`操作符获取所有的fields和tags:
```
> SELECT * FROM "temperature"
name: temperature
-----------------
time external internal machinetype
2015-10-21T19:28:08.385013942Z 25 37 unit42 assembly
>
```
## 从外部文件导入数据
导入的文件包含以下的两段:
- DLL(数据定义语言):包含创建相关数据库和管理retention policy的InfluxQL命令。如果你的数据库和retention policy已经存在,你的文件可以跳过这个段。
- DML(数据管理语言):列出相关的数据库、retention policy(如果需要的话),并包含行协议的数据
比如,文件`datarrr.txt`:
```
# DDL
CREATE DATABASE pirates
CREATE RETENTION POLICY oneday ON pirates DURATION 1d REPLICATION 1
# DML
# CONTEXT-DATABASE: pirates
# CONTEXT-RETENTION-POLICY: oneday
treasures,captain_id=dread_pirate_roberts value=801 1439856000
treasures,captain_id=flint value=29 1439856000
treasures,captain_id=sparrow value=38 1439856000
treasures,captain_id=tetra value=47 1439856000
treasures,captain_id=crunch value=109 1439858880
```
导入命令如下:
```
$influx -import -path=datarrr.txt -precision=s
```
结果如下:
```
2015/12/22 12:25:06 Processed 2 commands
2015/12/22 12:25:06 Processed 5 inserts
2015/12/22 12:25:06 Failed 0 inserts
```