文档

influxctl query

使用influxctl query命令可以通过SQL或InfluxQL查询InfluxDB集群数据,并将结果以表格或JSON格式打印。

提供查询方式如下:

  • 命令行上的字符串
  • 包含查询的文件的路径
  • 使用单个短横线(-)从stdin读取查询

注意事项

  • 此命令每次执行只支持一个查询。
  • 此命令并非是一个功能丰富的完整查询工具,它是用于调试、故障排除和基本数据探索的。

InfluxDB连接配置

您的InfluxDB集群主机和端口配置在您的influxctl 连接配置文件中。默认使用TLS和端口443。您可以在连接配置文件中设置默认数据库和令牌,用于querywrite命令,或者使用命令中的--database--token标志传递它们。命令行标志将覆盖连接配置文件中的设置。

输出格式

--format标志允许您以其他格式打印输出。可用json格式供其他工具进行程序性解析。默认:table

使用table格式时,默认情况下,时间戳以RFC3339时间戳格式进行格式化。使用--time-format标志可以指定以下可用时间格式之一

用法

influxctl query [flags] <QUERY>

参数

参数描述
QUERY要执行的查询(命令行字符串、文件路径或-从stdin读取)

标志

标志描述
--database要查询的数据库
--enable-system-tables启用查询系统表的能力
--format输出格式(《table》(默认)或《json》)
--language查询语言(《sql》(默认)或《influxql》)
--time-format表格输出的时间格式(《rfc3339nano》(默认)或《unixnano》)
--token具有查询数据库权限的数据库令牌
-h--help输出命令帮助

另请参阅 influxctl全局标志

示例

以下示例中,替换以下内容

  • DATABASE_TOKEN:具有读取查询数据库访问权限的数据库令牌
  • DATABASE_NAME:要查询的数据库名称

使用SQL查询InfluxDB v3

influxctl query \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
"SELECT * FROM home WHERE time >= '2022-01-01T08:00:00Z'"
influxctl query \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
/path/to/query.sql
cat ./query.sql | influxctl query \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
-

使用InfluxQL查询InfluxDB v3

influxctl query \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
--language influxql \ "SELECT * FROM home WHERE time >= '2022-01-01T08:00:00Z'"
influxctl query \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
--language influxql \ /path/to/query.influxql
cat ./query.influxql | influxctl query \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
--language influxql \ -

以表格格式返回InfluxDB v3查询结果

influxctl query \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
"SELECT * FROM home WHERE time >= '2022-01-01T08:00:00Z' LIMIT 5"
influxctl query \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
/path/to/query.sql
cat ./query.sql | influxctl query \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
-

查看示例表格格式结果

以JSON格式返回InfluxDB v3查询结果

influxctl query \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
--format json \ "SELECT * FROM home WHERE time >= '2022-01-01T08:00:00Z' LIMIT 5"
influxctl query \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
--format json \ /path/to/query.sql
cat ./query.sql | influxctl query \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
--format json \ -

查看示例 JSON 格式结果

以Unix纳秒时间戳返回InfluxDB v3查询结果

influxctl query \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
--time-format unixnano \ "SELECT * FROM home WHERE time >= '2022-01-01T08:00:00Z' LIMIT 5"
influxctl query \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
--time-format unixnano \ /path/to/query.sql
cat ./query.sql | influxctl query \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
--time-format unixnano \ -

查看示例表格格式结果

使用连接配置文件中的凭据查询InfluxDB v3

以下示例使用在 default 中定义的 databasetoken

influxctl query "SELECT * FROM home WHERE time >= '2022-01-01T08:00:00Z'"

从 InfluxDB v3 系统表中查询数据

您必须使用 SQL 查询 InfluxDB v3 系统表。

查询系统表可能会影响您 InfluxDB 集群的总体性能。系统表不是 InfluxDB 的稳定 API 部分,并且可能发生变化。

influxctl query \
  --enable-system-tables \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
"SELECT * FROM system.tables WHERE table_name = '
TABLE_NAME
'"
influxctl query \
  --enable-system-tables \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
/path/to/query.sql
cat ./query.sql | influxctl query \
  --enable-system-tables \
  --token 
DATABASE_TOKEN
\
--database
DATABASE_NAME
\
-

查看命令更新


这个页面有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 将进入维护模式。您可以继续像现在一样使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB v3 增强功能和 InfluxDB 集群现在已普遍可用

新功能包括更快的查询性能和管理工具,这些功能推动了 InfluxDB v3 产品线的进步。InfluxDB 集群现在已普遍可用。

InfluxDB v3 性能和功能

InfluxDB v3 产品线在查询性能方面取得了重大增强,并提供了新的管理工具。这些增强包括一个操作仪表板,用于监控您的 InfluxDB 集群的健康状况,InfluxDB 云专用中的单点登录 (SSO) 支持,以及用于令牌和数据库的新管理 API。

了解新的 v3 增强功能


InfluxDB 集群普遍可用

InfluxDB 集群现在已普遍可用,并为您在自管理堆栈中提供了 InfluxDB v3 的功能。

与我们讨论 InfluxDB 集群