使用 influx - InfluxDB 命令行界面
此页面记录了较早版本的 InfluxDB OSS。InfluxDB OSS v2 是最新的稳定版本。请参阅 InfluxDB v2 文档。
influx 命令行界面 (CLI) 为与 influxd 关联的 HTTP API 提供了一个交互式 shell。 使用 influx 可以写入数据(手动或从文件)、交互式查询数据、以不同格式查看查询输出以及管理 InfluxDB 中的资源。
启动 influx
当您安装 InfluxDB OSS 1.12 时,会包含 influx CLI。
influx CLI 安装在以下路径,具体取决于您的系统和软件包管理器
要访问 CLI,请先启动 influxd 数据库进程,然后在终端中启动 influx。
influx
如果成功连接到 InfluxDB 节点,则输出如下
Connected to https://:8086 version 1.12.0
InfluxDB shell version: 1.12.0
>
InfluxDB 和 CLI 的版本应相同。 否则,查询可能会出现解析问题。
在提示符下,您可以输入 InfluxQL 查询以及 CLI 特定的命令。 输入 help 以获取可用命令列表。 如果您想取消长时间运行的 InfluxQL 查询,请使用 Ctrl+C 取消。
环境变量
以下环境变量可用于配置 influx 客户端使用的设置。 它们可以用小写或大写指定,但大写版本优先。
HTTP_PROXY
定义用于 HTTP 的代理服务器。
值格式:[protocol://]<host>[:port]
HTTP_PROXY=https://:1234
HTTPS_PROXY
定义用于 HTTPS 的代理服务器。 对于 HTTPS,优先于 HTTP_PROXY。
值格式:[protocol://]<host>[:port]
HTTPS_PROXY=https://:1443
NO_PROXY
不应通过任何代理的主机名列表。 如果仅设置为星号“*”,则匹配所有主机。
值格式: 逗号分隔的主机列表
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 '数据库名称' influx 连接到的数据库。
-execute '命令' 执行 InfluxQL 命令并退出。 请参阅 -execute。
-format 'json|csv|column' 指定服务器响应的格式。 请参阅 -format。
-host '主机名' influx 连接到的主机。 默认情况下,InfluxDB 在 localhost 上运行。
-import 从文件导入新数据或导出的数据。 请参阅 -import。
-password '密码' influx 用于连接到服务器的密码。 如果您将其留空 (-password ''),influx 将提示您输入密码。 或者,使用 INFLUX_PASSWORD 环境变量为 CLI 设置密码。
-path 要导入的文件的路径。 与-import 一起使用。
-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 '用户名' 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。 如果您未指定主机或端口,则 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 的数据库的 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 文档,请参阅 数据探索、模式探索、数据库管理、身份验证和授权。
此页是否对您有帮助?
感谢您的反馈!
支持与反馈
感谢您成为我们社区的一份子! 我们欢迎并鼓励您提供关于 InfluxDB 和本文档的反馈和错误报告。 要获得支持,请使用以下资源
拥有年度合同或支持合同的客户 可以联系 InfluxData 支持。