Documentation

influxctl 查询

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

以以下几种方式提供查询:

  • 命令行上的字符串
  • 一个包含查询的文件路径
  • 作为一个单个短横线 (-) 从标准输入读取查询

重要说明

  • 该命令每次执行仅支持一个查询。
  • 此命令并不旨在成为一个功能丰富的查询工具。它用于调试、初步分析和基本数据探索。

InfluxDB连接配置

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

输出格式

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

使用 table 格式时,默认情况下,时间戳格式为 RFC3339 时间戳。使用 --time-format 标志来指定可用的时间格式之一:

用法

influxctl query [flags] <QUERY>

参数

参数描述
查询要执行的查询(命令行字符串、文件路径,或 - 从标准输入读取)

标志

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

示例

在下面的示例中,替换以下内容:

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

使用SQL查询InfluxDB 3

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 3

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 3 并以表格格式返回结果

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
\
-

查看示例表格格式的结果

查询 InfluxDB 3 并以 JSON 格式返回结果

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 格式的结果

查询 InfluxDB 3 并返回带有 Unix 纳秒时间戳的结果

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 3

以下示例使用了在 default 连接配置文件 中定义的 databasetoken

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

从 InfluxDB 3 系统表查询数据

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

查询系统表可能会影响您 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 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看: