文档文档

influxctl query

influxctl query 命令使用 SQL 或 InfluxQL 从 InfluxDB Clustered 查询数据,并将结果打印为表格或 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 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 开源版本现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版本的一部分。

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

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