influxctl 查询
该 influxctl query 命令使用 SQL 或 InfluxQL 从 InfluxDB 集群中查询数据,并将结果以表格或 JSON 的形式打印。
以以下几种方式提供查询:
- 命令行上的字符串
- 一个包含查询的文件路径
- 作为一个单个短横线 (
-) 从标准输入读取查询
重要说明
- 该命令每次执行仅支持一个查询。
- 此命令并不旨在成为一个功能丰富的查询工具。它用于调试、初步分析和基本数据探索。
InfluxDB连接配置
您的 InfluxDB 集群主机和端口已在您的 influxctl 连接配置文件中配置。默认使用 TLS 和端口 443。您可以在连接配置文件中设置默认数据库和令牌,以便用于 query 和 write 命令,或者通过使用 --database 和 --token 标志将它们传递给命令。命令行标志会覆盖连接配置文件中的设置。
输出格式
--format标志允许您以其他格式打印输出。json格式可供其他工具进行编程解析。默认值:table。
使用 table 格式时,默认情况下,时间戳格式为 RFC3339 时间戳。使用 --time-format 标志来指定可用的时间格式之一:
rfc3339nano: (默认为) RFC3339Nano格式的时间戳–例如:2024-01-01T00:00:00.000000000Zunixnano: Unix 纳秒时间戳
用法
influxctl query [flags] <QUERY>
参数
| 参数 | 描述 |
|---|---|
| 查询 | 要执行的查询(命令行字符串、文件路径,或 - 从标准输入读取) |
标志
| 标志 | 描述 | |
|---|---|---|
--database | 要查询的数据库 | |
--enable-system-tables | 启用查询系统表的能力 | |
--format | 输出格式 (table (默认) 或 json) | |
--language | 查询语言 (sql (默认) 或 influxql) | |
--time-format | 表格输出的时间格式 (rfc3339nano (默认) 或 unixnano) | |
--token | 具有查询数据库读取权限的数据库令牌 | |
-h | --help | 输出命令帮助 |
另见 influxctl 全局标志.
示例
- 使用SQL查询InfluxDB 3
- 使用InfluxQL查询InfluxDB 3
- 查询 InfluxDB 3 并以表格格式返回结果
- 查询InfluxDB 3并以JSON格式返回结果
- 查询 InfluxDB 3 并返回带有 Unix 纳秒时间戳的结果
- 使用连接配置文件中的凭证查询 InfluxDB 3
- 从InfluxDB 3个系统表中查询数据
在下面的示例中,替换以下内容:
DATABASE_TOKEN: 对查询数据库具有读取权限的数据库令牌DATABASE_NAME: 要查询的数据库名称
使用SQL查询InfluxDB 3
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 \
/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 \
/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 \
/path/to/query.sql
cat ./query.sql | influxctl query \
--token DATABASE_TOKEN \
--database DATABASE_NAME \
--format json \
-
查询 InfluxDB 3 并返回带有 Unix 纳秒时间戳的结果
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 连接配置文件 中定义的 database 和 token。
从 InfluxDB 3 系统表查询数据
您必须使用 SQL 来查询 InfluxDB 3 系统表。
查询系统表可能会影响您 InfluxDB 集群的整体性能。系统表不是 InfluxDB 稳定 API 的一部分,并且可能会发生变化。
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 \
-