查看分区信息
InfluxDB Clustered 将分区信息存储在 InfluxDB 3 系统表中。查询分区信息以查看分区模板并验证分区是否按预期工作。
查询系统表可能会影响整体集群性能
分区信息存储在 InfluxDB 3 系统表中。查询系统表可能会影响 InfluxDB 集群的整体写入和查询性能。
系统表可能会发生更改
系统表不是 InfluxDB 稳定 API 的一部分,可能会随着新版本而更改。提供的模式信息和查询示例在 **2024 年 9 月 24 日** 之前有效。如果您检测到模式更改或无法正常工作的查询示例,请提交问题。
从系统表查询分区信息
使用 influxctl query
命令 和 SQL 从 InfluxDB 系统表查询与分区相关的信息。提供以下内容
使用
--enable-system-tables
命令标志启用系统表。数据库令牌:具有对指定数据库读取权限的数据库令牌。使用
influxctl
连接配置文件中的token
设置或--token
命令标志。数据库名称:要查询信息的数据库的名称。使用
influxctl
连接配置文件中的database
设置或--database
命令标志。SQL 查询:要执行的 SQL 查询。通过以下方式之一传递查询
- 命令行上的字符串
- 包含查询的文件路径
- 单个破折号 (
-
) 从 stdin 读取查询
influxctl query \
--enable-system-tables \
--database DATABASE_NAME \
--token DATABASE_TOKEN \
"SQL_QUERY"
替换以下内容
DATABASE_TOKEN
:具有对指定数据库读取访问权限的数据库令牌DATABASE_NAME
:要查询信息的数据库的名称。SQL_QUERY
:要执行的 SQL 查询。有关示例,请参阅系统查询示例。
当提示时,输入 y
以确认查询系统表可能对您的集群产生潜在影响。
与分区相关的查询
使用以下查询返回有关 InfluxDB 集群中分区的信息。
在以下示例中,将 TABLE_NAME
替换为您要查询信息的表的名称。
查看特定表的分区模板
SELECT * FROM system.tables WHERE table_name = 'TABLE_NAME'
示例结果
table_name | partition_template |
---|---|
weather | {"parts":[{"timeFormat":"%Y-%m-%d"},{"bucket":{"tagName":"location","numBuckets":250}}]} |
如果表在此命令的输出中不包含分区模板,则该表使用默认的(1 天)分区策略,并且不按标签或标签桶进行分区。
查看表的所有分区
SELECT * FROM system.partitions WHERE table_name = 'TABLE_NAME'
示例结果
partition_id | table_name | partition_key | last_new_file_created_at | num_files | total_size_mb |
---|---|---|---|---|---|
1362 | weather | 43 | 2020-05-27 | 1683747418763813713 | 1 | 0 |
800 | weather | 234 | 2021-08-02 | 1683747421899400796 | 1 | 0 |
630 | weather | 325 | 2022-03-17 | 1683747417616689036 | 1 | 0 |
1401 | weather | 12 | 2021-01-09 | 1683747417786122295 | 1 | 0 |
1012 | weather | 115 | 2022-07-04 | 1683747417614219148 | 1 | 0 |
查看每个表的分区数
SELECT
table_name,
COUNT(*) AS partition_count
FROM
system.partitions
WHERE
table_name IN ('TABLE_NAME_1', 'TABLE_NAME_2', 'TABLE_NAME_3')
GROUP BY
table_name
示例结果
table_name | partition_count |
---|---|
weather | 1096 |
home | 24 |
numbers | 1 |
查看特定表的分区数
SELECT
COUNT(*) AS partition_count
FROM
system.partitions
WHERE
table_name = 'TABLE_NAME'
示例结果
table_name | partition_count |
---|---|
weather | 1096 |
此页是否对您有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB Clustered 和本文档的反馈和错误报告。要获得支持,请使用以下资源
拥有年度或支持合同的客户可以联系 InfluxData 支持。