使用 influx - InfluxDB 命令行界面
此页面记录了 InfluxDB OSS 的早期版本。 InfluxDB OSS v2 是最新的稳定版本。请参阅 InfluxDB v2 文档。
influx
命令行界面 (CLI) 为与 influxd
关联的 HTTP API 提供了一个交互式 shell。使用 influx
可以写入数据(手动或从文件),交互式查询数据,以不同格式查看查询输出,以及管理 InfluxDB 中的资源。
启动 influx
当您 安装 InfluxDB OSS 1.11 时,influx
CLI 包含在内。
influx
CLI 安装在以下路径,具体取决于您的系统和软件包管理器
要访问 CLI,请首先启动 influxd
数据库进程,然后在您的终端中启动 influx
。
influx
如果成功连接到 InfluxDB 节点,输出如下:
Connected to https://#:8086 version 1.11.8
InfluxDB shell version: 1.11.8
>
InfluxDB 和 CLI 的版本应相同。否则,查询可能会出现解析问题。
在提示符下,您可以输入 InfluxQL 查询以及 CLI 特定的命令。输入 help
以获取可用命令列表。如果您想取消长时间运行的 InfluxQL 查询,请使用 Ctrl+C
取消。
环境变量
以下环境变量可用于配置 influx
客户端使用的设置。它们可以用小写或大写字母指定,但大写版本优先。
HTTP_PROXY
定义用于 HTTP 的代理服务器。
Value format:[protocol://]<host>[:port]
HTTP_PROXY=https://#:1234
HTTPS_PROXY
定义用于 HTTPS 的代理服务器。对于 HTTPS,优先于 HTTP_PROXY。
Value format:[protocol://]<host>[:port]
HTTPS_PROXY=https://#:1443
NO_PROXY
不应通过任何代理的 host 名称列表。如果仅设置为星号 '*',则匹配所有 host。
Value format: 逗号分隔的 host 列表
NO_PROXY=123.45.67.89,123.45.67.90
influx
参数
参数指定 CLI 会话的连接、写入、导入和输出选项。
influx
提供以下参数
-h
, -help
列出 influx
参数
-compressed
如果导入文件已压缩,则设置为 true。与 -import
一起使用。
-consistency 'any|one|quorum|all'
设置写入一致性级别。
-database 'database name'
influx
连接的数据库。
-execute 'command'
执行 InfluxQL 命令并退出。请参阅 -execute。
-format 'json|csv|column'
指定服务器响应的格式。请参阅 -format。
-host 'host name'
influx
连接的 host。默认情况下,InfluxDB 在 localhost 上运行。
-import
从文件导入新数据或 导出的数据。请参阅 -import。
-password 'password'
influx
用于连接到服务器的密码。如果您将其留空(-password ''
),influx
将提示您输入密码。或者,使用 INFLUX_PASSWORD
环境变量为 CLI 设置密码。
-path
要导入的文件的路径。与-import 一起使用。
-port 'port #'
influx
连接的端口。默认情况下,InfluxDB 在端口 8086
上运行。
-pps
导入允许的每秒点数。默认情况下,pps 为零,influx 不会限制导入。与 -import
一起使用。
-precision 'rfc3339|h|m|s|ms|u|ns'
指定时间戳的格式/精度:rfc3339
(`YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ`)、h
(小时)、m
(分钟)、s
(秒)、ms
(毫秒)、u
(微秒)、ns
(纳秒)。精度默认为纳秒。
注意: 将精度设置为
rfc3339
(`-precision rfc3339`) 适用于-execute
选项,但不适用于-import
选项。所有其他精度格式(例如,h
、m
、s
、ms
、u
和ns
)都适用于-execute
和-import
选项。
-pretty
打开 json
格式的漂亮打印。
-ssl
使用 HTTPS 进行请求。
-unsafeSsl
禁用 SSL 证书验证。当通过具有自签名证书的 HTTPS 连接时使用。
-username 'username'
influx
用于连接到服务器的用户名。或者,使用 INFLUX_USERNAME
环境变量为 CLI 设置用户名。
-version
显示 InfluxDB 版本并退出。
以下部分提供了某些参数的详细示例,包括 -execute
、-format
和 -import
。
使用 -execute
执行 InfluxQL 命令并退出
执行不需要数据库规范的查询
$ influx -execute 'SHOW DATABASES'
name: databases
---------------
name
NOAA_water_database
_internal
telegraf
pirates
执行需要数据库规范的查询,并更改时间戳精度
$ influx -execute 'SELECT * FROM "h2o_feet" LIMIT 3' -database="NOAA_water_database" -precision=rfc3339
name: h2o_feet
--------------
time level description location water_level
2015-08-18T00:00:00Z below 3 feet santa_monica 2.064
2015-08-18T00:00:00Z between 6 and 9 feet coyote_creek 8.12
2015-08-18T00:06:00Z between 6 and 9 feet coyote_creek 8.005
使用 -format
指定服务器响应的格式
默认格式为 column
$ influx -format=column
[...]
> SHOW DATABASES
name: databases
---------------
name
NOAA_water_database
_internal
telegraf
pirates
将格式更改为 csv
$ influx -format=csv
[...]
> SHOW DATABASES
name,name
databases,NOAA_water_database
databases,_internal
databases,telegraf
databases,pirates
将格式更改为 json
$ influx -format=json
[...]
> SHOW DATABASES
{"results":[{"series":[{"name":"databases","columns":["name"],"values":[["NOAA_water_database"],["_internal"],["telegraf"],["pirates"]]}]}]}
将格式更改为 json
并打开漂亮打印
$ influx -format=json -pretty
[...]
> SHOW DATABASES
{
"results": [
{
"series": [
{
"name": "databases",
"columns": [
"name"
],
"values": [
[
"NOAA_water_database"
],
[
"_internal"
],
[
"telegraf"
],
[
"pirates"
]
]
}
]
}
]
}
从文件导入数据
导入文件有两个部分
- 可选:DDL(数据定义语言):包含用于创建相关 数据库 和管理 保留策略 的 InfluxQL 命令。如果您的数据库和保留策略已存在,则您的文件可以跳过此部分。
- DML(数据操作语言):上下文元数据,指定导入的数据库和(如果需要)保留策略,并包含 行协议 中的数据。
示例
文件 (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
对于大型数据集,influx
每 100,000 个点写入一条状态消息。
例如
2015/08/21 14:48:01 Processed 3100000 lines.
Time elapsed: 56.740578415s.
Points per second (PPS): 54634
关于 -import
需要注意的事项
- 要限制导入,请使用
-pps
设置每秒要摄取的点数。默认情况下,pps 为零,influx
不会限制导入。 - 要导入使用
gzip
(GNU zip) 压缩的文件,请包含 -compressed 标志。 - 在数据文件中包含时间戳。如果点不包含时间戳,InfluxDB 会为这些点分配相同的时间戳,这可能会导致意外的 重复点或覆盖。
- 如果您的数据文件包含超过 5,000 个点,请考虑将其拆分为较小的文件,以便分批将数据写入 InfluxDB。我们建议以 5,000 到 10,000 个点的批次写入,以获得最佳性能。写入较小的批次会增加 HTTP 请求的数量,这可能会对性能产生负面影响。默认情况下,HTTP 请求在五秒后超时。虽然 InfluxDB 在超时后继续尝试写入点,但您不会收到写入成功的确认。
注意: 要从 InfluxDB 版本 0.8.9 导出数据,请参阅 从 0.8.9 导出。
有关更多信息,请参阅 导出和导入数据。
influx
命令
在 CLI 中输入 help
以获取可用命令的部分列表。
命令
下面的列表提供了每个命令的简要讨论。我们在本节末尾提供了关于 insert
的详细信息。
auth
提示您输入用户名和密码。influx
在查询数据库时使用这些凭据。或者,使用 INFLUX_USERNAME
和 INFLUX_PASSWORD
环境变量为 CLI 设置用户名和密码。
chunked
打开从服务器发出查询时的分块响应。默认情况下启用此设置。
chunk size <size>
设置分块响应的大小。默认大小为 10,000
。将其设置为 0
会将 chunk size
重置为其默认值。
clear [ database | db | retention policy | rp ]
清除 数据库 或 保留策略 的当前上下文。
connect <host:port>
连接到不同的服务器,而无需退出 shell。默认情况下,influx
连接到 localhost:8086
。如果您未指定 host 或端口,则 influx
假定缺失属性的默认设置。
consistency <level>
设置写入一致性级别:any
、one
、quorum
或 all
。
Ctrl+C
终止当前正在运行的查询。当交互式查询花费太长时间来响应时,这很有用,因为它试图返回过多的数据。
exit
quit
Ctrl+D
退出 influx
shell。
format <format>
指定服务器响应的格式:json
、csv
或 column
。有关每种格式的示例,请参阅 -format 的描述。
history
显示您的命令历史记录。要在 shell 中使用历史记录,只需使用“向上”箭头。influx
将您最近的 1,000 个命令存储在您主目录的 .influx_history
中。
insert
使用行协议写入数据。请参阅 insert。
precision <format>
指定时间戳的格式/精度:rfc3339
(`YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ`)、h
(小时)、m
(分钟)、s
(秒)、ms
(毫秒)、u
(微秒)、ns
(纳秒)。精度默认为纳秒。
pretty
打开 json
格式的漂亮打印。
settings
输出 shell 的当前设置,包括 Host
、Username
、Database
、Retention Policy
、Pretty
状态、Chunked
状态、Chunk Size
、Format
和 Write Consistency
。
use [ "<database_name>" | "<database_name>"."<retention policy_name>" ]
设置当前的 数据库 和/或 保留策略。一旦 influx
设置了当前数据库和/或保留策略,则无需在查询中指定该数据库和/或保留策略。如果您未指定保留策略,则 influx
会自动查询 use
d 数据库的 DEFAULT
保留策略。
使用 insert
将数据写入 InfluxDB
输入 insert
,后跟 行协议 中的数据,以将数据写入 InfluxDB。使用 insert into <retention policy> <line protocol>
将数据写入特定的 保留策略。
将数据写入 measurement treasures
中的单个字段,标签为 captain_id = pirate_king
。influx
自动将点写入数据库的 DEFAULT
保留策略。
> INSERT treasures,captain_id=pirate_king value=2
>
将相同的点写入已存在的保留策略 oneday
> INSERT INTO oneday treasures,captain_id=pirate_king value=2
Using retention policy oneday
>
查询
在 influx
中执行所有 InfluxQL 查询。
有关 InfluxQL 文档,请参阅 数据探索、Schema 探索、数据库管理、身份验证和授权。
此页是否对您有帮助?
感谢您的反馈!